處理實驗數據
——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)
