Когда я запускаю этот код, я получаю пустые строки, для которых при установке диапазона для vpasolve, когда я не устанавливаю диапазон, я получаю только одно решение, даже при случайном включении.Диапазон установлен так, что он включает в себя одно решение, которое мне дает matlab, x = 2, y = 0 и b = 1.5.для диапазона я пробовал -Inf Inf и NaN NaN, чтобы он попробовал все числа.Поэтому, пожалуйста, не дайте мне ответа, сказав, что у моей системы нет решения, оно явно есть.Это также не решит это символически (та же самая проблема с решает), в то время как я могу дать 1 возможное решение0,5 * (x + y) = 1, b * (x + y) = 3 ---> x + y = 2 и b = 1,5
Так что что-то еще должно быть не так, я был бы признателен, если быВы даете мне знать, что я делаю здесь не так.
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
eqs=[eq1,eq2]; %use this for vpasolve and set range in range
vars=[x,y,b]; %these are the variable you want to solve for
range = [-1 3; -2 5; -Inf Inf]; %NaN means you set no range
%you can use solve or vpasolve, second one being numeric, which is the one you'll probably want
sol=zeros(5,3);
for i = 1:5
temp = vpasolve(eqs, vars, range, 'random', true);
temp = solve(eqs2, vars);
sol(i,1) = temp.x;
sol(i,2) = temp.y;
sol(i,3) = temp.b;
end
sol
temp1.x
temp1.y
temp1.b
Теперь у меня есть другая явная проблема / ошибка при использовании опции решения, очевидно, ответ здесь должен быть 9:
syms x
eq12 = -3 == sqrt(x);
solve(eq12)
ans =
Empty sym: 0-by-1
а также:
syms x
eq12 = -3 == (x)^(1/2);
solve(eq12)
ans =
Empty sym: 0-by-1
Очевидно, что ответ здесь будет 9, так что я могу изменить, чтобы позволить Matlab решить эту проблему, и прежде чем вы скажете мне изменить уравнение, это уравнение, которое я хотел бы получитьизменить вручную, и не один раз, а 100 раз или около того.
Точнее, мне нужно решить что-то более сложное, имеющее решение;отрицательное и положительное, отрицательное значение физически нереально, но это единственный Matlab, который я могу дать.
93659574124777211691008 H
H + ---------------------------------------------
1208925819614629174706176 H + 762832192176831
1
== -----------------
100000000000000 H
29250045579840375 #1
- --------------------------------------------------------------------
H (922337203685477580800 H + 927343445063259249) 4611686018427387904
2
12879770070323045125 #1
+ ----------------------------------------------------------------------
2
55340232221128654848 H (922337203685477580800 H + 927343445063259249)
, где
/ 2
| 181939 H 852912375078609598437 H
#1 == 9223372036854775808 H - sqrt| --------- + -----------------------
\ 5539 25544128856069301600256
\
39917248404619332215368770561441 |
+ -------------------------------------- | 9223372036854775808 + 6318009845245521
85070591730234615865843651857942052864 /
Проблема заключается в том, что минус перед sqrt я предполагаю