scipy.sparse.linalg.splu¶
- scipy.sparse.linalg.splu(A, permc_spec=None, diag_pivot_thresh=None, relax=None, panel_size=None, options={})[源代码]¶
计算稀疏方阵的LU分解。
- 参数
- A稀疏矩阵
要分解的稀疏矩阵。应采用CSR或CSC格式。
- permc_spec字符串,可选
如何排列矩阵的列以保持稀疏性。(默认值:‘COLAMD’)
NATURAL
:自然排序。MMD_ATA
A^T,A,A的结构上的最小度序。MMD_AT_PLUS_A
A^T+A结构上的最小度序COLAMD
:近似最小次数列排序
- diag_pivot_thresh浮动,可选
用于使对角线条目成为可接受轴心点的阈值。有关详细信息,请参阅SuperLU用户指南 [1]
- relax整型,可选
可自定义放松超级节点程度的专家选项。有关详细信息,请参阅SuperLU用户指南 [1]
- panel_size整型,可选
用于自定义面板大小的专家选项。有关详细信息,请参阅SuperLU用户指南 [1]
- optionsDICT,可选
包含SuperLU附加专家选项的字典。请参阅SuperLU用户指南 [1] (关于“选项”参数的第2.4节),了解更多详细信息。例如,您可以指定
options=dict(Equil=False, IterRefine='SINGLE'))
若要禁用平衡并执行单个迭代优化,请执行以下操作。
- 退货
- invAscipy.sparse.linalg.SuperLU
对象,该对象具有一个
solve
方法。
参见
spilu
不完全LU分解
注意事项
此函数使用SuperLU库。
参考文献
示例
>>> from scipy.sparse import csc_matrix >>> from scipy.sparse.linalg import splu >>> A = csc_matrix([[1., 0., 0.], [5., 0., 2.], [0., -1., 0.]], dtype=float) >>> B = splu(A) >>> x = np.array([1., 2., 3.], dtype=float) >>> B.solve(x) array([ 1. , -3. , -1.5]) >>> A.dot(B.solve(x)) array([ 1., 2., 3.]) >>> B.solve(A.dot(x)) array([ 1., 2., 3.])