实验08数据处理及多项式计算第6章.docx
- 文档编号:15201334
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:30
- 大小:199.83KB
实验08数据处理及多项式计算第6章.docx
《实验08数据处理及多项式计算第6章.docx》由会员分享,可在线阅读,更多相关《实验08数据处理及多项式计算第6章.docx(30页珍藏版)》请在冰点文库上搜索。
实验08数据处理及多项式计算第6章
附参考答案:
实验08数据处理与多项式计算
(第6章MATLAB数值计算)
一、实验目的
1.掌握数据统计和分析的方法。
2.掌握数值插值与曲线拟合的方法及其应用。
3.掌握多项式的常用运算。
二、实验内容
1.检验一组随机数的性质
利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:
A=rand(30000,1);
(1)均值和标准方差。
mean(A),std(A),
(2)最大元素和最小元素。
max(A),min(A),
(3)大于0.5的随机数个数占总数的百分比。
sum(A>0.5)/30000,
命令及运行结果(建议在命令窗口中逐条输入命令):
2.学生成绩表处理
将100个学生5门功课的成绩存入矩阵P中,进行如下处理:
P=round(45+(95-45)*rand(100,5));
(1)分别求每门课的最高分、最低分及相应学生序号。
[M5,K5]=max(P),[m5,k5]=min(P),
(2)分别求每门课的平均分和标准方差。
mean(P),std(P),
(3)5门课总分的最高分、最低分及相应学生序号。
[M1,K1]=max(sum(P,2)),[m1,k1]=min(sum(P,2)),
(4)将5门课总分按从大到小顺序存入zcj中,相应学生序号存入xsxh。
[zcj,xsxh]=sort(sum(P,2),'descend');
提示:
上机调试时,为避免输入学生成绩的麻烦,可用取值范围在[45,95]之间的随机矩阵来表示学生成绩。
命令及运行结果(建议在命令窗口中逐条输入命令):
>>P=round(45+(95-45)*rand(100,5));
>>[M5,K5]=max(P)%-------------------------
(1)
M5=
9495949593
K5=
1218265916
>>[m5,k5]=min(P)
m5=
4645464645
k5=
9923443348
>>disp(mean(P));%------------------------
(2)
71.430068.330070.230068.910069.6500
>>disp(std(P));
14.872014.499813.734014.513712.8844
>>S=sum(P,2);%----------------------------(3)
>>[M1,K1]=max(S)
M1=
401
K1=
85
>>[m1,k1]=min(S)
m1=
268
k1=
35
>>[zcj,xsxh]=sort(S,'descend');%-------(4)
>>disp([zcj,xsxh]);
40185
40068
40093
39115
39097
38926
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)。
程序:
clc;
h=6:
2:
18;
t1=[18.0,20.0,22.0,25.0,30.0,28.0,24.0];
t2=[15.0,19.0,24.0,28.0,34.0,32.0,30.0];
H=6.5:
2:
17.5;
T1=spline(h,t1,H);%interp1(h,t1,H,'spline')
T2=spline(h,t2,H);%interp1(h,t2,H,'spline')
disp(num2str([H;T1;T2]));
运行结果:
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]区间的函数曲线。
程序:
clc;
x=1:
10:
101;
lgx=[0,1.0414,1.3222,1.4914,1.6128,1.7076,1.7853,1.8513,1.9085,1.9510,2.0043];
P=polyfit(x,lgx,5);%求5次拟合多项式的系数和常数项
X=linspace(1,101,100);%变量取值
lgX=log10(X);%lgx函数求值
PX=polyval(P,X);%5次拟合多项式p(x)函数求值
plot(X,lgX,X,PX);
legend('lgx','p(x)');%图例标注
结果图形:
5.多项式计算
有3个多项式P1(x)=x4+2x3+4x2+5,P2(x)=x+2,P3(x)=x2+2x+3,试进行下列操作:
P1=[1,2,4,0,5];P2=[1,2];P3=[1,2,3];
(1)求P(x)=P1(x)+P2(x)P3(x)。
P=P1+[0,conv(P2,P3)],
(2)求P(x)的根。
roots(P),
(3)当x取矩阵A的每一元素时,求P(x)的值。
其中:
polyval(P,A),
(4)当以矩阵A为自变量时,求P(x)的值。
其中A的值与第(3)题相同。
polyvalm(P,A),
命令及运行结果(建议在命令窗口中逐条输入命令):
>>P1=[1,2,4,0,5];P2=[1,2];P3=[1,2,3];
>>P23=conv(P2,P3)
P23=
1476
>>P=P1+[0,P23]%补0对齐
P=
138711
>>roots(P)
ans=
-1.3840+1.8317i
-1.3840-1.8317i
-0.1160+1.4400i
-0.1160-1.4400i
>>A=[-1,1.2,-1.4;0.75,2,3.5;0,5,2.5];
>>polyval(P,A)
ans=
1.0e+03*
0.01000.03820.0125
0.02230.09700.4122
0.01101.24600.1644
>>polyvalm(P,A)
ans=
1.0e+03*
0.0076-0.1281-0.0775
0.13281.39001.1644
0.18241.73641.5198
三、实验提示
四、教程:
第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、钢轨
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 08 数据处理 多项式 计算