Solving system of equations using matlab
equations, matlab, system
Solution
First, convert this equation into matrix notation:
A = [ 1 -1 0 0 0
0 1 -1 0 0
0 0 1 -1 0
0 0 0 1 -1
-1 0 0 0 1];
b = [ 20
30
75
-49
-20];
You are trying to find `x` giving `Ax = b`. You can not take the inverse of `A` since it is singular. To see this check its rank; `rank(A) == 4`. It would be 5 if `A` were non-singular.
So, you should find best `x` approximating `b` when multiplied by `A` from left. This is an optimization problem: you want to minimize the error between `Ax` and `b`. Usually, people use least squares method. That is, you minimize the sum of squares of the residuals. This can be done by pseudo inverse as follows:
x = pinv(A) * b
gives
x =
31.8000
23.0000
4.2000
-59.6000
0.6000
Best approximation is found by
b2 = A*x
b2 =
8.8000
18.8000
63.8000
-60.2000
-31.2000
The least squares error is found to be
e = norm(b-b2)
e =
25.0440
If you want to try other methods alternative to least squares to minimize `Ax-b`, you can google l1-minimization, sparse encoding, etc.
Problem
So I have the following system of equations ``` x1 - x2 = 20 x2 - x3 = 30 x3 - x4 = 75 x4 - x5 = -49 -x1 + x5 = -20 ``` how would I solve the system using Matlab? I I'm a little stuck. There's a good chance there's no solution but if someone could let me know how to do it that would be great!