实验三 MATLAB 数值计算(2)

时间:2025-07-08

MATLAB 数值计算(2)

实验三 MATLAB 数值计算

一、实验目的:

熟悉MATLAB多项式的运用。

(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]) %计算多项式的系数

MATLAB 数值计算(2)

ans =

1.0000 -6.0000 -72.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 -72.0000 -27.0000

r = roots(p)

r =

12.1229

-5.7345

-0.3884

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

4. 部分分式展开

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

rrrB(s) 1 2 n k(s) A(s)s p1s p2s pn

语法:

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

说明:b和a分别是分子和分母多项式系数行向量;r是[r1 r2 …rn]留数行向量;p为[p1 p2 …pn]极点行向量;k为直项行向量。

【例4】 将表达式

b = [ 5 3 -2 7]

a = [-4 0 8 3] 进行部分分式展开。

MATLAB 数值计算(2)

[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

程序分析:表达

1.4167

s-1.5737 0.6653

s 1.1644 1.3320

s 0.4093 1.2500。

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

1. 多项式的乘法和除法

多项式的乘法

语法:

p=conv(pl,p2)

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

多项式的除法

语法: 展开结果为

MATLAB 数值计算(2)

[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. 多项式拟合

MATLAB 数值计算(2)

多项式曲线拟合是用一个多项式来逼近一组给定的数据,使用polyfit函数来实现。拟合的准则是最小二乘法,即找出使 f(x

i 1n2i) yi最小的f(x)。

语法:

p=polyfit(x,y,n)

说明:x、y向量分别为N个数据点的横、纵坐标;n是用来拟合的多项式阶次;p为拟合的多项式,p为n+1个系数构成的行向量。

【例7】 对多项式y=2x3-x2+5x+10曲线拟合。经过一阶、二阶和三阶拟合的曲线如图2

所示。

图 一阶、阶和三阶拟合曲线

x=1:10;

p=2 -1 5 10];

y1=polyval(p,x)

y1 =

Columns 1 through 7

16 32 70 142

682

Columns 8 through 10

1010 1432 1960

p1=polyfit(x,y1,1) %一阶拟合

p1 =

204.8000 -522.4000

p2=polyfit(x,y1,2) %二阶拟合

p2 = 260 436

MATLAB 数值计算(2)

32.0000 -147.2000 181.6000

p3=polyfit(x,y1,3) %三阶拟合

p3 =

2.0000 -1.0000 5.0000 10.0000

2. 插值运算

插值运算是根据数据点的规律,找到一个多项式 …… 此处隐藏:1491字,全部文档内容请下载后查看。喜欢就下载吧 ……

实验三 MATLAB 数值计算(2).doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219