2.1.3 符号表达式的化简
数学表达式有各种不同的形式。对于具体问题,它们各具特点。例如,对于多项式,有普通的降幂排列的x的幂的多项式,也可以写成因子乘积,还可以写成嵌套形式。工具箱应用各种代数和三角恒等式把一个函数表达式转换成另外一种等价的表达式,称为符号表达式的化简。
MATLAB 提供了多种符号表达式的操作命令,具体有合并同类项(collect)、对指定项展开(expand)、因式或因子分解(factor)、转换成嵌套形式(horner)、提取公因子(numden)、恒等式化简(simplify)、简洁形式表示(simple)、习惯书写方式表达(pretty)。现将各个函数的调用格式讲解如下。
一、collect函数
用途:合并同类项。
调用格式:
R=collect(s); 返回合并同类项之后的表达式。
R=collect(s, v); 合并含有变量v的同类项。
例子:
syms x y;
R1=collect((exp(x)+x)*(x+2))
R2=collect((x+y)*(x^2+y^2+1),y)
程序运行结果:
R1 =
x^2 + (exp(x) + 2)*x + 2*exp(x)
R2 =
y^3 + x*y^2 + (x^2 + 1)*y + x*(x^2 + 1)
二、expand函数
用途:对指定项展开。
调用格式:
expand(s); 对符号表达式s进行多项式展开。
expand(s,name, value); 对符号表达式添加其他选项进行展开。该调用格式读者适当地了解即可。
例子:
syms x
expand((x-2)*(x-4))
程序运行结果:
ans =
x^2 - 6*x + 8
例子:
syms x y
expand(cos(x+y))
程序运行结果:
ans =
cos(x)*cos(y) - sin(x)*sin(y)
三、factor函数
用途:因式或因子分解。
调用格式:
f=factor(n); 返回n的因子,其结果为一个行向量。
例子:
f=factor(24)
程序运行结果:
f =
2 2 2 3
四、horner函数
用途:转换成嵌套形式。
调用格式:
horner(P); 假设P是一个多项式矩阵,则该结果返回P的嵌套形式。
例子:
syms x
horner(x^3-6*x^2+11*x-6)
程序运行结果:
ans =
x*(x*(x - 6) + 11) – 6
五、numden函数
用途:提取公因式。
调用格式:
[N,D]=numden(A); 返回多项式A的分子和分母。
例子:
syms x y
[n,d] = numden(x/y + y/x)
程序运行结果:
n =
x^2 + y^2
d =
x*y
六、simplify函数
用途:恒等式化简。
调用格式:
B = simplify(A); 把表达式A化为最简形式。
例子:
syms x
f=(1/x^3+6/x^2+12/x+8)^(1/3)
simplify(f)
程序运行结果:
ans =
((2*x + 1)^3/x^3)^(1/3)
七、simple函数
用途:将表达式化为最简形式。
调用格式:
simple(s); 将表达式s化为最简形式。
例子:
syms x
f=(1/x^3+6/x^2+12/x+8)^(1/3)
simple(f)
程序运行结果:
ans =
((2*x + 1)^3/x^3)^(1/3)
可以看出,simplify和simple调用后的结果相同。
八、pretty函数
用途:将表达式化为习惯书写方式。
调用格式:
pretty(x); 将表达式化为习惯书写方式表达。
例子:
A=sym(magic(3))
pretty(A)
程序运行结果:
A =
[ 8, 1, 6]
[ 3, 5, 7]
[ 4, 9, 2]
+- -+
| 8, 1, 6 |
| |
| 3, 5, 7 |
| |
| 4, 9, 2 |
+- -+
从以上输出结果对比可以看出,经过美化输出之后的结果更符合数学表达式,因此更加美观。