Impossible Ax=b is solved by linesolve(A,b) and mldivide(A,B)

3 Ansichten (letzte 30 Tage)
Pedro
Pedro am 14 Aug. 2012
A=[-1 2 3;0 1 -1;2 0 5;1 3 2]
B=[1 1 1 1]'
x=linsolve(A,B)
x =
0.1111
0.3333
0.1111
x=mldivide(A,B)
x =
0.1111
0.3333
0.1111
HOwever A*x
ans =
0.8889
0.2222
0.7778
1.3333
and b= [1 1 1 1]'
If I solve the system in paper, the system is impossible but matlab says it´s possible. When I test matlab answer, it is wrong. If I do A=sym([-1 2 3;0 1 -1;2 0 5;1 3 2])
colspace(A) A =
[ -1, 2, 3] [ 0, 1, -1] [ 2, 0, 5] [ 1, 3, 2]
ans =
[ 1, 0, 0] [ 0, 1, 0] [ 0, 0, 1] [ 1/3, 7/3, 2/3]
The system seems possible but I think it isn't. Can someone tell me what's going on? How do I know if the system is possible?

Akzeptierte Antwort

Matt Fig
Matt Fig am 14 Aug. 2012
Bearbeitet: Matt Fig am 14 Aug. 2012
From the documentation:
" If A is an m-by-n matrix with m ~= n and B is a column vector with m components, or a matrix with several such columns, then X = A\B is the solution in the least squares sense to the under- or overdetermined system of equations AX = B. In other words, X minimizes norm(A*X - B), the length of the vector AX - B. The rank k of A is determined from the QR decomposition with column pivoting. The computed solution X has at most k nonzero elements per column. If k < n, this is usually not the same solution as x = pinv(A)*B, which returns a least squares solution. "
You have 4 equations and 3 unknowns. This is an overdetermined system, so MATLAB is following the documentation.
  5 Kommentare
Matt Fig
Matt Fig am 14 Aug. 2012
Sure, just make a little function.
isexact = @(A,x,B) max((A*x-B))<1e-13; % Choose your tol.
Now,
A=[-1 2 3;0 1 -1;2 0 5;1 3 2];
B=[1 1 1 1]';
x = A\B;
isexact(A,x,B) % Returns 0 == not exact.
But, let's try with:
A=[-1 2 3;0 1 -1;2 0 5];
B=[2 3 4]';
x = A\B;
isexact(A,x,B) % Returns 1 == yes exact
Pedro
Pedro am 14 Aug. 2012
wow.. didn't know matlab was that easy to program. Thanks!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Mathematics finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!

Translated by