《數(shù)值計(jì)算課程設(shè)計(jì)-擬合方法與擬合函數(shù)的選取(共14頁(yè))》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)值計(jì)算課程設(shè)計(jì)-擬合方法與擬合函數(shù)的選取(共14頁(yè))(15頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、精選優(yōu)質(zhì)文檔-傾情為你奉上題目:擬合方法與擬合函數(shù)的選取班級(jí):數(shù)101班數(shù)102班數(shù)101班指導(dǎo)教師:譚高山 提交日期:2013年5月 13日專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)目錄一、擬合問(wèn)題的提出.1二、擬合準(zhǔn)則.1三、擬合函數(shù)的選取.1四、函數(shù)擬合實(shí).2 4.1 多項(xiàng)式擬合2 4.2 指數(shù)與復(fù)合函數(shù)擬合.4 4.3 分段擬合7五、總結(jié).12六、參考文獻(xiàn).12一、 擬合問(wèn)題的提出在很多科學(xué)實(shí)驗(yàn)中,我們通過(guò)測(cè)量或觀察等方法獲得一組看上去雜亂無(wú)章的數(shù)據(jù),為了找出這些數(shù)據(jù)之間的某種規(guī)律和聯(lián)系,即尋找一個(gè)較簡(jiǎn)單的函數(shù)曲線,使之在一定準(zhǔn)則下最接近這些數(shù)據(jù)點(diǎn),以便突顯各數(shù)據(jù)點(diǎn)的先后變化趨勢(shì),由此便產(chǎn)生了曲線擬合的概念。曲
2、線擬合在實(shí)際中有著很廣泛的實(shí)用價(jià)值。因?yàn)槲覀兯@取的實(shí)驗(yàn)數(shù)據(jù)本身往往帶有測(cè)量誤差,難免會(huì)出現(xiàn)個(gè)別數(shù)據(jù)誤差過(guò)大的現(xiàn)象。相比于插值法,曲線擬合時(shí),不要求曲線嚴(yán)格地經(jīng)過(guò)每一個(gè)數(shù)據(jù)點(diǎn),這樣就能有效降低個(gè)別數(shù)據(jù)對(duì)整體數(shù)據(jù)規(guī)律的干擾作用;另外,實(shí)驗(yàn)數(shù)據(jù)往往很多,插值法會(huì)比較繁雜,擬合方法則更實(shí)際更高效。2、 擬合準(zhǔn)則 在曲線擬合中,有幾種不同的誤差準(zhǔn)則:1.最大誤差: 2. 平均誤差3. 均方根誤差4. 誤差平方和通過(guò)求誤差的最小值,可得該準(zhǔn)則下的最佳擬合曲線。由于誤差平方和容易進(jìn)行最小化計(jì)算,故而我們通常采用該標(biāo)準(zhǔn),稱(chēng)之為最小二乘準(zhǔn)則。以下課程實(shí)驗(yàn)都是在最小二乘準(zhǔn)則下實(shí)現(xiàn)的。三、擬合函數(shù)的選取曲線擬合時(shí)
3、,首要也最關(guān)鍵的一步就是選取恰當(dāng)?shù)臄M合函數(shù)。對(duì)于一組給定的數(shù)據(jù),我們可以先做出其散點(diǎn)圖,判斷應(yīng)該采用什么樣的曲線來(lái)作擬合,然后在直觀判斷的基礎(chǔ)上,選取多組曲線分別作擬合,然后比較,看哪條曲線的最小二乘指標(biāo)最小,也即擬合的最好。一般來(lái)說(shuō),選取多項(xiàng)式作為擬合曲線,是簡(jiǎn)單且常用的。MATLAB中有現(xiàn)成的多項(xiàng)式擬合程序,調(diào)用格式為f=polyfit(x,y,n),其中輸入?yún)?shù)x,y為要擬合的數(shù)據(jù),n為擬合多項(xiàng)式的系數(shù),輸出參數(shù)f為擬合多項(xiàng)式的系數(shù)向量。對(duì)于稍微復(fù)雜一點(diǎn)的擬合曲線,我們可以先通過(guò)線性變換將之轉(zhuǎn)換成簡(jiǎn)單的線性函數(shù),接著再用多項(xiàng)式擬合的命令f=polyfit(x,y,n)來(lái)實(shí)現(xiàn)函數(shù)的擬合。下
4、面表格列舉兩個(gè)線性變換的例子:原函數(shù)y化為線性函數(shù)Y=AX+B型變量與常量的變化4、 函數(shù)擬合實(shí)例4.1多項(xiàng)式擬合例1.給定一組數(shù)據(jù)點(diǎn) 如下表:-1.5-0.700.51.92.22.93.84.27.523.982.993.5710.1812.7319.8131.9038.24首先,我們?cè)贛ATLAB中輸入程序>> x=-1.5 -0.7 0 0.5 1.9 2.2 2.9 3.8 4.2;y=7.52 3.98 2.99 3.57 10.18 12.73 19.81 31.90 38.24;plot(x,y,'b*'),xlabel('x'),y
5、label('y')title('表中數(shù)據(jù)點(diǎn)(xi,yi)的散點(diǎn)圖')運(yùn)行后得表中數(shù)據(jù)的散點(diǎn)圖如下(圖中*表示數(shù)據(jù)點(diǎn)的坐標(biāo)):因?yàn)閿?shù)據(jù)散點(diǎn)圖的變化趨勢(shì)與二次多項(xiàng)式很接近,所以可選用二次多項(xiàng)式作為擬合曲線,設(shè)f(x)=ax2+bx+c。編程:>> x=-1.5 -0.7 0 0.5 1.9 2.2 2.9 3.8 4.2;y=7.52 3.98 2.99 3.57 10.18 12.73 19.81 31.90 38.24;f=polyfit(x,y,2);a=f(1),b=f(2),c=f(3)X=-1.5:0.01:4.2;Y=polyval(f,
6、X);f=polyval(f,x);fy=abs(f-y);E=sum(fy.2)plot(x,y,'r*',X,Y,'b-'),xlabel('x'),ylabel('y')title('擬合直線與數(shù)據(jù)點(diǎn)結(jié)合圖')運(yùn)行后得:a = 1.9974; b =0.0021; c = 3.0188;E = 0.0097生成如下圖形: 即擬合多項(xiàng)式為:f=1.9974x2+0.0021x+3.0188; 誤差很小,只有0.0097.4.2 指數(shù)與復(fù)合函數(shù)擬合例2.給出實(shí)驗(yàn)數(shù)據(jù)點(diǎn)如下表:xi2.70.12.31.60.71.
7、40.3yi2.6411.043.214.037.104.589.37在MATLAB中輸入程序:>> x=2.7 0.1 2.3 1.6 0.7 1.4 0.3;y=2.64 11.04 3.21 4.03 7.10 4.58 9.37;>> plot(x,y,'b*'),axis(0,3,0,12)得散點(diǎn)圖:據(jù)圖,我們?nèi)煞N擬合函數(shù)分別為 和 :(1) 設(shè) ,在MATLAB中輸入程序>> x=2.7 0.1 2.3 1.6 0.7 1.4 0.3;y=2.64 11.04 3.21 4.03 7.10 4.58 9.37;Y=log(y);
8、f=polyfit(x,Y,1);A=f(2);B=f(1);a=exp(A),b=-BX=0:0.01:3;Y=a*exp(-b.*X);f=a*exp(-b.*x);plot(x,y,'r*',X,Y,'b-'),xlabel('x'),ylabel('y')legend('數(shù)據(jù)點(diǎn) (xi,yi)','擬合曲線Y=f(x)')title('數(shù)據(jù)點(diǎn)(xi,yi)和擬合曲線Y=f(x)的圖形')fy=abs(f-y);E1=sum(fy.2)得:a =10.7441; b =0.54
9、60; E1 = 1.3072.(2) 設(shè) ,在MATLAB中輸入程序x=2.7 0.1 2.3 1.6 0.7 1.4 0.3;y=2.64 11.04 3.21 4.03 7.10 4.58 9.37;Y=1./y;f=polyfit(x,Y,1);a=f(1),b=f(2)X=0:0.01:3;Y=1./(a.*X+b);f=1./(a.*x+b);plot(x,y,'r*',X,Y,'b-'),xlabel('x'),ylabel('y')Legend('數(shù)據(jù)點(diǎn)(xi,yi)','擬合曲線Y=f(x
10、)')Title('數(shù)據(jù)點(diǎn)(xi,yi)和擬合曲線Y=f(x)的圖形')Fy=abs(f-y);E2=sum(fy.2)得:a =0.1089; b =0.0720; E2 =0.0097. 因?yàn)镋1E2,顯然第二種擬合曲線的誤差較小,擬合效果更佳。4.3 分段擬合實(shí)際中的很多科學(xué)實(shí)驗(yàn)數(shù)據(jù),其擬合函數(shù)都比較稍顯復(fù)雜,下面我們來(lái)列舉一例。例3. 革螨在不同濃度的甲酚皂液的平均致死時(shí)間如下表顯示:X甲酚皂液的濃度(%)Y革螨的平均死亡時(shí)間(min)0.10050.40.15041.20.17533.60.20019.00.30011.60.40010.60.5008.40.
11、6006.80.7006.21.0004.85.0002.210.0001.2用MATLAB作散點(diǎn)圖:分析上圖可知,曲線的兩端都含有漸近線,故全段擬合曲線中一定含有指數(shù)項(xiàng)。>> x=0.100 0.150 0.175 0.200 0.300 0.400 0.500 0.600 0.700 1.000 5.000 10.000;y=50.4 41.2 33.6 19.0 11.6 10.6 8.4 6.8 6.2 4.8 2.2 1.2;Y=log(y);f=polyfit(x,Y,1);A=f(2);B=f(1);a=exp(A),b=-BX=0:0.01:10;Y=a*exp(-
12、b.*X);f=a*exp(-b.*x);plot(x,y,'r*',X,Y,'b-'),xlabel('x'),ylabel('y')legend('數(shù)據(jù)點(diǎn) (xi,yi)','擬合曲線Y=f(x)')title('數(shù)據(jù)點(diǎn)(xi,yi)和擬合曲線Y=f(x)的圖形')fy=abs(f-y);E1=sum(fy.2)得:a =15.6609; b =0.2978; E1 =2.4705e+003 即擬合函數(shù)為: 顯然,擬合效果不佳。進(jìn)一步分析可以看出,前9個(gè)點(diǎn)有一條漸近線,而后3個(gè)點(diǎn)
13、有一條漸近線。可將要擬合的曲線分為二段,前9個(gè)點(diǎn)為前段,后3個(gè)點(diǎn)為后段。我們可以分別對(duì)前9個(gè)點(diǎn)和后3個(gè)點(diǎn)進(jìn)行直線化。以x為橫坐標(biāo),lny 為縱坐標(biāo),做散點(diǎn)圖plot(x,log(y),'b*')得可以看出后三個(gè)點(diǎn)明顯呈直線趨勢(shì),我們先對(duì)后三個(gè)點(diǎn)進(jìn)行直線化。擬合的方法和前面相同,在MATLAB中輸入x=1.000 5.000 10.000;y= 4.8 2.2 1.2;Y=log(y);f=polyfit(x,Y,1);A=f(2);B=f(1);a=exp(A),b=-B得:a =5.2635;b =0.1527;即 從圖3發(fā)現(xiàn)前9個(gè)點(diǎn)仍呈曲線趨勢(shì),需要進(jìn)一步線性化。具體步驟如
14、下:利用(4)求得前9個(gè)點(diǎn)處的函數(shù)值y,再把實(shí)際數(shù)據(jù)中的前9個(gè)值減去y。即得y”=y-y,然后取其對(duì)數(shù)值ln(y”),用MATLAB作出這些點(diǎn)圖象,在MATLAB下不需要一個(gè)個(gè)去求,只要在命令窗口輸入如下命令: >> x=0.100 0.150 0.175 0.200 0.300 0.400 0.500 0.600 0.700;y=50.4 41.2 33.6 19.0 11.6 10.6 8.4 6.8 6.2;plot(x,log(y-(5.2635.*exp(-0.1527*x),'b*')得:可以發(fā)現(xiàn)這9個(gè)點(diǎn)成一定的曲線趨勢(shì),利用x和 y的值可建立起直線回歸
15、方程。只要在MATLAB下用同樣的方法再次求指數(shù)擬合>> x=0.100 0.150 0.175 0.200 0.300 0.400 0.500 0.600 0.700;y=50.4 41.2 33.6 19.0 11.6 10.6 8.4 6.8 6.2;Y=log(y-(5.2635.*exp(-0.1527.*x);f=polyfit(x,Y,1);A=f(2);B=f(1);a=exp(A),b=-B得a = 62.55659;b = 5.7270;即 由于前段各點(diǎn)在后段直線的上方,故最終的擬合函數(shù)應(yīng)為y=(4)+(5),即 在MATLAB中做出散點(diǎn)和擬合曲線>>
16、; x=0.100 0.150 0.175 0.200 0.300 0.400 0.500 0.600 0.700 1.000 5.000 10.000;y=50.4 41.2 33.6 19.0 11.6 10.6 8.4 6.8 6.2 4.8 2.2 1.2;X=0:0.01:10;Y=5.2635.*exp(-0.1527.*X)+62.55659.*exp(-5.7270.*X);得下圖:顯然,所求擬合函數(shù)令人滿(mǎn)意。五、總結(jié)函數(shù)擬合是一種實(shí)用性很強(qiáng)的數(shù)學(xué)方法,例如,可以用來(lái)尋求血藥濃度變化規(guī)律,用來(lái)測(cè)定彈簧彈力與伸長(zhǎng)量之間的關(guān)系等等,總之它涉及生活學(xué)習(xí)的方方面面。另外,在實(shí)例分析中,我們通常都能先根據(jù)邏輯方法確定數(shù)據(jù)之間遵循的函數(shù)類(lèi)型,所以很多時(shí)候只需確定一種擬合函數(shù)即可。值得注意的是,要學(xué)會(huì)通過(guò)不同途徑去盡量減少函數(shù)擬合的誤差。六、參考文獻(xiàn)1.數(shù)值分析第七版,Richard L.Burden,J.Douglas Faires,高等教育出版社。2.數(shù)值分析及其MATLAB實(shí)現(xiàn),任玉杰著,高等教育出版社。