我想求解方程:x ** 2 * y ** 2 + x ** 2 -10 * x * y + 4 * y ** 2 + 9.0 = 0,有没有办法得到真实的解决方案?

时间:2018-10-03 03:08:16

标签: python math sympy

由于方程等于x**2*y**2 + x**2 -10*x*y + 4*y**2 + 9.0=0,我试图使用python来求解方程:(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)],感谢您的帮助和建议

2 个答案:

答案 0 :(得分:2)

您似乎要尝试查找(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)]

答案 1 :(得分:0)

您可以使用solveset_real(尽管确切的方程式可能没有任何实际解)