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

UptoLike

Рубрика: 

- 18 -
1
=
k
;
0
)
1
(
=
С
;
)
1
(
)
2
(
A
I
A
I
=
:
3
1
=
i
:
1
=
i
0
1
)
1
(
))
1
(
(
=
=
IX
JA
IX
1
)
1
(
1
0
)
1
(
=
+
=
BN
C
:
2
=
i
0
3
)
4
(
))
2
(
(
=
=
IX
JA
IX
13
4
3
1
)
3
(
3
1
)
1
(
=
+
=
+
=
BN
C
:
3
=
i
0
)
6
(
))
3
(
(
=
=
IX
JA
IX
2
=
k
;
0
)
2
(
=
С
;
)
2
(
)
3
(
A
I
A
I
:
8
4
=
i
4
=
i
:
0
)
3
(
))
4
(
(
=
=
IX
JA
IX
5
=
i
:
2
)
2
(
))
5
(
(
=
=
IX
JA
IX
18
2
9
)
2
(
9
0
)
2
(
=
=
+
=
BN
C
. . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6. Умножение РМ на заполненный вектор (результат
заполненный вектор )
Этот алгоритм незначительно отличается от предыдущего . Разница в том,
что РМЦУ заполняется по
k
-й строке матрицы
A
, а не по вектору
B
.
Здесь , по-видимому, можно обойтись без РМЦУ следующим образом.
Алгоритм
1.
1
=
k
.
2. Просматриваем содержимое
k
–й строки в
JA
и умножаем
соответствующие компоненты
AN
на компоненты, накапливая результат в
соответствующей ячейке
)
(
k
C
вектора
C
.
С х е м а р е ш е н и я
1
=
k
0
)
(
=
k
С
)
(
)
1
(
k
IA
k
IA
=
+
нет да
1)1(),( += kIAkAIi
1
+
=
k
k
))
(
(
)
(
)
(
)
(
i
JA
B
i
AN
k
C
k
C
+
=
1
+
=
k
k
Задача 23. Умножить РМ
A
из задачи 22 на заполненный вектор
T
B )9108642(=
.
1
=
k
;
0
)
1
(
=
С
;
)
1
(
)
2
(
IA
IA
3
1
=
i
:
:
1
=
i
2
2
1
0
)
1
(
=
×
+
=
C
                                        - 18 -

  k =1; С (1) =0 ;  I A(2) =I A(1)
  i =1,...,3 : i =1 :IX ( JA(1)) =IX (1) =1 ≠0
                    C (1) =0 +1 ⋅ BN (1) =1
             i =2 : IX ( JA(2)) =IX (4) =3 ≠0
                    C (1) =1 +3 ⋅ BN (3) =1 +3 ⋅ 4 =13
             i =3 : IX ( JA(3)) =IX (6) =0
  k =2 ; С (2) =0 ; I A(3) ≠I A(2)
  i =4,...,8 :
             i =4 : IX ( JA(4)) =IX (3) =0
             i =5 : IX ( JA(5)) =IX (2) =2
                    C (2) =0 +9 ⋅ BN (2) =9 ⋅ 2 =18
  . . . . . . . . . . . . . . . . . . . . . . . . . . .
      3.6.   Умножение РМ на заполненный вектор (результат –
             заполненный вектор)
      Этот алгоритм незначительно отличается от предыдущего. Разница в том,
что РМЦУ заполняется по k -й строке матрицы A , а не по вектору B .
Здесь, по-видимому, можно обойтись без РМЦУ следующим образом.
                                Алгоритм
1. k =1.
2. Просматриваем содержимое        k –й     строки в JA и умножаем
   соответствующие компоненты AN на компоненты, накапливая результат в
   соответствующей ячейке C (k ) вектора C .
                         Схема       решения
                                    k =1
                                 С (k ) =0
                              IA(k +1) =IA(k )
                        нет                        да
          i =I A(k ), IA(k +1) −1                k =k +1
      C (k ) =C (k ) +AN (i ) ⋅ B ( JA(i ))
        k =k +1
  Задача 23. Умножить РМ A из задачи 22 на заполненный вектор
  B =(2 4 6 8 10 9 )T .
  k =1; С (1) =0 ; IA(2) ≠IA(1)
  i =1,...,3 :
               i =1 : C (1) =0 +1×2 =2