張永濤 賈延明
(商丘工學(xué)院 商丘 476000)
最小二乘法中代數(shù)多項(xiàng)式曲線擬合的分析及實(shí)現(xiàn)*
張永濤 賈延明
(商丘工學(xué)院 商丘 476000)
最小二乘法是廣泛使用的數(shù)據(jù)分析方法,它通過(guò)一組實(shí)驗(yàn)數(shù)據(jù),按殘差平方和最小準(zhǔn)則,尋求一個(gè)解析函數(shù),從而描述幾個(gè)變量之間的關(guān)系。論文介紹了求解最小二乘法中代數(shù)多項(xiàng)式曲線擬合的數(shù)學(xué)關(guān)系,并給出了通用的C語(yǔ)言程序被調(diào)用函數(shù)。
最小二乘法; 代數(shù)多項(xiàng)式; 曲線擬合; C程序
在工程技術(shù)和科學(xué)實(shí)驗(yàn)中,由于影響因素的復(fù)雜性及各種各樣的原因,量與量之間往往找不到完全確定的函數(shù)關(guān)系[3]。而最小二乘法是廣泛使用的數(shù)據(jù)分析方法,它通過(guò)一組實(shí)驗(yàn)數(shù)據(jù),按殘差平方和最小準(zhǔn)則,尋找一個(gè)解析函數(shù),以此來(lái)描述幾個(gè)變量之間的關(guān)系,從而揭示大量實(shí)測(cè)數(shù)據(jù)之間的客觀規(guī)律。
例如,某化學(xué)反應(yīng)中,生成物的濃度與時(shí)間的關(guān)系,如表1,求濃度y與t之間的函數(shù)關(guān)系。
又如,合成纖維抽絲工段,第一導(dǎo)絲盤的速度v與電源頻率x的關(guān)系,對(duì)絲的質(zhì)量影響很大。由生產(chǎn)記錄得到的數(shù)據(jù)為表2,試求速度v與電源頻率x之間的函數(shù)關(guān)系。
表1 生成物的濃度與時(shí)間的關(guān)系
表2 速度與電源頻率的關(guān)系
諸如此類的問(wèn)題中,量與量之間既存在相互依賴關(guān)系,但又不能由一個(gè)(或幾個(gè))變量的值,通過(guò)精確的解析表達(dá)式求出另一個(gè)變量的值[5]。人們只能通過(guò)實(shí)驗(yàn),使用儀器獲得大量的實(shí)測(cè)數(shù)據(jù)。通過(guò)進(jìn)一步的研究表明,這些大量的偶然現(xiàn)象,其內(nèi)部隱藏著客觀規(guī)律[6]。
假設(shè)通過(guò)某種實(shí)驗(yàn)觀測(cè)手段得到了m組數(shù)據(jù)(ti,yi),i=1,2,3,…,m,現(xiàn)在的任務(wù)是如何尋求一近似函數(shù)f(x)去逼近y。依據(jù)最小二乘法原理,采用代數(shù)多項(xiàng)式曲線擬合的方法,可以尋求到近似函數(shù)f(x)[10]。
設(shè)有n-1次多項(xiàng)式:
(1)
求擬合已知數(shù)據(jù)。
令
ri=yn(ti)-yi(i=1,2,…,m)
(2)
式中ri為殘量,表示擬合的誤差。一般ri≠0。本文目的是按最小二乘法準(zhǔn)則,確定式(1)中諸系數(shù)xi,即求解使殘量ri的平方和為最小的xi[8]。因?yàn)?/p>
=I(x1,x2,…,xn)
(3)
取最小值,于是就歸結(jié)為求多元函數(shù)I的極值問(wèn)題。為使I取最小值,x1,x2,…,xn必須滿足
(k=1,2,…,n)
即
(4)
方程組(4)寫成矩陣形式為
(5)
令系數(shù)矩陣為C,變量列向量為X,常數(shù)項(xiàng)列向量為B,則方程組(5)可簡(jiǎn)寫為
CX=B
(6)
方程組(6)是含有n個(gè)未知數(shù)、n個(gè)方程的方程組,稱為正規(guī)方程組。該方程組是否有唯一解呢?
根據(jù)正規(guī)方程組有唯一解的條件可知,對(duì)方程組(6)來(lái)說(shuō),必須有|C|≠0,才能保證有唯一解[1]。下面來(lái)證明|C|≠0。
現(xiàn)用反證法予以證明。假設(shè)|C|=0,根據(jù)給定的實(shí)測(cè)數(shù)據(jù),則齊次線性方程組
(7)
有非零解(x1,x2,…,xn)T。
在式(7)中的方程分別乘以x1,x2,…,xn,然后相加,并除以式(1)可得
(8)
由式(8)可知,yn(ti)=0,i=1,2,…,m,即yn(t)有m個(gè)零點(diǎn)。但n≤m,yn(t)是n-1次多項(xiàng)式,零點(diǎn)個(gè)數(shù)不超過(guò)n-1個(gè),除非yn(t)的所有系數(shù)均為0,即x1=x2=…xn=0,這與方程組(7)有非零解矛盾。因此,假設(shè)|C|=0是錯(cuò)誤的,而|C|≠0,方程組(6)有唯一解。
用主元消去法解方程組(6)得解向量X,X即為多項(xiàng)式y(tǒng)n(t)的系數(shù)列向量[2]。
根據(jù)前面的原理總結(jié)出最小二乘線性擬合算法的具體步驟為
第2步:輸入數(shù)據(jù)獲得矩陣
第3步:計(jì)算A的轉(zhuǎn)置矩陣
解方程組獲得系數(shù)a0,a1;
第6步:輸出運(yùn)算結(jié)果[7]。
根據(jù)以上步驟總結(jié)出算法流程如圖1所示。
圖1 算法流程圖
/*主元素消去法解方程組被調(diào)用函數(shù)*/
float proc1(float c[m][m],n)
{ int i,j,k,p,q;
哪有什么星星,天陰著呢,范青青就是在找借口和他約會(huì),他們出去吃了夜市,范青青那晚特別興奮,眉眼之中寫滿快樂(lè),和之前的范青青有點(diǎn)兒不一樣。田銘的心也跟著陌生地愉悅起來(lái)。
float e,r,l[n],s1[n];
for(i=1;i<=n;i++)
{
{p=i;q=1;e=c[i][1];}
for(j=1;j<=n;j++)
{
for(k=1;k<=n;k++)
if(fabs(c[i][k])<=fabs(e)) continue;
else
{e=c[j][k];p=j;q=k;}
}
if(fabs(e>=1e-6)) goto loop3;
else
printf("no unigue solution. ");
return;
loop3:if(p==i) goto loop4;
for(k=1;k<=n+1;k++)
{
s1[k]=c[i][k];
c[i][k]=c[p][k];
c[p][k]=s1[k];
}
loop4:for(j=1;j<=n;j++)
{
if(j==i) continue;
if(c[j][q]==0) continue;
r=c[j][q]/c[i][q];
for(k=1;k<=n+1;k++)
c[j][k]=c[j][k]-c[i][k]*r;
}
l[i]=q;
}
for(i=1;i<=n;i++)
{q=l[i];
s1[g]=c[i][n+1]/c[i][g];
}
return;
在日常的工作和學(xué)習(xí)中,我們不時(shí)會(huì)遇到各方面的數(shù)據(jù)問(wèn)題,然而不是所有的數(shù)據(jù)都是有用的,此時(shí)必需對(duì)所給數(shù)據(jù)適當(dāng)?shù)倪M(jìn)行處理和篩選,以使達(dá)到預(yù)期的目的[9]。在這個(gè)過(guò)程中采取曲線擬合不失為一種可取的方法,當(dāng)然這也是曲線擬合的相關(guān)應(yīng)用所在[4]。值得注意的是曲線擬合的最小二乘法的應(yīng)用并不局限,比如:數(shù)據(jù)采集、模型建立、部分問(wèn)題求解及獲取設(shè)備故障率等,因此對(duì)曲線擬合知識(shí)的掌握、對(duì)最小二乘法的研究與運(yùn)用是值得的也是必需的。本文只是對(duì)曲線擬合的相關(guān)方法及實(shí)現(xiàn)作了一定介紹,不少地方還有待完善與提高。
[1] 高盼.基于最小二乘法的道路平面曲線擬合[J].測(cè)繪信息與工程,2011,36(2):19-21. GAO Pan. Filtering of LiDAR Data Based on Modified Slope Filtering Algorithm[J]. Journal of Geomatics,2011,36(2):19-21.
[2] 張亞軍,陳立新.最小二乘法和熔絲編程[J].電子與封裝,2012,12(2):15-18. ZHANG Yajun, CHEN Lixin. Least Square and Fuse Programming[J]. Electronics & Packaging,2012,12(2):15-18.
[3] 袁慰平,孫志忠.計(jì)算方法與實(shí)習(xí)[M].第四版.南京:東南大學(xué)出版社,2011:56-62. YUAN Weiping, SUN Zhizhong. Computational Methods and Practice[M]. Fourth Edition. Nanjing: Southeast University Press,2011:56-62.
[4] 唐旭清.數(shù)值計(jì)算方法[M].北京:科學(xué)出版社,2015:88-102. TANG Xuqing. Numerical Calculation Method[M]. Beijing: Science Press,2015:88-102.
[5] 羅海明,韓亞萍.最小二乘法在伏安法測(cè)電阻實(shí)驗(yàn)中的應(yīng)用[J].大學(xué)物理實(shí)驗(yàn),2012,25(2):88-90. LUO Haiming, HAN Yaping. Applications of Least-squares Method in the Experiment of Voltammetry Measuring Resistance[J]. Physical Experiment of College,2012,12(2):15-18.
[6] 蘭燕娜,薛同蓮.基于VB語(yǔ)言實(shí)現(xiàn)最小二乘法直線擬合[J].長(zhǎng)江大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,8(6):92-94. LAN Yanna, XUE Tonglian. Based on VB Language of the Least Square Method of Linear Fitting[J]. Journal of Yangtze University(Nat Sci Edit),2011,8(6):92-94.
[7] 唐妍霞.用最小二乘法解決的一個(gè)物理問(wèn)題[J].河北北方學(xué)院學(xué)報(bào)(自然科學(xué)版),2012,28(1):8-11. TANG Yanxia. A Physical Problem Solved with Least Square Mehod[J]. Journal of Hebei North University(Natural Science Edition),2012,28(1):8-11.
[8] 賈小勇,徐傳勝.最小二乘法創(chuàng)立及其思想方法[J].西北大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,36(3):507-511. JIA Xiaoyong, XU Chuansheng. The invention and way of thinking on leastsquares[J]. Journal of Northwest University(Natural Seience Edition),2006,36(3):507-511.
[9] Jinsiang Shaw. Noniterative solution of inverse problems by the linear least square method[J]. Applied Mathematical Modelling,2001.
[10] Pradova V, Walczak B, Massart DL, et al. A comparison of two algorithms for warping of analytical signals[J]. Analytical Chimica Acta,2001.
Analysis and Program Implementation of Least Squares Polynomial Curve Fitting
ZHANG Yongtao JIA Yanming
(Shangqiu Institute of Technology, Shangqiu 476000)
The method of least square is a widely used data analysis methods, it is through a set of experimental data, according to the rule of minimum residual sum of squares, seeking an analytic function, which describes the relationship of several variables. Were introduced in this paper to solve the least squares polynomial curve fitting mathematical relationships, and gives the general C programming language of the called function.
least squares, polynomial, curve fitting, C program Class Number TP301
2016年10月21日,
2016年11月28日
張永濤,男,碩士,講師,研究方向:算法與分析。賈延明,男,碩士,講師,研究方向:算法與分析。
TP301
10.3969/j.issn.1672-9722.2017.04.009