scipy.sparse.linalg.

matrix_power#

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

将一个方阵提升到整数幂,power

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

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

稀疏数组将被提升到 power 次方

电源整数

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

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

输出矩阵将与 A 具有相同的形状,并且将保留 A 的类,但输出的格式可能会有所改变。

注释

这使用了矩阵幂的递归实现。对于使用合理大的 power 计算矩阵幂,这可能不如直接使用 A @ A @ … @ A 计算乘积高效。这取决于矩阵中非零元素的数量。

Added in version 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]])