У меня есть эти два уравнения, где x, y
и z
— переменные, а p1, p2
и p3
— параметры. Может ли MATLAB найти параметрические/символьные решения для x y z
на основе p1, p2, p3
?
2(x−p1)+2(xy−p3)y = 0
2(y−p2)+2(xy−p3)x = 0
У меня есть эти два уравнения, где x, y
и z
— переменные, а p1, p2
и p3
— параметры. Может ли MATLAB найти параметрические/символьные решения для x y z
на основе p1, p2, p3
?
2(x−p1)+2(xy−p3)y = 0
2(y−p2)+2(xy−p3)x = 0
Проще говоря, да. Возьмите все ваши переменные, используйте syms
, чтобы определить каждую из ваших переменных, чтобы они являются символическими переменными, затем используйте solve
, чтобы решить уравнение за вас. Вы указываете два уравнения как два параметра в solve
. Вывод (который мы сохраним в sol
) вернет структуру, содержащую поле x
и поле y
, поскольку ваше уравнение определено относительно двух переменных, а p1,p2,p3
являются параметрами. Другими словами, сделайте это:
syms p1 p2 p3;
syms x y;
sol = solve(2*(x-p1)+2*(x*y-p3)*y == 0, 2*(y-p2)+2*(x*y-p3)*x == 0);
Вы можете получить доступ к решению того, что такое x
и y
, обратившись к каждому из соответствующих полей:
>> sol.x
ans =
(p1^3 + p3*p1^2*z1 + p1*z1^4 - 1.0*p2*p1*z1^3 + p1*z1^2 - 1.0*p2*p1*z1 + p3*z1^3 - 1.0*p2*p3*z1^2 + p3*z1 - 1.0*p2*p3)/(p1^2 + p3^2)
>> sol.y
ans =
z1
Однако вы получите предупреждение о том, что решение параметризовано символами, но этого и следовало ожидать. Конкретно:
Warning: The solutions are parametrized by the symbols:
z1 = RootOf(z^5 - p2*z^4 + 2*z^3 - z^2*(2*p2 - p1*p3) + z*(p1^2 - p3^2 + 1) - p1*p3 - p2, z)
z
- это параметр, который вы меняете, поскольку существует бесконечно много решений, удовлетворяющих уравнению. Таким образом, замените z1
тем, что вы видите в приведенном выше заявлении. z
— любое значение по вашему выбору.
- person rayryeng; 29.07.2014
z
. Решением является корень уравнения в z
неизвестно (отсюда RootOf
); указанное уравнение зависит от параметров p*
.
- person ; 29.07.2014
p1,p2,p3
, поэтому решение будет меняться в зависимости от того, что такое p*
.
- person rayryeng; 30.07.2014