Возведение матрицы в степень

Возведение матрицы в степень

Возведение матрицы в степень – последовательное умножение матрицы на саму себя: C = An = A * A ... * A. В случае отрицательной степени осуществляется нахождение обратной матрицы и возведение её в соответствующую положительную степень C = A— n = (A—1)n. Матрицы перемножаются по правилам умножения матриц.

Условия:
  • матрица A должна быть квадратной
  • если степень отрицательная, матрица A должна быть квадратной и невырожденной
Примеры:
  • Квадратная матрица:

    C = [[8, 6], [2, 4]] ^ 2;
    C = [[76 , 72];[24 , 28]];

    C = [[8, 6], [2, 4]] ^ 2;
    C = [[0.07 , -0.18];[-0.06 , 0.19]];
  • Прямоугольная матрица:

    C = [[1, 2, 5], [3, -4, 6]] ^ 2;  
    // Ошибка: Размерности матриц не подходят

    Умножение невозможно. Будет выведена ошибка "Размерности матриц не подходят"

    C = [[1, 2], [3, -4], [5, 6]] ^ 2; 
    // Ошибка: Размерности матриц не подходят

    Умножение невозможно. Будет выведена ошибка "Размерности матриц не подходят"

Поэлементное возведение матрицы в степень

Каждый элемент матрицы A возводится в заданную степень.

Примеры:
  • Квадратная матрица:

    C = [[8, 6], [2, 4]] .^ 2;
    // C = [[64 , 36];[4 , 16]];
  • Прямоугольная матрица:

    C = [[1, 2, 5], [3, -4, 6]] .^ 2;  
    // C =[[1 , 4 , 25];[9 , 16 , 36]]

    C = [[1, 2], [10, -4], [5, 8]].^ (-1);
    // C = [[1 , 0.5];[0.1 , -0.25];[0.2 , 0.125]]

Поэлементное возведение матрицы в степень матрицы

Поэлементное возведение матрицы A в степень матрицы B: C = A.^B. Каждый элемент матрицы A, ai, j возводится в степень, равную значению элемента матрицы B с тем же индексом, bi, j.

Условия:
  • количество строк матриц A и B должно совпадать: rows(A) = rows(B)
  • если количество столбцов матриц различается, недостающие столбцы автоматически дополняются нулями до размера более широкой матрицы:
    • если cols(B) > cols(A), то матрица A справа дополняется нулевыми столбцами. В результирующей матрице C на этих позициях будут 0 (поскольку 0^x = 0, исключение: 0^0 = 1)
    • если cols(B) < cols(A), то матрица B справа дополняется нулевыми столбцами. В результирующей матрице C на этих позициях будут 1 (поскольку x^0 = 1)
Примеры:
  • Матрицы одинаковой размерности:

    C = [[1, 2], [3, 4]] .^ [[1, 2], [3, 4]];
    // C = [[1 , 4];[27 , 256]];

    C = [[1, 2], [3, 6], [5, 4]] .^ [[1, -2], [3, 0], [-3, 0.5]];
    // C = [[1 , 0.25];[27 , 1];[0.008 , 2]];
  • Матрицы разной размерности такие, что rows(A) = rows(B), cols(B) < cols(A):

    C = [[1, 2], [3, 6], [5, 4]] .^ [[1], [3], [2]];
    // C = [[1 , 1];[27 , 1]; [25, 1]];

    C =  [[1, 2, 5], [3, 4, 6]] .^ [[1, 2], [3, 4]];  
    // C = [[1 , 4 , 1];[27 , 256 , 1]];
  • Матрицы разной размерности такие, что rows(A) = rows(B), cols(B) ≥ cols(A):

    C =  [[1, 2, 5], [3, 4, 6]] .^ [[1, 2, 4, 3], [3, 4, 2, 1]];  
    // C = [[1 , 4 , 625 , 0];[27 , 256 , 36 , 0]];
  • Матрицы разной размерности такие, что rows(A) ≠ rows(B):

    C =  [[1, 2, 5], [3, 4, 6]] .^ [[1, 2, 5]];  
    // Ошибка: Размерности матриц не подходят
    Поэлементное возведение в степень невозможно. Будет выведена ошибка "Размерности матриц не подходят".

    C =  [[1, 2, 5], [3, 4, 6]] .^ [[1, 2], [3, 4], [4, 6]];  
    // Ошибка: Размерности матриц не подходят
    Поэлементное возведение в степень невозможно. Будет выведена ошибка "Размерности матриц не подходят".