用Sympy分离方程组中的变量

时间:2017-02-05 20:31:08

标签: sympy

考虑

给出的圆的参数化
import sympy as sp
sp.var('x,y,theta,r')
e1 = sp.Eq(r, sp.sqrt(x**2 + y**2))
e2 = sp.Eq(theta, sp.atan2(y,x))

除了xy之外,我如何让Sympy给我同样的东西?也就是说,我想要这个:

x = r*cos(theta)
y = r*sin(theta)

但是当我使用Sympy解决我得到的是

[(-sqrt(r**2*cos(theta)**2), sqrt(r**2)*sin(theta)),
 (sqrt(r**2*cos(theta)**2), sqrt(r**2)*sin(theta))]

即使我在第二个解决方案时,我仍然无法让Sympy简化sqrt(r**2)的{​​{1}}。

由于

1 个答案:

答案 0 :(得分:0)

solve(或更新的solveset)是您要隔离变量的内容。

正如评论中所指出的,您需要将r设置为sqrt(r**2)的正面,以简化为r

r = symbols('r', positive=True)