VOOZH about

URL: https://www.geeksforgeeks.org/matlab/solution-of-system-of-linear-equation-in-matlab/

⇱ Solution of system of linear equation in MATLAB - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Solution of system of linear equation in MATLAB

Last Updated : 15 Jul, 2025
Let us see how to solve a system of linear equations in MATLAB. Here are the various operators that we will be deploying to execute our task :
  • \ operator : A \ B is the matrix division of A into B, which is roughly the same as INV(A) * B. If A is an NXN matrix and B is a column vector with N components or a matrix with several such columns, then X = A \ B is the solution to the equation A * X = B. A warning message is printed if A is badly scaled or nearly singular. A\EYE(SIZE(A)) produces the inverse of A.
  • linsolve operator : 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. A warning is given if A is ill conditioned for square matrices and rank deficient for rectangular matrices.
Example 1 : Non-homogeneous System Ax = b, where A is a square and is invertible. In our example we will consider the following equations :
2x + y - z = 7
x -2y + 5z = -13
3x + 5y - 4z = 18
We will convert these equations into matrices A and b : Output :
A =

 2 1 -1
 1 -2 5
 3 5 -4

b =

 7
 -13
 18
Now we will create an augmented matrix Ab. We will compare the ranks of Ab and A, if the ranks are equal then a unique solution exists. Output :
Ab =

 2 1 -1 7
 1 -2 5 -13
 3 5 -4 18

Unique solution exists
Now we can find the solution to this system of equations by using 3 methods:
  • conventional way : inv(A) * b
  • using mid-divide routine : A \ b
  • using linsolve routine : linsolve(A, b)
Output :
x_inv =

 2.0000e+00
 8.8818e-16
 -3.0000e+00

x_bslash =

 2.0000e+00
 9.6892e-16
 -3.0000e+00

x_linsolve =

 2.0000e+00
 9.6892e-16
 -3.0000e+00
We can verify the correctness of the solution by finding the error using A * x - b. The error should be 0. Output :
Er1 =

 -8.8818e-16
 -3.5527e-15
 0.0000e+00

Er2 =

 -1.7764e-15
 -1.7764e-15
 0.0000e+00

Er3 =

 -1.7764e-15
 -1.7764e-15
 0.0000e+00
As all the errors are close to 0, we can say that the solution is correct. Example 2 : Non-homogeneous system Ax = b, where A is a square and it is not invertible. In our example we will consider the following equations :
2x + 4y + 6z = 7
3x -2y + 1z = 2
1x + 2y + 3z = 5
Output :
A =

 2 4 6
 3 -2 1
 1 2 3

b =

 7
 2
 5

Ab =

 2 4 6 7
 3 -2 1 2
 1 2 3 5

Unique solution does not exist
warning: matrix singular to machine precision
warning: called from
 testing at line 17 column 7
x_inv =

 Inf
 Inf
 Inf

warning: matrix singular to machine precision
warning: called from
 testing at line 21 column 10 
x_bslash =

 -Inf 
 -Inf 
 Inf 

Er1 =

 Inf
 NaN
 Inf

Er2 =

 NaN 
 NaN 
 NaN 
Example 3 : Non-homogeneous system Ax = b where A is not a square. In our example we will consider the following equations :
2a + c - d + e = 2
a + c - d + e = 1
12a + 2b + 8c + 2e = 12
Output :
A =

 2 0 1 -1 1
 1 0 1 -1 1
 12 2 8 0 2

b =

 2
 1
 12

Ab =

 2 0 1 -1 1 2
 1 0 1 -1 1 1
 12 2 8 0 2 12

Solution exists
Unique solution does not exist
Example 4 : Homogeneous system Ax = 0 where A is a square and is invertible. In our example we will consider the following equations :
6x + 2y + 3z = 0
4x - y + 2z = 0
2x + y + 5z = 0
Output :
A =

 6 2 3
 4 -1 2
 2 1 5

b =

 0
 0
 0

Unique solution exists
x =

 0
 0
 0

x = [](3x0)
Example 5 : Homogeneous system Ax = 0 where A is a square and is not invertible. In our example we will consider the following equations :
1x + 2y + 3z = 0
4x + 5y + 6z = 0
7x + 8y + 9z = 0
Output :
A =

 1 2 3
 4 5 6
 7 8 9

b =

 0
 0
 0

Unique solution does not exist
warning: matrix singular to machine precision, rcond = 1.54198e-18
warning: called from
 testing at line 13 column 3
x =

 0
 0
 0

x =

 0.40825
 -0.81650
 0.40825
 
Err =

 -1.3323e-15
 -4.4409e-16
 4.4409e-16
Comment