scipy.sparse.linalg.

matrix_power#

scipy.sparse.linalg.matrix_power(A, power)[source]#

将一个方阵提高到整数幂 power

对于非负整数,使用重复的矩阵乘法计算 A**power。不支持负整数。

参数:
A(M, M) 方形稀疏数组或矩阵

将被提高到 power 幂的稀疏数组

powerint

用于提高稀疏数组 A 的指数

返回值:
A**power(M, M) 稀疏数组或矩阵

输出矩阵将与 A 形状相同,并保留 A 的类,但输出的格式可能会发生更改。

备注

这使用矩阵幂的递归实现。对于使用相当大的 power 计算矩阵幂,这可能不如直接使用 A @ A @ … @ A 计算乘积效率高。这取决于矩阵中非零条目的数量。

在版本 1.12.0 中添加。

示例

>>> from scipy import sparse
>>> A = sparse.csc_array([[0,1,0],[1,0,1],[0,1,0]])
>>> A.todense()
array([[0, 1, 0],
       [1, 0, 1],
       [0, 1, 0]])
>>> (A @ A).todense()
array([[1, 0, 1],
       [0, 2, 0],
       [1, 0, 1]])
>>> A2 = sparse.linalg.matrix_power(A, 2)
>>> A2.todense()
array([[1, 0, 1],
       [0, 2, 0],
       [1, 0, 1]])
>>> A4 = sparse.linalg.matrix_power(A, 4)
>>> A4.todense()
array([[2, 0, 2],
       [0, 4, 0],
       [2, 0, 2]])