Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика Учебник НГТУ Семестр 2.docx
Скачиваний:
87
Добавлен:
27.03.2015
Размер:
4.01 Mб
Скачать

28.9. Умножение матрицы на вектор и матрицы на матрицу

28.8. Алгоритмы упорядочивания элементов в...

28.10. Возведение квадратной матрицы в целую...

Алгоритмы умножения матрицы на вектор и матрицы на матрицу реализуют основные операции матричной алгебры. Они достаточно просты, но очень наглядно иллюстрируют применение циклов при работе с массивами.

В результате умножения матрицы A состоящей из m строк и n столбцов на вектор X, со-держащий n компонентов, получается вектор Y, состоящий из m компонентов:

Y = A x X.

Каждый компонент результирующего вектора Y находится по формуле:

; ( i = 1, 2, 3, … , m )

Из этой формулы следует внешний цикл по индексу i. В теле этого цикла происходит накопление суммы. Обычно специальной переменной для суммы не используют, а накапливают ее в i-том компоненте вектора Y. Перед накоплением суммы Yi обнуляется, а затем организуется цикл по индексу суммирования j. Блок-схема этого алгоритма приведена на рис. 28.19 а.

В результате умножения матрицы A из m строк и n столбцов на матрицу B из n строк и p столбцов получается матрица C, состоящая из m строк и p столбцов:

C = A x B

Каждый элемент матрицы-результата рассчитывается по формуле:

( i = 1, 2, 3, … , m; j = 1, 2, 3, … , p )

Блок-схема алгоритма перемножения матриц приведена на рис. 28.19 б. Он очень похож на предыдущий, но только элементы результирующей матрицы рассчитываются в двойном цикле по индексу строки i и индексу столбца j. Накопление суммы выполняется в цикле по переменной k.

28.8. Алгоритмы упорядочивания элементов в...

28.10. Возведение квадратной матрицы в целую...

28.10. Возведение квадратной матрицы в целую степень

28.9. Умножение матрицы на вектор и матрицы на...

28.11. Исключение элементов массивов

Операция перемножения матриц дает возможность путем повторного умножения реализовать операцию возведения квадратной матрицы в целую степень. Это, в свою очередь, позволяет вычислять матричные степенные ряды, через которые выражаются матричные функции матричного аргумента. Рассмотрим алгоритм возведения квадратной матрицы A, содержащей n строк и n столбцов в степень m. Результирующую матрицу будем именовать B.

 B = Am = E x A x A x...x A ,

где E – единичная матрица. Операция умножения выполняется m раз.

Блок-схема этого алгоритма представлена на рис. 28.20. Она представлена на двух уровнях детализации. На первом уровне (изображение слева) основные блоки представлены укрупненно. На изображении справа первый и последний блоки детализированы до основных алгоритмических конструкций. Блок умножения матрицы на матрицу не детализирован, т.к. он рассмотрен в предыдущем подразделе и предполагается, что в данном алгоритме он реализован как вызов вспомогательного алгоритма.

В основе алгоритма лежит цикл повторного умножения (по переменной k), который выполняется m раз. До начала цикла в выходной матрице B формируется единичная матрица. В теле основного цикла вызовом вспомогательного алгоритма выполняется умножение матрицы B на возводимую матрицу A, результатом является матрица C. Второй фрагмент тела цикла заключается в передаче данных от матрицы С матрице B. Детализации первого и третьего блока просты и не требуют особых пояснений.

28.9. Умножение матрицы на вектор и матрицы на...

28.11. Исключение элементов массивов