我试图用python来解决方程:x**2*y**2 + x**2 -10*x*y + 4*y**2 + 9.0=0
,由于方程等于(x*y-3)**2+(x-2*y)**2=0
,所以希望得到真正的解决方案:x = 2*sqrt(3.0/2),y = sqrt(3.0/2)&& x = -2*sqrt(3.0/2),y = -sqrt(3.0/2)
有没有办法得到这个解决方案?
from sympy import *
x = symbols("x")
y = symbols("y")
expression = x**2*y**2 + x**2 - 10*x*y + 4*y**2 + 9
solve(expression,(x,y))
上面的代码只能得到解决方案:[((5*y + I*(-2*y**2 + 3))/(y**2 + 1), y),
((5*y + I*(2*y**2 - 3))/(y**2 + 1), y)]
,感谢您的帮助和建议
看起来你要做的就是找到表达式(x*y-3)**2+(x-2*y)**2
的两个术语同时为零的位置。不要扩展它,而是要求解决这个问题:
>>> eq = (x*y-3)**2+(x-2*y)**2
>>> terms = eq.args
>>> solve(terms, x, y)
[(-sqrt(6), -sqrt(6)/2), (sqrt(6), sqrt(6)/2)]
你可以使用solveset_real
(虽然确切的等式可能没有任何真正的解决方案)