Я хочу использовать solve()
для решения большой системы линейных уравнений. Функция solve()
нуждается в уравнениях и переменных. Я использую al oop для генерации уравнений, а мои переменные содержатся в большом массиве. Это простой код того, что я пытаюсь сделать:
x = sym('x',[1 3])
eqn = sym('eqn', [1,3])
eqn1 = 2*x1 + x2 + x3 - 2 == 0
eqn2 = 2*x2 -x2 -x1- x3 == 3
eqn3 = 2*x2+ x1 + 3*x3 == -10
Y = solve(eqn, x)
MATLAB не распознает мою переменную x1
. Я решил ту же систему, используя следующий код:
syms x1 x2 x3
eqn1 = 2*x1 + x2 + x3 == 2
eqn2 = 2*x2 -x2 -x1 - x3 == 3
eqn3 = 2*x2+ x1 + 3*x3 == -10
X = solve([eqn1, eqn2, eqn3, eqn4], [x1 x2 x3])
structfun(@subs,X)
Но это бесполезно для очень большого числа уравнений. Что я делаю не так?