求解线性方程组
• lsolve(M, v) - 使用 LU 因式分解,返回线性方程组 M·x = v 的解 x。
自变量
• M 为实数或复数矩阵。若该矩阵为方阵,则必须为非奇异方阵。
• v 为与 M 行数相同的实数或复数的矢量或矩阵。
附加信息
• 如果矩阵的行列式为 0,则该矩阵为奇异矩阵。如果矩阵具有很大的条件数,则为近似奇异矩阵。因为存在这些条件,所以计算用于求解问题的逆矩阵会很困难。这种情况下,lsolve 函数可能会失效,或者产生无效结果。这时可对近似奇异矩阵使用其他分解法。
• lsolve 函数是基于来自以下书籍的例程:Press, W. H., et. al., Numerical Recipes in C: The Art of Scientific Computing, second ed., Cambridge University Press, Cambridge, 1992。Intel 的 BLAS/LAPACK 库可用于 LU 因式分解。
• 您可以检查方程组是否具有唯一解,方法为检查 rank(M) = cols(M) 是否成立,即检查 M 的所有列是否线性无关。
• 可直接使用矩阵求逆来求解此类方程组,但是使用 lsolve 会更快,并且在某些情况下,会获得更为准确的结果。要求解用自然符号表示的线性方程组,可使用求解命令块。
• 如果方程组存在不一致,则 lsolve 和 geninv(M)·v 都会返回最小二乘解。
• 对于 v 的矩阵值,lsolve(M, v<i>) 返回 geninv(M)·v 的第 i 列。