基于matlab的LU分解&x27;斯林索夫酒店

基于matlab的LU分解&x27;斯林索夫酒店,matlab,decomposition,Matlab,Decomposition,所以我试图用LU分解来解一个线性方程组。我在matlab中编写了一个代码,与matlab的linsolve的输出进行比较。让我困惑的是: 据我所知(从我在这个网站上学到的:)Lu分解的工作原理是将A分解为L(下三角)和U(上三角)。然后通过求解两个方程计算x: B=LY; Y=UX 所以我的困惑来了 如果我做x_solutions=linsolve(A,B),我会得到一个不同的结果,如果我做x=linsolve(U,y)(当然先做y=linsolve(L,B)) 有人知道为什么会这样吗?在这种情

所以我试图用LU分解来解一个线性方程组。我在matlab中编写了一个代码,与matlab的linsolve的输出进行比较。让我困惑的是: 据我所知(从我在这个网站上学到的:)Lu分解的工作原理是将A分解为L(下三角)和U(上三角)。然后通过求解两个方程计算x: B=LY; Y=UX

所以我的困惑来了

如果我做x_solutions=linsolve(A,B),我会得到一个不同的结果,如果我做x=linsolve(U,y)(当然先做y=linsolve(L,B))

有人知道为什么会这样吗?在这种情况下,x不应该等于x_解吗?还是我遗漏了什么

为了泄露所有信息,我就是这么做的:

A=[1 2 6; 1 2 2; 2 2 1];
B=[1 0 1]';

G=linsolve(A,B);

UPP = triu(A);
LOW= tril(A);

y=linsolve(LOW,B);
x=linsolve(UPP,y);

提前谢谢你

triu
tril
不会在LU分解中给出L和U

它们只给出矩阵的上下部分,即

A == LOW + UPP - diag(A)
diag(A)
被减去,因为
LOW
UPP
都有
A

在LU分解中,L和U应该满足

A == L*U
如果您想获得此类
L
U
,请使用

[L,U] = lu(A);