MATLAB Function Reference Previous page   Next Page
linsolve

Solve a linear system of equations

Syntax

Description

X = linsolve(A,B) solves the linear system A*X = B using LU factorization with partial pivoting when A is square and QR factorization with column pivoting otherwise. The number of columns of A must equal the number of rows of B. If A is m-by-n and B is n-by-k, then X is m-by-k. linsolve returns a warning if A is square and ill conditioned or if it is not square and rank deficient.

[X, R] = linsolve(A,B) suppresses these warnings and returns R, which is the reciprocal of the condition number of A if A is square, or the rank of A if A is not square.

X = linsolve(A,B,opts) solves the linear system A*X = B or A'*X = B, using the solver that is most appropriate given the properties of the matrix A, which you specify in opts. For example, if A is upper triangular, you can set opts.UT = true to make linsolve use a solver designed for upper triangular matrices. If A has the properties in opts, linsolve is faster than mldivide, because linsolve does not perform any tests to verify that A has the specified properties.

The TRANSA field of the opts structure specifies the form of the linear system you want to solve:

The following table lists all the field of opts and their corresponding matrix properties. The values of the fields of opts must be logical and the default value for all fields is false.

Field Name
Matrix Property
LT
Lower triangular
UT
Upper triangular
UHESS
Upper Hessenberg
SYM
Real symmetric or complex Hermitian
POSDEF
Positive definite
RECT
General rectangular
TRANSA
Conjugate transpose -- specifies whether the function solves A*X = B or A'*X = B

The following table lists all combinations of field values in opts that are valid for linsolve. A true/false entry indicates that linsolve accepts either true or false.

LT
UT
UHESS
SYM
POSDEF
RECT
TRANSA
true
false
false
false
false
true/false
true/false
false
true
false
false
false
true/false
true/false
false
false
true
false
false
false
true/false
false
false
false
true
true
false
true/false
false
false
false
false
false
true/false
true/false

Example

The following code solves the system A'x = b for an upper triangular matrix A using both mldivide and linsolve.

See Also

mldivide


Previous page  linkprop linspace Next page

© 1994-2005 The MathWorks, Inc.