实验08 数据处理与多项式计算第6章.docx
- 文档编号:15030479
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:25
- 大小:138.43KB
实验08 数据处理与多项式计算第6章.docx
《实验08 数据处理与多项式计算第6章.docx》由会员分享,可在线阅读,更多相关《实验08 数据处理与多项式计算第6章.docx(25页珍藏版)》请在冰点文库上搜索。
实验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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验08 数据处理与多项式计算第6章 实验 08 数据处理 多项式 计算