SymPy中的 simplify()
可以进行智能的化简
但是,simplify()
的输出有时候会和你的预想不同,因为并没有“最简”并没有一个严格的定义。
想要得到 (x+1)2 应该使用 factor()
。
而且,simplify()
会调用多种化简函数,为了方便,一般在交互式界面里使用 simplify()
。如果在程序里使用,会造成运行效率低下。当你知道需要化简成什么形式时,应该使用对应的化简函数。这样不仅运行快,而且输出的格式是固定的。
以下是一些常用的化简函数
expand()
展开,如
(x+2)∗(x−3)=x2−x−6
factor()
因式分解,如
x2z+4xyz+4y2z=z(x+2y)2
如果希望得到所有因子的列表,用factor_list()
3. collect(expr, x)
将x作为主元整理expr。如
x3−x2z+2x2+xy+x−3=x3+x2⋅(2−z)+x(y+1)−3
cancel()
对分子分母自动消去共同因子,如
x2+xx2+2x+1=xx+1
apart()
会执行部分因式分解(Partial fraction decomposition)
trigsimp()
是三角函数版本的simplify()
会智能地化简三角函数表达式。
expand_trig()
会使用和差角、二倍角等公式展开表达式,如
sin(x+y)+tan(2x)=sin(x)cos(y)+sin(y)cos(x)+1−tan2(x)2tan(x)
expr.rewrite(function)
尝试用function表示expr,如
SymPy中的化简函数还有很多,这里只是一些常用的。