decomposition
求解线性系统的矩阵分解
说明
decomposition
创建可重用的矩阵分解(LU、LDL、Cholesky、QR 等),使您能够更高效地求解线性系统(Ax = b 或 xA = b)。例如,在计算 dA = decomposition(A)
后,调用 dA\b
会返回与 A\b
相同的向量,但通常要快得多。decomposition
对象非常适合计算需要重复解的问题,因为系数矩阵的分解不需要多次执行。
您可以将 decomposition
对象 dA
与许多同样适用于原始系数矩阵 A
的运算符结合使用:
复共轭转置
dA'
取反号
-dA
使用
c*dA
或dA/c
乘除标量。使用
x = dA\b
求解线性系统 Ax = b。使用
x = b/dA
求解线性系统 xA = b。
创建对象
语法
描述
指定在分解中仅使用 dA
= decomposition(A
,type
,triangularFlag
)A
的上三角部分或下三角部分。triangularFlag
可以是 'upper'
或 'lower'
。对于此语法,分解类型必须是 'ldl'
、'chol'
或 'triangular'
。
支持任何上述语法,且可使用一个或多个 dA
= decomposition(___,Name,Value
)Name,Value
对组参数指定其他选项。例如,dA = decomposition(A,'CheckCondition',false)
指定在对 dA\b
求解时,不根据 A
的条件发出警告。
输入参数
属性
对象函数
可用于 decomposition
对象的主要函数和运算符与求解线性系统有关。如果分解类型为 'qr'
,则无法求解 A'\B
或 B/A
。对于这些形式的问题,请改用 'cod'
。
ctranspose | 复共轭转置 |
mldivide | 求解关于 x 的线性方程组 Ax = B |
mrdivide | 求解关于 x 的线性方程组 xA = B |
isIllConditioned | 确定矩阵是否为病态 |
您还可以检查 decomposition
对象的基础矩阵的条件数或秩。由于采用了不同的算法,因此对 decomposition
对象使用这些函数的结果可能与直接对系数矩阵使用这些函数的结果不同。
示例
参考
[1] Davis, Timothy A. “Algorithm 930: FACTORIZE: An Object-Oriented Linear System Solver for MATLAB.” ACM Transactions on Mathematical Software 39, no. 4 (July 2013): 1–18. https://doi.org/10.1145/2491491.2491498.
扩展功能
版本历史记录
在 R2017b 中推出