我想用sympy解决y = (x+1)**3 - 2
的x
,以找到其逆函数。
我尝试使用solve
,但是没有达到我的期望。
这是我在IPython控制台中以cmd(Python 3.5.2上的symp 1.0)编写的内容:
In [1]: from sympy import *
In [2]: x, y = symbols('x y')
In [3]: n = Eq(y,(x+1)**3 - 2)
In [4]: solve(n,x)
Out [4]:
[-(-1/2 - sqrt(3)*I/2)*(-27*y/2 + sqrt((-27*y - 54)**2)/2 - 27)**(1/3)/3 - 1,
-(-1/2 + sqrt(3)*I/2)*(-27*y/2 + sqrt((-27*y - 54)**2)/2 - 27)**(1/3)/3 - 1,
-(-27*y/2 + sqrt((-27*y - 54)**2)/2 - 27)**(1/3)/3 - 1]
我正在查看
Out [4]
列表中的最后一个元素,但它不等于x = (y+2)**(1/3) - 1
(这是我所期望的)。为什么sympy输出错误的结果,我该怎么做才能使sympy输出成为我所寻找的解决方案?
我尝试使用
solveset
,但是得到的结果与使用solve
相同。In [13]: solveset(n,x)
Out[13]: {-(-1/2 - sqrt(3)*I/2)*(-27*y/2 + sqrt((-27*y - 54)**2)/2 - 27)**(1/3)/
3 - 1, -(-1/2 + sqrt(3)*I/2)*(-27*y/2 + sqrt((-27*y - 54)**2)/2 - 27)**(1/3)/3 -
1, -(-27*y/2 + sqrt((-27*y - 54)**2)/2 - 27)**(1/3)/3 - 1}
最佳答案
如果您声明x
和y
为正,则只有一种解决方案:
import sympy as sy
x, y = sy.symbols("x y", positive=True)
n = sy.Eq(y, (x+1)**3 - 2)
s = sy.solve(n, x)
print(s)
产量
[(y + 2)**(1/3) - 1]
关于python - 如何在sympy中求解x的y =(x + 1)** 3 -2?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39759586/