gpt4 book ai didi

python - 我怎样才能解决 y = (x+1)**3 -2 for x in sympy?

转载 作者:太空狗 更新时间:2023-10-29 21:00:28 27 4
gpt4 key购买 nike

我想在 sympy 中为 x 求解 y = (x+1)**3 - 2 以找到它的反函数。
我尝试使用 solve,但没有得到预期的效果。

这是我在 cmd 的 IPython 控制台中写的(Python 3.5.2 上的 sympy 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}

最佳答案

Sympy 给了你正确的结果:你最后的结果等于 (y+2)**(1/3) - 1。

您正在寻找的是简化:

>>> from sympy import symbols, Eq, solve, simplify
>>> x, y = symbols("x y")
>>> n = Eq(y, (x+1)**3 - 2)
>>> s = solve(n, x)
>>> simplify(s[2])
(y + 2)**(1/3) - 1

编辑:使用 sympy 0.7.6.1,更新到 1.0 后它不再工作。

关于python - 我怎样才能解决 y = (x+1)**3 -2 for x in sympy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39759586/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com