精編matlab插值計算資料_第1頁
精編matlab插值計算資料_第2頁
精編matlab插值計算資料_第3頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、插值方法晚上做一個曲線擬合,結(jié)果才開始用最小二乘法擬合時,擬合出來的東西太難看了! 于是嘗試用其他方法。經(jīng)過一番按圖索驥, 終于發(fā)現(xiàn)做曲線擬合的話, 采用插值法是比較理想的方法。 尤其是樣條 插值,插完后線條十分光滑。方法付后, 最關(guān)鍵的問題是求解時要積分, 放這里想要的時候就可以直接過來拿, 不用死去搜索啦。呵呵插值方法的 Matlab 實現(xiàn)一維數(shù)據(jù)插值MATLAB 中用函數(shù) interp1 來擬合 一維數(shù)據(jù),語法是 YI = INTERP1(X,Y,XI, 方法)其中( X , Y ) 是已給的數(shù)據(jù)點, XI 是插值點,其中方法主要有'linear' - 線性插值,默認&#

2、39;pchip' - 逐段三次 Hermite 插值'spline' -逐段三次樣條函數(shù)插值其中最后一種插值的曲線比較平滑例:x=0:.12:1; x1=0:.02:1;% ( 其中 x=0:.12:1 表示顯示的插值點, x1=0:.02:1 表示插值的步長 )樣條函數(shù)進行插值,求一段 matlab插(x)圖形,并且求出fy=(x.A2-3*x+5).*exp(-5*x).*si n(x);plot(x,y,'o'); hold on;y1= in terp1(x,y,x1,'spli ne');plot(x1,y1,':&#

3、39;)如果要根據(jù)樣本點求函數(shù)的定積分,而函數(shù)又是比較光滑的,則可以用后再積分,在MATLAB中可以編寫如下程序:function y=quadsp ln( xO,yO,a,b)f=in li ne(' in terp1(x0,y0,x,"spl in e")','x','xO','yO');y=quadl(f,a,b,1e-8,x0,y0);現(xiàn)求sin(x)在區(qū)間0,pi上的定積分,只取 5點x0=0,0.4,1,2,pi;y0=s in( x0);I=quadsp ln( x0,y0,0,pi)結(jié)果得到的值

4、為2.01905,精確值為2求一段matlab插值程序-二1 懸賞分:20 -解決時間:2009-12-26 19:57已知 5 個數(shù)據(jù)點:x=0.25 0.5 0.75 1y=0 0.3104 0.6177 0.7886 1值程序,求過這5個數(shù)據(jù)點的插值多項式,并在x-y坐標中畫出y=f(x)與x軸圍成圖形的面積(積分),不勝感激!使用Lagrange插值多項式的方法:fun ctio n C, L=lagra n( X,Y)% in put - X is a vector that contains a list of abscissas% - Y is a vector that con

5、tains a list of ordin ates% output - C is a matrix that contains the coefficie nts of the lagra nge in terpolatory polyno mial%- L is a matrix that contains the lagra nge coefficie nts polyno mialw=le ngth(X);n=w-1;L=zeros(w,w);for k=1: n+1V=1;for j=1: n+1if k=jV=co nv(V,poly(X(j)/(X(k)-X(j);endendL

6、(k,:)=V;endC=Y*L;然后在命令窗口中輸入以下內(nèi)容:x=0 0.25 0.5 0.75 1;y=0 0.3104 0.6177 0.7886 1;lagra n(x,y)ans =3.3088-6.38513.31640.75990得到的數(shù)據(jù)就是多項式各項的系數(shù),注意最后一個是常數(shù)項,即xA0 ,所以表達式為:求面積就是積分求解>> f=(x)3.3088*x.A4-6.3851*x.A3+3.3164*x.A2 +0.7599*x;>> quad(f,0,1)ans =0.5509這些點肯定是通過這個多項式的!MATLAB插值與擬合引曲線擬合實例:溫度曲線

7、問題氣象部門觀測到一天某些時刻的溫度變化數(shù)據(jù)為:試描繪出溫度變化曲線。曲線擬合就是計算出兩組數(shù)據(jù)之間的一種函數(shù)關(guān)系,由此可描繪其變化曲線及估計非采集數(shù)據(jù)對應(yīng)的變量信息。曲線擬合有多種方式,下面是一元函數(shù)采用最小二乘法對給定數(shù)據(jù)進行多項式曲線擬合,最后給出擬合的多項式系數(shù)。1.線性擬合函數(shù):regress() 調(diào)用格式: b=regress(y,X)b,bint,r,rint,stats= regress(y,X)b,bint,r,rint,stats= regress(y,X,alpha)說明:b=regress(y,X)返回X與y的最小二乘擬合值,及線性模型的參數(shù)值3 &。該函數(shù)求解

8、線性模型:y=X 3 + £B是p'1的參數(shù)向量;£是服從標準正態(tài)分布的隨機干擾的n Z1的向量;y為n '1的向量;X為n'p矩陣。bint 返回3的 95%的置信區(qū)間。 r 中為形狀殘差, rint 中返回每一個殘差的 95%置信區(qū)間。 Stats向量包含 R2統(tǒng)計量、回歸的 F值和p值。例1設(shè)y的值為給定的x的線性函數(shù)加服從標準正態(tài)分布的隨機干擾值 得到。即y=10+x+ £ ;求線性擬合方程系數(shù)。程序: x=ones(10,1) (1:10)'y=x*10;1+normrnd(0,0.1,10,1);b,bint=regre

9、ss(y,x,0.05)結(jié)果: x =1 11 21 31 41 51 61 71 81 91 10 y =10.956711.833413.012514.028814.885416.119117.118917.996219.032720.0175b =9.92131.0143bint =10.05371.03579.78890.9930即回歸方程為: y=9.9213+1.0143x2.多項式曲線擬合函數(shù):polyfit()調(diào)用格式:p=polyfit(x,y,n)p,s= polyfit(x,y,n)說明:x,y為數(shù)據(jù)點,n為多項式階數(shù),返回p為幕次從高到低的 多項式系數(shù)向量p。矩陣s用于

10、生成預(yù)測值的誤差估計。(見下一函數(shù)polyval)擬合出多項式。程序:x=0:.1:1;y=.3 .5 1 1.4 1.6 1.9 .6 .4 .8 1.5 2;n=3;p=polyfit(x,y,n)xi=linspace(0,1,100);%linspace 用于創(chuàng)建 向量,如:x=linspace(a1,a2,a3);al為第一個元素,a2為最末一個元素,a3表示x共有a3個元素,每個元素間距相 等。z=polyval(p,xi); %多項式求值plot(x,y,'o',xi,z,'k:',x,y,'b')legend,原始數(shù)據(jù)',

11、'3階曲線')結(jié)果:16.7832 -25.745910.9802-0.0035多項式為:3216.7832x -25.7459x +10.9802X-0.0035曲線擬合圖形:P貞P希* A Z /屛*如果是n=6,則如下圖:也可由函數(shù)給出數(shù)據(jù)。例 3: x=1:20,y=x+3*sin(x)程序:x=1:20;y=x+3*sin(x);p=polyfit(x,y,6)xi=linspace(1,20,100);z=polyval(p,xi);%多項式求值函數(shù)plot(x,y,'o',xi,z,'k:',x,y,'b')lege

12、nd('原始數(shù)據(jù)','6階曲線')結(jié)果:p = 0.0000 -0.0021 0.0505 -0.5971 3.6472 -9.7295 11.3304再用10階多項式擬合程序:x=1:20;y=x+3*sin(x); p=polyfit(x,y,10) xi=linspace(1,20,100); z=polyval(p,xi);plot(x,y,'o',xi,z,'k:',x,y,'b') legend('原始數(shù)據(jù)','10階多項式')結(jié)果:p =Columns 1 throug

13、h 70.0000-0.00000.0004-0.01140.1814-1.806511.2360Colu mns 8 through 11-42.086188.5907 -92.815540.2671可用不同階的多項式來擬合數(shù)據(jù),但也不是階數(shù)越高擬合的越好。3.多項式曲線求值函數(shù):polyval()調(diào)用格式:y=polyval(p,x)y,DELTA=polyval(p,x,s)說明:y=polyval(p,x)為返回對應(yīng)自變量 x在給定系數(shù)P的多項式的值 y,DELTA=polyval(p,x,s) 使用 polyfit 函數(shù)的選項輸出 s 得出誤差估計 Y DELTA 。它假設(shè) poly

14、fit 函數(shù)數(shù)據(jù) 輸入的誤差是獨立正態(tài)的 ,并且方差為常數(shù)。則 Y DELTA 將至少包含 50% 的預(yù)測值。(未完)4. 多項式曲線擬合的評價和置信區(qū)間函數(shù): polyconf( ) 調(diào)用格式: Y,DELTA=polyconf(p,x,s)Y,DELTA=polyconf(p,x,s,alpha)說明: Y,DELTA=polyconf(p,x,s) 使用 polyfit 函數(shù)的選項輸出 s 給出 Y 的 95%置信區(qū)間 Y DELTA 。它假設(shè) polyfit 函數(shù)數(shù)據(jù)輸入的誤差是獨立正態(tài)的,并且方差為常數(shù)。 1-alpha 為置 信度。例 4:給出上面例 1 的預(yù)測值及置信度為 90%

15、的置信區(qū)間。程序:x=0:.1:1;y=.3 .5 1 1.4 1.6 1.9 .6 .4 .8 1.5 2 n=3;p,s=polyfit(x,y,n)alpha=0.05;Y ,DELTA=polyconf(p,x,s,alpha) 結(jié)果:p =16.7832 -25.7459 10.9802 -0.0035 s =R: 4x4 double df: 7normr: 1.1406Y =Columns 1 through 9-0.0035 0.8538 1.2970 1.4266 1.3434 1.1480 0.9413 0.8238 0.8963 Columns 10 through 11

16、1.2594 2.01405. 穩(wěn)健回歸函數(shù): robust( ) 穩(wěn)健回歸是指此回歸方法相對于其他回歸方法而言,受異常值的影響較小。 調(diào)用格式: b=robustfit(x,y)b,stats=robustfit(x,y) b,stats=robustfit(x,y,' wfun ' ,tune, ' const ')說明:b返回系數(shù)估計向量;stats返回各種參數(shù)估計;wfur指旨定一個加權(quán)函數(shù);tune為調(diào) 協(xié)常數(shù);cons的值為on默認值)時添加一個常數(shù)項;為off時忽略常數(shù)項。例 5:演示一個異常數(shù)據(jù)點如何影響最小二乘擬合值與穩(wěn)健擬合。首先利用函數(shù)y=

17、10-2x 加上一些隨機干擾的項生成數(shù)據(jù)集,然后改變一個 y 的值形成異常值。調(diào)用不同的擬合函數(shù), 通過圖形觀查影響程度。程序:x=(1:10)';y=10-2*x+ra ndn( 10,1);y(10)=0;bls=regress(y,ones(10,1) x) % 線性擬合 brob=robustfit(x,y) % 穩(wěn)健擬合 scatter(x,y)hold onplot(x,bls(1)+bls(2)*x, )':'plot(x, brob(1)+brob(2)*x, ) ' r' 結(jié)果:bls =8.4452-1.4784brob =10.29

18、34-2.0006(點線)則受到為數(shù)據(jù); fun 'y與x之間有分析:穩(wěn)健擬合(實線)對數(shù)據(jù)的擬合程度好些,忽略了異常值。最小二乘擬合 異常值的影響,向異常值偏移。6.向自定義函數(shù)擬合對于給定的數(shù)據(jù),根據(jù)經(jīng)驗擬合為帶有待定常數(shù)的自定義函數(shù)。所用函數(shù):nli nfit()調(diào)用格式:beta,rJ=nlinfit(X,y,' fu0)' ,beta說明:beta返回函數(shù)fun中的待定常數(shù);r表示殘差;J表示雅可比矩陣。X,y 自定義函數(shù);beta0待定常數(shù)初值。例6:在化工生產(chǎn)中獲得的氯氣的級分y隨生產(chǎn)時間x下降,假定在x8寸,如下形式的非線性模型:現(xiàn)收集了 44組數(shù)據(jù),利

19、用該數(shù)據(jù)通過擬合確定非線性模型中 的待定常數(shù)。xyxyxy80.49160.43280.4180.49180.46280.40100.48180.45300.40100.47200.42300.40100.48200.42300.38100.47200.43320.41120.46200.41320.40120.46220.41340.40120.45220.40360.41120.43240.42360.36140.45240.40380.40140.43240.40380.40140.43260.41400.36160.44260.40420.39160.43260.41首先定義非線性函數(shù)

20、的m 文件:fff6.mfunction yy=model(betaO,x)a=beta0(1);b=beta0(2);yy=a+(0.49-a)*exp(-b*(x-8);程序:x=8.00 8.00 10.00 10.00 10.00 10.00 12.00 12.00 12.00 14.00 14.00 14.00.16.00 16.00 16.00 18.00 18.00 20.00 20.00 20.00 20.00 22.00 22.00 24.00.24.00 24.00 26.00 26.00 26.00 28.00 28.00 30.00 30.00 30.00 32.00

21、32.00.34.00 36.00 36.00 38.00 38.00 40.00 42.00'y=0.49 0.49 0.48 0.47 0.48 0.47 0.46 0.46 0.45 0.43 0.45 0.43 0.43 0.44 0.43.0.43 0.46 0.42 0.42 0.43 0.41 0.41 0.40 0.42 0.40 0.40 0.41 0.40 0.41 0.41.0.40 0.40 0.40 0.38 0.41 0.40 0.40 0.41 0.38 0.40 0.40 0.39 0.39'beta0=0.30 0.02;betafit = n

22、linfit(x,y,model ,beta0)結(jié)果:betafit =0.38960.1011即: a=0.3896 , b=0.1011 擬合函數(shù)為:yy=0.3896+0.1004*exp(-0.1011*(x-8)excell數(shù)據(jù)調(diào)入 matlab中的方法:import data datax=data(:,所調(diào)出數(shù)據(jù)的列數(shù) )如果想調(diào)出某列數(shù)據(jù)中間隔相等的數(shù)據(jù)則:x=data(1:2:10,colume2)則調(diào)用原始數(shù)據(jù)的第二列中前十個數(shù)據(jù)中1、3、5、7、9行數(shù)據(jù)。里插值問題在應(yīng)用領(lǐng)域中,由有限個已知數(shù)據(jù)點,構(gòu)造一個解析表達式,由此計算數(shù)據(jù)點之間的函數(shù)值,稱之為插值。實例:海底探測問

23、題某公司用聲納對海底進行測試,在5X5海里的坐標點上測得海底深度的值,希望通過這些有限的數(shù)據(jù)了解更多處的海底情況。并繪出較細致的海底曲面圖。一、一元插值 一元插值是對一元數(shù)據(jù)點(X i y)進行插值。1 .線性插值:由已知數(shù)據(jù)點連成一條折線,認為相臨兩個數(shù)據(jù)點之間的函數(shù)值就在這兩點之間的連線上。一般來說,數(shù)據(jù)點數(shù)越多,線性插值就越精確。調(diào)用格式:yi=interp1(x,y,xi, ' linea%線性插值zi=interp1(x,y,xi,' s%i三e次樣條插值wi=interp1(x,y,xi,' cUbbic次多項式插值說明:yi、zi、wi為對應(yīng)xi的不同類型

24、的插值。x、y為已知數(shù)據(jù)點。求當(dāng)Xi=0.25時的yi的值。程序:x=0:.1:1;y=.3 .5 1 1.4 1.6 1 .6 .4 .8 1.5 2;yi0=interp1(x,y,0.025,'linear')xi=0:.02:1;yi=interp1(x,y,xi,'linear');zi=interp1(x,y,xi,'spline');wi=interp1(x,y,xi,'cubic');plot(x,y,'o',xi,yi,'r+',xi,zi,'g*',xi,wi,&

25、#39;k.-')Iegend('原始點','線性點','三次樣條','三次多項式')結(jié)果: yi0 = 0.3500要得到給定的幾個點的對應(yīng)函數(shù)值,可用:xi = 0.2500 0.3500 0.4500yi=interp1(x,y,xi,'spline')結(jié)果:yi =1.20881.5802 1.3454(二)二元插值二元插值與一元插值的基本思想一致,對原始數(shù)據(jù)點(x,y,z)構(gòu)造見世面函數(shù)求出插值點數(shù)據(jù)(xi,yi,zi) 。一、單調(diào)節(jié)點插值函數(shù),即 x,y 向量是單調(diào)的。調(diào)用格式 1: zi=in

26、terp2(x,y,z,xi,yi,'linear ') liner是雙線性插值(缺省)調(diào)用格式 2: zi=interp2(x,y,z,xi,yi,'nearest ')'neares是最近鄰域插值調(diào)用格式 3: zi=interp2(x,y,z,xi,yi,'spline ') spline是三次樣條插值說明:這里x和y是兩個獨立的向量, 它們必須是單調(diào)的。z是矩陣,是由x和y確定的點 上的值。z和x,y之間的關(guān)系是z(i,:)=f(x,y(i) z(:,j)=f(x(j),y) 即:當(dāng)x變化時,z的第i行與y 的第i個元素相關(guān),當(dāng)y

27、變化時z的第j列與x的第j個元素相關(guān)。如果沒有對x,y賦值,則 默認x=1:n, y=1:m 。 n和m分別是矩陣z的行數(shù)和列數(shù)。例 2:已知某處山區(qū)地形選點測量坐標數(shù)據(jù)為: x=0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 y=0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 海拔高度數(shù)據(jù)為:z=89 90 87 85 92 91 96 93 90 87 8292 96 98 99 95 91 89 86 84 82 848082828892858480808781 82 89 95 96 93 92 89 86 8685 87 98 99 96

28、97 88 85 82 8385 89 94 95 93 92 91 86 84 8892 93 94 95 89 87 86 83 81 9296 97 98 96 93 95 84 82 81 8485 81 82 80 80 81 85 90 93 9586 81 98 99 98 97 96 95 84 8781 85 82 83 84 87 90 95 86 8882 81 84 85 86 83 82 81 80 8288 89 98 99 97 96 98 94 92 87其地貌圖為:對數(shù)據(jù)插值加密形成地貌圖。程序:x=0:.5:5;y=0:.5:6;z=89 90 87 85 92 91 96 93 90 87 8292 96 98 99 95 91 8

溫馨提示

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

評論

0/150

提交評論