решить систему линейных уравнений в Matlab - PullRequest
0 голосов
/ 28 ноября 2018

Я новичок в Matlab.Предположим, я хочу решить линейную систему из 2 уравнений с 5 переменными x1, x2, x3, x4, x5.Может ли Matlab дать мне решение для x1 и x2 в терминах x3, x4 и x5?Я также хочу присвоить значения одной или нескольким переменным, скажем, я хочу посмотреть, что произойдет, если x3 = 5 или x3 = 3 и x5 = 1.Есть ли способ добиться этого?

Я посмотрел на страницу справки https://www.mathworks.com/help/symbolic/solve-a-system-of-linear-equations.html#d120e14359,, но она не охватывает случай неквадратной матрицы

1 Ответ

0 голосов
/ 28 ноября 2018

Вы можете использовать несколько вызовов solve, чтобы получить решения для x1 и x2.В этой задаче вы можете решить первое уравнение для x1, а затем вставить его во второе уравнение, чтобы получить x2 в терминах x3, x4 и x5.Затем вы можете заменить новое значение x2 обратно в ваше решение x1.

Функция subs используется для подстановки разрешенных значений обратно в исходное уравнение.

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

Вывод:

x1s =

3*x4 - 7*x3 + 3*x5


x2s =

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

Вы можете добавить значения дляx3, x4 и x5 с использованием subs.Например, для x4=3 и x5=4:

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

ans =

21 - 7*x3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...