張宏 陳立勇
摘要:文章簡(jiǎn)單介紹根據(jù)最小二乘多項(xiàng)式求解過(guò)程中生成正規(guī)多項(xiàng)式系數(shù)矩陣的特點(diǎn),借助于矩陣壓縮存儲(chǔ)的思想,使用一維數(shù)組存放系數(shù)矩陣的各項(xiàng)的值。此算法在時(shí)間復(fù)雜度和空間復(fù)雜度上均有較大改進(jìn)。最后通過(guò)實(shí)驗(yàn)證明此算法的正確性,并為在工程分析計(jì)算中運(yùn)用此方法提供較好的樣例。
關(guān)鍵詞:曲線擬合;最小二乘多項(xiàng)式;系數(shù)矩陣;一維數(shù)組
中圖分類號(hào):TN957文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)23-5722-03
Solve the Least Square Curve Fitting Polynomial Coefficient with Improved Program
ZHANG Hong, CHEN Li-yong
(Department of Computer Science, Zhoukou Normal University, Zhoukou 466001, China)
Abstract: In this paper, the author simply introduced the feature of Coefficient matrix in the progress of Solve the Least Square Curve Fit? ting Polynomial Coefficient. With the help of compressing storage of matrix, this paper saves dates of matrix by using One-dimensional ar? ray. This arithmetic great reduces time complexity and space complexity. Empirical results show the Correctness of this arithmetic and give a good example in engineering analysis calculations.
Key words: curve fitting; least square curve fitting polynomial; coefficient matrix; one-dimensional array
多項(xiàng)式擬合在工程計(jì)算領(lǐng)域得到較廣泛的應(yīng)用,如在強(qiáng)噪聲地震資料中的應(yīng)用,短期潮位補(bǔ)缺中的應(yīng)用,機(jī)動(dòng)目標(biāo)運(yùn)動(dòng)補(bǔ)償算法中的應(yīng)用等等。在工程分析計(jì)算過(guò)程中,多項(xiàng)式擬合的結(jié)果往往需要保存到文件中,作為數(shù)據(jù)處理的中間數(shù)據(jù)。市場(chǎng)中存在很多可用于多項(xiàng)式擬合的軟件(如Grapher),雖說(shuō)可以完成多項(xiàng)式的擬合,并看到擬合曲線,但大多數(shù)軟件不能夠一次性的查看多次擬合圖形,并形成比較,且不能根據(jù)用戶需要保存理想的擬合結(jié)果。因此很多企業(yè)或公司需要開(kāi)發(fā)自己的軟件已滿足特定行業(yè)需求。那么,編寫(xiě)程序來(lái)求解最小二乘多項(xiàng)式系數(shù)成為此類軟件開(kāi)發(fā)過(guò)程的關(guān)鍵技術(shù),青海師范大學(xué)陳桂秀老師在[1]中提供了程序法求解最小二乘多項(xiàng)式系數(shù)的方法。但其算法無(wú)論是空間復(fù)雜度還是時(shí)間復(fù)雜度,都達(dá)到讓人無(wú)法接受的結(jié)果。實(shí)驗(yàn)數(shù)據(jù)結(jié)果分析,如果實(shí)驗(yàn)數(shù)據(jù)達(dá)到800條,運(yùn)行一次擬合就需要3-4分鐘(根據(jù)常用辦公室計(jì)算機(jī)測(cè)試)。這就為設(shè)計(jì)較小空間復(fù)雜度和時(shí)間復(fù)雜度的程序算法提供了契機(jī)。該文主要包括三個(gè)部分:1)多項(xiàng)式擬合基本原理介紹;2)程序算法;3)通過(guò)實(shí)驗(yàn)驗(yàn)證結(jié)果的正確性。
圖1擬合曲線界面圖
原始數(shù)據(jù)有796條(刪除了嚴(yán)重偏差的4條),一次性完成從2次曲線擬合到10次曲線擬合,并實(shí)現(xiàn)動(dòng)態(tài)加載原始數(shù)據(jù)和保存擬合結(jié)果(為了簡(jiǎn)化程序設(shè)計(jì)的難度,坐標(biāo)系并沒(méi)有標(biāo)明坐標(biāo)值)。程序運(yùn)行后,首先單擊左上角“載入數(shù)據(jù)”按鈕,然后單擊“繪圖”按鈕,程序一次畫(huà)出從2次擬合到10次擬合的原始數(shù)據(jù)點(diǎn)線圖和擬合后的曲線圖。其中黑色的為原始數(shù)據(jù)點(diǎn)連接成線的圖形,從圖形可以看出,數(shù)據(jù)點(diǎn)產(chǎn)生強(qiáng)烈震蕩而不平滑。其中中間平滑的紅線為擬合后的曲線圖。很明顯介于原始圖形震蕩的趨于中間的位置。說(shuō)明了程序擬合結(jié)果的正確性,實(shí)驗(yàn)中完成9次擬合共用時(shí)6秒鐘(包括繪制圖形部分),完全在用戶可以接收的時(shí)間范圍之內(nèi)。通過(guò)直觀的圖形,用戶可以輕松的得出結(jié)論——哪一次擬合的結(jié)果更有助于分析數(shù)據(jù),然后在相應(yīng)的擬合圖形上單擊以保存擬合后的數(shù)據(jù)。
該文借助矩陣壓縮存儲(chǔ)的思想,通過(guò)數(shù)組法,使用一維數(shù)組來(lái)保存系數(shù)矩陣各項(xiàng)值,減少了時(shí)間復(fù)雜度和控件復(fù)雜度,極大的提高了程序運(yùn)行的速度,為用戶開(kāi)發(fā)適合特定工程需要的軟件產(chǎn)品提供思想上和方法上的指導(dǎo)。
[1]陳桂秀.用程序求解最小二乘擬合多項(xiàng)式的系數(shù)[J].青海師范大學(xué)學(xué)報(bào):自然科學(xué)版,2010(3):15-17.
[2]鐘偉,楊寶俊,張智.多項(xiàng)式擬合技術(shù)在強(qiáng)噪聲地震資料中的應(yīng)用研究[J].地球物理學(xué)進(jìn)展,2006,21(1):184-189.
[3]陸偉,劉杰,孫艷軍.多項(xiàng)式擬合在短期潮位補(bǔ)缺中的應(yīng)用分析[J].科技信息,2011(4).
[4]侯成宇,沈一鷹.基于最小二乘擬合的機(jī)動(dòng)目標(biāo)運(yùn)動(dòng)補(bǔ)償算法[J].現(xiàn)代雷達(dá),2009,31(1):54-57.