实验08 数据处理与多项式计算第6章.docx

上传人:b****1 文档编号:15030479 上传时间:2023-06-29 格式:DOCX 页数:25 大小:138.43KB
下载 相关 举报
实验08 数据处理与多项式计算第6章.docx_第1页
第1页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第2页
第2页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第3页
第3页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第4页
第4页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第5页
第5页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第6页
第6页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第7页
第7页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第8页
第8页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第9页
第9页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第10页
第10页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第11页
第11页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第12页
第12页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第13页
第13页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第14页
第14页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第15页
第15页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第16页
第16页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第17页
第17页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第18页
第18页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第19页
第19页 / 共25页
实验08 数据处理与多项式计算第6章.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

实验08 数据处理与多项式计算第6章.docx

《实验08 数据处理与多项式计算第6章.docx》由会员分享,可在线阅读,更多相关《实验08 数据处理与多项式计算第6章.docx(25页珍藏版)》请在冰点文库上搜索。

实验08 数据处理与多项式计算第6章.docx

实验08数据处理与多项式计算第6章

实验08数据处理与多项式计算

(第6章MATLAB数值计算)

一、实验目的

1.掌握数据统计和分析的方法。

2.掌握数值插值与曲线拟合的方法及其应用。

3.掌握多项式的常用运算。

二、实验内容

1.检验一组随机数的性质

利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:

(1)均值和标准方差。

(2)最大元素和最小元素。

(3)大于0.5的随机数个数占总数的百分比。

命令及运行结果(建议在命令窗口中逐条输入命令):

2.学生成绩表处理

将100个学生5门功课的成绩存入矩阵P中,进行如下处理:

(1)分别求每门课的最高分、最低分及相应学生序号。

(2)分别求每门课的平均分和标准方差。

(3)5门课总分的最高分、最低分及相应学生序号。

(4)将5门课总分按从大到小顺序存入zcj中,相应学生序号存入xsxh。

提示:

上机调试时,为避免输入学生成绩的麻烦,可用取值范围在[45,95]之间的随机矩阵来表示学生成绩。

命令及运行结果(建议在命令窗口中逐条输入命令):

3.三次样条插值应用

某气象观测得某日6:

00~18:

00之间每隔2h的室内外温度(0C)如实验表1所示。

实验表1室内外温度观测结果(0C)

时间h681012141618

室内温度t118.020.022.025.030.028.024.0

室外温度t215.019.024.028.034.032.030.0

试用三次样条插值分别求出该日室内外6:

30~17:

30之间每隔2h各点的近似温度(0C)。

程序:

运行结果:

4.曲线拟合应用

已知lgx在[1,101]区间10个整数采样点的函数值如实验表2所示。

实验表2lgx在10个采样点的函数值

x1112131415161718191101

lgx01.04141.32221.49141.61281.70761.78531.85131.90851.95102.0043

试求lgx的5次拟合多项式p(x),并绘制出lgx和p(x)在[1,101]区间的函数曲线。

程序:

结果图形:

5.多项式计算

有3个多项式P1(x)=x4+2x3+4x2+5,P2(x)=x+2,P3(x)=x2+2x+3,试进行下列操作:

(1)求P(x)=P1(x)+P2(x)P3(x)。

(2)求P(x)的根。

(3)当x取矩阵A的每一元素时,求P(x)的值。

其中:

(4)当以矩阵A为自变量时,求P(x)的值。

其中A的值与第(3)题相同。

命令及运行结果(建议在命令窗口中逐条输入命令):

三、实验提示

四、教程:

第6章MATLAB数值计算(1/2)

6.1数据处理与多项式计算p139

6.1.1数据统计与分析

1.求最大元素(max)和最小元素(min)

(1)求向量的最大元素和最小元素

求向量X的最大元素:

Øy=max(X):

返回X的最大元素,存入y。

Ø[y,I]=max(X):

返回X的最大元素,存入y,最大元素的序号存入I。

若X中包含复数元素,则按模取最大值。

min类似。

例求向量x的最大值p139

x=[-43,72,9,16,23,47];

y=max(x)

[y,l]=max(x)

z=min(x)

[z,k]=min(x)

y=

72

y=

72

l=

2

z=

-43

z=

-43

k=

1

(2)求矩阵的最大元素和最小元素

求矩阵A的最大元素:

Ømax(A):

返回一个行向量,第i个元素是A的第i列上的最大值。

Ø[Y,U]=max(A):

行向量Y记录A的每列的最大值,行向量U记录每列最大值的行号。

Ømax(A,[],dim):

dim取1或2。

取1时,与max(A)相同;取2时,返回一个列向量,其第i个元素是A的第i行上的最大值。

min类似。

例6.1求矩阵的最大和最小元素p140

求矩阵A的每行及每列的最大和最小元素,并求整个矩阵的最大和最小元素。

A=[13-5678;

2563-235;

7825563;

10-1];

max(A,[],2)%对行

min(A,[],2)%对行

max(A)%对列

min(A)%对列

max(max(A))%对矩阵

min(min(A))%对矩阵

ans=

78

63

563

1

ans=

-56

-235

25

-1

ans=

7863563

ans=

1-56-235

ans=

563

ans=

-235

(3)两个向量或矩阵对应元素的比较

函数max和min还能对两个同型的向量或矩阵进行比较。

ØU=max(A,B):

U是与A,B同型的向量或矩阵,每个元素等于A,B对应元素的较大者。

ØU=max(A,n):

n是一个标量,U是与A同型的向量或矩阵,每个元素等于A对应元素和n中的较大者。

min类似。

例max用于矩阵的比较p141

求两个2×3矩阵所有同一位置上的较大元素构成的新矩阵p。

x=[456;148]

y=[175;457]

p=max(x,y)

q=max(x,4)

x=

456

148

y=

175

457

p=

476

458

q=

456

448

2.求平均值(mean)和中值(median)

●求数据序列平均值指的是算术平均值。

●中值是指:

(数据序列,指按升序或降序)

Ø数据序列为奇数个时,中值的大小恰好处于数据序列各个值的中间。

Ø数据序列为偶数个时,中值等于中间的两项之平均值。

注:

中值与存放位置的顺序无关。

>>median([12543])

ans=

3

>>median([125436])

ans=

3.5000

设X是向量,A是矩阵,求平均值和中值:

Ømean(X):

返回向量X的算术平均值。

Ømedian(X):

返回向量X的中值。

Ømean(A):

返回一个行向量,其第i个元素是A的第i列的算术平均值。

Ømean(A,dim):

dim为1,对各列操作,等同于mean(A);

dim为2,对各行操作。

median类似。

例求向量的平均值和中值p142

y=[9-256712];

mean(y)

median(y)

%中值为6和7的平均值,与存放位置无关

%y按升序排序[-2567912]

ans=

6.1667

ans=

6.5000

3.求和(sum)与求积(prod)

设X是向量,A是矩阵,调用格式:

Øsum(X):

返回X各元素的和。

Øsum(A):

返回一个行向量,其第i个元素是A的第i列的元素和。

(对列)

Øsum(A,dim):

dim为1,对各列操作,等同于sum(A);

dim为2,对各行操作。

prod类似。

例6.2求矩阵A的每行元素的乘积和全部元素的乘积p142

A=[1234;

5678;

9101112];

S=prod(A,2)%对行

prod(S)%对矩阵

prod(A(:

))

S=

24

1680

11880

ans=

479001600

ans=

479001600

4.累加和(cumsum)与累乘积(cumprod)

设U=u1,u2,…,un)是向量,且

V为U的累加和向量。

W为U的累乘积向量。

设X是向量,A是矩阵,调用格式:

Øcumsum(X):

返回向量X累加和向量。

Øcumsum(A):

返回一个与A同型的矩阵,其第i列是A的第i列的累加和向量。

Øcumsum(A,dim):

dim为1,对各列操作,同cumsum(A);

dim为2,对各行操作。

cumprod类似。

例6.3求累乘积X=(1!

2!

…,10!

)p143

>>X=cumprod(1:

10)

X=

Columns1through5

12624120

Columns6through10

7205040403203628803628800

5.标准方差(std)

数据序列x1,x2,…xN的标准方差为:

其中

设X是向量,A是矩阵,调用格式:

Østd(X):

返回一个标准方差σ1。

Østd(A):

返回一个行向量,它的各个元素是矩阵A各列的标准方差σ1。

(按列)

ØY=std(A,flag,dim):

●dim=1时,按列。

dim=2时,按行。

●flag=0时,求σ1。

flag=1时,求σ2。

●缺省时,flag=0,dim=1。

例6.4标准方差p143

对二维矩阵x,从不同维方向求标准方差。

x=[456;148];

y1=std(x,0,1)%σ1,对列

x1=mean(x);%验证

X1=x-ones(2,1)*x1;

sqrt(sum(X1.^2)/1)

y2=std(x,1,1)%σ2,对列

sqrt(sum(X1.^2)/2)

y3=std(x,0,2)%σ1,对行

x2=mean(x,2);

X2=x-x2*ones(1,3);

sqrt(sum(X2.^2,2)/2)

y4=std(x,1,2)%σ2,对行

sqrt(sum(X2.^2,2)/3)

y1=

2.12130.70711.4142

ans=

2.12130.70711.4142

y2=

1.50000.50001.0000

ans=

1.50000.50001.0000

y3=

1.0000

3.5119

ans=

1.0000

3.5119

y4=

0.8165

2.8674

ans=

0.8165

2.8674

6.相关系数(corrcoef)

对于两组数据序列xi,yi(i=1,2,...,n),两组数据的相关系数为:

其中

调用格式:

Øcorrcoef(A):

返回从矩阵A形成的一个相关系数矩阵Rn×n,n为A的列数,Rij为第i,j列的相关系数。

Øcorrcoef(X,Y):

X,Y是向量,若X,Y是行向量则转换为列向量,等同于corrcoef([X,Y])。

例6.5均值、标准方差和相关系数矩阵p144

生成满足正态分布的10000×5随机矩阵,然后求各列元素的均值和标准方差,再求这5列随机数据的相关系数矩阵。

X=randn(10000,5);%标准正态分布随机数

M=mean(X)

D=std(X)

R=corrcoef(X)

M=

0.01220.0015-0.00090.0070-0.0110

D=

1.00010.98861.00571.00120.9992

R=

1.0000-0.01000.01890.00340.0057

-0.01001.00000.01780.00350.0015

0.01890.01781.00000.0274-0.0053

0.00340.00350.02741.0000-0.0100

0.00570.0015-0.0053-0.01001.0000

7.排序(sort)

Øsort(X):

返回一个对向量X中的元素按升序排列的新向量。

Ø[Y,I]=sort(A,dim,mode):

●dim=1/2,按矩阵A的列/行排序,默认取1。

●mode='ascend'/'descend',按升序/降序,默认取'ascend'。

●Y是排序后的矩阵。

●I记录Y中的元素在A中位置。

(下标排列)

例6.6对二维矩阵做各种排序p145

A=[1,-8,5;

4,12,6;

13,7,-13];

sort(A)%按列,升序

sort(A,2,'descend')%按行,降序

[X,I]=sort(A)

ans=

1-8-13

475

13126

ans=

51-8

1264

137-13

X=

1-8-13

475

13126

I=

113

231

322

6.1.2数据插值p146

y=f(x)的n组数据

x

x1x2...xn

f(x)

y1y2...yn

数据插值:

构造一个光滑函数y=g(x),使得f(xi)=g(xi)(i=1,2,...,n)。

●按自变量个数划分:

Ø一维插值(interp1)

Ø二维插值(interp2)

Ø多维插值(interp3,interpn)

●按插值函数划分:

Ø线性插值

Ø多项式插值

Ø样条插值(spline)

1.一维数据插值(interp1)

根据X,Y的值,计算函数在X1处的值Y1。

Y1=interp1(X,Y,X1,'method')

●X,Y是两个等长的已知向量,分别描述采样点和样本值。

●X1是一个向量或标量,描述欲插值的点。

●Y1是一个与X1等长的插值结果。

●method是插值方法:

Ø'linear':

线性插值(默认方法)

Ø'nearest':

最近点插值

Ø'cubic':

3次多项式插值

Ø'spline':

3次样条插值

注:

X1取值不能超出X的范围,否则出现“NaN”错误。

◆3次样条插值函数:

Y1=spline(X,Y,X1)

等同于Y1=interp1(X,Y.X1,'spline')

例6.7(一维插值)计算概率积分p146

给出概率积分:

的数据表,用不同的插值方法计算f(0.472)。

x

0.46

0.47

0.48

0.49

f(x)

0.4846555

0.4937542

0.5027498

0.5116683

x=0.46:

0.01:

0.49;

y=[0.4846555,0.4937542,0.5027498,0.5116683];

formatlong

f=inline('2/sqrt(pi)*exp(-x.^2)');%内联函数

quad(f,0,0.472)%数值积分,准确值

interp1(x,y,0.472)

interp1(x,y,0.472,'nearest')

interp1(x,y,0.472,'spline')

interp1(x,y,0.472,'cubic')

formatshort

ans=

0.495552809375116(准确值)

ans=

0.495553320000000

ans=

0.493754200000000

ans=

0.495560736000000

ans=

0.495561119712056

例6.8(一维插值)离散数据插值p147

某检测参数f随时间t的采样结果如表,用数据插值法计算

t=2,7,12,17,22,27,32,37,42,47,52,57

时的f值。

t

051015202530

f

3.10252.256879.51835.92968.84136.25237.9

t

35404550556065

f

6152.76725.36848.36403.56824.77328.57857.6

X=2:

5:

57;

T=0:

5:

65;

F=[3.1025,2.256,879.5,1835.9,2968.8,4136.2,5237.9,...

6152.7,6725.3,6848.3,6403.5,6824.7,7328.5,7857.6];

F1=interp1(T,F,X)

F2=interp1(T,F,X,'nearest')

F3=interp1(T,F,X,'spline')

F4=interp1(T,F,X,'cubic')

2.二维数据插值(interp2)

Z1=interp2(X,Y,Z,X1,Y1,'method')

●X,Y是两个向量,分别描述两个参数的采样点。

●Z是与参数采样点对应的函数值。

●X1,Y1是两个向量或标量,描述欲插值的点。

●Z1是根据相应的插值方法得到的插值结果。

●method的取值与一维插值函数相同。

●X,Y,Z也可以是矩阵形式。

注:

X1,Y1的取值不能超出X,Y的给定范围,否则,给出“NaN”错误。

例6.9(二维插值)计算z=x2+y2p148

设z=x2+y2,对z函数在[0,1]×[0,2]区域内进行插值。

x=0:

0.1:

1;y=0:

0.2:

2;

[X,Y]=meshgrid(x,y);%产生自变量网格坐标

Z=X.^2+Y.^2;%求对应的函数值

interp2(x,y,Z,0.5,0.5)%在(0.5,0.5)点插值

%在(0.5,0.4)点和(0.6,0.4)点插值

interp2(x,y,Z,[0.50.6],0.4)

%在(0.5,0.4)点和(0.6,0.5)点插值

interp2(x,y,Z,[0.50.6],[0.40.5])

%下一命令在(0.5,0.4),(0.6,0.4),(0.5,0.5)

%和(0.6,0.5)各点插值

interp2(x,y,Z,[0.50.6]',[0.40.5])

interp2(x,y,Z,[0.50.6]',[0.40.5],'spline')

例6.10(二维插值)3次多项式插值p148

某实验对一根长10米的钢轨进行热源的温度传播测试。

用x表示测量点距离(m),用h表示测量时间(s),用T表示测得各点的温度(℃),测量结果如下。

Tx

h

02.557.510

0

30

60

9514000

884832126

6764544841

试用3次多项式插值求出在一分钟内每隔10s、钢轨每隔0.5米处的温度。

x=0:

2.5:

10;

h=[0:

30:

60]';

T=[95,14,0,0,0;88,48,32,12,6;67,64,54,48,41];

xi=[0:

0.5:

10];

hi=[0:

10:

60]';

temps=interp2(x,h,T,xi,hi,'cubic');

mesh(xi,hi,temps);

6.1.3曲线拟合p150

1.曲线拟合与最小二乘原理

y=f(x)的n组数据

x

x1x2...xn

f(x)

y1y2...yn

Ø曲线拟合

构造函数y=g(x)去逼近f(x),使误差

δi=g(xi)-f(xi)(i=1,2,...,n)

在某种意义上达到最小。

Ø曲线拟合的最小二乘原理

构造m(m≤n)次多项式

p(x)=a1xm+a2xm-1+...+amx+am+1

使得

达到最小。

2.曲线拟合的实现

用polyfit函数来求得最小二乘拟合多项式的系数,再用polyval函数按所得的多项式计算所给出的点上的函数近似值。

调用格式:

[P,S]=polyfit(X,Y,m)

根据采样点X和Y,产生一个m次多项式P及其在采样点的误差向量S。

ØX,Y是两个等长的向量。

ØP是一个长度为m+1的向量,P的元素为多项式系数。

例6.11曲线拟合p150

用一个三次多项式在[0,2π]内逼近sinx。

X=linspace(0,2*pi,50);

Y=sin(X);

P=polyfit(X,Y,3)

P=

0.0912-0.85961.8527-0.1649

X=linspace(0,2*pi,20);

Y=sin(X);Y1=polyval(P,X)

plot(X,Y,':

o',X,Y1,'-*')

legend('sinx','多项式')

6.1.4多项式计算p151

若n次多项式表示为:

p(x)=a0xn+a1xn-1+...+an-1x+an

则在MATLAB中,p(x)表示为向量形式:

[a0,a1,...,an-1,an]

1.多项式的四则运算

(1)多项式的加减运算

Ø加减运算就其所对应的系数向量的加减运算。

Ø若多项式的次数不同,则应把低次的多项式系数不足的高次项用0补足。

(2)多项式乘法运算

conv(P1,P2):

用于求多项式P1和P2的乘积。

这里,P1、P2是两个多项式系数向量。

(3)多项式除法

[Q,r]=deconv(P1,P2):

用于对多项式P1和P2作除法运算。

ØQ返回多项式P1除以P2的商式。

Ør返回P1除以P2的余式。

ØQ和r仍是多项式系数向量。

deconv是conv的逆函数,即有

P1=conv(P2,Q)+r。

例6.12多项式四则运算p152

f(x)=3x5-5x4+2x3-7x2+5x+6

g(x)=3x2+5x-3

①求f(x)+g(x)、f(x)-g(x)

②求f(x)×g(x)、f(x)/g(x)

f=[3,-5,2,-7,5,6];

g=[3,5,-3];

g1=[0,0,0,g];

f+g1

f-g1

conv(f,g)

[Q,r]=deconv(f,g)

conv(g,Q)+r

ans=

3-52-4103

ans=

3-52-1009

ans=

90-284-266415-18

Q=

1.0000-3.33337.2222-17.7037

r=

0000115.1852-47.1111

ans=

3.0000-5.00002.0000-7.00005.00006.0000

2.多项式的导函数

Øp=polyder(P):

求多项式P的导函数

Øp=polyder(P,Q):

求P·Q的导函数

Ø[p,q]=polyder(P,Q):

求P/Q的导函数,导函数的分子存入p,分母存入q。

参数P,Q是多项式的向量表示,结果p,q也是多项式的向量表示。

例6.13求有理分式的导数p152

P=[3,5,0,-8,1,-5];

Q=[10,5,0,0,6,0,0,7,-1,0,-100];

[p,q]=po

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2