Reputation: 4255
What is the result of the operation A\B, where A(1, m) and B (1, m)?
In the manual it is written:
A\B returns a least-squares solution to the system of equations A*x= B.
So it means x = inv (A'*A)*A'*B? However, the matrix A'*A is singular...
Let us suppose:
A=[1 2 3]
B=[6 7 6]
A\B
0 0 0
0 0 0
2.0000 2.3333 2.0000
If ve use MLS:
C = inv (A'*A) singular matrix
C = pinv(A'*A)
0.0051 0.0102 0.0153
0.0102 0.0204 0.0306
0.0153 0.0306 0.0459
D= C*A'*B
0.4286 0.5000 0.4286
0.8571 1.0000 0.8571
1.2857 1.5000 1.2857
So results A\B and inv (A'*A)*A'*B are different...
Upvotes: 9
Views: 15352
Reputation: 1445
My MATLAB (R2010b) says quite a lot about what A\B
does:
mldivide(A,B)
and the equivalentA\B
perform matrix left division (back slash).A
andB
must be matrices that have the same number of rows, unlessA
is a scalar, in which caseA\B
performs element-wise division — that is,A\B = A.\B
.If
A
is a square matrix,A\B
is roughly the same asinv(A)*B
, except it is computed in a different way. IfA
is ann
-by-n
matrix andB
is a column vector withn
elements, or a matrix with several such columns, thenX = A\B
is the solution to the equationAX = B
. A warning message is displayed ifA
is badly scaled or nearly singular.If
A
is anm
-by-n
matrix withm ~= n
andB
is a column vector withm
components, or a matrix with several such columns, thenX = A\B
is the solution in the least squares sense to the under- or overdetermined system of equationsAX = B
. In other words,X
minimizesnorm(A*X - B)
, the length of the vectorAX - B
. The rankk
ofA
is determined from the QR decomposition with column pivoting. The computed solutionX
has at mostk
nonzero elements per column. Ifk < n
, this is usually not the same solution asx = pinv(A)*B
, which returns a least squares solution.
mrdivide(B,A)
and the equivalentB/A
perform matrix right division (forward slash).B
andA
must have the same number of columns.If
A
is a square matrix,B/A
is roughly the same asB*inv(A)
. IfA
is ann
-by-n
matrix andB
is a row vector withn
elements, or a matrix with several such rows, thenX = B/A
is the solution to the equationXA = B
computed by Gaussian elimination with partial pivoting. A warning message is displayed ifA
is badly scaled or nearly singular.If
B
is anm
-by-n
matrix withm ~= n
andA
is a column vector withm
components, or a matrix with several such columns, thenX = B/A
is the solution in the least squares sense to the under- or overdetermined system of equationsXA = B
.
Upvotes: 5
Reputation: 8391
x = inv (A'*A)*A'*B
goes for over determined systems (i.e. which feature A
as an n x m
matrix with n>m
; in these circumstances A'A
is invertible).
In your case you have an under determined system.
Thus, what may happen?
My opinion, although you can check, at least in your case:
when you do A\B
matlab solves an optimization problem in the inverse sense w.r.t. the usual least squares, that is
X = argmin_{X \in S} ||X||,
where S
is the set of solutions. In other words, it gives you the solution of the system having minimum L^2 norm. (Consider that you can handle the problem by hands, at least in your case).
Upvotes: 3