简体   繁体   中英

solve system of linear equations in matlab

I'm new to Matlab. Suppose I want to solve a linear system of 2 equations with 5 variables x1, x2, x3, x4, x5. Can Matlab give me solution for x1 and x2 in terms of the x3, x4, and x5? I also want to assign values to one or more variables, say I want to look at what happens if x3=5 or x3=3 and x5=1. Is there a way to achieve this?

I looked at the help page https://www.mathworks.com/help/symbolic/solve-a-system-of-linear-equations.html#d120e14359 , but it does not cover the non-square matrix case

You can use multiple calls of solve to get solutions for x1 and x2. In this problem you can solve the first equation for x1 , and then plug that into the second equation to get x2 in terms of x3 , x4 , and x5 . You can then substitute the new value of x2 back into your solution of x1 .

The subs function is used to substitute the solved values back into the original equation.

syms x1 x2 x3 x4 x5
eq1 = x1 + 4*x2 - 5*x3 + 2*x4 + x5; 
eq2 = 3*x1 + 8*x2 - 3*x3 + x4 - x5;

x1s = solve(eq1, x1);   % Solve x1 in term of x2-x5
x2s = solve(subs(eq2, x1, x1s), x2); % Solve x2 in terms of x3-x5
x1s = solve(subs(eq1, x2, x2s), x1); % Resolve x1 in terms of x3-x5

Output:

x1s =

3*x4 - 7*x3 + 3*x5


x2s =

3*x3 - (5*x4)/4 - x5

You can plug in values for x3 , x4 , and x5 using subs . For example, for x4=3 and x5=4 :

subs(x1s, [x4 x5], [3 4])

ans =

21 - 7*x3

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM