Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.su/lib_na/cat/am/am21r.htm
Дата изменения: Fri Jun 20 11:37:42 2014 Дата индексирования: Sun Apr 10 00:36:44 2016 Кодировка: Windows-1251 |
Текст подпрограммы и версий ( Фортран ) am21r.zip , am21d.zip |
Тексты тестовых примеров ( Фортран ) tam21r.zip , tam21d.zip |
Текст подпрограммы и версий ( Си ) am21r_c.zip , am21d_c.zip |
Тексты тестовых примеров ( Си ) tam21r_c.zip , tam21d_c.zip |
Текст подпрограммы и версий ( Паскаль ) am21r_p.zip , am21e_p.zip |
Тексты тестовых примеров ( Паскаль ) tam21r_p.zip , tam21e_p.zip |
Умножение симметричной разреженной матрицы, заданной в формате RR (U) U, на заполненный вектор - столбец
Сокращенное название формата RR (U) U происходит от английского словосочетания "Row - wise Representation, Upper, Unordered" (строчное представление, верхний треугольник, неупорядоченное).
Данный формат используется для симметричных и верхних треугольных матриц, у которых большинство диагональных элементов отличны от нуля. В этом формате представляется только верхний треугольник матрицы (внутри каждой строки элементы могут храниться в произвольном порядке), а ее диагональные элементы хранятся в отдельном одномерном массиве.
Поясним данный формат на следующем примере. Пусть дана симметричная матрица A четвертого порядка:
1 2 3 4 1 | 0 1 2 3 | A = 2 | 1 1 2 3 | 3 | 2 2 2 3 | 4 | 3 3 3 3 |
Тогда в рассматриваемом формате представление матрицы A может иметь следующий вид:
IA = ( 1, 4, 6, 7; 7 ) JA = ( 4, 2, 3; 4, 3; 4 ) AN = ( 3, 1, 2; 3, 2; 3 ) AD = ( 0, 1, 2, 3 )
Правила формирования массивов IA, JA и AN аналогичны правилам формирования соответствующих массивов в формате RR (C) U, описание которого приведено в описании подпрограммы AMTSR .
Подпрограмма AM21R умножает симметричную разреженную матрицу A порядка N, заданную в формате RR (U) U, на заполненный вектор - столбец B длины N и помещает разультирующий заполненный вектор - столбец в одномерный массив C длины N
С.Писсанецки. Технология разреженных матриц. - М.: Мир, 1988
SUBROUTINE AM21R ( IA, JA, AN, AD, B, N, C)
Параметры
IA, JA, - AN, AD | заданные портрет и ненулевые элементы матрицы A в формате RR (U) U; |
B - | вещественный одномерный массив N, содержащий компоненты заданного заполненного вектора - столбца; |
N - | заданный порядок матрицы A (тип: целый); |
C - | вещественный одномерный массив длины N, содержащий компоненты результирующего вектора - столбца |
Версии
AM21D - | умножение симметричной разреженной матрицы, заданной в формате RR (U) U, на разреженный вектор - столбец в режиме удвоенной точности; при этом параметры AN, AD, B и C должны иметь тип DOUBLE PRECISION |
Вызываемые подпрограммы: нет
Замечания по использованию: нет
DIMENSION IA(5), JA(6), AN(6), AD(4), B(4), C(4) DATA IA /1, 4, 6, 7, 7/, * JA / 4, 2, 3, 4, 3, 4/, * AN /3., 1., 2., 3., 2., 3./, * AD /0.0, 1., 2., 3./, * B /1., 1., 1., 1./ N = 4 CALL AM21R (IA, JA, AN, AD, B, N, C) Результаты: C = ( 6, 7, 9, 12 )