Основы алгоритмизации и программирования. Часть вторая. Типовые алгоритмы обработки массивов. Асламова В.С - 10 стр.

UptoLike

Составители: 

19
C
[]
i, j : =
j = 1
n
A
[]
i, j * B
[]
j , где i = 1, … n.
НАЧАЛО
КОНЕЦ
C[ i, 1]:= S;
Печать
Ввод n ,m
i:=1, n
j:=1, m
Ввод
матрицы A
Печать
матрицы C
Ввод
вектора B
S:=0;
S:=S+A[ i, j]*B[ j];
НАЧАЛО
КОНЕЦ
C[ 1, j]:= S;
Печать
Ввод n ,m
j:=1, m
i:=1, n
Ввод
вектора B
Печать
матрицы C
Ввод
матрицы A
S:=0;
S:=S+ B[ i] *A[ i, j];
а) б)
Рисунок 12. Блок-схема примера 10: а) – умножение матрицы на
вектор, б) – умножение вектора на матрицу.
Следует заметить, что при умножении вектора на матрицу нужно
вектор рассматривать как вектор-строку В.
C
[]
i, j : =
j = 1
n
B
[]
i * A
[]
i, j , где j = 1, … m.
20
Пример 11 Сложение матриц
Требуется сложить две матрицы А и В.
Матрицы можно складывать только с одинаковым
числом строк и столбцов. Для реализации
программы воспользуйтесь матрицей С, в которой
и будет записан результат выполнения
программы.
C
[]
i, j : = A
[]
i, j + B
[]
i, j ,
где i = 1, … n; j = 1, … m.
Пример 12 Умножение матриц
Требуется перемножить элементы двух
матриц А размером n×m и В размером m×l. В
результате получится матрица С размером n×l.
Произведение двух матриц А*В
определено, когда число столбцов (m) матрицы А
равно числу строк (m) матрицы В. Итак, в
результате пер
емножения получается матрица С,
у которой столько же строк (n), сколько их в
матрице А и столько же столбцов (l), сколько их в
матрице В.
Ошибка!,
где i = 1, … n; j = 1, … l; k = 1, … m.
По определению элемент С[ i, j ] равен скалярному произведению
i-той строки матрицы А на j-тый столбец матр
ицы В.
A =
2345
9234
–1 –5 3 11
B =
32
4–1
1–3
25
C =
32 14
40 45
249
НАЧАЛО
КОНЕЦ
C[ i, j]:=A[ i, j]+ B[ i, j]
;
Печать
Ввод n ,m
i:=1, n
j:=1, m
Ввод
матрицы A
Печать
матрицы C
Ввод
матрицы B
Р
исунок 13. Блок-
схема примера 11
ABC = A*B
число строк nmn
число столбцов ml l
                           n
                                                                                Пример 11 Сложение матриц
     C[ i, j ]    :=     ∑ A[ i, j ] * B[ j ],   где i = 1,    n.
                        j=1                                                                                             Требуется сложить две матрицы А и В.
                                                                                          НАЧАЛО
                                                                                                                  Матрицы можно складывать только с одинаковым
     а)           НАЧАЛО                   б)          НАЧАЛО                             Печать                  числом строк и столбцов. Для реализации
                                                                                         Ввод n ,m                программы воспользуйтесь матрицей С, в которой
                   Печать                               Печать                            Ввод                    и   будет   записан   результат   выполнения
                 Ввод n ,m                            Ввод n ,m                         матрицы A                 программы.
                   Ввод                                  Ввод                             Ввод                          C[ i, j ]    : = A[ i, j ]   + B[ i, j ],
                 матрицы A                             вектора B                        матрицы B
                                                                                                                        где i = 1,     n; j = 1,     m.
                   Ввод                                 Ввод                               i:=1, n
                 вектора B                            матрицы A                                                   Пример 12 Умножение матриц

                   i:=1, n                              j:=1, m                            j:=1, m                      Требуется перемножить элементы двух
                                                                                                                  матриц А размером n×m и В размером m×l. В
                                                                                  C[ i, j]:=A[ i, j]+ B[ i, j];
                                                                                                                  результате получится матрица С размером n×l.
                   S:=0;                                 S:=0;
                                                                                                                        Произведение      двух    матриц       А*В
                                                                                                                  определено, когда число столбцов (m) матрицы А
                   j:=1, m                               i:=1, n                          Печать                  равно числу строк (m) матрицы В. Итак, в
                                                                                         матрицы C
                                                                                                                  результате перемножения получается матрица С,
                                                                                                                  у которой столько же строк (n), сколько их в
          S:=S+A[ i, j]*B[ j];                    S:=S+ B[ i] *A[ i, j];                   КОНЕЦ
                                                                                                                  матрице А и столько же столбцов (l), сколько их в
                                                                                                                  матрице В.
                 C[ i, 1]:= S;                        C[ 1, j]:= S;
                                                                                Рисунок 13. Блок-
                                                                                схема примера №11                                             A      B     C = A*B
                  Печать                               Печать                                                     число строк                 n      m     n
                 матрицы C                            матрицы C
                                                                                                         Ошибка!, число столбцов              m      l     l
                                                                                                                        где i = 1,           n; j = 1,     l; k = 1,   m.
                   КОНЕЦ                                 КОНЕЦ
                                                                                       По определению элемент С[ i, j ] равен скалярному произведению
Рисунок 12. Блок-схема примера №10: а) – умножение матрицы на                   i-той строки матрицы А на j-тый столбец матрицы В.
вектор, б) – умножение вектора на матрицу.
                                                                                                                                         3    2
                                                                                                ⎛ 2 3 4 5                ⎞         ⎛4           ⎞            ⎛ 32 14 ⎞
      Следует заметить, что при умножении вектора на матрицу нужно
вектор рассматривать как вектор-строку В.                                                   A = ⎜ 9 2 –3 4               ⎟      B=
                                                                                                                                   ⎜         –1 ⎟        C = ⎜ 40 45 ⎟
                                                                                                ⎜
                                                                                                ⎝ –1 –5 3 11
                                                                                                                         ⎟
                                                                                                                         ⎠         ⎜1        –3 ⎟            ⎜
                                                                                                                                                             ⎝ 2 49 ⎠
                                                                                                                                                                     ⎟
                           n                                                                                                       ⎝2         5 ⎠
     C[ i, j ]    :=     ∑ B[ i ] * A[ i, j ],   где j = 1,      m.
                        j=1



                                                                           19   20