评估sympy函数的解对

问题描述 投票:0回答:1

我有一个带有两个变量的非线性函数,我想求解方程。但是解决方案本身就是一个方程式。如何在特定点评估功能

CODE

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'的几个解决方案对。

谢谢:)

sympy nonlinear-functions expression-evaluation
1个回答
0
投票

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

>>> [(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)
© www.soinside.com 2019 - 2024. All rights reserved.