Matlab, operator A\B
Solution 1
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 elementwise 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
byn
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
byn
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
byn
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
byn
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
.
Solution 2
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).
justik
Updated on July 25, 2022Comments

justik 2 months
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 leastsquares 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...

justik almost 10 years@ FakeDIY. Thanks, but I had already read before I posted my question. However, the case three it is not clear for me...