處理實(shí)驗(yàn)數(shù)據(jù)
——MATLAB軟件在物理教學(xué)中的應(yīng)用之四
朱國(guó)強(qiáng)
(紹興市第一中學(xué)浙江 紹興312000)
摘 要:介紹了應(yīng)用MATLAB處理物理實(shí)驗(yàn)數(shù)據(jù)的具體做法,包括描點(diǎn)、連線、數(shù)據(jù)擬合,以及適用于大量數(shù)據(jù)錄入的外部數(shù)據(jù)導(dǎo)入方法,指出了計(jì)算機(jī)制圖與手工作圖的優(yōu)缺點(diǎn).
關(guān)鍵詞:MATLAB實(shí)驗(yàn)數(shù)據(jù)擬合計(jì)算機(jī)制圖
收稿日期:(2013-10-31)
實(shí)驗(yàn)中測(cè)量得到的數(shù)據(jù),需要被記錄、分析,從中得到實(shí)驗(yàn)結(jié)論,找出實(shí)驗(yàn)規(guī)律,這一過(guò)程稱為數(shù)據(jù)處理.中學(xué)物理實(shí)驗(yàn)進(jìn)行數(shù)據(jù)處理的方法一般有列表法、公式法(逐差法)、圖像法(化曲為直法、圖像外推法、圖像面積法)、計(jì)算機(jī)輔助處理數(shù)據(jù)等.
應(yīng)用MATLAB處理實(shí)驗(yàn)數(shù)據(jù)屬于計(jì)算機(jī)輔助處理數(shù)據(jù),包括作圖、數(shù)據(jù)擬合等.
1描點(diǎn)和連線
在坐標(biāo)紙上將實(shí)驗(yàn)數(shù)據(jù)之間的對(duì)應(yīng)關(guān)系描繪成圖線,再由圖線求出相應(yīng)物理量的關(guān)系,進(jìn)一步得出實(shí)驗(yàn)結(jié)論的數(shù)據(jù)處理方法叫做圖像法,又稱為作圖法.手工利用圖像法處理數(shù)據(jù)一般有以下幾個(gè)步驟:
(1)先將所測(cè)數(shù)據(jù)列表;(2)以相應(yīng)的物理量為橫軸、縱軸在方格紙上建立坐標(biāo)軸,定出標(biāo)度;(3)描點(diǎn);(4)連線;(5)注明圖像名稱、制圖時(shí)間以及必要說(shuō)明.
MATLAB應(yīng)用plot函數(shù)直接畫圖.
【例1】滑動(dòng)變阻器分壓電路的實(shí)驗(yàn)研究.
連接好分壓電路,完成測(cè)量.
第一步,將數(shù)據(jù)依次錄入,構(gòu)成兩個(gè)向量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函數(shù)用實(shí)線把數(shù)據(jù)點(diǎn)描出來(lái),用小圓圈“o”表示,再將數(shù)據(jù)點(diǎn)用細(xì)線“-”用連起來(lái);
?plot(L,U,′o′,L,U,′-′);
最后,網(wǎng)格功能打開(kāi)當(dāng)前坐標(biāo)軸的網(wǎng)格線.
gridon
作圖如圖1所示.圖像表明,隨著滑動(dòng)變阻器的滑動(dòng),分壓電路的輸出電壓逐漸增大.
圖1 分壓電路輸出電壓與滑動(dòng)變阻器的關(guān)系
2數(shù)據(jù)擬合
對(duì)于已知離散的一組數(shù)據(jù)(xi,yi),構(gòu)造一個(gè)函數(shù),使在原離散點(diǎn)xi上盡可能接近給定的yi值,這一過(guò)程稱為曲線擬合.最常用的曲線擬合方法是最小二乘法,該方法是尋找函數(shù)y=f(x)使得∑[f(xi)-yi]最小.從幾何意義上講,就是尋求與給定點(diǎn) (xi,yi)(i=0,1,…,m)的距離平方和為最小的曲線y=f(x).所以最小二乘法又稱最小平方法.
MATLAB軟件多項(xiàng)式曲線擬合函數(shù)為p=polyfit(x,y,n)或[p,S]=polyfit(x,y,n).
說(shuō)明:x,y為數(shù)據(jù)點(diǎn),n為多項(xiàng)式階數(shù),返回為冪次從高到低的多項(xiàng)式系數(shù)向量p.x必須是單調(diào)的.矩陣S用于生成預(yù)測(cè)值的誤差估計(jì).高中實(shí)驗(yàn)大多采用線性擬合,即取n=1.
多項(xiàng)式曲線求值函數(shù):polyval( ) ,其調(diào)用格式:y=polyval(p,x) .
y=polyval(p,x)函數(shù)返回n階多項(xiàng)式在x的計(jì)算值.輸入的參數(shù)p是n階冪次從高到低的多項(xiàng)式的系數(shù)向量,向量長(zhǎng)度為n+1.
【例2】測(cè)電源的電動(dòng)勢(shì)和內(nèi)阻.
?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,′*′);%描點(diǎn)
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=′測(cè)電源的電動(dòng)勢(shì)和內(nèi)電阻′;title(lab1,′fontsize′,14);
求得
p=-1.49131.4926
即擬合所得的一次函數(shù)為
U=-1.4913+1.4926I
可得
r=1.4913Ωε=1.49V
作圖如圖2所示.由處理結(jié)果可知,擬合時(shí),第7組數(shù)據(jù)(0.50,0.93)偏離較大,可以把這組數(shù)據(jù)去掉,再擬合一次.
圖2 測(cè)電源的電動(dòng)勢(shì)和內(nèi)電阻
3實(shí)驗(yàn)數(shù)據(jù)文件讀入
MATLAB語(yǔ)言允許用戶調(diào)用在MATLAB環(huán)境之外定義的矩陣.首先利用任意的文本編輯器編輯所要使用的矩陣,矩陣元素之間以特定分割符分開(kāi),一般采用空格分隔,并按行列布置.MATLAB利用load函數(shù),其調(diào)用方法為:Load+文件名[參數(shù)]
Load函數(shù)將會(huì)從文件名所指定的文件中讀取數(shù)據(jù),并將輸入的數(shù)據(jù)賦給以文件名命名的變量,如果不給定文件名,則將自動(dòng)認(rèn)為matlab.mat文件為操作對(duì)象,如果該文件在MATLAB搜索路徑中不存在時(shí),系統(tǒng)將會(huì)報(bào)錯(cuò).
【例3】測(cè)電源的電動(dòng)勢(shì)和內(nèi)阻的其他處理方法.
第一步,將例2測(cè)電源的電動(dòng)勢(shì)和內(nèi)阻實(shí)驗(yàn)中電流、電壓第7組數(shù)據(jù)去掉,在記事本或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保存,并假設(shè)文件路徑為C:
MATLAB7work;
第二步,在MATLAB中利用load函數(shù)讀取數(shù)據(jù);
第三步,在計(jì)算機(jī)屏幕上繪出圖線,顯示數(shù)據(jù);
最后,直線擬合.
%讀取txt中行數(shù)據(jù)并作圖的程序
?symsIUx;
x=load(′C:MATLAB7workshujuUI.txt′)
I=x(1,:);
U=x(2, :)
plot(I,U,′*′);%描點(diǎn)
holdon
P=polyfit(I,U,1)%擬合
i1=0.00:0.02:1.00;
u1=polyval(P,i1);
plot(i1,u1);%畫線
求得P =-1.50001.4800
即擬合所得的一次函數(shù)為
U=-1.500+1.480 0I
可得
r=1.50Ωε=1.48V
作圖如圖3所示.
用MATLAB語(yǔ)言進(jìn)行物理實(shí)驗(yàn)數(shù)據(jù)的處理,尤其是用最小二乘法進(jìn)行直線擬合,不但比較方便,而且相當(dāng)精確.
圖3 測(cè)電源的電動(dòng)勢(shì)和內(nèi)電阻
4實(shí)驗(yàn)圖像變換
【例4】閉合電路中電流和外電阻關(guān)系的探究實(shí)驗(yàn).
其中一次實(shí)驗(yàn)數(shù)據(jù)如下:
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描點(diǎn)、連折線圖′)
圖4 I-R描點(diǎn)、連折線圖
xlabel(′R′);ylabel(′I′); %對(duì)xy坐標(biāo)軸加標(biāo)注
gridon
subplot(2,2,2)
Idaoshu=1./I
plot(R,Idaoshu,′-rs′) ;title(′圖51/I-R描點(diǎn)、連折線圖′)
圖 -R描點(diǎn)、連折線圖
subplot(2,2,3)
plot(R,Idaoshu,′-rs′);
P1=polyfit(R,Idaoshu,1)
R=0:0.2:5.6;
Idaoshu1=polyval(P1,R);
圖 -R直線擬合圖
因?yàn)榈?個(gè)數(shù)據(jù)點(diǎn)誤差較大,宜人工舍去,故對(duì)5組數(shù)據(jù)擬合.
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直線擬合圖(去點(diǎn))
P1=0.133 8或0.246 9
P2= 0.140 8或0.211 8
5手工作圖和計(jì)算機(jī)制圖的優(yōu)缺點(diǎn)
對(duì)實(shí)驗(yàn)獲得的數(shù)據(jù),如果手工進(jìn)行逐點(diǎn)計(jì)算,在坐標(biāo)紙上手工描點(diǎn)、手工連線來(lái)繪制手工曲線,此手工作圖的方法費(fèi)時(shí)、費(fèi)力,而且在手工繪制的曲線上人工讀取數(shù)據(jù)時(shí),往往因人而異,所以斜率和截距等是依據(jù)作圖法大致得到的數(shù)值,存在與處理者有關(guān)的較大的偶然誤差,精度難以保證.計(jì)算機(jī)制圖則高效、省力且多次繪圖精度高度一致.
關(guān)于手工作圖和計(jì)算機(jī)制圖的優(yōu)缺點(diǎn),現(xiàn)代科學(xué)工程技術(shù)人員有一個(gè)“俏皮”觀點(diǎn),那就是“手工作圖跟計(jì)算機(jī)制圖比,沒(méi)有優(yōu)點(diǎn);計(jì)算機(jī)制圖跟手工作圖比,沒(méi)有缺點(diǎn)”.如果非要說(shuō)出手工作圖的優(yōu)點(diǎn)那就是鍛煉了手腦協(xié)調(diào)能力.
參 考 文 獻(xiàn)
1石辛民,翁智.計(jì)算方法及其MATLAB實(shí)現(xiàn).北京:清華大學(xué)出版社,2013.08
2李俊杰.開(kāi)發(fā)基于Matlab的物理化學(xué)實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng).計(jì)算機(jī)與應(yīng)用化學(xué),2007(7)
3胡建國(guó),朱國(guó)強(qiáng).滑動(dòng)變阻器兩種供電方式選擇的可視化教學(xué)法.物理通報(bào),2013(4)