scipy.sparse.linalg.

matrix_power#

scipy.sparse.linalg.matrix_power(A, power)[源代码]#

将一个方阵提升到整数幂,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]])