六MATLAB在計算方法中的應用插值擬合講解-課件_第1頁
六MATLAB在計算方法中的應用插值擬合講解-課件_第2頁
六MATLAB在計算方法中的應用插值擬合講解-課件_第3頁
六MATLAB在計算方法中的應用插值擬合講解-課件_第4頁
六MATLAB在計算方法中的應用插值擬合講解-課件_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Matlab在計算方法中的應用(1)一插值2020/12/271Matlab在計算方法中的應用(1)一插值20201,插值問題的提法2020/12/2721,插值問題的提法2020/12/272精品資料3精品資料3你怎么稱呼老師?如果老師最后沒有總結一節(jié)課的重點的難點,你是否會認為老師的教學方法需要改進?你所經(jīng)歷的課堂,是講座式還是討論式?教師的教鞭“不怕太陽曬,也不怕那風雨狂,只怕先生罵我笨,沒有學問無顏見爹娘……”“太陽當空照,花兒對我笑,小鳥說早早早……”44精品資料5精品資料5你怎么稱呼老師?如果老師最后沒有總結一節(jié)課的重點的難點,你是否會認為老師的教學方法需要改進?你所經(jīng)歷的課堂,是講座式還是討論式?教師的教鞭“不怕太陽曬,也不怕那風雨狂,只怕先生罵我笨,沒有學問無顏見爹娘……”“太陽當空照,花兒對我笑,小鳥說早早早……”662,求解的基本思路2020/12/2772,求解的基本思路2020/12/2773,拉格朗日多項式插值

從理論和計算角度看,多項式是最簡單的函數(shù),設f(x)是n次多項式,記作

對于節(jié)點應有

2020/12/2783,拉格朗日多項式插值從理論和計算角度看,多項式是最簡單的4,拉格朗日多項式插值的matlab實現(xiàn)

拉格朗日多項式插值沒有現(xiàn)成的matlab命令可用,如果要求拉格朗日插值多項式則必須自己編制matlab函數(shù)。例采用拉格朗日多項式插值:選取不同插值節(jié)點個數(shù)n+1,其中n為插值多項式的次數(shù),當n分別取2,4,6,8,10時,繪出插值結果圖形.2020/12/2794,拉格朗日多項式插值的matlab實現(xiàn)拉格朗日2020/12/27102020/12/27105,分段線性插值插值函數(shù)為分段的線性函數(shù),即用線段把相鄰的兩個節(jié)點連接起來而得的函數(shù)2020/12/27115,分段線性插值插值函數(shù)為分段的線性函數(shù),即用線段把相鄰的兩6,分段線性插值的matlab命令yi=interp1(x,y,xi,‘linear’)

命令解釋:interp1(一維插值函數(shù))x,y,(用于存放已知節(jié)點的坐標)‘linear’(可選參數(shù),linear表示用分段線性插值的方法做一維值)xi,yi(得到插值函數(shù)后并不是返回具體的函數(shù)而是對于給定的xi返回他所對應的插值函數(shù)的函數(shù)值yi)2020/12/27126,分段線性插值的matlab命令yi=interp例用分段線性插值法求插值,并觀察插值誤差.1.在[-6,6]中平均選取5個點作插值2.在[-6,6]中平均選取11個點作插值2020/12/2713例用分段線性插值法求插值,并觀察插值誤差.1.在[-6,6]x=linspace(-6,6,5);%選取節(jié)點橫坐標作為一個向量y=1./(1+x.^2);%計算出節(jié)點縱坐標xi=linspace(-6,6,50);%選一個更密集的橫坐標劃分yi=interp1(x,y,xi,‘linear’);%由節(jié)點計算插值函數(shù)在xi處的函數(shù)值yii=1./(1+xi.^2);%計算出xi對應的精確函數(shù)值plot(xi,yi,‘r’)%繪出插值函數(shù)的圖形holdon%保持圖形窗口plot(xi,yii)%繪出原函數(shù)的精確圖形x=linspace(-6,6,11);y=1./(1+x.^2);xi=linspace(-6,6,50);yi=interp1(x,y,xi,'linear');yii=1./(1+xi.^2);plot(x,y,'r')holdonplot(xi,yii)2020/12/2714x=linspace(-6,6,5);%選取節(jié)正弦曲線的插值示例:>>x=0:0.1:10;>>y=sin(x);>>xi=0:0.25:10;>>yi=interp1(x,y,xi);>>plot(x,y,’ro’,xi,yi)2020/12/2715正弦曲線的插值示例:2020/12/27157,其他的插值方法命令一維插值:yi=interp1(x,y,xi,‘method’)

methodnearest

最近點插值linear線性插值spline樣條插值cubic立方插值二維插值zi=interp2(x,y,z,xi,yi,‘method’)三維插值vi=interp3(x,y,z,v,xi,yi,zi,‘method’)2020/12/27167,其他的插值方法命令一維插值:yi=interp18,各種一維插值的比較最鄰近x=linspace(-6,6,5);y=1./(1+x.^2);xi=linspace(-6,6,50);yi=interp1(x,y,xi,'nearst');yii=1./(1+xi.^2);plot(xi,yi,'r')holdonplot(xi,yii)2020/12/27178,各種一維插值的比較最鄰近2020/12/2717立方插值x=linspace(-6,6,5);y=1./(1+x.^2);xi=linspace(-6,6,50);yi=interp1(x,y,xi,'cubic');yii=1./(1+xi.^2);plot(xi,yi,'r')holdonplot(xi,yii)2020/12/2718立方插值2020/12/2718樣條x=linspace(-6,6,11);y=1./(1+x.^2);xi=linspace(-6,6,50);yi=interp1(x,y,xi,'spline');yii=1./(1+xi.^2);plot(xi,yi,'r')holdonplot(xi,yii)2020/12/2719樣條2020/12/2719樣條(11節(jié)點)x=linspace(-6,6,11);y=1./(1+x.^2);xi=linspace(-6,6,50);yi=interp1(x,y,xi,'spline');yii=1./(1+xi.^2);plot(xi,yi,'r')holdonplot(xi,yii)2020/12/2720樣條(11節(jié)點)2020/12/2720線性插值較快,有足夠精度linear立方插值較慢,精度高,平滑性好。cubic樣條插值最慢,精度高,平滑性最好spline最鄰近插值最快,精度低,不平滑nearst2020/12/2721線性插值較快,有足夠精度linear立方插值較慢,精度高,平9,樣條插值(spline)x=0:10;y=sin(x);xx=0:0.25:10;yy=spline(x,y,xx);%直接用樣條插值命令求插值plot(x,y,'o',xx,yy)2020/12/27229,樣條插值(spline)x=0:10;y=s分析下邊的程序x=-4:4;y=[0.151.122.362.361.46.49.060];cs=spline(x,y);xx=linspace(-4,4,101);plot(x,y,'o',xx,ppval(cs,xx),'-')ppval(cs,xx)表示由樣條函數(shù)cs上對應于橫坐標xx的縱坐標的值2020/12/2723分析下邊的程序x=-4:4;2020/12/27232020/12/27242020/12/2724二擬合2020/12/2725二擬合2020/12/2725已知數(shù)據(jù)表

x

x1

x2··········xmf(x)y1

y2··········ym求擬合函數(shù):

(x)=a0+a1x+······+anxn使得1,離散數(shù)據(jù)的多項式擬合達到最小2020/12/2726已知數(shù)據(jù)表xx1x22,多項式擬合命令1.作多項式f(x)=a1xm+…+amx+am+1擬合,可利用已有程序:a=polyfit(x,y,m)2.多項式在x處的值y可用以下命令計算:y=polyval(a,x)輸出擬合多項式系數(shù)a=[a1,…am,

am+1](數(shù)組))輸入同長度的數(shù)組X,Y擬合多項式次數(shù)2020/12/27272,多項式擬合命令1.作多項式f(x)=a1xm+…+a例對下面一組數(shù)據(jù)作二次多項式擬合2020/12/2728例對下面一組數(shù)據(jù)作二次多項式擬合2020/12/27281)輸入以下命令:x=0:0.1:1;y=[-0.4471.9783.286.167.087.347.669.569.489.3011.2];A=polyfit(x,y,2)z=polyval(A,x);plot(x,y,'k+',x,z,'r')%作出數(shù)據(jù)點和擬合曲線的圖形2)計算結果:A=-9.810820.1293-0.03172020/12/27291)輸入以下命令:2)計算結果:A=-9.8104,可轉換為多項式擬合例題:數(shù)據(jù)為x=[-70-50-30-1020]y=[0.1820.2190.0770.3321]

擬合方程為:y=exp(ax+b)將擬合方程兩邊取對數(shù)則得lny=ax+b令lny=z得Z=ax+b由y值算出z的值對z與x用一次多項式擬合。2020/12/27304,可轉換為多項式擬合例題:數(shù)據(jù)為x=[-70-50-3x1=[-70-50-30-1020];y1=[-1.704-1.519-2.564-1.1030];%將y中的數(shù)據(jù)取對數(shù)y1=lnysubplot(1,2,1);plot(x1,y1,'o');holdon;p1=polyfit(x1,y1,1);yy1=polyval(p1,-70:20);plot(-70:20,yy1,'r');x=-70:20;y=exp(p1(1).*x+p1(2));subplot(1,2,2);plot(x,y)holdon;xx=[-70-50-30-1020]yy=[0.1820.2190.0770.3321]plot(xx,yy,'o');2020/12/2731x1=[-70-50-30-1020];2020/12020/12/27322020/12/27325,非多項式擬合常用命令1,a=lsqnonlin(fun,a0)此命令用的不多2,X=LSQCURVEFIT(FUN,X0,XDATA,YDATA)

XDATA,YDATA表示原是的數(shù)據(jù)為一些離散點的坐標x0為初始點,根據(jù)實際情況給出可以已知的一個點fun擬合的函數(shù)形式(如4中例y=exp(ax+b))有未知參數(shù)x返回未知參數(shù)(如上例a,b)

2020/12/27335,非多項式擬合常用命令2020/12/2733例題functionF=myfun(x,xdata)F=x(1)*sin(xdata)+x(2)建立myfun.m內容為xdata=[5;4;6];%examplexdataydata=3*sin([5;4;6])+6;%exampleydatax=lsqcurvefit(@myfun,[16],xdata,ydata);運行下列命令2020/12/2734例題functionF=myfun(x,xdata)建xdd=4:0.1:6;ydd=x(1)*sin(xdd)+x(2);plot(xdd,ydd)holdonplot(xdata,ydata,'ro')2020/12/2735xdd=4:0.1:6;2020/12/2735或寫為

溫馨提示

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

評論

0/150

提交評論