Expert Answer:
s:
My MATLAB (R2010b) says quite a lot about what A\B
does:
mldivide(A,B)
and the equivalent A\B
perform matrix left division (back slash). A
and B
must be matrices that have the same number of rows, unless A
is a scalar, in which case A\B
performs element-wise division — that is, A\B = A.\B
.
If A
is a square matrix, A\B
is roughly the same as inv(A)*B
, except it is computed in a different way. If A
is an n
-by-n
matrix and B
is a column vector with n
elements, or a matrix with several such columns, then X = A\B
is the solution to the equation AX = B
. A warning message is displayed if A
is badly scaled or nearly singular.
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.
mrdivide(B,A)
and the equivalent B/A
perform matrix right division (forward slash). B
and A
must have the same number of columns.
If A
is a square matrix, B/A
is roughly the same as B*inv(A)
. If A
is an n
-by-n
matrix and B
is a row vector with n
elements, or a matrix with several such rows, then X = B/A
is the solution to the equation XA = B
computed by Gaussian elimination with partial pivoting. A warning message is displayed if A
is badly scaled or nearly singular.
If B
is an m
-by-n
matrix with m ~= n
and A
is a column vector with m
components, or a matrix with several such columns, then X = B/A
is the solution in the least squares sense to the under- or overdetermined system of equations XA =