本文主要讲述一下如何利用matlab对表达式或者多项式进行简化。

相关指令介绍:

利用公因子法简化表达式的指令为:“subexpr”,她是替换表达式命令。

matlab算出来的解析表达式中,经常会有一部分在整个表达式的多个地方出现。而且常常用“simple”或者“simplify”等函数都无法化简,这时我们可以使用subexpr函数进行简化。

subexpr指令的语法规则:

RS=subexpr(expr)     expr为表达式,他表示从expr中提取出公因子sigma,并且把采用sigma重写的expr表达式赋给RS;

RS=subexpr(expr,'s')  从expr中提取出公因子,记为S,并把用S重写的expr赋给RS;这里可以指定公因子的名称为'S'

[RS,s]=subexpr(expr,'s')   该调用语法的效果和上一句“RS=subexpr(expr,'s')”是一样的。

需要注意的是expr可以是符号表达式或符号表达式矩阵。此外,还可以应用help指令学习subexpr的用法。

函数功能演示:

首先,通过命令“A=[ a b;c d]"生成符号矩阵A。然后利用"eig"函数对符号矩阵A进行特征值和特征向量的分解,指令为”[V,D]=eig(A)“,表示:求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成矩阵V。如下图所示:

如何化简表达式/多项式?

如何化简表达式/多项式?

 

自动识别表达式中的公因子

下面我们就开始使用subexpr函数指令进行公因子识别了,同学们要多多注意subexpr函数的具体应用哦!这里我们先使用一下第一步用法中的第一条,具体如下图所示:

MATLAB

D进行“指定公因子名称”的简化

    下面探索一下subexpr函数指令的另一个用法,即对提取的公因子制定名称,即把从D中提取出的公因子命名为s,然后用s重写的D赋给Ds;这里可以指定公因子的名称为's'。代码:Ds=subexpr(D,'s') ;具体如下图所示:

MATLAB2

VD同时简化,并且制定相同的公因式名称

下面我们将V、D合成为一个矩阵,然后同时对矩阵[V;D]提取公因式,这时将公因式命名为w,并用w重写矩阵[V;D]并命名为VDw。代码指令:[VDw,w]=subexpr([V;D],'w') ,具体结果如下图所示:

MATLAB3

注意:在subexpr指令的所有用法中,所提取的公因式是由matlab自动寻找的,人工是无法指定的。