在本教程中,我们将学习如何使用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 次幂通过将矩阵与其自身相乘来计算,如下所示:
上面的矩阵是矩阵幂 2 的结果。现在,为了计算矩阵幂 3,我们可以将矩阵幂 2 乘以给定的矩阵。那是,
使用带有负幂的 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 ,如下所示:
将 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 教程。