Main Content

linsolve

Solve symbolic linear equations in matrix form

Description

example

X = linsolve(A,B) solves the matrix equation AX = B, where A is a symbolic matrix and B is a symbolic column vector.

example

[X,R] = linsolve(A,B) also returns the reciprocal of the condition number of A if A is a square matrix. Otherwise, linsolve returns the rank of A.

Examples

collapse all

Solve this system of linear equations in matrix form by using linsolve.

[211-11-1123][xyz]=[23-10]

A = [ 2 1  1;
     -1 1 -1;
      1 2  3];
B = [2; 3; -10];
X = linsolve(A,B)
X = 3×1

     3
     1
    -5

The solutions are x=3, y=1, and z=-5.

Compute the reciprocal of the condition number of the square coefficient matrix by using two output arguments.

syms a x y z
A = [a 0 0; 0 a 0; 0 0 1];
B = [x; y; z];
[X, R] = linsolve(A, B)
X = 

(xayaz)

R = 

1max(|a|,1)max(1|a|,1)

If the coefficient matrix is rectangular, linsolve returns the rank of the coefficient matrix as the second output argument. Show this behavior.

syms a b x y
A = [a 0 1; 1 b 0];
B = [x; y];
[X,R] = linsolve(A,B)
Warning: Solution is not unique because the system is rank-deficient.
X = 

(xa-x-ayab0)

R = 2

Input Arguments

collapse all

Coefficient matrix, specified as a symbolic matrix.

Right side of equations, specified as a symbolic vector or matrix.

Output Arguments

collapse all

Solution, returned as a symbolic vector or matrix.

Reciprocal condition number or rank, returned as a symbolic number of expression. If A is a square matrix, linsolve returns the condition number of A. Otherwise, linsolve returns the rank of A.

More About

collapse all

Matrix Representation of System of Linear Equations

A system of linear equations is as follows.

a11x1+a12x2++a1nxn=b1a21x1+a22x2++a2nxn=b2am1x1+am2x2++amnxn=bm

This system can be represented as the matrix equation Ax=b, where A is the coefficient matrix.

A=(a11a1nam1amn)

b is the vector containing the right sides of equations.

b=(b1bm)

Tips

  • If the solution is not unique, linsolve issues a warning, chooses one solution, and returns it.

  • If the system does not have a solution, linsolve issues a warning and returns X with all elements set to Inf.

  • Calling linsolve for numeric matrices that are not symbolic objects invokes the MATLAB® linsolve function. This function accepts real arguments only. If your system of equations uses complex numbers, use sym to convert at least one matrix to a symbolic matrix, and then call linsolve.

Version History

Introduced in R2012b