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

UptoLike

Рубрика: 

- 16 -
например, с помощью
JА
. Символический этап здесь отсутствует, сразу
начинается численный этап .
Сначала заполняем
IX
по
JА
. Если
k
число элементов в
JB
, то
для
k
i
,...,
1
=
проверяем
))
i
JB
IX
. Если это ноль, то переходим к
следующей позиции массива
JB
; если нет, то
)))
i
JB
IX
AN
I
BN
P
P
+
=
и переходим к следующей позиции
JB
.
Другими словами, делаем следующее:
1)
0
=
P
;
2) для
k
i
,...,
1
=
0))((
=
IJBIX
JA
да нет
1
+
=
i
i
)))((()( iJBIXANIBNPP
JA
+
=
1
+
=
i
i
Задача 21. Найти скалярное произведение векторов
N
позиции:
8
7
6
5
4
3
2
1
:
JA
IX
3
2
0
0
0
1
5
4
0
=
P
,
8
,...,
1
=
i
:
1
=
i
0))1((
=
JBIX
JA
2
=
i
: 01))2((
=
JBIX
JA
7
1
7
1
2
0
=
=
+
=
AN
BN
P
:
3
=
i
05))3((
=
JBIX
JA
47
5
8
7
5
3
7
=
+
=
+
=
AN
BN
P
:
4
=
i
4))4((
=
JBIX
JA
83
4
9
47
=
+
=
P
. . . . . . . . . . . . . . . . . . . . . . . .
3.5. Умножение РМ на РВ (результат заполненный вектор )
На входе матрица
А
и вектор
B
в РСФ , на выходе
вектор
AB
C
=
как обычный одномерный массив . Здесь строки матрицы
А
рассматриваются , как РВ , и скалярно умножаются на РВ
B
с помощью
рассмотренного в п.3.4 алгоритма.
Алгоритм
;
21873:
54321:
JA
AN
.
861234:
11109876:
JB
BN
                                    - 16 -

например, с помощью JА . Символический этап здесь отсутствует, сразу
начинается численный этап.
    Сначала заполняем IX по JА . Если k – число элементов в JB , то
для i =1,..., k проверяем IX ( JB(i )) . Если это ноль, то переходим к
следующей         позиции          массива       JB ;     если     нет, то
P =P +BN ( I ) ⋅ AN ( IX ( JB (i ))) и переходим к следующей позиции JB .
    Другими словами, делаем следующее:
1) P =0 ;
2) для i =1,..., k


                  IX JA ( JB( I )) =0
             да               нет
            i =i +1      P =P +BN ( I ) ⋅ AN ( IX JA ( JB(i )))
                              i =i +1
Задача 21. Найти скалярное произведение векторов

     � AN : 1 2 3 4 5                    � BN : 6 7 8 9 10 11
      �                 ;                 �                    .
        � JA: 3 7 8 1 2                     � JB : 4 3 2 1 6 8
      N позиции: 1 2 3 4 5 6 7 8
            IX JA : 4 5 1 0 0 0 2 3
 P =0 , i =1,...,8
   i =1 : IX JA ( JB(1)) =0
  i =2 : IX JA ( JB(2)) =1 ≠0
          P =0 +BN (2) ⋅ AN (1) =7 ⋅1 =7
  i =3 : IX JA ( JB (3)) =5 ≠0
          P =7 +BN (3) ⋅ AN (5) =7 +8 ⋅ 5 =47
  i =4 : IX JA ( JB(4)) =4
          P =47 +9 ⋅ 4 =83
  . . . . . . . . . . . . . . . . . . . . . . . .

    3.5. Умножение РМ на РВ (результат – заполненный вектор)
   На входе – матрица         А и вектор B в РСФ, на выходе –
вектор C = AB как обычный одномерный массив. Здесь строки матрицы А
рассматриваются, как РВ, и скалярно умножаются на РВ B с помощью
рассмотренного в п.3.4 алгоритма.
                             Алгоритм