NumPy linalg.matrix_power:计算方阵的幂

在本教程中,我们将学习如何使用NumPy 模块中 Python 中的linalg.matrix_power方法将线性代数中的矩阵求为给定幂。

numpy.linalg.matrix_power() 方法用于将方阵求整数 n 次方。 

让我们先看看该函数的语法。

另请检查:Numpy linalg.eig – 计算方阵的特征值和右特征向量


numpy.linalg.matrix_power 的语法

numpy.linalg.matrix_power(a, n)
  • 参数:
    • a,一个 MxM 数组。要求幂的输入矩阵。
    • n,整数,幂或指数。它可以是正数、负数或零。
  • 返回: a**n返回的矩阵与a的形状相同如果n为正数或零,则返回类型为整数。如果n为负数,则返回类型为 float。
  • 引发: 对于非方矩阵或无法计算逆矩阵(对于负幂)的LinAlgError 。

注意:如果矩阵的行列式为零,则无法计算其逆矩阵。

numpy.power(n, p)该函数与采用两个参数(数字n和p次方)并将n进行p次方的函数非常相似


numpy.linalg.matrix_power 的示例

现在让我们从 numpy linalg 矩阵幂方法的几个示例开始。

使用具有正幂的 numpy.linalg.matrix_power

import numpy as np
 
matrix = [[2, 5], [1, 3]]
# calculating the matrix power
mat_power_2 = np.linalg.matrix_power(matrix, 2)
mat_power_3 = np.linalg.matrix_power(matrix, 3)
 
 
print("Matrix = \n", matrix,
      "\nMatrix power 2 = \n", mat_power_2,
      "\nMatrix power 3 = \n", mat_power_3)

输出:

Matrix =
 [[2, 5], [1, 3]]
Matrix power 2 =
 [[ 9 25]
 [ 5 14]]
Matrix power 3 =
 [[ 43 120]
 [ 24  67]]

矩阵的 2 次幂通过将矩阵与其自身相乘来计算,如下所示:

步骤1
第2步
步骤3
步骤 4 – 矩阵幂 2 的最终结果

上面的矩阵是矩阵幂 2 的结果。现在,为了计算矩阵幂 3,我们可以将矩阵幂 2 乘以给定的矩阵。那是,

步骤1
第2步
步骤3
步骤 4 – 矩阵幂 3 的最终结果

使用带有负幂的 numpy.linalg.power()

当我们将负幂n传递给函数时,它首先计算矩阵的逆矩阵,然后将逆矩阵提升到次幂 abs(n)。

对于 2×2 矩阵,例如:

倒数计算如下:

import numpy as np
 
matrix = [[2, 5], [1, 3]]
# calculating the matrix power
mat_power = np.linalg.matrix_power(matrix, -2)
 
print("Matrix = \n", matrix, "\nMatrix power -2 = \n", mat_power)

输出:

Matrix =
 [[2, 5], [1, 3]]
Matrix power -2 =
 [[ 14. -25.]
 [ -5.   9.]]

在这个例子中,

其倒数计算如下:

现在,计算该矩阵的逆矩阵的Abs(-2)次方,即 2 ,如下所示:

矩阵幂最终结果-2

将 numpy.linalg.matrix_power 与 0 一起使用

当将零作为幂传递给函数时numpy.linalg.matrix_power,将返回与输入矩阵形状相同的单位矩阵。

import numpy as np
 
matrix_1 = [[2, 5], [1, 3]]
matrix_2 = [[4, 2, 5], [1, 8, 3], [6, 0, 2]]
# calculating the matrix power
mat_1_power_0 = np.linalg.matrix_power(matrix_1, 0)
mat_2_power_0 = np.linalg.matrix_power(matrix_2, 0)
 
print("Matrix 1 = \n", matrix_1,
      "\nMatrix 1 power 0 = \n", mat_1_power_0,
      "\nMatrix 2 = \n", matrix_2,
      "\nMatrix 2 power 0 = \n", mat_2_power_0)

输出:

Matrix 1 =
 [[2, 5], [1, 3]]
Matrix 1 power 0 =
 [[1 0]
 [0 1]]
Matrix 2 =
 [[4, 2, 5], [1, 8, 3], [6, 0, 2]]
Matrix 2 power 0 =
 [[1 0 0]
 [0 1 0]
 [0 0 1]]

由于矩阵 1 是 2×2 矩阵,因此输出是 2×2 单位矩阵,类似地,矩阵 2 升到 0 的输出是 3×3 单位矩阵。


结论

因此,在本教程中,我们学习了numpy.linalg.matrix_power线性代数中用于计算方阵幂的函数。我们还看到了可能的输入和输出的各种示例。

如果您想了解有关 NumPy 的更多信息,请随时阅读我们的 NumPy 教程


参考