1
方程组的隔离变量考虑与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))
给出了一圈参数如何获得Sympy给我同样的事情,但在x
和y
方面?也就是说,我想这一点:
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)
为r
。
感谢
'开方(R ** 2)'*不*等于'r',在一般情况。请参阅[这里]的讨论(http://docs.sympy.org/dev/tutorial/simplification.html#powers)(特别是标识3) – Stelios
@Stelios是的,但它在这种情况下。所以我想知道我如何告诉Sympy x和y是真实的,所以r总是正数 – TomCho
定义符号为'r = sp.symbols('r',positive = True)'和'x,y = sp.symbols('x,y',real = True)',而不是使用'var'这意味着这些符号是复数值。 – Stelios