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 = B
.