化简代数式

在许多场合用户想要将特定的代数式表示成最简形式. 尽管在各种情况下要清楚什么是最简形式是很困难的. 一个有价值的实用方法是查看表达式的多种不同形式,从中找出具有最小项的表达式.

Simplify[expr]通过使用各种标准代数变换找出 expr 的最简形式
FullSimplify[expr]通过使用范围更广的变换找出 expr 的最简形式

化简代数式.

Simplify 化为分解因式的形式.
In[1]:=
Click for copyable input
Out[1]=
Simplify 保留 展开形式,因为此代数式的分解因式形式更复杂.
In[2]:=
Click for copyable input
Out[2]=

用户可以使用 Simplify 整理计算结果中的复杂表达式.

这是 的积分. 积分将在 "积分" 中详细讨论.
In[3]:=
Click for copyable input
Out[3]=
对从 Integrate 得到的积分结果进行求导应该给出原来的表达式. 但在此处,给出表达式的较复杂形式. 这种情况是常见的.
In[4]:=
Click for copyable input
Out[4]=
Simplify 成功地使表达式恢复原来的最简形式.
In[5]:=
Click for copyable input
Out[5]=

Simplify 被设计为:对用户给出的表达式,用各种标准代数变换去测试. 然而,有时可以用更复杂的变换进一步发现表达式的最简形式.

FullSimplify 则尝试范围更广的变换,这些变换不仅使用代数函数,而且使用其它类型的函数.

Simplify 对这个表达式不起作用.
In[6]:=
Click for copyable input
Out[6]=
然而 FullSimplify 将该表达式化为较简单的形式.
In[7]:=
Click for copyable input
Out[7]=

对比较小的表达式,FullSimplify 通常成功地做出显著的简化. 但对较大的表达式,它常常变得非常缓慢.

缓慢的原因是,FullSimplify 要有效地工作,必须将表达式的每一部分与表达式中的其它每一个部分进行组合. 对于一个大的表达式来说,这种组合的数目简直是一个天文数字.

Simplify 也有难做的事. 但它被设置为避免使用在 FullSimplify 中尝试的某些最耗时的变换. 因此对简单的代数运算,使用 Simplify 是方便的,且结果是相当规范的.

然而,对复杂的运算,不仅 FullSimplify,甚至 Simplify 可能需要尝试大量不同的形式,因此花费很长时间. 在这种情况下,用户需要对化简进行控制,根据用户对所要形式具有的知识,引导化简过程.

SimplifyFullSimplify 使用的某些变换,例如,关于等式假设的化简,需要变量的顺序. 因此,化简的结果可能依赖于符号的名称.

关于等式假设的化简使用变量顺序 进行化简.
In[8]:=
Click for copyable input
Out[8]=
对于变量顺序 ,表达式没有被化简.
In[9]:=
Click for copyable input
Out[9]=