我想用sympy解决y = (x+1)**3 - 2x,以找到其逆函数。
我尝试使用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}

最佳答案

如果您声明xy为正,则只有一种解决方案:

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/

10-15 00:44