实验三 MATLAB 数值计算(2)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三 MATLAB 数值计算

一、实验目的:

熟悉MATLA B多项式的运用。

(1)多项式的求值、求根和部分分式展开

(2)多项式的乘除法和微积分

(3)多项式拟合和插值

二、实验内容和步骤:

1. 多项式求值

函数polyval可以用来计算多项式在给定变量时的值,是按数组运算规则进行计算的。

语法:

polyval(p,s)

说明:p为多项式, s为给定矩阵。

【例1】计算p(x)= 3x2+2x+1多项式的值。

p = [3 2 1];

polyval(p,2) %计算x=2时多项式的值

ans =

17

x=0:0.5:3;

polyval(p,x) %计算x为向量时多项式的值

ans =

1.0000

2.7500 6.0000 10.7500 17.0000 24.7500 34.0000

2. 多项式求根

▪roots用来计算多项式的根。

语法:

r=roots(p)

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

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

语法:

p=poly (r)

【例2】计算多项式p(x)= x3-6x2-72x-27的根以及由多项式的根得出系数。

p = [1 -6 -72 -27]

roots(p) %计算多项式的根

ans =

12.1229

-5.7345

-0.3884

poly([ 12.1229;-5.7345;-0.3884]) %计算多项式的系数

ans =

1.0000 -6.0000 -7

2.0000 -27.0011

3. 特征多项式

对于一个方阵s ,可以用函数poly 来计算矩阵的特征多项式的系数。特征多项式的根即为特征值,用roots 函数来计算。

语法:

p=poly (s)

说明:s 必须为方阵;p 为特征多项式。

【例3】 根据矩阵来计算的特征多项式系数。

A =[1 2 3;4 5 6;7 8 0]

p = poly(A)

A =

1 2 3

4 5 6

7 8 0

p =

1.0000 -6.0000 -7

2.0000 -27.0000

r = roots(p)

r =

12.1229

-5.7345

-0.3884

程序分析:p= x 3-6x 2-72x-27为矩阵A 的特征多项式,12.1229, -5.7345和-0.3884为矩阵s 的特征根。

4. 部分分式展开

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

k(s)n

p s n r 2p s 2r 1p s 1r A(s)B(s)+-++-+-= 语法:

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

说明:b 和a 分别是分子和分母多项式系数行向量;r 是[r 1 r 2 …r n ]留数行向量;p 为[p 1 p 2 …p n ]极点行向量;k 为直项行向量。

【例4】 将表达式

进行部分分式展开。

b = [ 5 3 -2 7]

a = [-4 0 8 3]

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

b =

5 3 -2 7

a =

-4 0 8 3

r =

-1.4167

-0.6653

1.3320

p =

1.5737

-1.1644

-0.4093

k =

-1.2500

程序分析:表达式

展开结果为2500.10.4093s 1.3320

1.1644s 0.6653

1.5737-s 1.4167

-+++-+-。

2.多项式的乘除法和微积分

1. 多项式的乘法和除法

▪ 多项式的乘法

语法:

p=conv(pl,p2)

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

▪ 多项式的除法

语法:

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

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

【例5】计算表达式(x3+2x2+3x+4)(10x2+20x+30)。

u = [1 2 3 4]

v = [10 20 30]

c = conv(u,v)

c =

10 40 100 160 170 120

[q,r] = deconv(c,u)

q =

10 20 30

r =

0 0 0 0 0 0

2. 多项式的微分和积分

▪多项式的微分由polyder函数实现。

▪MATLAB没有专门的多项式积分函数,但可以用[p./length(p):-1:1,k]的方法来完成积分,k为常数。

【例6】求多项式(3x2+6x+9) (x2+2x)的微分和积分.

a = [3 6 9];

b = [1 2 0];

k = polyder(a,b)

k =

12 36 42 18

s=length(k):-1:1

s =

4 3 2 1

p1=[k./s,0] %多项式积分,常数k=0

p1 =

3 12 21 18 0

3多项式拟合和插值

1. 多项式拟合

相关文档
最新文档