Способы хранения и представления разреженных матриц, операции над ними. Блатов И.А - 17 стр.

UptoLike

Рубрика: 

- 17 -
1. РЦМУ
IX
(начальное состояние нулевое ) заполняется с помощью
вектора
B
.
2.
1
=
i
.
3. С помощью
IA
определяем, в каких позициях
JA
содержится описание
i
-й строки .
4. Просматривается участок
JA
, соответствующий описанию
i
-й строки .
Если компонента РМЦУ с номером
)
(
JA
(где
- текущая
просматриваемая позиция) равна нулю , то переходим к просмотру
следующей позиции; если не равна нулю , то производим умножение
соответствующих компонент массивов
AN
и
B
и результат умножения
прибавляем к содержимому ячейки
)
(
i
C
.
5. Если просмотр строки окончен, то полагаем
1
+
=
i
i
и возвращаемся к 3.
Повторяем до тех пор, пока не пройдем все строки .
Схематично этот алгоритм можно изобразить следующим образом.
1
=
0
)
(
=
С
)
(
)
1
(
IA
IA
=
+
нет да
1)1(),( += kAIkAIi
1
+
=
0
))
(
(
=
I
JA
IX
да нет
1
+
=
i
i
)))((()()()( iJAIXBNIANkCkC
JA
+
=
1
+
=
i
i
1
+
=
Задача 22. Умножить РМ на РВ (результат заполненный вектор).
N
позиции:
12
11
10
9
8
7
6
5
4
3
2
1
N
позиции:
10
9
8
7
6
5
4
3
2
1
:
JB
IX
7
0
6
5
0
4
3
0
2
1
10875421:
10875421:
JB
BN
131211941:
3110987523641:
6210864297531:
IA
JA
AN
                                      - 17 -

1. РЦМУ IX (начальное состояние – нулевое) заполняется с помощью
   вектора B .
2. i =1 .
3. С помощью IA определяем, в каких позициях JA содержится описание
   i -й строки.
4. Просматривается участок JA , соответствующий описанию i -й строки.
   Если компонента      РМЦУ      с номером      JA(k ) (где k - текущая
   просматриваемая позиция) равна нулю, то переходим к просмотру
   следующей позиции; если не равна нулю, то производим умножение
   соответствующих компонент массивов AN и B и результат умножения
   прибавляем к содержимому ячейки C (i ) .
5. Если просмотр строки окончен, то полагаем i =i +1 и возвращаемся к 3.
   Повторяем до тех пор, пока не пройдем все строки.
      Схематично этот алгоритм можно изобразить следующим образом.
                           k =1
                        С (k ) =0
                     IA(k +1) =IA(k )
              нет                      да
  i =I A(k ), I A(k +1) −1          k =k +1
     IX ( JA( I )) =0
     да               нет
    i =i +1  C ( k ) =C ( k ) +AN ( I ) ⋅ BN ( IX JA ( JA(i )))
                                i =i +1
          k =k +1
    Задача 22. Умножить РМ на РВ (результат – заполненный вектор).

N позиции: 1        2 3 4 5 6 7 8 9 10 11 12

     � AN : 1 3 5 7 9 2 4 6 8 10 2                            6
      �
        � JA : 1 4 6 3 2 5 7 8 9 10 1                         3
     � IA : 1 4 9 11 12 13
      �

     � BN : 1 2 4 5 7 8 10
      �
        � JB : 1 2 4 5 7 8 10
       N позиции: 1 2 3 4 5 6 7 8 9 10
           IX JB : 1 2 0 3 4 0 5 6 0 7