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 \ Bis 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 \ Bis 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 :
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.
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 :
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.
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
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
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
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
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
- ML | Normal Equation in Linear Regression
- Applications of MATLAB
- Introduction to MATLAB
- Matlab | Erosion of an Image
- Image Complement in Matlab
- Matlab | Dilation of an Image
- Negative of an image in MATLAB
- Reverse Video in Matlab
- MATLAB | RGB image representation
- Image Resizing in Matlab
- Differences Between MATLAB and R Programming Language
- Draw Seychelles Flag using MATLAB
- Draw Kuwait Flag using MATLAB
- Draw Sudan Flag using MATLAB
- Draw Indian Flag using matlab
- Draw Switzerland Flag Using Matlab
- LSB based Image steganography using MATLAB
- Create Mirror Image using MATLAB
- Extract bit planes from an Image in Matlab
- Draw Sweden Flag using matlab
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.