鄭小洋+++魏正元
【摘要】在數(shù)學(xué)建模課程的教學(xué)中,人口模型、汽車剎車距離模型以及傳染病模型等均涉及用最小二乘法對模型的參數(shù)作估計(jì)[1],足見最小二乘法在數(shù)學(xué)建模課程教學(xué)中的特殊地位和作用。本文以一個(gè)簡單的實(shí)例闡述最小二乘法的原理以及MATLAB的程序?qū)崿F(xiàn),這樣可以幫助學(xué)生理解和掌握最小二乘法在其他數(shù)學(xué)模型中的參數(shù)估計(jì)。
【關(guān)鍵詞】最小二乘法 ; 數(shù)學(xué)模型 ; 參數(shù)估計(jì)
【基金項(xiàng)目】重慶理工大學(xué)教研項(xiàng)目,高等數(shù)學(xué)實(shí)驗(yàn)課程教學(xué)改革及探討,編號:2013YB33。重慶市教委科研項(xiàng)目,對流擴(kuò)散方程的小波算法以及應(yīng)用研究,編號:KJ130818。
【中圖分類號】G64 【文獻(xiàn)標(biāo)識碼】B 【文章編號】2095-3089(2015)15-0002-01
在大學(xué)數(shù)學(xué)建模課程中,一般沒有單獨(dú)的講解最小二乘法的原理以及MATLAB程序?qū)崿F(xiàn),但有些學(xué)生對這一方法并沒有掌握好,從而影響到學(xué)生對數(shù)學(xué)模型中的參數(shù)估計(jì)的理解以及應(yīng)用。因此,有必要在課程教學(xué)的開始,增設(shè)最小二乘法的原理及MATLAB程序?qū)崿F(xiàn)的教學(xué),以便學(xué)生能清楚、準(zhǔn)確地理解和掌握課程中與最小二乘法相關(guān)的數(shù)學(xué)模型,從而可以提高學(xué)生綜合應(yīng)用知識解決實(shí)際問題的能力。
1.最小二乘法的原理
在解決實(shí)際情況以及科學(xué)研究中,經(jīng)常會(huì)處理這樣的問題:給定兩個(gè)變量x,y的實(shí)驗(yàn)數(shù)據(jù),如何從中找出這兩個(gè)變量之間的函數(shù)關(guān)系的近似解析表達(dá)式(也稱為經(jīng)驗(yàn)公式),使得能對x與y之間的除了實(shí)驗(yàn)數(shù)據(jù)外的對應(yīng)情況作出某種判斷。在數(shù)學(xué)建模中表現(xiàn)為:依據(jù)對問題所作的分析,通過數(shù)學(xué)建?;蛘咄ㄟ^整理歸納實(shí)驗(yàn)數(shù)據(jù),能夠判定出x與y之間滿足或大體上滿足某種類型的函數(shù)關(guān)系式,即數(shù)學(xué)模型(通常帶有參數(shù))。解決這類問題的原則通常是:使擬合函數(shù)在x處的值與實(shí)驗(yàn)數(shù)值y的偏差平方和最小,即取得最小值。這種在方差意義下對實(shí)驗(yàn)數(shù)據(jù)實(shí)現(xiàn)最佳擬合的方法稱為“最小二乘法”。
非線性帶參數(shù)的模型一般可記為:
(2)的實(shí)質(zhì)是:求多元函數(shù)(自變量為參數(shù)?茲)的多元函數(shù)最小值問題。若f對參數(shù)?茲連續(xù)可微,則可利用微分法建立正規(guī)方程組,從而求解出最優(yōu)的參數(shù)。具體的分析為:根據(jù)多元函數(shù)取得極值的必要條件,將Q(?茲)分別對參數(shù)?茲j求偏導(dǎo),并令其為 0,則得p+1個(gè)方程
該方程組的解就是最小二乘法估計(jì)參數(shù)的最優(yōu)值。為了容易理解這個(gè)方法,此處以一個(gè)簡單的實(shí)例討論f為線性、自變量為一元的情況。
2.實(shí)例分析
例 已知某種藥品在生產(chǎn)過程中的失敗率y與某種化學(xué)成分x有關(guān),表1記載了藥廠生產(chǎn)中y與相應(yīng)的x的幾次數(shù)值。
這里的任務(wù)是依據(jù)這組數(shù)據(jù)找出能反映y與x關(guān)系的一個(gè)近似公式。通過散點(diǎn)圖,可以看到變化趨勢接近一條直線,故可以假設(shè)y=ax+b來近似表達(dá)這一關(guān)系。以最小二乘法估計(jì)這個(gè)問題的最優(yōu)參數(shù)a,b的具體計(jì)算為:
方程(5),(6)就是關(guān)于參數(shù)a,b的線性方程組,可以比較容易地求得最優(yōu)參數(shù)。
當(dāng)然,許多實(shí)際問題并非這么簡單,通常函數(shù)f為非線性的。比如,數(shù)學(xué)建模課程中的人口模型、汽車剎車距離模型、傳染病模型等。這些問題一般是:通過對實(shí)際問題的分析處理、建立模型,最后歸結(jié)為一帶參數(shù)的非線性模型,需要結(jié)合已知的數(shù)據(jù)估計(jì)出參數(shù)。有的非線性問題可以通過適當(dāng)?shù)淖儞Q轉(zhuǎn)化為線性問題處理,有些不能轉(zhuǎn)化的,可以先將f對參數(shù)作一次Talor展開,通過逐次線性逼近的方式估計(jì)最優(yōu)參數(shù),這些內(nèi)容可以指導(dǎo)學(xué)生課外參閱相應(yīng)的參考資料自學(xué)。另外,MATLAB軟件就最小二乘法編寫了一些函數(shù),這些內(nèi)容讓人覺得計(jì)算非常方便。
3.最小二乘法的程序?qū)崿F(xiàn)
這里簡單闡述MATLAB的最小二乘法估計(jì)參數(shù)的函數(shù)。注意MATLAB函數(shù)ployfit主要是解決多項(xiàng)式模型的系數(shù)的最優(yōu)估計(jì)。本文的實(shí)例就是一次多項(xiàng)式的系數(shù)的最小二乘估計(jì),程序?yàn)椋?/p>
xk=[3.6 3.7 3.8 3.9 4.0 4.1 4.2]; yk=[1.00 0.9 0.9 0.81 0.6 0.56 0.35];
P=polyfit(xk,yk,1) % P為返回的多項(xiàng)式系數(shù)
y=polyval(P,xk); % 計(jì)算多項(xiàng)式模型的值
plot(xk,yk,'o',xk,y,'?鄢'); xlabel('化學(xué)成分'); ylabel('失敗率'); title('實(shí)驗(yàn)數(shù)據(jù)以及模型估計(jì)數(shù)據(jù)')
Legend('實(shí)驗(yàn)數(shù)據(jù)','模型估計(jì)數(shù)據(jù)')
計(jì)算結(jié)果:P=-1.0464 4.8125;即a=-1.0464,b=4.8125。
從圖1知,盡管實(shí)驗(yàn)數(shù)據(jù)和模型估計(jì)數(shù)據(jù)相差比較多,但這是最小二乘意義下的最優(yōu)估計(jì)值,而誤差大的原因是:這個(gè)實(shí)際問題假設(shè)為一次多項(xiàng)式模型。要提高估計(jì)精度,就需要改進(jìn)該模型。另外,MATLAB函數(shù)lsqcurvefit可以完成非線性模型的參數(shù)估計(jì),在數(shù)學(xué)模型的參數(shù)估計(jì)中可以指導(dǎo)學(xué)生學(xué)習(xí)和應(yīng)用該函數(shù)以及課外學(xué)習(xí)該函數(shù)的算法。從而提升學(xué)生的數(shù)學(xué)理論知識以及應(yīng)用計(jì)算軟件解決實(shí)際問題的能力。
參考文獻(xiàn)
[1]姜啟源,謝金星,葉俊,數(shù)學(xué)模型,高等教育出版社,2003.
作者簡介: 鄭小洋(1972-),男,副教授,計(jì)算數(shù)學(xué)博士。主要研究領(lǐng)域:偏微分方程的小波數(shù)值解法。endprint