使用 sympy 将方程式转换为另一种形式

Converting an equation to another form using sympy

我有这样一个问题:我有一个像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