评估 sympy 函数的解对

Evaluating the solution pairs of the sympy function

我有一个包含两个变量的非线性函数,我想求解方程。但解决方案本身是一个方程式。我如何在某个点评估函数

代码

import sympy as sp
sp.init_printing()
x1,x2,y1,y2 = sp.symbols('x1,x2,y1,y2')
x1,y1=-2,3
f = sp.Eq((x1-x2)**2 + (y1-y2)**2,1)
a = sp.solve([f],(x2,y2))

现在我想要函数 'a' 的一些解决方案对。

提前致谢 :)

您有一个包含两个未知数的方程式:为一个选择一个值并求解另一个。在这里,我们选择 y2 的值​​并求解 x2,并将每个解与 i 的值配对。 y2 = 2 和 4 和 2 的解是 3

时有一个解
>>> [(j,i) for i in range(2,5) for j in sp.solve(f.subs(y2,i),x2)]
[(-2, 2), (-3, 3), (-1, 3), (-2, 4)]

意识到方程代表一个以 (-2, 3) 为中心的圆也允许使用 SymPy 的 Circle 根据参数给你一个任意点:

>>> from sympy import Circle
>>> from sympy.abc import t
>>> Circle((-2,3),1).arbitrary_point(t)
Point2D(cos(t) - 2, sin(t) + 3)

将t代入一个值得到对应的点

>>> _.subs(t,pi)
Point2D(-3, 3)