首页 > 解决方案 > 使用 sympy 将方程转换为另一种形式

问题描述

我有这样一个问题:我有一个像x ** 3 - x ** 2 + x - 5 = 0. 我需要将其转换为 形式x = g(x),例如x = root(x ** 2 - x + 5, 3).

同情可以做到这一点吗?如果是这样,怎么做?感谢您提供翔实的回答。

标签: python-3.xsympysymbolic-math

解决方案


您可以将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 

推荐阅读