Главная страница / 25. Типовые алгоритмы: 25.9. Умножение матрицы н...
25.9. Умножение матрицы на вектор и матрицы на матрицу
← 25.8. Алгоритмы упорядочивания элементов в... | 25.10. Возведение квадратной матрицы в целую... → |
Алгоритмы умножения матрицы на вектор и матрицы на матрицу реализуют основные операции матричной алгебры. Они достаточно просты, но очень наглядно иллюстрируют применение циклов при работе с массивами.
В результате умножения матрицы A состоящей из m строк и n столбцов на вектор X, содержащий n компонентов, получается вектор Y, состоящий из m компонентов:
Y = A × X.
Каждый компонент результирующего вектора Y находится по формуле
; (i = 1, 2, 3, … , m).
Из этой формулы следует внешний цикл по индексу i. В теле этого цикла происходит накопление суммы. Обычно специальной переменной для суммы не используют, а накапливают ее в i-м компоненте вектора Y. Перед накоплением суммы Yi обнуляется, а затем организуется цикл по индексу суммирования j. Блок-схема этого алгоритма приведена на рис. 25.19, а.
Рис. 25.19. Блок-схемы умножения матрицы на вектор (а) и матрицы на матрицу (б)
В результате умножения матрицы A из m строк и n столбцов на матрицу B из n строк и p столбцов получается матрица C, состоящая из m строк и p столбцов:
C = A × B.
Каждый элемент матрицы-результата рассчитывается по формуле
(i = 1, 2, 3, … , m; j = 1, 2, 3, … , p).
Блок-схема алгоритма перемножения матриц приведена на рис. 25.19, б. Он очень похож на предыдущий, но только элементы результирующей матрицы рассчитываются в двойном цикле по индексу строки i и индексу столбца j. Накопление суммы выполняется в цикле по переменной k.
← 25.8. Алгоритмы упорядочивания элементов в... | 25.10. Возведение квадратной матрицы в целую... → |