Solving system of equations using Lu Method and "NaN" results through final matrix

조회 수: 4 (최근 30일)
CAAJ
CAAJ 2017년 2월 11일
답변: John D'Errico 2017년 2월 11일
Hello All,
I have utilized the lu function to solve a systems of equations with 12 equations and 12 unknowns. I have inputted my A and B matrix, have used the lu function:
[L,U] = lu(A);
to solve for L and U and then running the operation of:
y = L\B
x=U\y
to solve for my 12 X values. However the results matrix after solving for X is a 12X1 matrix with 10 values being "NaN" and the last two being "Inf" and a warning which says "Warning: Matrix is singular to working precision." When solving for y I do get actual values in each row of the 12x1.
Does anyone know why I am getting this warning for my x value? And not getting values for my x but getting values for my y.

답변 (1개)

John D'Errico
John D'Errico 2017년 2월 11일
Your equations form a singular system. Just wanting a solution to exist does not mean there is a solution to all systems of equations.
As far as asking why only ONE of those triangular solves gave you garbage, this is easy if you understand the LU decomposition.
I'll show you by example, for a very singular system:
[L,U] = lu(ones(3))
L =
1 0 0
1 1 0
1 0 1
U =
1 1 1
0 0 0
0 0 0
See that even though the original matrix was singular, having rank only 1, L is NOT singular. So the first solve, computing Y as you did will succeed.
Just linear algebra 101.

카테고리

Help CenterFile Exchange에서 Linear Algebra에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by