Хорошо, позвольте мне дать вам краткое изложение.
Если вы хотите решить уравнение или систему уравнений и условий, то вам нужно определить их как таковые, поэтому позвольте мне объяснить.Итак, в качестве примера
clear all; %just to be safe
syms x y b
a=0.5;
somevalue=1;
someothervalue=3;
eq1= a*x+a*y == somevalue; %this is your first equation
eq2= b*x+b*y == someothervalue; %this is your 2nd equation
cond1= x<5; %this is a condition which matlab sees as an "equation"
eqs=[eq1,eq2,cond1]; %these are the equations and conditions you want to solve for, use this for solve
eqs=[eq1,eq2]; %use this for vpasolve and set your condition in range
vars=[x,y,b]; %these are the variable you want to solve for
range = [-Inf 5; NaN NaN; NaN NaN]; %NaN means you set no range
%you can use solve or vpasolve, second one being numeric, which is the one you'll probably want
n=5;
sol=zeros(n,numel(vars));
for i = 1:n
temp1 = vpasolve(eqs, vars, range, 'random', true);
temp = vpasolve(eqs, vars, 'random', true);
sol(i,1) = temp.x;
sol(i,2) = temp.y;
sol(i,3) = temp.b;
end
sol
Теперь, когда я запускаю это сам, я не могу заставить диапазон работать по какой-то причине, все еще пытаясь понять это.Когда вы не устанавливаете диапазон, он работает просто отлично, если вы можете использовать функцию решения, то также не возникает проблем.Теоретически, функция range должна работать нормально, так что это может быть ошибкой с моей стороны.
Если вы используете решение, у вас есть несколько хороших опций, которые вы можете использовать с предположением, чтобы установить дополнительные условия, которые немного более продвинуты.как проверка только на реальные решения или только целые числа и т. д.