MATLAB论文 1245350张丽娜.docx
- 文档编号:30489664
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:24
- 大小:158.33KB
MATLAB论文 1245350张丽娜.docx
《MATLAB论文 1245350张丽娜.docx》由会员分享,可在线阅读,更多相关《MATLAB论文 1245350张丽娜.docx(24页珍藏版)》请在冰豆网上搜索。
MATLAB论文1245350张丽娜
《MATLAB语言》课程论文
基于MATLAB的曲线拟合在
物理实验中的运用
姓名:
张丽娜
学号:
12010245350
专业:
电子信息工程
班级:
电子信息工程一班
指导老师:
汤全武
学院:
物理电气信息学院
完成日期:
2011/12/22
基于MATLAB的曲线拟合在物理实验中的运用
(张丽娜120102453502010级电子信息工程1班)
[摘要]在物理实验中,数据分析是实验的重要组成环节,也是得到实验结论的关键依据。
但是我们常用的作图法对人的主观因素依然性太大,会引入较大误差,从而影响整个物理实验。
而MATLAB语言拥有强大的图形拟合绘制功能,正是处理实验数据很好的工具,既能对实验数据进行求解,又能拟合绘制有关曲线,非常方便实用。
[关键词]MATLAB曲线拟合实验数据
一、问题的提出
在基础物理实验中,数据处理是物理实验的重要组成部分和关键环节,也是评价实验结果和得到结论的一个重要指标.我们常用的数据处理的方法有列表法、作图法、逐差法等,这些方法虽然有优点,但是它们依靠人的主观因素来完成,因此会引入较大的误差。
而且在实验中我们获取的数据大多为随机数据,它们是由一些离散的数据组成,单就获得的原始数据本身来说有时候根本反映不出事物的本质。
如何从这些离散的数据中找出数据较高精度的变化规律?
随着计算机技术的普及,大量计算软件应运而生。
MATLAB软件是由美国Mathwork公司推出的一种交互式、面向对象的程序设计语言,具有高性能数值计算的高级算法,特别适合矩阵代数领域;有大量事先定义的数学函数,并且有很强的用户自定义函数的能力;有强大的绘图功能以及具有教育、科学和艺术学的图解和可视化的二维、三维图等。
因此MATLAB已经应用于诸多涉及数据处理的领域。
用Matlab进行数据的拟合可以形象直观地发现所得数据体现出来的规律性。
在进行分析时,通常可采用曲线拟合法,曲线拟合法的目的是寻找一条光滑曲线,即对观测的几个变量进行多次观测从而求出反映变量之间的关系的相对函数关系,它在某种准则下最佳地拟合数据。
二、曲线拟合
曲线拟合是用连续曲线近似地刻画或比拟平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。
在科学实验或社会活动中,通过实验或观测得到量x与y的一组数据对(xi,yi),i=1,2,…,m,其中各xi是彼此不同的。
人们希望用一类与数据的规律相吻合的解析表达式y=f(x)来反映量x与y之间的依赖关系,即在一定意义下"最佳"地逼近或拟合已知数据。
f(x)称作拟合函数,f(x)的图像称作拟合曲线。
在曲线拟合时,不要求曲线f(x)严格地经过所有的数据点(xi,yi),只要求拟合函数f(x)在xi处的不全为零。
1.线性最小二乘法曲线拟合及其MATLAB的实现
线性最小二乘曲线拟合的含有待定参数的函数形式为:
(1)
其中rk(x)为事先选定的一组已知函数,ak(k=1,2,…,n,m<n)为待定系数。
为寻求a1,a2,…,am使反映偏离程度的函数
(a1,a2,…,am)最小,只需要利用极值的必要条件
,(k=0,…,m),得到关于a1,a2,…,am的线性方程组:
(2)
该方程组可简化为RTRA=RTY,其中:
(3)
,
(4)
当{r1(x),…,rm(x)}线性无关时,RTR可逆,方程组RTRA=RTY有唯一解。
运用MATLAB进行线性最小二乘法曲线拟合可按如下步骤进行,第一步用所给的数据作出散点图上,通过图表来判断其数学形式;第二步求数学形式中的待定参数;第三步得数学模型,绘制拟合曲线。
接下来用一个问题进一步说明如何运用MATLAB进行线性最小二乘法曲线拟合。
问题1:
给出下面表1中的一组实验数据点(xi,yi),试用线性最小二乘法求曲线拟合曲线,作出拟合曲线。
表1问题1的实验数据
xi
7.5
6.8
5.1
4.5
3.6
3.4
yi
359.26
165.6
59.17
41.66
25.92
22.37
xi
2.6
2.5
2.1
1.5
2.7
3.6
yi
13.47
12.87
11.87
6.69
14.87
24.22
分析:
(1)首先根据给出的数据点,用MATLAB作出散点图。
MATLAB程序如下:
clearall%删除工作空间中的所有变量
x=[7.5,6.8,5.10,4.5,3.6,3.4,2.6,2.5,2.1,1.5,2.7,3.6];%输入xi
y=[359.26,165.60,59.17,41.66,25.92,22.37,13.47,12.87,11.87,6.69,14.87,24.22];%输入yi
plot(x,y,'r*')%用红色的星号画出(xi,yi)各个数据点
legend('数据点(xi,yi)')%加图例说明
xlabel('x');ylabel('y')%加x轴和y轴说明
title('例1的数据点(xi,yi)的散点图')%加图像的标题
运行结果如图1所示。
图1问题1数据的散点图
(2)根据数据的散点图1,判断此曲线的拟合曲线形式应为
(5)
其中a,b为待定系数。
令Y=lny,A=lna,B=b,则式(5)可化为Y=A+Bx,利用MATLAB程序求解出待定系数a,b。
MATLAB程序如下:
clearall%删除工作空间中的所有变量
x=[7.5,6.8,5.10,4.5,3.6,3.4,2.6,2.5,2.1,1.5,2.7,3.6];%输入xi
y=[359.26,165.60,59.17,41.66,25.92,22.37,13.47,12.87,11.87,6.69,14.87,24.22];%输入yi
Y=log(y);%将lny的值赋给变量Y
a=polyfit(x,Y,1);%得到一次二项式Y=Bx+A的系数矩阵
B=a
(1);%将系数矩阵中的第一项赋给B
A=a
(2);%将系数矩阵中中的第二项赋给A
b=B%将B的值赋给b
a=exp(A)%将ea的值赋给a
得到结果如下:
b=
0.6241
a=
2.7039
(3)用MATLAB作出拟合曲线y=2.7039e0.6241x的图像。
MATLAB程序如下:
X=8:
-0.01:
1;%产生一个由8开始到1结束,以步长0.01自减的行向量
Y=a*exp(b.*X);%将2.7039*exp(0.6241*x)的值赋给Y
plot(x,y,'r*',X,Y,'b-')%用红色的星号画出(xi,yi)各个数据点,用蓝色的实线画出拟合曲线
xlabel('x')%加x轴说明
ylabel('y')%加y轴说明
legend('数据点(xi,yi)','拟合曲线y=a*e^(b*x)')%加图例说明\
title('例一的拟合曲线')%加图像的标题
运行结果如图2所示。
图2问题1的拟合曲线
2.多项式曲线拟合及其MATLAB的实现
面对一组数据(xi,yi),i=1,2,…,n,用线性最小二乘法作曲线拟合时,如果选取一组函数r1(x),…,rm(x)为1,x,x2,…,xm(m (6) 用MATLAB作线性最小二乘法拟合的多项式拟合有直接可用的函数程序polyfit,其调用格式为: [P,S]=polyfit(X,Y,m) 函数根据采样点X和采样点函数值Y,产生一个m次多项式P及其在采样点的误差向量S。 其中X,Y是两个等长的向量,P是一个长度为m+1的向量,P的元素为多项式系数。 再用函数程序polyval可以求出代数多项式的值,其调用格式为: Y=polyval(P,x) 若x为一数值,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵的每个元素求其多项式的值。 接下来用一个问题进一步说明如何运用MATLAB进行多项式曲线拟合。 问题2: 给出一组数据(xi,yi)列入表2中,试求其拟合曲线,并作出曲线。 表2问题2的数据 xi -2.9 -1.9 -1.1 -0.8 0 0.1 1.5 2.7 3.6 yi 52.94 33.68 20.88 16.92 8.79 8.98 4.17 9.12 19.88 分析: (1)首先根据表2给出的数据点,用MATLAB程序画出散点图。 MATLAB程序如下: clearall%删除工作空间中的所有变量 x=[-2.9,-1.9,-1.1,-0.8,0,0.1,1.5,2.7,3.6];%输入xi y=[52.94,33.68,20.88,16.92,8.79,8.98,4.17,9.12,19.88];%输入yi plot(x,y,'r*')%用红色的星号画出(xi,yi)各个数据点 legend('数据点(xi,yi)')%加图例说明 xlabel('x')%加x轴说明 ylabel('y')%加y轴说明 title('例2的数据点(xi,yi)的散点图')%加图像的标题 运行结果如图3所示。 图3问题2的数据散点图 (2)因为数据的散点图4的变化趋势与二次多项式很接近,所以选取一组函数1,x,x2,令 (7) 其中a,b,c是待定系数。 利用MATLAB程序求解出待定系数。 MATLAB程序如下: clearall%删除工作空间中的所有变量 x=[-2.9,-1.9,-1.1,-0.8,0,0.1,1.5,2.7,3.6];%输入xi y=[52.94,33.68,20.88,16.92,8.79,8.98,4.17,9.12,19.88];%输入yi A=polyfit(x,y,2);%得到二次多项式f(x)=ax2+bx+c的系数矩阵 a=A (1)%将系数矩阵中的第一项赋给a b=A (2)%将系数矩阵中的第二项赋给b c=A(3)%将系数矩阵中的第三项赋给c 得到结果如下: a= 2.7788 b= -7.2433 c= 9.2175 (3)用MATLAB作出拟合曲线f(x)=2.7788x2-7.2433x+9.2175的图像。 MATLAB程序如下: f=a.*x.^2+b.*x+c;%将2.7788x^2-7.2433x+9.2175的值赋值给f plot(x,y,'r*',x,f,'b-')%用红色星号绘制数据点,用蓝色实线绘制拟合曲线 legend('数据点(xi,yi)','拟合曲线y=f(x)')%加图例说明 xlabel('x')%加x轴说明 ylabel('y')%加y轴说明 title('例2的拟合曲线')%加图像标题 运行结果如图4所示。 图4问题2的拟合曲线 3.非线性最小二乘法曲线拟合及其MATLAB的实现 在最小二乘曲线拟合中,如果待定参数不能全部以线性形式出现,如指数拟合函数 ,这便是非线性最小二乘曲线拟合。 非线性最小二乘曲线拟合与线性最小二乘曲线拟合的原理没有什么区别,只是过程较为繁杂。 在MATLAB中实现非线性最小二乘曲线拟合有三个常用的命令。 (1)lsqcurvefit()命令,其使用格式为 x=lsqcurvefit(fun,x0,xdata,ydata) 其中fun是要拟合的非线性函数,x0是初始参数,xdata与ydata是拟合点的数据,该函数最终返回系数矩阵。 (2)nlinfit()命令,其应用格式为 beta=nlinfit(x,y,fun,beta0) 其中x和y是拟合点数据,fun是被回归(拟合)的函数,beat0是初始参数。 (3)lsqnonlin()命令,其应用格式为 x=lsqnonlin(fun,x0) 其中fun的定义与lsqnonlin()函数中fun的定义有差别,x0仍为初始参数向量,将输出的系数结果放在变量x中。 因为大学物理实验中有时并不知道数据函数原型,所以较少运用以上的命令程序。 三、MATLAB程序在大学物理实验中的运用 “物理学”是一门以实验为基础的科学。 通过大学物理实验教学,不仅能帮助学生正确理解物理规律,而且有利于培养学生的科学素质、创新意识和动手能力。 大学物理实验其根本出发点就在于通过对实验所获取的数据进行处理,求解物理规律中各相关物理量之间的函数关系,分析各相关物理量之间的函数关系。 在实验的过程中,我们能比理论课更胜一筹地理解它们真正的物理意义,更有利于我们掌握知识。 在实验数据处理过程中,对于那些数据量少的、计算简单的实验,我们还勉强可以用老一套的方式,用同一个公式反复进行数据处理,手工描点绘制图像,并根据所绘制出的图形,得出我们所需要的实验结论,但整个过程复杂繁琐,且手绘图像所得的效果并不理想;遇到数据量大,图像较难绘制时,利用MicrosoftExcel我们可以轻松处理数据,得出图像,但Excel只能将各个数据点用线连接起来,得到大致的图像,并不准确。 但利用MATLAB程序我们可以简单有效的解决以上的问题。 在实验数据处理过程中,实验中的一组或多组测量数据在MATLAB中可作为矩阵进行运算,利用矩阵运算我们可以同时对一组或多组实验数据进行加、减、乘、除、乘方等基本运算。 在实验数据误差分析时,MATLAB程序为我们提供一系列实验数据统计函数,通过运用这些函数,可以完成实验数据的基本统计分析,例如求多次测量的平均值的mean函数、求测量数据中的最小、最大的min与max函数,求实验中的一组或多组数据和的sum函数、求一组或多组实验数据的标准差std函数等。 在绘制实验数据所反映出来的图像时,MATLAB中有非常方便的绘图、拟合曲线的函数。 它克服了传统的手工绘图费时费力,描点、画圆滑曲线时精度不高的缺点,克服了MicrosoftExcel只描点连线,并不能得到拟合曲线的缺点。 四、曲线拟合在大学物理实验中的运用 MATLAB程序的曲线拟合在大学物理实验中的运用很多,在这里只简单说明三个实验数据处理的MATLAB运用。 1.半导体热敏电阻与温度的关系 半导体热敏电阻是用对热极很敏感的半导体材料制成的电阻,它的电阻值随温度的变化而剧烈的变化;它是一种电压、电流不符合欧姆定律的非线性电阻。 若已知一半导体热敏电阻与温度的关系为 ,R0和B为待定系数,T为热力学温度。 通过实验我们得到R和t的关系如表3,请证明上述结论,并估算出该电阻在33.7℃的情况下的电阻值。 表3半导体热敏电阻的电阻与温度的关系 温度t/℃ 20 25 30 35 40 45 50 55 60 65 70 电阻R/Ω 3398 1869 1530 1167 934 790 737 631 536 462 399 分析: (1)首先根据表3给出的数据点,用MATLAB程序画出散点图。 MATLAB程序如下: clearall%删除工作空间中的所有变量 t=[20,25,30,35,40,45,50,55,60,65,70];%输入温度t R=[3398,1869,1530,1167,934,790,737,631,536,462,399];%输入温度R plot(t,R,'rx')%用红色的x号画出(t,R)的各个数据点 legend('数据点(t,R)')%加图例说明点的意义 xlabel('t')%说明x轴代表温度t ylabel('R')%说明y轴代表电阻R title('半导体热敏电阻的电阻与温度实验测出的数据点')%图像的标题 运行结果如图5所示。 图5半导体热敏电阻与温度的关系实验测出的数据点 (2)由MATLAB程序绘制出的曲线可以表明半导体热敏电阻的电阻与温度的关系符合 的关系。 然后令 , , ,则上式可化为 ,利用MATLAB程序求解出待定系数R0,B。 MATLAB程序如下: Y=log(R);%将lnR的值赋给Y T=1./t;%用1除以t中的各个值得到一个新的向量,并赋值给T A=polyfit(T,Y,1);%得到一次二项式Y=bT+a的系数矩阵 b=A (1)%将系数矩阵的第一项赋值给b,并输出 a=exp(A (2))%将系数矩阵的第二项赋值给a,并输出 得到结果如下: b= 56.6560 a= 212.7084 即关系式中参数R0和B的值为R0=212.7084,B=56.6560。 (3)用MATLAB程序作出R=212.7084×e56.6560/t的拟合曲线图像。 MATLAB程序如下: X=20: 1: 70;%产生一个由20开始到70,以1递增的行向量 Y=a*exp(b.*(1./X));%将212.7084×exp(56.6560/t)赋值给Y plot(t,R,'rx',X,Y,'b-')%用红色的x号标记(t,R)的实验数据点,用蓝色的实线来绘制拟合曲线 xlabel('t')%说明x轴表示温度t ylabel('R')%说明y轴表示电阻值 legend('数据点(t,R)','拟合曲线y=a*e^(b*(1/t)')%加图标说明图中各项的意义 title('根据实验数据所得出的拟合曲线')%加图像的标题 运行结果如图6所示。 图6半导体热敏电阻的电阻与温度的拟合曲线 (4)根据MATLAB计算出的半导体热敏电阻与温度的关系式,求出半导体热敏电阻在33℃的情况下的电阻值。 MATLAB程序如下: x=33.7;%将33.7赋值给x变量 Y=a*exp(b.*(1./x))%求解出33时的电阻值 plot(t,R,'rx',X,Y,'b-',x,Y,'k*')%用红色的x号标记(t,R)的实验数据点,用蓝色的实线来绘制拟合曲线,用黑色星号标记热敏电阻在33度时的电阻值 legend('数据点(t,R)','拟合曲线y=a*e^(b*(1/t)')%加图像的图例说明 text(x,Y,'半导体热敏电阻在33.7度时的电阻')%在(33.7,1184.1)处加文字说明 运行结果如下: Y= 1.1427e+003 即此半导体热敏电阻在33.7℃的是的电阻值为1142.7Ω。 输出图像如图7所示。 图733℃时的电阻值在图像上的位置 2.硅光探测器的光强特性研究 硅光电池是一种典型太阳能电池,它不需要外加电源而能直接将太阳能辐射的光能转化为电能,是一种很重要的光电探测原件。 本实验主要研究硅光电池的开路电压、短路电流与光强的关系,从而对硅光电池的特性有一定的了解。 实验中得到硅光探测器开路电压(Uoc)与光强(I)关系数据如下表: 表4硅光探测器开路电压与光强关系 I(uA) 10 20 30 40 50 60 100 140 180 220 260 Uoc(mV) 0.148 0.312 0.398 0.448 0.489 0.507 0.601 0.602 0.601 0.603 0.602 实验中得到硅光探测器短路电流(Isc)与光强(I)关系数据如下表: 表5硅光探测器短路电流与光强的关系 I(uA) 10 20 30 40 50 60 100 140 180 220 260 Isc(mA) 0.68 1.39 1.98 2.71 3.34 4.02 6.7 9.4 11.9 14.7 17.5 要求画出硅光探测器的光强特性曲线,即要求将开路电压与光强关系和短路电压与光强关系绘制在同一坐标中,以便图形的观察分析。 MATABL程序如下: I=[10,20,30,40,50,60,100,140,180,220,260];%输入设定电流的数据 U=[0.148,0.312,0.398,0.448,0.489,0.507,0.602,0.602,0.603,0.603,0.602];%输入开路电压的数据 Isc=[0.68,1.39,1.98,2.71,3.34,4.02,6.7,9.4,11.9,14.7,17.5];%输入短路电流的数据 A=polyfit(I,U,4);%将电流与开路电压的关系拟合成四次多项式,将各项系数依次赋值给矩阵A B=polyfit(I,Isc,4);%将电流与短路电流的关系拟合成四次多项式,将各项系数依次赋值给矩阵B x=0: 1: 260;%取x为一个由0开始到260,以1递增的行向量 y1=polyval(A,x);%对x向量的每个元素求其多项式A的值,组成新向量y1 y2=polyval(B,x);%对x向量的每个元素求其多项式B的值,组成新向量y2 plotyy(x,y1,x,y2)%在同一坐标上绘制出x,y1;x,y2的图像 xlabel('I');%说明x轴表示电流 ylabel('U');%说明y轴表示开路电压 text(100,0.55,'开路电压');%在坐标为100,0.55上添加标注: 开路电压 text(150,0.3,'短路电流');%在坐标为160,0.3上添加标注: 短路电流 title('硅光探测器的光强特性曲线');%添加图像的标题 结果如图8所示。 图8硅光探测器的光强特性曲线 3.弗兰克——赫兹实验 1913年,玻尔的原子理论指出: ①原子只能处于一些不连续的能量状态E1、E2……,处在这些状态的原子是稳定的,称为定态。 原子的能量不论通过什么方式发生改变,只能是使原子从一个定态跃迁到另一个定态;②原子从一个定态跃迁到另一个定态时,它将发射或吸收辐射的频率是一定的。 在波尔理论发表后不久,弗兰克和赫兹用了一种独立于光谱研究的方法直接验证了波尔理论。 通过这个实验学习和体验弗兰克和赫兹研究气体放电现象中低能电子和原子相互作用的实验思想和实验方法,并测定氩原子的第一激发电位。 实验中得到如下表数据,对数据进行处理作出Ip—VG2K曲线。 表6弗兰克——赫兹实验数据 Ip 0.0 0.0 0.0 0.0 0.9 2.4 4.0 5.9 8.0 9.1 9.0 7.5 5.3 V 0.0 2.8 6.5 9.2 10.8 12.9 13.9 14.7 15.8 16.9 17.7 18.8 19.9 Ip 3.8 1.4 0.6 1.0 3.0 8.1 11.9 15.4 16.0 13.9 9.8 5.2 1.8 V 20.7 21.8 22.7 23.6 24.7 25.8 26.6 27.7 28.6 29.6 30.7 31.7 32.7 Ip 1.0 0.7 1.2 6.9 11.2 16.3 19.3 19.0 16.1 11.2 5.8 1.1 0.9 V
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB论文 1245350张丽娜 MATLAB 论文 1245350 张丽娜
![提示](https://static.bdocx.com/images/bang_tan.gif)