Итак, я пытаюсь решить систему линейных уравнений, используя разложение LU. Я сделал код в Matlab, который я сравниваю с выводом linsolve Matlab. Меня смущает вот что: насколько я понимаю (из того, что я узнал с этого сайта: http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/INT-APP/CURVE-linear-system.html) Разложение Lu работает путем разложения A на L (нижний треугольный) и U (верхний треугольный). А затем вычисляет x, решая два уравнения: B = LY; Y = UX;
Итак, мое замешательство приходит сюда.
Если я делаю x_solutions=linsolve(A,B), я получаю другой результат, чем если я делаю x=linsolve(U,y) (конечно, сначала делаю y = linsolve(L,B)).
Кто-нибудь знает, почему это происходит? разве x не должен быть равен x_solutions в этом случае, или я что-то упустил?
Просто ради предоставления всей информации, вот как я это делаю:
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);
Заранее спасибо!