实验三 MATLAB 数值计算(2)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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. 多项式拟合