Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.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 当“powsimp”和“collect”都不做任何操作时,“simplify”应用什么转换?_Python_Sympy - Fatal编程技术网

Python 当“powsimp”和“collect”都不做任何操作时,“simplify”应用什么转换?

Python 当“powsimp”和“collect”都不做任何操作时,“simplify”应用什么转换?,python,sympy,Python,Sympy,我有下面的表达式,并希望根据变量e的幂对其进行分组: 从sympy导入符号 e=符号('e') 表达式=( 0.3635891123757*e +1.2744227529689*(0.006290933064*e+0.526290933064)*(0.12408152*e+0.12408152) +2.76494336639746*(0.0483917928*e+1.0483917928)*(0.12408152*e+0.12408152) +1.2744227529689*(0.1240815

我有下面的表达式,并希望根据变量
e
的幂对其进行分组:

从sympy导入符号
e=符号('e')
表达式=(
0.3635891123757*e
+1.2744227529689*(0.006290933064*e+0.526290933064)*(0.12408152*e+0.12408152)
+2.76494336639746*(0.0483917928*e+1.0483917928)*(0.12408152*e+0.12408152)
+1.2744227529689*(0.12408152*e+0.12408152)*(
0.012581866128*e
+0.39*(0.006290933064*e+0.526290933064)*(0.12408152*e+0.12408152)
+ 0.922581866128
)
+2.76494336639746*(0.12408152*e+0.12408152)*(
0.0967835856*e
+0.39*(0.0483917928*e+1.0483917928)*(0.12408152*e+0.12408152)
+ 1.0967835856
)
+ 1.63807816642065
)
从它们的描述来看,和应该都起作用,但是它们返回的表达式未经修改。当我应用时,表达式会像预期的那样简化。因此,我想知道在调用
simplify
的过程中会应用哪些其他类型的转换

从sympy.simplify导入simplify、powsimp、collect
打印(f'{powsimp(expr)=}')
打印(f'{collect(expr,e)=}')
打印(f'{simplify(expr)=}')
这将产生以下输出:

powsimp(expr)=0.3635891123757*e+(0.0080174310478246*e+0.670727414207)*(0.12408152*e+0.12408152*e+0.12408152*e+0.12408152)*(0.133800566490444*e+2.8987439328879)+(0.158134734671097*e+0.158134734671097)*(0.012581866128*e+(0.002453463496*e+0.124086152*e+0.1866128)*(0+0.124086152*(0.343078375616514*e+0.343078375616514)*(0.0967835856*e+(0.018872799192*e+0.408872799192)*(0.12408152*e+0.12408152)+1.0967835856)+1.63807816642065
收集(expr,e)=0.363635891123757*e+(0.0080174310478246*e+0.670727414207)*(0.12408152*e+0.12408152)+(0.12408152*e+0.12408152)*(0.133800566490444*e+2.898743928879)+(0.158134734671097*e+0.158134734671097)*(0.012581866128*e+(0.00346389496*e+0.20896154925*0+0.186928*(0.343078375616514*e+0.343078375616514)*(0.0967835856*e+(0.018872799192*e+0.408872799192)*(0.12408152*e+0.12408152)+1.0967835856)+1.63807816642065
简化(expr)=0.000851550024540092*e**3+0.0759270659579648*e**2+1.42522479477876*e+2.62459155414223

注意:对于我的用例,这个表达式是一个更大表达式的一部分,我无法通过
simplify
进行转换,因为我得到了描述的错误

$conda list| grep sympy
sympy 1.8 py39hf3d152e_0康达锻造厂

通常,您需要在收集之前使用expand,尽管在这种情况下expand已经足够:

[7]中的
:expr.expand()
出[7]:
3                       2                                        
0.000851550024540092⋅e+0.0759270659579648⋅e+1.42522479477876⋅e+2.62459155414223

通常,您需要在收集之前使用expand,尽管在这种情况下expand已经足够:

[7]中的
:expr.expand()
出[7]:
3                       2                                        
0.000851550024540092⋅e+0.0759270659579648⋅e+1.42522479477876⋅e+2.62459155414223