通过给定LU分解和常数向量求解线性方程组

URL*_*L87 6 matlab linear-algebra matrix-decomposition matrix-factorization

给定LU LU分解和常量向量b这样LU*x=b ,是否有任何内置函数可以找到x?意思是这样的 -

X = functionName(L,U,b) 
Run Code Online (Sandbox Code Playgroud)

注意在这两个LU我们面对的是可直接要解决三角矩阵向前和向后的替换,而无需使用高斯消元过程.

编辑:

解决这个线性方程系统应该按照以下步骤 -

1. define y - s.t Ux=y
2. solve Ly=b by forward substitution
3. solve Ux=y by backward substitution
4. return y
Run Code Online (Sandbox Code Playgroud)

编辑2:

我发现linalg :: matlinsolveLU 但我没有尝试它因为我的版本太旧(R2010a).它适合任何人吗?

Amr*_*mro 5

如果你有:

A = rand(3);
b = rand(3,1);
Run Code Online (Sandbox Code Playgroud)

那么系统的解决方案可以简单地计算为:

x = A\b
Run Code Online (Sandbox Code Playgroud)

或者,如果您已经对A进行了LU分解,那么:

[L,U] = lu(A);
xx = U\(L\b)
Run Code Online (Sandbox Code Playgroud)

mldivide函数足够智能以检测矩阵是三角形并相应地选择算法(前向/后向替换)