Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用sympy将方程转换为另一种形式_Python 3.x_Sympy_Symbolic Math - Fatal编程技术网

Python 3.x 使用sympy将方程转换为另一种形式

Python 3.x 使用sympy将方程转换为另一种形式,python-3.x,sympy,symbolic-math,Python 3.x,Sympy,Symbolic Math,我有这样一个问题:我有一个表达式,像x**3-x**2+x-5=0。我需要将其转换为x=g(x),例如x=root(x**2-x+5,3) 辛皮能做到吗?如果是,怎么做?感谢您提供了丰富的答案。您可以将x**3术语替换为y**3,并求解y: In [26]: lhs = x ** 3 - x ** 2 + x - 5

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


辛皮能做到吗?如果是,怎么做?感谢您提供了丰富的答案。

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

由于
sympy
在Python中运行,因此它不能将
=
用作代数等式。而是使用
Eq
关系。我相信这一点在
sympy
简介中已经详细讨论过了。谢谢你,但是你怎么知道你需要3个解决方案呢?这是一个常见的例子,在一个实际问题中可能会有另一个等式,我需要的解并不总是排在第三位。现在,我只是从列表中找到一个具有最小字符串表示长度的解(在我检查的情况下,我需要的解比其他解短得多)您提出的问题没有唯一的解决方案,因此我展示了任意给出您所希望的解决方案的代码。如果您想询问如何“一般”做到这一点,那么您需要更精确地定义问题类别。