張永濤 賈延明
(商丘工學院 商丘 476000)
最小二乘法中代數多項式曲線擬合的分析及實現*
張永濤 賈延明
(商丘工學院 商丘 476000)
最小二乘法是廣泛使用的數據分析方法,它通過一組實驗數據,按殘差平方和最小準則,尋求一個解析函數,從而描述幾個變量之間的關系。論文介紹了求解最小二乘法中代數多項式曲線擬合的數學關系,并給出了通用的C語言程序被調用函數。
最小二乘法; 代數多項式; 曲線擬合; C程序
在工程技術和科學實驗中,由于影響因素的復雜性及各種各樣的原因,量與量之間往往找不到完全確定的函數關系[3]。而最小二乘法是廣泛使用的數據分析方法,它通過一組實驗數據,按殘差平方和最小準則,尋找一個解析函數,以此來描述幾個變量之間的關系,從而揭示大量實測數據之間的客觀規律。
例如,某化學反應中,生成物的濃度與時間的關系,如表1,求濃度y與t之間的函數關系。
又如,合成纖維抽絲工段,第一導絲盤的速度v與電源頻率x的關系,對絲的質量影響很大。由生產記錄得到的數據為表2,試求速度v與電源頻率x之間的函數關系。

表1 生成物的濃度與時間的關系

表2 速度與電源頻率的關系
諸如此類的問題中,量與量之間既存在相互依賴關系,但又不能由一個(或幾個)變量的值,通過精確的解析表達式求出另一個變量的值[5]。人們只能通過實驗,使用儀器獲得大量的實測數據。通過進一步的研究表明,這些大量的偶然現象,其內部隱藏著客觀規律[6]。
假設通過某種實驗觀測手段得到了m組數據(ti,yi),i=1,2,3,…,m,現在的任務是如何尋求一近似函數f(x)去逼近y。依據最小二乘法原理,采用代數多項式曲線擬合的方法,可以尋求到近似函數f(x)[10]。
設有n-1次多項式:

(1)
求擬合已知數據。
令
ri=yn(ti)-yi(i=1,2,…,m)
(2)
式中ri為殘量,表示擬合的誤差。一般ri≠0。本文目的是按最小二乘法準則,確定式(1)中諸系數xi,即求解使殘量ri的平方和為最小的xi[8]。因為
=I(x1,x2,…,xn)
(3)
取最小值,于是就歸結為求多元函數I的極值問題。為使I取最小值,x1,x2,…,xn必須滿足
(k=1,2,…,n)
即
(4)
方程組(4)寫成矩陣形式為
(5)
令系數矩陣為C,變量列向量為X,常數項列向量為B,則方程組(5)可簡寫為
CX=B
(6)
方程組(6)是含有n個未知數、n個方程的方程組,稱為正規方程組。該方程組是否有唯一解呢?
根據正規方程組有唯一解的條件可知,對方程組(6)來說,必須有|C|≠0,才能保證有唯一解[1]。下面來證明|C|≠0。
現用反證法予以證明。假設|C|=0,根據給定的實測數據,則齊次線性方程組
(7)
有非零解(x1,x2,…,xn)T。
在式(7)中的方程分別乘以x1,x2,…,xn,然后相加,并除以式(1)可得
(8)
由式(8)可知,yn(ti)=0,i=1,2,…,m,即yn(t)有m個零點。但n≤m,yn(t)是n-1次多項式,零點個數不超過n-1個,除非yn(t)的所有系數均為0,即x1=x2=…xn=0,這與方程組(7)有非零解矛盾。因此,假設|C|=0是錯誤的,而|C|≠0,方程組(6)有唯一解。
用主元消去法解方程組(6)得解向量X,X即為多項式yn(t)的系數列向量[2]。
根據前面的原理總結出最小二乘線性擬合算法的具體步驟為
第2步:輸入數據獲得矩陣
第3步:計算A的轉置矩陣
解方程組獲得系數a0,a1;
第6步:輸出運算結果[7]。
根據以上步驟總結出算法流程如圖1所示。

圖1 算法流程圖
/*主元素消去法解方程組被調用函數*/
float proc1(float c[m][m],n)
{ int i,j,k,p,q;
哪有什么星星,天陰著呢,范青青就是在找借口和他約會,他們出去吃了夜市,范青青那晚特別興奮,眉眼之中寫滿快樂,和之前的范青青有點兒不一樣。田銘的心也跟著陌生地愉悅起來。
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;
在日常的工作和學習中,我們不時會遇到各方面的數據問題,然而不是所有的數據都是有用的,此時必需對所給數據適當的進行處理和篩選,以使達到預期的目的[9]。在這個過程中采取曲線擬合不失為一種可取的方法,當然這也是曲線擬合的相關應用所在[4]。值得注意的是曲線擬合的最小二乘法的應用并不局限,比如:數據采集、模型建立、部分問題求解及獲取設備故障率等,因此對曲線擬合知識的掌握、對最小二乘法的研究與運用是值得的也是必需的。本文只是對曲線擬合的相關方法及實現作了一定介紹,不少地方還有待完善與提高。
[1] 高盼.基于最小二乘法的道路平面曲線擬合[J].測繪信息與工程,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] 袁慰平,孫志忠.計算方法與實習[M].第四版.南京:東南大學出版社,2011:56-62. YUAN Weiping, SUN Zhizhong. Computational Methods and Practice[M]. Fourth Edition. Nanjing: Southeast University Press,2011:56-62.
[4] 唐旭清.數值計算方法[M].北京:科學出版社,2015:88-102. TANG Xuqing. Numerical Calculation Method[M]. Beijing: Science Press,2015:88-102.
[5] 羅海明,韓亞萍.最小二乘法在伏安法測電阻實驗中的應用[J].大學物理實驗,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語言實現最小二乘法直線擬合[J].長江大學學報(自然科學版),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] 唐妍霞.用最小二乘法解決的一個物理問題[J].河北北方學院學報(自然科學版),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] 賈小勇,徐傳勝.最小二乘法創立及其思想方法[J].西北大學學報(自然科學版),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