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

问题描述 投票:-1回答:2

我试图用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)],感谢您的帮助和建议

python math sympy
2个回答
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)]

0
投票

你可以使用solveset_real(虽然确切的等式可能没有任何真正的解决方案)

© www.soinside.com 2019 - 2024. All rights reserved.