Я предполагаю, что вы хотите, чтобы уравнения были равны 0, и что в уравнениях нет знака равенства.
Разберите выражения, чтобы найти коэффициенты, помещенные в матрицу (A). Я использую здесь трюк, предполагающий, что переменные всегда x1, x2 и т. Д. Также вы должны написать знак * для умножения. Функция FindCoeffs находит коэффициенты путем присвоения им и нулям переменных. Затем вы можете решить уравнения, используя linsolve.
function FindEquations()
a = {'x1+x2 - 6 ','x1 - x2 - 2'};
A = [];
B = [];
for i=1:numel(a)
[b,l] = FindCoeefs(a{i}, numel(a));
A(end+1,:) = l;
B(end+1) = -b;
end
linsolve(A,transpose(B))
end
function [b,p] = FindCoeefs(expr, n)
for j=1:n
eval(sprintf('x%d=0;',j));
end
b = eval([expr ';']);
p = zeros(1,n);
for i=1:n
for j=1:n
eval(sprintf('x%d=0;',j));
end
eval(sprintf('x%d=1;',i));
p(i) = eval([expr ';']) - b;
end
end
Что вы подразумеваете под «решением» в этом контексте? Что вы ожидаете от ответа на свой пример? –
Я хочу X1 и X2 ... Например, X1 = 1 и X2 = 2 –
Но у вас нет никаких уравнений. Уравнение включает '='. –