问题描述
我有一个问题:我有一个类似x ** 3 - x ** 2 + x - 5 = 0
的表达式。我需要将其转换为x = g(x)
的形式,例如x = root(x ** 2 - x + 5,3)
。
sympy可以这样做吗?如果是这样,怎么办?谢谢您的翔实回答。
解决方法
您可以将x**3
替换为y**3
并求解y
:
In [26]: lhs = x ** 3 - x ** 2 + x - 5
In [27]: lhs
Out[27]:
3 2
x - x + x - 5
In [28]: lhs.subs(x**3,y**3)
Out[28]:
2 3
- x + x + y - 5
In [29]: y1,y2,y3 = solve(lhs.subs(x**3,y**3),y)
In [30]: Eq(x,y3)
Out[30]:
____________
3 ╱ 2
x = ╲╱ x - x + 5