MATLAB 8.X实战指南
上QQ阅读APP看书,第一时间看更新

1.2 如何进行初等数学运算

1.2.1 加减乘除四则运算

作为MATLAB的基本数学运算,数值型数据之间加减乘除四则运算如图1.14所示。

经验分享:在MATLAB中进行数值型数据间的加减乘除运算时,运算的优先级与一般的加减乘除运算相同,即乘除运算的优先级高于加减运算优先级。在图1.14的演示示例中,通过键盘在命令行窗口内共输入了4个表达式,创建了4个变量,即变量A、B、C和D。在MATLAB中,i和j均用于表示复数的虚部。另外,在MATLAB中,圆周率π用pi表示。

图1.14 数值型数据加减乘除四则运算

1.2.2 幂、指数、对数运算

基本初等运算包括指数运算、对数运算、幂运算。指数运算与幂运算在运算形式上均能统一为y=ab。另外,对于数值型数据而言,在MATLAB中进行指数运算或者幂运算能统一为幂运算,即计算a的b次幂。通过图1.15来介绍数值型数据基本初等运算。

图1.15 数值型数据基本初等运算

经验分享:MATLAB中的幂运算符为“^”与“.^”(后续章节将有介绍)。需要经验分享的是,在MATLAB中进行对数运算时,自然对数只能用log表示,而不是ln。相应地,以10为底的自然对数与以2为底的自然对数分别为log10和log2。此外,自然常数e在MATLAB中统一以自然常数e为底的指数函数exp(x)来表示,所以,图1.15中表达式C=log(exp(1))表示的是C=ln(e)。

1.2.3 三角函数运算

MATLAB中常用的三角函数如表1.8所示,图1.16所示是调用sin(x)进行求值的例子,读者可以比较在MATLAB中sin(60)与sin(pi/3)的区别。

表1.8 MATLAB中常用的三角函数

图1.16 调用sin(x)函数进行求值

1.2.4 多项式运算

在MATLAB中,多项式是利用一个行向量来表示的,它的系数是按照降序方式排列的。例如,多项式p1(x)=x3+21x2+20x可以表示为:

        P1=[121200]    %常数项为0

1.多项式求值

语法:

        polyval(p, s)

说明:p为多项式系数,s为给定的数值或矩阵。

【例1.1】 当x=2以及x=[0,0.5,1,1.5,2,2.5,3]时,计算p1(x)=x3+21x2+20x多项式的值,其运行效果如图1.17所示。

2.多项式求根

语法:

        r=roots(p)

说明:p为多项式;r为计算的多项式的根,以列向量的形式保存。

与函数roots相反,根据多项式的根来计算多项式的系数,可以用poly函数来实现。

图1.17 例1.1的运行效果

语法:

        p=poly(r)

说明:p为多项式;r为计算的多项式的根,以列向量的形式保存。

【例1.2】 计算多项式p1(x)=x3+21x2+20x的根以及由多项式的根得出系数,如图1.18所示。

图1.18 例1.2的运行效果

3.多项式部分分式展开

在许多的工程实际应用中,例如傅立叶变换、拉普拉斯变化和Z变换都会出现两个多项式的比值,这时就需要对多项式进行部分分式展开运算。

用residue函数来实现将分式表达式进行多项式的部分分式展开:

语法:

        [r, p, k]=residue(b, a)

说明:b和a分别是分子和分母多项式系数行向量;r是[r1 r2 … rn]行向量,表示部分分式展开的常数项;p为[p1 p2 … pn]极点行向量;k为余数。

【例1.3】 将表达式进行部分分式展开,如图1.19所示。

图1.19 例1.3的运行效果

程序分析:表达式展开结果为

4.多项式的加减法

MATLAB没有提供专门进行多项式加减运算的函数,事实上,多项式的加减运算,就是其对应系数向量的加减运算。加减运算时,向量的大小必须相同,缺项用零补齐。

【例1.4】 求多项式x3-2x2+5x+3和6x-1的和,如图1.20所示。

图1.20 例1.4的运行效果

程序分析:多项式x3-2x2+5x+3和6x-1的和为x3-2x2+11x+2。

5.多项式的乘法和除法

多项式乘法的语法如下:

        p=conv(pl, p2)

说明:p是多项式p1和p2的乘积多项式。

多项式的除法的语法:

        [q, r]=deconv(pl, p2)

说明:除法不一定会除尽,会有余子式。多项式p1被p2除的商为多项式q,而余子式是r。

【例1.5】 计算表达式s(s+1)(s+20),如图1.21所示。

图1.21 例1.5的运行效果

6.多项式求导

对多项式求导的函数是polyder,其调用格式为:

        p=polyder(p1)           ;求多项式p1的导函数
        p=polyder(p1, p2)       ;求多项式p1和p2乘积的导函数
        [p, q]=polyder(p1, p2)  ;求多项式p1和p2之商的导函数,p、q分别是导函数的分子和分母

【例1.6】 求有理分式f(x)=(x-1)/(x2-x+3)的导函数,如图1.22所示。

结果表明:f′(x)=(-x2+2x+2)/(x4-2x3+7x2-6x+9)。

图1.22 例1.6的运行效果