Работа с массивами в современном фортране
Запись от palva размещена 03.01.2014 в 23:55
Показов 5071
Комментарии 0
Метки операции над массивами, фортран
В новом фортране появились операции над массивами. Их можно поэлементно складывать, умножать и т. д. Матрицы и вектора умножаются не в математическом, а в поэлементном смысле. Для матричного умножения все же приходится использовать встроенные функции. Сечения массива позволяют работать с подматрицами – клетками матрицы. Клетки можно не только извлекать из матрицы, клеткам, как и любым матрицам можно что-то присвоить. Мы хотим продемонстрировать этот механизм на примере одного алгоритма обращения матриц. Процитируем книгу Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ эффективных алгоритмов. (М.: 1979) с. 262.
Предположим, нам надо обратить матрицу четвертого порядка. По изложенной Лемме такую задачу можно свести к двум обращениям матриц второго порядка и нескольким умножениям матриц. А уж для обращения матриц второго порядка нетрудно написать очевидную подпрограмму. Вопрос о том, будут ли матрицы второго порядка обратимыми, мы оставим открытым. Скорее всего будут. В крайнем случае программа, которую мы ниже предлагаем, при специально подобранных плохих данных упадет из-за деления на нуль.
Если же говорить об эффективности, то сама реализация, пусть и прозрачная, вызывает сомнения с точки зрения эффективности. Про эффективность оптимизатора Intel-Fortran сложены легенды. Но в данном случае человек может заметить такие свойства задачи, которых не заметит никакой оптимизатор. Вот здесь http://www.delphimaster.net/vi... 96883/0-40 в 2007 году я обсуждал этот алгоритм и пытался реализовать его наиболее эффективно. |
Метки операции над массивами, фортран
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии