最小二乘法matlab多項(xiàng)式擬合_第1頁(yè)
最小二乘法matlab多項(xiàng)式擬合_第2頁(yè)
最小二乘法matlab多項(xiàng)式擬合_第3頁(yè)
最小二乘法matlab多項(xiàng)式擬合_第4頁(yè)
最小二乘法matlab多項(xiàng)式擬合_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

最小二乘法擬合探究吳春暉〔中國(guó)海洋大學(xué)海洋環(huán)境學(xué)院山東青島266100〕摘要:本文的擬合對(duì)象為含多個(gè)變量的待定系數(shù)的多項(xiàng)式。通過最小二乘法對(duì)多項(xiàng)式作出擬合,以向量矩陣的形式來解出待定的系數(shù)。在matlab中,通過算法,寫出具體的解法。之后,先對(duì)最小二乘法的準(zhǔn)確性作出檢驗(yàn),分析該方法在應(yīng)對(duì)復(fù)雜情況的誤差。在檢驗(yàn)該方法的可行性之后,對(duì)給定的變量值進(jìn)行擬合與解題。同時(shí),本文將對(duì)基于Laguerre多項(xiàng)式的最小二乘法進(jìn)行分析檢驗(yàn),關(guān)鍵詞:最小二乘法擬合多變量Laguerre多項(xiàng)式引言:在之前的計(jì)算方法中,在給出節(jié)點(diǎn)后,如果需要根據(jù)給出的節(jié)點(diǎn)來確定未知節(jié)點(diǎn)的值,我們需要運(yùn)用插值。在對(duì)插值的精準(zhǔn)性進(jìn)行分析后,我們發(fā)現(xiàn)不同插值方式的誤差都極大,而且插值所得出的函數(shù)的特征由插值方式所決定,并不能反映具體的節(jié)點(diǎn)原來可能的規(guī)律與分布。所以,擬合的方法相比插值而言,并不要求函數(shù)值在原節(jié)點(diǎn)處的值相等,卻能在一定程度上反映原函數(shù)的規(guī)律。在該文中,我們主要運(yùn)用最小二乘法進(jìn)行擬合。目錄第一章matlab最小二乘法擬合程序 31.1 最小二乘法擬合的數(shù)學(xué)法 31.2編寫最小二乘法的matlab擬合程序 3程序算法 31.2.2最小二乘法擬合的程序 41.3程序的分析說明 4第二章最小二乘擬合法的檢驗(yàn)及應(yīng)用 52.1最小二乘法擬合的檢驗(yàn) 52.2最小二乘法擬合的實(shí)際應(yīng)用 7第三章Laguerre多項(xiàng)式的最小二乘擬合 83.1算法與程序 83.2檢驗(yàn)與分析 9第四章最小二乘法擬合的分析總結(jié) 11第一章matlab最小二乘法擬合程序最小二乘法擬合的數(shù)學(xué)方法最小二乘法擬合的算法如下:對(duì)于給定的一組數(shù)據(jù),求次多項(xiàng)式使總誤差最?。捎诳梢砸曌麝P(guān)于的多元函數(shù),故上述擬合多項(xiàng)式的構(gòu)造可歸結(jié)為多元函數(shù)的極值問題.令得到即有方程組求解該正規(guī)方程組,即可得到最小二乘法的擬合系數(shù)。1.2編寫最小二乘法的matlab擬合程序程序算法在最小二乘法的數(shù)學(xué)算法的根底上,對(duì)算法進(jìn)行優(yōu)化,給出具體的程序算法。由線性代數(shù)的知識(shí),易知可將每一組變量表現(xiàn)為在一個(gè)多維空間的向量。故對(duì)于根本方程組而言,無解即代表由多個(gè)變量所確定的多維空間的集合中,無法找到Y(jié)值的向量。在只有兩個(gè)變量的情況下,即為Y的向量到平面的最短距離的向量與轉(zhuǎn)置的自變量向量的向量積為0.所以我們可以建立兩個(gè)矩陣,一個(gè)代表Y向量,另一個(gè)代表X向量。通過循環(huán)求得代表X向量的每個(gè)變量的在確定的位置的轉(zhuǎn)置與另一變量的向量積,另一變量為Y或X向量。之后利用左除法解出待定的系數(shù),即得到了我們要知道的具體的函數(shù)。然后通過符號(hào)變量,對(duì)給定的x值進(jìn)行運(yùn)算,并給出擬合值。1.2.2最小二乘法擬合的程序在這里,我們選取了特定的含二次冪,一次冪,常數(shù)及負(fù)一次冪的多項(xiàng)式進(jìn)行擬合,每一系數(shù)對(duì)應(yīng)一個(gè)不同的變量。具體的程序代碼如下:x=[1211];x1=[2423];x2=[3653];y=[61477];vec_1=x.^-1;vec_2=x1.^2;vec_3=ones(1,length(x));vec_4=x2%length(x)=length(x1)matrix=zeros(4,4);yx=zeros(1,4);forj=1:4matrix(1,j)=eval(['sum(vec_',num2str(j),'.*(x.^(-1)))'])matrix(2,j)=eval(['sum(vec_',num2str(j),'.*(x1.^2))'])matrix(3,j)=eval(['sum(vec_',num2str(j),'.*1)'])matrix(4,j)=eval(['sum(vec_',num2str(j),'.*x2)'])yx(j)=eval(['sum(vec_',num2str(j),'*y)'])endsolve=matrix\yx';symsxv;symsw;symssabcd;f=a*x^(-1)+b*w^2+c*1+d*s;out=0;in=double(in);in=[123solve(1)solve(2)solve(3)solve(4)];formatlong;out=double(subs(f,[xwsabcd],in));1.3程序的分析說明在程序的開頭,是輸入x與y值,變量的個(gè)數(shù)與冪次由輸入決定。之后程序會(huì)自動(dòng)進(jìn)行運(yùn)算,給出所要求的每個(gè)變量的所對(duì)應(yīng)的系數(shù)值。之后求得的擬合函數(shù)表現(xiàn)為符號(hào)變量的形式。程序的適用性較好,通過符號(hào)變量能直接輸出需要求的擬合曲線。程序也存在可以改良的地方,比方可以將整個(gè)解法優(yōu)化為一個(gè)函數(shù),對(duì)輸入的變量,直接進(jìn)行處理。另外程序的循環(huán)算法的效率不高。代碼較多。第二章最小二乘擬合法的檢驗(yàn)及應(yīng)用2.1最小二乘法擬合的檢驗(yàn)在上文所給出的擬合程序自帶檢驗(yàn)局部,分別輸入原值與隨機(jī)的幾組數(shù)據(jù)來進(jìn)行驗(yàn)證。圖2.1.1最小二乘法的原變量檢驗(yàn)〔4個(gè)點(diǎn)〕Fig.2.1.1Lagrangeinterpolationnodesofinterpolation〔for4〕我們加大原變量的擬合個(gè)數(shù)。共有8組數(shù)據(jù),得到的擬合曲線如下。圖2.1.2最小二乘法的原變量檢驗(yàn)〔8個(gè)點(diǎn)〕Fig.2.1.2Lagrangeinterpolationnodesofinterpolation(for8)從上述原變量檢驗(yàn)的結(jié)果來看,最小二乘法能較好的擬合出符合原函數(shù)規(guī)律的區(qū)間值。我們給出一系列由符合標(biāo)準(zhǔn)形式函數(shù)所構(gòu)造的略微偏離原值的變量組,來進(jìn)行檢驗(yàn)。為了實(shí)現(xiàn)結(jié)果的直觀性,保存一個(gè)單變量。構(gòu)造的函數(shù)為x^2+x+1.y值離原函數(shù)值在1的范圍內(nèi)波動(dòng),取2,4,10,100,1000組自變量值,并繪制出圖像進(jìn)行比擬,來檢驗(yàn)最小二乘法的準(zhǔn)確性。擬合得出的該二次項(xiàng)的系數(shù)隨自變量的組數(shù)發(fā)生變化,見24101001000二次項(xiàng)值0.86080.99120.99971.00001.0000一次項(xiàng)值1.24070.96900.97120.99901.0000常數(shù)項(xiàng)值1.81520.97901.02801.07380.9950表2.1.1擬合系數(shù)隨自變量組數(shù)變化的規(guī)律Table2.1.1fittingcoefficientwiththenumberofsetsofindependentvariables圖2.1.3擬合系數(shù)隨自變量組數(shù)變化的規(guī)律Table2.1.3fittingcoefficientwiththenumberofsetsofindependentvariables分析總結(jié):從以上單變量與多變量的多項(xiàng)式的檢驗(yàn)結(jié)果看,擬合在表達(dá)原函數(shù)潛在的規(guī)律上,具有較好的表現(xiàn)。對(duì)于單變量的多項(xiàng)式,在檢驗(yàn)中,我們通過隨機(jī)函數(shù),使因變量在原函數(shù)附近波動(dòng)。隨著自變量組數(shù)的增多,擬合的結(jié)果越來越接近原函數(shù),當(dāng)自變量到達(dá)一個(gè)較大數(shù)值時(shí),擬合所得曲線根本等于原函數(shù)。對(duì)于多變量的最小二乘法擬合,原理與單變量根本類似,我們所采取的用向量來表示正規(guī)方程組的方式同樣適用于多變量。只需要改變列向量的數(shù)值,使其等于某變量的二次項(xiàng)的值。之后用右除法來解出各項(xiàng)的系數(shù)。2.2最小二乘法擬合的實(shí)際應(yīng)用選取《計(jì)算方法引論》上的P65的第3小題,并加以改良為:用最小二乘原理,求一個(gè)形如y=a+b*x^2+c*x的經(jīng)驗(yàn)公式,使其與以下數(shù)據(jù)相擬合。x1925313844y19.032.349.073.397.8表2.2.1擬合數(shù)據(jù)表Table.2.2.1thedatatable運(yùn)用之前的程序進(jìn)行擬合,得到的2次項(xiàng)系數(shù)為0.0497,常數(shù)項(xiàng)系數(shù)為0.6882,一次項(xiàng)系數(shù)為0.0193.所得的擬合圖線與擬合的節(jié)點(diǎn)吻合得較好。圖2.2.2擬合曲線Figure.2.2.2Fittingcurve對(duì)二次擬合方法進(jìn)行簡(jiǎn)單應(yīng)用后,我們發(fā)現(xiàn)該方法所得的擬合函數(shù)與原值吻合得較好。證明最小二乘法在實(shí)際運(yùn)用中能發(fā)揮較大的作用。第三章Laguerre多項(xiàng)式的最小二乘擬合3.1算法與程序正交多項(xiàng)式的最小二乘法的擬合,主要改變的是各項(xiàng)的表達(dá)式,使其具有較好的獨(dú)立性,隨著項(xiàng)數(shù)的增加,能較好地逼近原函數(shù)。故整體算法與之前相仿,求各項(xiàng)系數(shù)的方法不變。由于項(xiàng)數(shù)是可以改變的,所以要設(shè)置項(xiàng)數(shù),及多組符號(hào)變量,來使程序簡(jiǎn)潔。求正交多項(xiàng)式,也應(yīng)用符號(hào)變量表示,注意常數(shù)項(xiàng)的特殊情況。故程序如下symsxf;symsl;m=3;data=[1925313844];y=[1925313844];l(1)=1;forn=2:ml(n)=exp(x)/factorial(n-1)*diff(x^(n-1)*exp(-x),x,n-1);endfori=1:meval(['vec_',num2str(i),'=subs(l(i),x,data)'])endvec_1=ones(1,length(data));%vec_2=data;%vec_3=ones(1,length(data));%length(x)=length(x1)matrix=zeros(m,m);yx=zeros(1,m);out=zeros(m,length(data));fori=1:mforj=1:mmatrix(i,j)=eval(['sum(vec_',num2str(j),'.*vec_',num2str(i),')'])%可寫成兩層循環(huán)yx(j)=eval(['sum(vec_',num2str(j),'.*y)'])endendsolve=matrix\yx';fork=1:mf(k)=l(k)*solve(k)out(k,:)=subs(f(k),x,data)endvalues=sum(out,1);fun=sum(f,2);3.2檢驗(yàn)與分析我們先選取比擬有規(guī)律的自變量與因變量,為data=[1925313844],y=[1925313844],x與y呈正比關(guān)系,對(duì)這些節(jié)點(diǎn)作基于Laguerre多項(xiàng)式的二次擬合。設(shè)項(xiàng)數(shù)為3,解得的系數(shù)分別對(duì)應(yīng)為1.000000000000145,-0.999999999999990,3.492540352537980e-16,擬合的值在原節(jié)點(diǎn)相等。見圖。圖3.2.1擬合點(diǎn)為直線上點(diǎn)時(shí)的擬合曲線Figure.3.2.1Whenfittingpointforstraightlinepointofcurvefitting在完成一個(gè)比擬簡(jiǎn)單的檢驗(yàn)后,我們構(gòu)造無序的自變量與因變量各一組,其值均為0~100隨機(jī)數(shù)。對(duì)其進(jìn)行基于Laguerre多項(xiàng)式的最小二乘擬合,改變項(xiàng)數(shù),來觀察擬合的情況。下面4幅圖分別是項(xiàng)數(shù)為3,10,20,50所對(duì)應(yīng)的擬合曲線圖。圖3.2.2擬合項(xiàng)數(shù)分別為3,10,20,50時(shí)的擬合曲線Figure.3.2.2Fittingacountof3,10,20,50fittingcurverespectively觀察擬合的曲線,隨著項(xiàng)數(shù)的增加,擬合的精準(zhǔn)程度越來越高。在項(xiàng)數(shù)為20時(shí),誤差為10^-5數(shù)量級(jí),50時(shí),誤差的數(shù)量級(jí)為10^-9數(shù)量級(jí)。但隨著項(xiàng)數(shù)的增多,在項(xiàng)數(shù)較大時(shí),擬合的曲線震蕩較為明顯。在一定程度上,缺乏美感與規(guī)律性??偟膩碚f,基于正交多項(xiàng)式的最小二乘法,隨著項(xiàng)數(shù)的增加,在一定的程度內(nèi),擬合的結(jié)果越來越好。但當(dāng)項(xiàng)數(shù)持續(xù)增大,擬合的結(jié)果接近插值,也出現(xiàn)了插值存在的問題,震蕩與波動(dòng)較大。在利用正交多項(xiàng)式時(shí),要選好項(xiàng)數(shù)。第四章最小二乘法擬合的分析總結(jié)本文中,我們運(yùn)用matlab編寫了在不同情況下的最小二乘法擬合程序。在擬合項(xiàng)為單變量,多變量及正交多項(xiàng)式的情況下,用最小二乘法擬合。這些情況下的擬合有一個(gè)共同點(diǎn),即求各項(xiàng)前的系數(shù)。而附中的調(diào)和分析,并不是嚴(yán)格意義上的多項(xiàng)式,是三角函數(shù)的擬合,它的算法程序會(huì)有所不同,按照最小二乘法的標(biāo)準(zhǔn)做法解調(diào)和常數(shù)。在求各項(xiàng)前系數(shù)時(shí),可以利用矩陣與向量將過程簡(jiǎn)化,具有普適性最小二乘法的特點(diǎn)是擬合,允許與原值有誤差,盡可能表達(dá)曲線的規(guī)律,如分布在一條曲線附近。在單變量的屢次項(xiàng)的擬合中,擬合值在標(biāo)準(zhǔn)函數(shù)附近波動(dòng)。當(dāng)擬合值增多時(shí),擬合的系數(shù)值越來越逼近標(biāo)準(zhǔn)值。多變量的擬合,也會(huì)在多維空間,接近某條特定曲線,由于變量維數(shù)較多,無法較好展示。單變量與多變量的擬合中,各項(xiàng)決定了曲線的根本面貌。在項(xiàng)數(shù)較少時(shí),原值與擬合值的誤差會(huì)變大。如果增大項(xiàng)數(shù),適宜的項(xiàng)數(shù)選擇較為困難。所以在最后我們又應(yīng)用了基于Laguerre多項(xiàng)式的擬合多項(xiàng),可以形成無限多的擬合項(xiàng)。但當(dāng)擬合項(xiàng)過多時(shí),曲線的震蕩會(huì)越來越劇烈。對(duì)100內(nèi)的隨機(jī)數(shù)擬合中,在擬合項(xiàng)在20左右,擬合結(jié)果都會(huì)比擬理想,誤差也在10^-5數(shù)量級(jí)。50時(shí),毛刺過多,可能濾波平滑處理后,能得到較好的擬合曲線。對(duì)于其它正交多項(xiàng)式,規(guī)律相似。擬合項(xiàng)的選擇,對(duì)最小二乘法極為重要。在調(diào)和分析時(shí),三角函數(shù),擬合的結(jié)果變會(huì)相對(duì)準(zhǔn)確。如果給出沒有規(guī)律的多組數(shù),正交多項(xiàng)式擬合是較好的方法。但要注意質(zhì)量控制,不能一味增加項(xiàng)數(shù)。總之,最小二乘法,作為通用且較好用的擬合方法,有很大的研究與實(shí)用價(jià)值。參考文獻(xiàn)[1]徐萃薇,孫繩武.計(jì)算方法引論.北京:高等教育出版社,2015[2]鄭成德。數(shù)值計(jì)算方法.北京:清華大學(xué)出版社,2010Abstract:Inthispaper,thegivenfunctionwithagivendomain[1,1]foravarietyofinterpolation,includingHermiteinterpolation,thoughlaserinterpolation,cubicsplineinterpolation,thepiecewiselinearinterpolation,etc.Interpolationismainlycomposedofmatlab,bywritingmultipleinterpolationfunctiontocalculate,optimizationandcomparisoninterpolationbythemainprogram.Researchontheaccuracyoftheinterpolation,mainlyfromthefromtheoriginalinterpolationnodesontheeffectofinterpolationandtheaccuracyoftheinterpolationfunction.Takedifferentinterpolationnodes,theinterpolationaccuracyofevaluationunderthetakeagain.Theaccuracyoftheinterpolationfunctionmainlyfromtheperspectiveofthefollowingconsiderations:computinginterpolationfunctionandintegralfunctiondifference;Computingtheinterpolationfunctionandthefunctioninterpolationofvarianceandmean.Keywords:multivariateLaguerrepolynomialleastsquaresfitting附調(diào)和分析matlab程序〔個(gè)人計(jì)算機(jī)運(yùn)算耗時(shí)太長(zhǎng),尚未解出〕symsa0a1a2a3a4w1w2w3w4s1s2s3s4ysda0sda1sda2sda3sda4sdw1sdw2sdw3sdw4sds1sds2sds3sds4t;f=a0+a1*cos(w1*t+s1)+a2*cos(w2*t+s2)+a3*cos(w3*t+s3)+a4*cos(w4*t+s4);w=y-f;f='f1';name={'a0''a1''a2''a3''a4''w1''w2''w3''w4''s1''s2''s3''s4'};name_v=struct(f,name);x=;z=;fori=1:13oo=name_v(i).f1;eval(['d',oo,'=diff(w^2,name_v(i).f1)'])endfork=1:13kk=nam

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論