Главная страница / 25. Типовые алгоритмы: 25.10. Возведение квадрат...

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

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

B = Am = E × A × A ×...× A,

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

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

img2520

Рис. 25.20. Алгоритм возведения матрицы в целую степень:
а – первый уровень детализации (основные блоки представлены укркпненно);
б – второй уровень детализации (первый и последний блоки детализированы)

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