处理实验数据
——MATLAB软件在物理教学中的应用之四
朱国强
(绍兴市第一中学浙江 绍兴312000)
摘 要:介绍了应用MATLAB处理物理实验数据的具体做法,包括描点、连线、数据拟合,以及适用于大量数据录入的外部数据导入方法,指出了计算机制图与手工作图的优缺点.
关键词:MATLAB实验数据拟合计算机制图
收稿日期:(2013-10-31)
实验中测量得到的数据,需要被记录、分析,从中得到实验结论,找出实验规律,这一过程称为数据处理.中学物理实验进行数据处理的方法一般有列表法、公式法(逐差法)、图像法(化曲为直法、图像外推法、图像面积法)、计算机辅助处理数据等.
应用MATLAB处理实验数据属于计算机辅助处理数据,包括作图、数据拟合等.
1描点和连线
在坐标纸上将实验数据之间的对应关系描绘成图线,再由图线求出相应物理量的关系,进一步得出实验结论的数据处理方法叫做图像法,又称为作图法.手工利用图像法处理数据一般有以下几个步骤:
(1)先将所测数据列表;(2)以相应的物理量为横轴、纵轴在方格纸上建立坐标轴,定出标度;(3)描点;(4)连线;(5)注明图像名称、制图时间以及必要说明.
MATLAB应用plot函数直接画图.
【例1】滑动变阻器分压电路的实验研究.
连接好分压电路,完成测量.
第一步,将数据依次录入,构成两个向量L,U;
≫L=[0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100];
≫U=[0.16 0.60 0.81 0.93 0.99 1.04 1.08 1.11 1.13 1.15 1.16 1.172 1.185 1.195 1.20 1.21 1.215 1.22 1.225 1.23 1.232];
第二步,用plot函数用实线把数据点描出来,用小圆圈“o”表示,再将数据点用细线“-”用连起来;
≫plot(L,U,′o′,L,U,′-′);
最后,网格功能打开当前坐标轴的网格线.
gridon
作图如图1所示.图像表明,随着滑动变阻器的滑动,分压电路的输出电压逐渐增大.
图1 分压电路输出电压与滑动变阻器的关系
2数据拟合
对于已知离散的一组数据(xi,yi),构造一个函数,使在原离散点xi上尽可能接近给定的yi值,这一过程称为曲线拟合.最常用的曲线拟合方法是最小二乘法,该方法是寻找函数y=f(x)使得∑[f(xi)-yi]最小.从几何意义上讲,就是寻求与给定点 (xi,yi)(i=0,1,…,m)的距离平方和为最小的曲线y=f(x).所以最小二乘法又称最小平方法.
MATLAB软件多项式曲线拟合函数为p=polyfit(x,y,n)或[p,S]=polyfit(x,y,n).
说明:x,y为数据点,n为多项式阶数,返回为幂次从高到低的多项式系数向量p.x必须是单调的.矩阵S用于生成预测值的误差估计.高中实验大多采用线性拟合,即取n=1.
多项式曲线求值函数:polyval( ) ,其调用格式:y=polyval(p,x) .
y=polyval(p,x)函数返回n阶多项式在x的计算值.输入的参数p是n阶幂次从高到低的多项式的系数向量,向量长度为n+1.
【例2】测电源的电动势和内阻.
≫clf;clearall;
I=[0.020.100.180.260.340.42
0.500.580.660.740.820.90];
U=[1.451.331.211.090.970.85
0.930.610.490.370.250.13];
plot(I,U,′*′);%描点
holdon
P=polyfit(I,U,1)%拟合
i1=0.00:0.02:1.00;
u1=polyval(P,i1);
plot(i1,u1);%画线
gridon
axis([0 1 0 1.5])
xlabel(′I/Azgqstudio′,′fontsize′,12)
%ylabel(′elta′,′fontsize′,12)
ylabel(′U/V′,′fontsize′,12)
lab1=′测电源的电动势和内电阻′;title(lab1,′fontsize′,14);
求得
p=-1.49131.4926
即拟合所得的一次函数为
U=-1.4913+1.4926I
可得
r=1.4913Ωε=1.49V
作图如图2所示.由处理结果可知,拟合时,第7组数据(0.50,0.93)偏离较大,可以把这组数据去掉,再拟合一次.
图2 测电源的电动势和内电阻
3实验数据文件读入
MATLAB语言允许用户调用在MATLAB环境之外定义的矩阵.首先利用任意的文本编辑器编辑所要使用的矩阵,矩阵元素之间以特定分割符分开,一般采用空格分隔,并按行列布置.MATLAB利用load函数,其调用方法为:Load+文件名[参数]
Load函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,如果不给定文件名,则将自动认为matlab.mat文件为操作对象,如果该文件在MATLAB搜索路径中不存在时,系统将会报错.
【例3】测电源的电动势和内阻的其他处理方法.
第一步,将例2测电源的电动势和内阻实验中电流、电压第7组数据去掉,在记事本或WORD中建立文件如下:
0.020.100.180.260.340.420.58
0.660.740.820.90
1.451.331.211.090.970.850.61
0.490.370.250.13
取名shujuUI.txt保存,并假设文件路径为C:
MATLAB7work;
第二步,在MATLAB中利用load函数读取数据;
第三步,在计算机屏幕上绘出图线,显示数据;
最后,直线拟合.
%读取txt中行数据并作图的程序
≫symsIUx;
x=load(′C:MATLAB7workshujuUI.txt′)
I=x(1,:);
U=x(2, :)
plot(I,U,′*′);%描点
holdon
P=polyfit(I,U,1)%拟合
i1=0.00:0.02:1.00;
u1=polyval(P,i1);
plot(i1,u1);%画线
求得P =-1.50001.4800
即拟合所得的一次函数为
U=-1.500+1.480 0I
可得
r=1.50Ωε=1.48V
作图如图3所示.
用MATLAB语言进行物理实验数据的处理,尤其是用最小二乘法进行直线拟合,不但比较方便,而且相当精确.
图3 测电源的电动势和内电阻
4实验图像变换
【例4】闭合电路中电流和外电阻关系的探究实验.
其中一次实验数据如下:
R=[1.6 2.1 2.2 3.2 4.2 5.6]
I=[2.25 2.00 1.67 1.50 1.25 1.00]
第一步,作出I-R折线图,程序如下:
subplot(2,2,1)
plot(R,I,′-bd′);
title(′图4I-R描点、连折线图′)
图4 I-R描点、连折线图
xlabel(′R′);ylabel(′I′); %对xy坐标轴加标注
gridon
subplot(2,2,2)
Idaoshu=1./I
plot(R,Idaoshu,′-rs′) ;title(′图51/I-R描点、连折线图′)
图 -R描点、连折线图
subplot(2,2,3)
plot(R,Idaoshu,′-rs′);
P1=polyfit(R,Idaoshu,1)
R=0:0.2:5.6;
Idaoshu1=polyval(P1,R);
图 -R直线拟合图
因为第3个数据点误差较大,宜人工舍去,故对5组数据拟合.
subplot(2,2,4)
R2=[1.6 2.1 3.2 4.2 5.6];
Idaoshu2=[0.44 0.50 0.67 0.80 1.00];
plot(R2,Idaoshu2,′-rs′);
P2=polyfit(R2,Idaoshu2,1)
R2=0:0.2:5.6;
Idaoshu2=polyval(P2,R2);
图 -R直线拟合图(去点)
P1=0.133 8或0.246 9
P2= 0.140 8或0.211 8
5手工作图和计算机制图的优缺点
对实验获得的数据,如果手工进行逐点计算,在坐标纸上手工描点、手工连线来绘制手工曲线,此手工作图的方法费时、费力,而且在手工绘制的曲线上人工读取数据时,往往因人而异,所以斜率和截距等是依据作图法大致得到的数值,存在与处理者有关的较大的偶然误差,精度难以保证.计算机制图则高效、省力且多次绘图精度高度一致.
关于手工作图和计算机制图的优缺点,现代科学工程技术人员有一个“俏皮”观点,那就是“手工作图跟计算机制图比,没有优点;计算机制图跟手工作图比,没有缺点”.如果非要说出手工作图的优点那就是锻炼了手脑协调能力.
参 考 文 献
1石辛民,翁智.计算方法及其MATLAB实现.北京:清华大学出版社,2013.08
2李俊杰.开发基于Matlab的物理化学实验数据处理系统.计算机与应用化学,2007(7)
3胡建国,朱国强.滑动变阻器两种供电方式选择的可视化教学法.物理通报,2013(4)