計算機仿真技術MATLAB數據處理插值擬合課件_第1頁
計算機仿真技術MATLAB數據處理插值擬合課件_第2頁
計算機仿真技術MATLAB數據處理插值擬合課件_第3頁
計算機仿真技術MATLAB數據處理插值擬合課件_第4頁
計算機仿真技術MATLAB數據處理插值擬合課件_第5頁
已閱讀5頁,還剩175頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

計算機仿真技術MATLAB數據處理插值擬合計算機仿真技術MATLAB數據處理插值擬合計算機仿真技術MATLAB數據處理插值擬合第八章MATLAB數據處理教學目標介紹MATLAB數據插值和數據擬合學習要求熟練掌握MATLAB數據插值和數據擬合。計算機仿真技術MATLAB數據處理插值擬合計算機仿真技術MA1第八章MATLAB數據處理教學目標介紹MATLAB數據插值和數據擬合學習要求熟練掌握MATLAB數據插值和數據擬合。第八章MATLAB數據處理教學目標學習要求2一、數據擬合什么叫數據擬合數據擬合是求一個簡單的函數,例如是一個低次多項式,不要求通過已知的這些點,而是要求在整體上“盡量好”的逼近原函數。Matlab常用擬合方法:多項式擬合(polyfit),非線性曲線擬合(lsqcurvefit)一、數據擬合什么叫數據擬合3一、數據擬合多項式曲線擬合:polyfit.函數名稱:polyfit格式:p=polyfit(x,y,m),x,y為已知數據點向量,分別表示橫,縱坐標,m為擬合多項式的次數,結果返回m次擬合多項式系數,從高次到低次存放在向量p中.y0=polyval(p,x0),可求得多項式在x0處的值y0.一、數據擬合多項式曲線擬合:polyfit.4一、數據擬合例題1:已知觀測數據點如表所示,用3次和6次多項式擬合xy0-0.4470.11.9780.23.280.36.160.47.080.57.340.67.660.79.560.89.480.99.3111.2一、數據擬合例題1:已知觀測數據點如表所示,用3次和6次多項5一、數據擬合Matlab代碼:x=0:0.1:1;y=[-.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2]plot(x,y,'k.','markersize',25);axis([01.3-216])p3=polyfit(x,y,3);p6=polyfit(x,y,6);t=0:0.1:1.2;s=polyval(p3,t);s1=polyval(p6,t);holdon;plot(t,s,'r-','linewidth',2);plot(t,s1,'b--','linewidth',2);gridon一、數據擬合Matlab代碼:6一、數據擬合例題2:用切削機床進行金屬品加工時,為了適當地調整機床,需要測定刀具的磨損速度.在一定的時間測量刀具的厚度,得數據如表所示:切削時間t/h030.0129.1228.4328.1428.0527.7627.5727.2827.0刀具厚度y/cm切削時間t/h926.81026.51126.31226.11325.71425.31524.81624.0刀具厚度y/cm一、數據擬合例題2:用切削機床進行金屬品加工時,為了適當地7一、數據擬合Matlab代碼:t=[0:1:16];y=[30.029.128.428.128.027.727.527.227.026.826.526.326.125.725.324.824.0];plot(t,y,'*');holdona=polyfit(t,y,5);y1=polyval(a,t);plot(t,y1),holdoff;一、數據擬合Matlab代碼:8一、數據擬合例題3:一個15.4cm×30.48cm的混凝土柱在加壓實驗中的應力-應變關系測試點的數據如表所示已知應力-應變關系可以用一條指數曲線來描述,即假設式中,表示應力,單位是N/m2;表示應變,求系數1.552.472.933.032.89一、數據擬合例題3:一個15.4cm×30.48cm的混凝土9一、數據擬合求解:1)要使用多項式擬合,因此需要將表達式轉換為多項式形式化為k1,k2

的線性函數.于是,令即一、數據擬合求解:化為k1,k2的線性函數.于是,令即10一、數據擬合matlab代碼:x=[500*1.0e-61000*1.0e-61500*1.0e-62000*1.0e-62375*1.0e-6];y=[3.103*1.0e+32.465*1.0e+31.953*1.0e+31.517*1.0e+31.219*1.0e+3];z=log(y);a=polyfit(x,z,1);k1=exp(a(2));w=[1.552.472.933.032.89]plot(x,w,'*')y1=exp(a(2))*x.*exp(a(1)*x);plot(x,w,'*',x,y1,'r-')一、數據擬合matlab代碼:11已知應力-應變關系可以用一條指數曲線來描述,即假設式中,表示應力,單位是N/m2;表示應變.擬合曲線為:令則求得于是一、數據擬合已知應力-應變關系可以用一條指數曲線來描述,即假設式中,12在實際應用中常見的擬合曲線有:直線多項式一般n=2,3,不宜過高.雙曲線(一支)指數曲線一、數據擬合在實際應用中常見的擬合曲線有:直線多項式一般n=2,3,132.非線性曲線擬合:lsqcurvefit.功能:x=lsqcurvefit(fun,x0,xdata,ydata)[x,resnorm]=lsqcurvefit(fun,x0,xdata,ydata)根據給定的數據xdata,ydata(對應點的橫,縱坐標),按函數文件fun給定的函數,以x0為初值作最小二乘擬合,返回函數fun中的系數向量x和殘差的平方和resnorm.一、數據擬合2.非線性曲線擬合:lsqcurvefit.功能:x=14例4已知觀測數據點如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求三個參數a,b,c的值,使得曲線f(x)=aex+bx2+cx3

與已知數據點在最小二乘意義上充分接近.首先編寫存儲擬合函數的函數文件.functionf=nihehanshu(x,xdata)f=x(1)*exp(xdata)+x(2)*xdata.^2+x(3)*xdata.^3保存為文件nihehanshu.m一、數據擬合例4已知觀測數據點如表所示xy03.10.13.270.15例4已知觀測數據點如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求三個參數a,b,c的值,使得曲線f(x)=aex+bx2+cx3

與已知數據點在最小二乘意義上充分接近.編寫下面的程序調用擬合函數.xdata=0:0.1:1;ydata=[3.1,3.27,3.81,4.5,5.18,6,7.05,8.56,9.69,11.25,13.17];x0=[1,1,1];[x,resnorm]=lsqcurvefit(@nihehanshu,x0,xdata,ydata)一、數據擬合例4已知觀測數據點如表所示xy03.10.13.270.16編寫下面的程序調用擬合函數.xdata=0:0.1:1;ydata=[3.1,3.27,3.81,4.5,5.18,6,7.05,8.56,9.69,11.25,13.17];x0=[0,0,0];[x,resnorm]=lsqcurvefit(@nihehanshu,x0,xdata,ydata)程序運行后顯示x=3.00224.03040.9404resnorm=0.0912一、數據擬合編寫下面的程序調用擬合函數.xdata=0:0.1:1;程序17例4已知觀測數據點如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求三個參數a,b,c的值,使得曲線f(x)=aex+bx2+cx3

與已知數據點在最小二乘意義上充分接近.說明:最小二乘意義上的最佳擬合函數為f(x)=3ex+4.03x2+0.94x3.此時的殘差是:0.0912.一、數據擬合例4已知觀測數據點如表所示xy03.10.13.270.18f(x)=3ex+4.03x2+0.94x3.擬合函數為:一、數據擬合f(x)=3ex+4.03x2+0.94x3.擬合19練習:1.已知觀測數據點如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求用三次多項式進行擬合的曲線方程.2.已知觀測數據點如表所示xy1.617.72.7491.313.14.1189.43.6110.82.334.50.644.9409.13652.436.9求a,b,c的值,使得曲線f(x)=aex+bsinx+clnx與已知數據點在最小二乘意義上充分接近.一、數據擬合練習:1.已知觀測數據點如表所示xy03.10.13.2720二、數據插值什么叫數據插值用插值的方法對一函數進行近似,要求所得到的插值多項式經過已知插值節點;在n比較大的情況下,插值多項式往往是高次多項式,這也就容易出現振蕩現象(龍格現象),即雖然在插值節點上沒有誤差,但在插值節點之外插值誤差變得很大,從“整體”上看,插值逼近效果將變得“很差”常用插值方法:分段線性插值、三次樣條曲線插值二、數據插值什么叫數據插值21已知n+1個節點其中互不相同,不妨設求任一插值點處的插值節點可視為由產生,g表達式復雜,甚至無表達式二、數據插值已知n+1個節點其中互不相同,不妨設求任一插值點處的插值221.分段線性插值xjxj-1xj+1x0xn實用插值方法機翼下輪廓線2.三次樣條插值細木條:樣條二、數據插值1.分段線性插值xjxj-1xj+1x0xn實用23輸入:節點x0,y0,插值點x(均為數組,長度自定義);輸出:插值y(與x同長度數組).1.分段線性插值:y=interp1(x0,y0,x)y=interp1(x0,y0,x,’linear’)2.三次樣條插值:y=interp1(x0,y0,x,’spline’)或y=spline(x0,y0,x)二、數據插值輸入:節點x0,y0,插值點x(均為數組,長度自定義24例5對在[-1,1]上,用n=20的等距分點進行分段線性插值,繪制f(x)及插值函數的圖形.解在命令窗口輸入:x=-1:0.1:1y=1./(1+9*x.^2)xi=-1:0.1:1yi=interp1(x,y,xi)plot(x,y,'r-',xi,yi,'*')二、數據插值第十次課到此例5對在[-25例6對在[-5,5]上,用n=11個等距分點作分段線性插值和三次樣條插值,用m=21個插值點作圖,比較結果.解在命令窗口輸入:n=11,m=21x=-5:10/(m-1):5y=1./(1+x.^2)z=0*xx0=-5:10/(n-1):5y0=1./(1+x0.^2)y1=interp1(x0,y0,x)y2=interp1(x0,y0,x,'spline')[x'y'y1'y2']plot(x,z,'r',x,y,'k:',x,y1,'b',x,y2,'g')gtext('Piece.-linear.'),gtext('Spline'),gtext('y=1/(1+x^2)')二、數據插值例6對在[-5,52601.00001.00001.00000.50000.80000.75000.82051.00000.50000.50000.50001.50000.30770.35000.29732.00000.20000.20000.20002.50000.13790.15000.14013.00000.10000.10000.10003.50000.07550.07940.07454.00000.05880.05880.05884.50000.04710.04860.04845.00000.03850.03850.0385例6對在[-5,5]上,用n=11個等距分點作分段線性插值和三次樣條插值,用m=21個插值點作圖,比較結果.xyy1y2二、數據插值01.00001.27解在命令窗口輸入:例7在一天24h內,從零點開始每間隔2h測得的環境溫度為12,9,9,10,18,24,28,27,25,20,18,15,13二、數據插值(單位:)推測在每1s時的溫度.并描繪溫度曲線.t=0:2:24T=[129910182428272520181513]plot(t,T,'*')ti=0:1/3600:24T1i=interp1(t,T,ti)plot(t,T,'*',ti,T1i,'r-')T2i=interp1(t,T,ti,'spline')plot(t,T,'*',ti,T1i,'r-',ti,T2i,'g-')解在命令窗口輸入:例7在一天24h內,從零點開始28例8在飛機的機翼加工時,由于機翼尺寸很大,通常在圖紙上只能標出部分關鍵點的數據.某型號飛機的機翼上緣輪廓線的部分數據如下:x04.749.051938577695114133y05.238.111.9716.1517.116.3414.6312.166.69x152171190y7.033.990二、數據插值例8在飛機的機翼加工時,由于機翼尺寸很大,通常在圖29例8在飛機的機翼加工時,由于機翼尺寸很大,通常在圖紙上只能標出部分關鍵點的數據.某型號飛機的機翼上緣輪廓線的部分數據如下:x=[04.749.051938577695114133152171190]y=[05.238.111.9716.1517.116.3414.6312.169.697.033.990]xi=[0:0.001:190]yi=interp1(x,y,xi,'spline')plot(xi,yi)二、數據插值例8在飛機的機翼加工時,由于機翼尺寸很大,通常在圖30例9天文學家在1914年8月份的7次觀測中,測得地球與金星之間距離(單位:m),并取其常用對數值與日期的一組歷史數據如下所示,試推斷何時金星與地球的距離(單位:m)的對數值為9.9352.日期18202224262830距離對數9.96189.95449.94689.93919.93129.92329.9150解由于對數值9.9352位于24和26兩天所對應的對數值之間,所以對上述數據用三次樣條插值加細為步長為1的數據:二、數據插值例9天文學家在1914年8月份的7次觀測中,測得地球與31解由于對數值9.9352位于24和26兩天所對應的對數值之間,所以對上述數據用三次樣條插值加細為步長為1的數據:x=[18:2:30]y=[9.96189.95449.94689.93919.93129.92329.9150]xi=[18:1:30]yi=interp1(x,y,xi,'spline')A=[xi;yi]二、數據插值解由于對數值9.9352位于24和26兩天所32練習:1.設在區間[-2,2]上用10等分點作為節點,分別用三種插值方法:二、數據插值(1)計算并輸出在該區間的20等分點的函數值.(2)輸出這個函數及兩個插值函數的圖形.(3)對輸出的數據和圖形進行分析.練習:1.設在區間33練習:2.已知某型號飛機的機翼斷面下緣輪廓線上的部分數據如表所示:假設需要得到x

坐標每改變0.1時的y

坐標,分別用兩種插值方法對機翼斷面下緣輪廓線上的部分數據加細,并作出插值函數的圖形.xy0031.251.772.092.1112.0121.8131.2141.0151.6二、數據插值練習:2.已知某型號飛機的機翼斷面下緣輪廓線上的部分數據如34(1)打開曲線擬合工具界面通過cftool命令打開曲線擬合工具界面三、擬合工具箱(1)打開曲線擬合工具界面三、擬合工具箱35Data按鈕:可輸出、查看和平滑數據;Fitting按鈕:可擬合數據、比較擬合曲線和數據集;Exclude按鈕:可以從擬合曲線中排除特殊的數據點;Ploting按鈕:在選定區間后,單擊按鈕,可以顯示擬合曲線和數據集;Analysis按鈕:可以做內插法、外推法、微分或積分擬合。三、擬合工具箱五個按鈕Data按鈕:可輸出、查看和平滑數據;三、擬合工具箱五個按鈕36在輸入數據之前,數據變量必須存在于matlab的工作區間。可以通過load命令輸入變量。單擊曲線擬合工具界面中的Data按鈕,打開Data對話框,在對話框中進行設置,可以輸入數據。注意:三、擬合工具箱在輸入數據之前,數據變量必須存在于注意:三、擬合37包括兩個選項卡:DataSets和Smooth.DataSets選項卡:.Importworkspacevectors把向量輸入工作區,要注意的是變量必須具有相同的維數,無窮大的值和不定值被忽略。Xdata用于選擇觀測數據Ydata用于選擇X的響應數據Weight用于選擇權重,與響應數據相聯系的向量,如果沒選擇,默認值為1.Data對話框:三、擬合工具箱包括兩個選項卡:DataSets和Smooth.Da38三、擬合工具箱.Preview對所選向量進行圖形化預覽.Datasetname設置數據集的名稱。工具箱可以隨即產生唯一的文件名,但用戶可以重命名。.Datasets選項以列表的形式顯示所有擬合的數據集。當選擇一個數據集時,可以對它做如下操作:

.View查看數據集,以圖標形式和列表形式,可以選擇方法排除異常值;

.Rename重命名.Delete刪除數據組Data對話框:三、擬合工具箱.Preview對所選向量進行圖形化預覽Da39census有兩個變量:cdate和pop。

cdate是一個年向量,包括1790-1990年,pop是對應年份的美國人口。whos-filecensusNameSizeBytesClassAttributescdate21x1168doublepop21x1168doubleloadcensuscftool(cdate,pop)例題,用matlab自帶的文件census擬合:三、擬合工具箱census有兩個變量:cdate和pop。例題,用40三、擬合工具箱散點圖三、擬合工具箱散點圖41三、擬合工具箱單擊Data按鈕三、擬合工具箱單擊Data按鈕42三、擬合工具箱在Xdata和Ydata兩個下拉式列表框中選擇變量名,將在Data對話框中顯示散點圖的預覽效果:三、擬合工具箱在Xdata和Ydata兩個下拉式列表框中43三、擬合工具箱當選擇Datasets列表框中的數據集時,單擊View按鈕,打開ViewDataSet對話框工作表方式三、擬合工具箱當選擇Datasets列表框中的數據集時,單44在曲線擬合工具箱中,數據的預處理主要包括平滑法、排除法和區間排除法等。(1)平滑數據打開擬合工具箱,單擊Data按鈕,打開Data對話框,選擇Smooth選項卡數據預處理:三、擬合工具箱在曲線擬合工具箱中,數據的預處理主要包數據預處理:三、擬合工45三、擬合工具箱三、擬合工具箱46.Originaldataset用于挑選需要擬合的數據集;.Smootheddataset平滑數據的名稱;.Method用于選擇平滑數據的方法,每一個相應數據用通過特殊的曲線平滑方法所計算的結果來取代。平滑數據的方法包括:(ⅰ)Movingaverage用移動平均值進行替換;(ⅱ)Lowess局部加權散點圖平滑數據,采用線性最小二乘法和一階多項式擬合得到的數據進行替換;Smooth選項卡各選項的功能:三、擬合工具箱.Originaldataset用于挑選需要擬合的數據47三、擬合工具箱(ⅲ)Loess局部加權散點圖平滑數據,采用線性最小二乘法和二階多項式擬合得到的數據進行交換;(ⅳ)Savitzky-Golay采用未加權的線性最小二乘法過濾數據,利用指定階數的多項式得到的數據進行替換;(ⅴ)Span用于進行平滑計算的數據點的數目;(ⅵ)Degree用于Savitzky-Golay方法擬合多項式的階數。Smooth各選項卡功能:三、擬合工具箱(ⅲ)Loess局部加權散點圖平滑數據,采用線48三、擬合工具箱.Smootheddatasets對于所有平滑數據集進行列表。可以增加平滑數據集,通過單擊Createsmootheddataset按鈕,可以創建經過平滑的數據集。.View按鈕打開查看數據集的GUI,以散點圖方式和工作表方式查看數據,可以選擇排除異常值的方法。.Rename用于重命名。.Delete可刪去數據組。.Savetoworkspace保存數據集。Smooth各選項卡功能:三、擬合工具箱.Smootheddatasets對于所49排除法是對數據中的異常值進行排除。區間排除法是采用一定的區間去排除那些用于系統誤差導致偏離正常值的異常值。在曲線擬合工具中單擊Exclude按鈕,可以打開Exclude對話框排除法和區間排除法:三、擬合工具箱排除法是對數據中的異常值進行排除。排除法和區間排除法:三、擬50三、擬合工具箱三、擬合工具箱51三、擬合工具箱Exclusionrulename指定分離規則的名稱Existingexclusionrules列表產生的文件名,當你選擇一個文件名時,可以進行如下操作:Copy復制分離規則的文件;Rename重命名;delete刪去一個文件;View以圖形的形式展示分離規則的文件。Selectdataset挑選需要操作的數據集;Excludegraphically允許你以圖形的形式去除異常值,排除個別的點用“×”標記。Excusion選項:三、擬合工具箱Exclusionrulename指定分離52三、擬合工具箱Checktoexcludepoint挑選個別的點進行排除,可以通過在數據表中打勾來選擇要排除的數據。ExcludeSections選定區域排除數據:

ExcludeX選擇預測數據X要排除的數據范圍;

ExcludeY選擇響應數據Y要排除的數據范圍。Exclusion選項:三、擬合工具箱Checktoexcludepoint53其他的預處理方法不便通過曲線擬合工具箱來完成,主要包括兩部分:響應數據的轉換和去除無窮大、缺失值和異常值。響應數據的轉換一般包括對數轉換、指數轉換,用這些轉換可以使非線性的模型線性化,便于曲線擬合。變量的轉換一般在命令行里實現,然后把轉換后的數據輸入曲線擬合工具箱,進行擬合。其他預處理方法:三、擬合工具箱其他的預處理方法不便通過曲線擬合工具箱其他預處理方法:三、擬54三、擬合工具箱無窮大、不定值在曲線擬合中可以忽略,如果想把他們從數據集中刪除,可以用isinf和isnan置換無窮大值和缺失值。其他預處理:三、擬合工具箱無窮大、不定值在曲線擬合中可以忽略,如其他預處55第一步:在命令行鍵入Cftool打開curvefittingtool對話框;第二步:在curvefittingtool對話框中單擊Data按鈕打開data對話框指定要分析的(預先存在工作區間)數據;第三步:在curvefittingtool對話框中單擊fitting按鈕打開fitting對話框,進行設置,實現曲線擬合。曲線的參數擬合:三、擬合工具箱第一步:在命令行鍵入Cftool打開曲線的參數擬合:三、擬合56三、擬合工具箱三、擬合工具箱57包括兩個面板:“FitEditor”面板和“TabeofFits”面板。(1)Fiteditor選擇擬合的文件名、數據集,選擇排除數據的文件,比較數據擬合的各種方法,包括庫函數、自定義的擬合模型和擬合參數的選擇。(2)TableofFits同時列出所有的擬合結果。Fitting對話框:三、擬合工具箱包括兩個面板:“FitEditor”面板和“TabeFi58Newfit和Copyfit按鈕:開始進行曲線擬合是,單擊Newfit按鈕,它采用默認的線性多項式擬合數據。在原有的擬合形式上,選擇不同的曲線擬合方法,可以用Copyfit按鈕。Fitname選項為當前擬合曲線的名字。單擊Newfit按鈕時系統會產生默認的文件名。Dataset選項為當前的數據集。Exclusionrule排除異常值的文件名,在數據預處理前建立的文件名。Fitting對話框:三、擬合工具箱Newfit和Copyfit按鈕:開始進行曲線擬合59三、擬合工具箱CenterandscaleXdata可對觀測數據進行中心化和離散化處理。Typeoffit擬合的類型,包括參數擬合和非參數擬合兩種。具體包括:(1)CustomEquations自定義擬合的線性或非線性方程;(2)Newequation使用CustomEquations按鈕前,必須單擊Newequation按鈕選擇合適的方程;Fitting對話框:三、擬合工具箱CenterandscaleXdata60三、擬合工具箱(3)Exponential指數擬合包括兩種形式:

y=a*exp(b*x)y=a*exp(b*x)+c*exp(d*x)(4)Fourier傅立葉擬合,正弦和余弦之和(共8個多項式)

Fitting對話框:三、擬合工具箱(3)Exponential指數擬合包括兩種形61三、擬合工具箱(5)Gaussian高斯法,包括8個公式:(6)Interpolant內插法,包括線性內插、最近鄰內插、三次樣條內插和shape-preserving內插;(7)Polynomial多項式,從一次到九次;三、擬合工具箱(5)Gaussian高斯法,包括8個公式:62三、擬合工具箱(8)Rational有理擬合,兩個多項式之比,分子與分母都是多項式;(9)Power指數擬合,包括兩種形式:

y=a*x^by=a*x^b+c(10)Smoothingspline平滑樣條擬合,默認的平滑參數由擬合的數據集來決定,參數是0產生一個分段的線性多項式擬合,參數是1產生一個分段三次多項式擬合;三、擬合工具箱(8)Rational有理擬合,兩個多項式之比63三、擬合工具箱(11)SumofSinFunctions正弦函數的和,采用以下8個公式:

a1*sin(b1*x+c1)…a1*sin(b1*x+c1)+…+a8*sin(b8*x+c8)(12)Weibull兩個參數的Weibull分布,表達式如下:Y=a*b*x^(b-1)*exp(-a*x^b)三、擬合工具箱(11)SumofSinFunction64三、擬合工具箱Fitoptions包括一些擬合方法,如線性擬合、非線性擬合,以及其他選項;單擊Apply按鈕:采用上述所選各種方法進行擬合;單擊Immediateapply按鈕,在選擇一個擬合形式后立即輸出結果并存儲;Results羅列進行擬合的各種參數:(1)SSE-sumofsquaresduetoerror誤差平方和,越接近0曲線的擬合效果越好(2)R-square越接近1,曲線的擬合效果越好三、擬合工具箱Fitoptions包括一些擬合方法,如線65三、擬合工具箱(3)DegreeofFreedomAdjustedR-Square調整自由度以后的殘差的平方,數值越接近1,曲線的擬合效果越好(4)RootMeanSquareError根的均方誤差Tableoffits擬合曲線的列表,可以對每個列表做如下操作:Deletefit刪除所選的擬合曲線;Savetoworkspace儲存所有的擬合信息;Tableoptions選擇與擬合相聯系的信息。三、擬合工具箱(3)DegreeofFreedomAd66rand('state',0)%重置生成器到初始狀態x=[1:0.1:39:0.1:10]';c=[2.5-0.51.3-0.1];y=c(1)+c(2)*x+c(3)*x.^2+c(4)*x.^3+(rand(size(x))-0.5);cftool(x,y);建立一個M文件,并運行上述文件,打開曲線擬合工具例題用三次和五次多項式擬合:三、擬合工具箱rand('state',0)%重置生成器到初始狀態例題用67三、擬合工具箱三、擬合工具箱68三、擬合工具箱點擊fitting按鈕—newfit—cubicpolynomial--apply三、擬合工具箱點擊fitting按鈕—newfit—cub69LinearmodelPoly3:f(x)=p1*x^3+p2*x^2+p3*x+p4Coefficients(with95%confidencebounds):p1=-0.09837(-0.1095,-0.08729)p2=1.275(1.113,1.437)p3=-0.4351(-1.092,0.2222)p4=2.56(1.787,3.332)Goodnessoffit:SSE:2.587R-square:0.9993AdjustedR-square:0.9993RMSE:0.3039結果:三、擬合工具箱LinearmodelPoly3:結果:三、擬合工具箱70LinearmodelPoly5:f(x)=p1*x^5+p2*x^4+p3*x^3+p4*x^2+p5*x+p6Coefficients(with95%confidencebounds):p1=0.001389(-0.003589,0.006367)p2=-0.03441(-0.1601,0.09125)p3=0.1934(-0.9131,1.3)p4=0.2733(-3.856,4.402)p5=1.013(-5.785,7.811)p6=1.835(-2.167,5.837)Goodnessoffit:SSE:2.552R-square:0.9993AdjustedR-square:0.9992RMSE:0.3133結果:三、擬合工具箱LinearmodelPoly5:結果:三、擬合工具箱71擬合圖形:三、擬合工具箱擬合圖形:三、擬合工具箱72練習:hahn1.m是matlab自帶,描述銅的熱膨脹與熱力學溫度的相關性,包括兩個向量temp與thermex。loadhahn1cftool(temp,thermex)

三、擬合工具箱練習:hahn1.m是matlab自帶,描述銅的熱膨脹與熱力73有時我們對擬合參數的提取或解釋不感興趣,只想得到一個平滑的通過各數據點的曲線,這種擬合曲線的形式稱之為非參數擬合。非參數擬合的方法包括(1)插值法Interpolants(2)平滑樣條內插法Smoothingspline

非參數插值:三、擬合工具箱有時我們對擬合參數的提取或解釋不感非參數插值:三74在已知數據點之間估計數值的過程,包括Linear線性內插,在每一隊數據之間用不同的線性多項式擬合;Nearestneighbor最近鄰內插,內插點在最相鄰的數據點之間;Cubicspline三次樣條內插,在每一隊數據之間用不同的三次多項式擬合;Shape-preserving分段三次艾爾米特內插.內插法:三、擬合工具箱在已知數據點之間估計數值的過程,包括內插法:三、擬合工具箱75是對雜亂無章的數據進行平滑處理,可以用平滑數據的方法來擬合,平滑的方法在數據的預處理中已經介紹。平滑樣條內插法:三、擬合工具箱是對雜亂無章的數據進行平滑處理,可以用平滑數據的方法來擬合,76loadcarbon12alphacftool(counts,angle)fit1Fitting—typeoffit—

Interpolant--Nearestneighborfit2Fitting—typeoffit—

Interpolant--Shape-preserving例:用內插法擬合carbon12alpha.mat數據:三、擬合工具箱loadcarbon12alpha例:用內插法擬合ca77三、擬合工具箱三、擬合工具箱78三、擬合工具箱三、擬合工具箱79rand('state',0);x=(4*pi)*[01rand(1,25)];y=sin(x)+.2*(rand(size(x))-.5);cftool(x,y)例題:用三次樣條內插和集中平滑樣條內插法擬合:三、擬合工具箱rand('state',0);例題:用三次樣條內插和集80三、擬合工具箱三、擬合工具箱81三、擬合工具箱三、擬合工具箱82三、擬合工具箱三、擬合工具箱83三、擬合工具箱三、擬合工具箱84Matlab還提供了一個方便簡捷的擬合界面。它具有擬合快速,操作簡便的有時,但擬合方法較少。使用步驟:(1)導入數據,并畫圖;(2)在tool菜單中單擊BasicFitting對話框基本擬合界面:三、擬合工具箱Matlab還提供了一個方便簡捷的擬合界面。它具有擬合快速,85loadcensusplot(cdate,pop,'ro')例題:用基本擬合界面擬合census.mat:三、擬合工具箱loadcensus例題:用基本擬合界面擬合census.86三、擬合工具箱三、擬合工具箱87三、擬合工具箱三、擬合工具箱88三、擬合工具箱三、擬合工具箱89 謝謝大家! 謝謝大家!90計算機仿真技術MATLAB數據處理插值擬合計算機仿真技術MATLAB數據處理插值擬合計算機仿真技術MATLAB數據處理插值擬合第八章MATLAB數據處理教學目標介紹MATLAB數據插值和數據擬合學習要求熟練掌握MATLAB數據插值和數據擬合。計算機仿真技術MATLAB數據處理插值擬合計算機仿真技術MA91第八章MATLAB數據處理教學目標介紹MATLAB數據插值和數據擬合學習要求熟練掌握MATLAB數據插值和數據擬合。第八章MATLAB數據處理教學目標學習要求92一、數據擬合什么叫數據擬合數據擬合是求一個簡單的函數,例如是一個低次多項式,不要求通過已知的這些點,而是要求在整體上“盡量好”的逼近原函數。Matlab常用擬合方法:多項式擬合(polyfit),非線性曲線擬合(lsqcurvefit)一、數據擬合什么叫數據擬合93一、數據擬合多項式曲線擬合:polyfit.函數名稱:polyfit格式:p=polyfit(x,y,m),x,y為已知數據點向量,分別表示橫,縱坐標,m為擬合多項式的次數,結果返回m次擬合多項式系數,從高次到低次存放在向量p中.y0=polyval(p,x0),可求得多項式在x0處的值y0.一、數據擬合多項式曲線擬合:polyfit.94一、數據擬合例題1:已知觀測數據點如表所示,用3次和6次多項式擬合xy0-0.4470.11.9780.23.280.36.160.47.080.57.340.67.660.79.560.89.480.99.3111.2一、數據擬合例題1:已知觀測數據點如表所示,用3次和6次多項95一、數據擬合Matlab代碼:x=0:0.1:1;y=[-.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2]plot(x,y,'k.','markersize',25);axis([01.3-216])p3=polyfit(x,y,3);p6=polyfit(x,y,6);t=0:0.1:1.2;s=polyval(p3,t);s1=polyval(p6,t);holdon;plot(t,s,'r-','linewidth',2);plot(t,s1,'b--','linewidth',2);gridon一、數據擬合Matlab代碼:96一、數據擬合例題2:用切削機床進行金屬品加工時,為了適當地調整機床,需要測定刀具的磨損速度.在一定的時間測量刀具的厚度,得數據如表所示:切削時間t/h030.0129.1228.4328.1428.0527.7627.5727.2827.0刀具厚度y/cm切削時間t/h926.81026.51126.31226.11325.71425.31524.81624.0刀具厚度y/cm一、數據擬合例題2:用切削機床進行金屬品加工時,為了適當地97一、數據擬合Matlab代碼:t=[0:1:16];y=[30.029.128.428.128.027.727.527.227.026.826.526.326.125.725.324.824.0];plot(t,y,'*');holdona=polyfit(t,y,5);y1=polyval(a,t);plot(t,y1),holdoff;一、數據擬合Matlab代碼:98一、數據擬合例題3:一個15.4cm×30.48cm的混凝土柱在加壓實驗中的應力-應變關系測試點的數據如表所示已知應力-應變關系可以用一條指數曲線來描述,即假設式中,表示應力,單位是N/m2;表示應變,求系數1.552.472.933.032.89一、數據擬合例題3:一個15.4cm×30.48cm的混凝土99一、數據擬合求解:1)要使用多項式擬合,因此需要將表達式轉換為多項式形式化為k1,k2

的線性函數.于是,令即一、數據擬合求解:化為k1,k2的線性函數.于是,令即100一、數據擬合matlab代碼:x=[500*1.0e-61000*1.0e-61500*1.0e-62000*1.0e-62375*1.0e-6];y=[3.103*1.0e+32.465*1.0e+31.953*1.0e+31.517*1.0e+31.219*1.0e+3];z=log(y);a=polyfit(x,z,1);k1=exp(a(2));w=[1.552.472.933.032.89]plot(x,w,'*')y1=exp(a(2))*x.*exp(a(1)*x);plot(x,w,'*',x,y1,'r-')一、數據擬合matlab代碼:101已知應力-應變關系可以用一條指數曲線來描述,即假設式中,表示應力,單位是N/m2;表示應變.擬合曲線為:令則求得于是一、數據擬合已知應力-應變關系可以用一條指數曲線來描述,即假設式中,102在實際應用中常見的擬合曲線有:直線多項式一般n=2,3,不宜過高.雙曲線(一支)指數曲線一、數據擬合在實際應用中常見的擬合曲線有:直線多項式一般n=2,3,1032.非線性曲線擬合:lsqcurvefit.功能:x=lsqcurvefit(fun,x0,xdata,ydata)[x,resnorm]=lsqcurvefit(fun,x0,xdata,ydata)根據給定的數據xdata,ydata(對應點的橫,縱坐標),按函數文件fun給定的函數,以x0為初值作最小二乘擬合,返回函數fun中的系數向量x和殘差的平方和resnorm.一、數據擬合2.非線性曲線擬合:lsqcurvefit.功能:x=104例4已知觀測數據點如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求三個參數a,b,c的值,使得曲線f(x)=aex+bx2+cx3

與已知數據點在最小二乘意義上充分接近.首先編寫存儲擬合函數的函數文件.functionf=nihehanshu(x,xdata)f=x(1)*exp(xdata)+x(2)*xdata.^2+x(3)*xdata.^3保存為文件nihehanshu.m一、數據擬合例4已知觀測數據點如表所示xy03.10.13.270.105例4已知觀測數據點如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求三個參數a,b,c的值,使得曲線f(x)=aex+bx2+cx3

與已知數據點在最小二乘意義上充分接近.編寫下面的程序調用擬合函數.xdata=0:0.1:1;ydata=[3.1,3.27,3.81,4.5,5.18,6,7.05,8.56,9.69,11.25,13.17];x0=[1,1,1];[x,resnorm]=lsqcurvefit(@nihehanshu,x0,xdata,ydata)一、數據擬合例4已知觀測數據點如表所示xy03.10.13.270.106編寫下面的程序調用擬合函數.xdata=0:0.1:1;ydata=[3.1,3.27,3.81,4.5,5.18,6,7.05,8.56,9.69,11.25,13.17];x0=[0,0,0];[x,resnorm]=lsqcurvefit(@nihehanshu,x0,xdata,ydata)程序運行后顯示x=3.00224.03040.9404resnorm=0.0912一、數據擬合編寫下面的程序調用擬合函數.xdata=0:0.1:1;程序107例4已知觀測數據點如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求三個參數a,b,c的值,使得曲線f(x)=aex+bx2+cx3

與已知數據點在最小二乘意義上充分接近.說明:最小二乘意義上的最佳擬合函數為f(x)=3ex+4.03x2+0.94x3.此時的殘差是:0.0912.一、數據擬合例4已知觀測數據點如表所示xy03.10.13.270.108f(x)=3ex+4.03x2+0.94x3.擬合函數為:一、數據擬合f(x)=3ex+4.03x2+0.94x3.擬合109練習:1.已知觀測數據點如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求用三次多項式進行擬合的曲線方程.2.已知觀測數據點如表所示xy1.617.72.7491.313.14.1189.43.6110.82.334.50.644.9409.13652.436.9求a,b,c的值,使得曲線f(x)=aex+bsinx+clnx與已知數據點在最小二乘意義上充分接近.一、數據擬合練習:1.已知觀測數據點如表所示xy03.10.13.27110二、數據插值什么叫數據插值用插值的方法對一函數進行近似,要求所得到的插值多項式經過已知插值節點;在n比較大的情況下,插值多項式往往是高次多項式,這也就容易出現振蕩現象(龍格現象),即雖然在插值節點上沒有誤差,但在插值節點之外插值誤差變得很大,從“整體”上看,插值逼近效果將變得“很差”常用插值方法:分段線性插值、三次樣條曲線插值二、數據插值什么叫數據插值111已知n+1個節點其中互不相同,不妨設求任一插值點處的插值節點可視為由產生,g表達式復雜,甚至無表達式二、數據插值已知n+1個節點其中互不相同,不妨設求任一插值點處的插值1121.分段線性插值xjxj-1xj+1x0xn實用插值方法機翼下輪廓線2.三次樣條插值細木條:樣條二、數據插值1.分段線性插值xjxj-1xj+1x0xn實用113輸入:節點x0,y0,插值點x(均為數組,長度自定義);輸出:插值y(與x同長度數組).1.分段線性插值:y=interp1(x0,y0,x)y=interp1(x0,y0,x,’linear’)2.三次樣條插值:y=interp1(x0,y0,x,’spline’)或y=spline(x0,y0,x)二、數據插值輸入:節點x0,y0,插值點x(均為數組,長度自定義114例5對在[-1,1]上,用n=20的等距分點進行分段線性插值,繪制f(x)及插值函數的圖形.解在命令窗口輸入:x=-1:0.1:1y=1./(1+9*x.^2)xi=-1:0.1:1yi=interp1(x,y,xi)plot(x,y,'r-',xi,yi,'*')二、數據插值第十次課到此例5對在[-115例6對在[-5,5]上,用n=11個等距分點作分段線性插值和三次樣條插值,用m=21個插值點作圖,比較結果.解在命令窗口輸入:n=11,m=21x=-5:10/(m-1):5y=1./(1+x.^2)z=0*xx0=-5:10/(n-1):5y0=1./(1+x0.^2)y1=interp1(x0,y0,x)y2=interp1(x0,y0,x,'spline')[x'y'y1'y2']plot(x,z,'r',x,y,'k:',x,y1,'b',x,y2,'g')gtext('Piece.-linear.'),gtext('Spline'),gtext('y=1/(1+x^2)')二、數據插值例6對在[-5,511601.00001.00001.00000.50000.80000.75000.82051.00000.50000.50000.50001.50000.30770.35000.29732.00000.20000.20000.20002.50000.13790.15000.14013.00000.10000.10000.10003.50000.07550.07940.07454.00000.05880.05880.05884.50000.04710.04860.04845.00000.03850.03850.0385例6對在[-5,5]上,用n=11個等距分點作分段線性插值和三次樣條插值,用m=21個插值點作圖,比較結果.xyy1y2二、數據插值01.00001.117解在命令窗口輸入:例7在一天24h內,從零點開始每間隔2h測得的環境溫度為12,9,9,10,18,24,28,27,25,20,18,15,13二、數據插值(單位:)推測在每1s時的溫度.并描繪溫度曲線.t=0:2:24T=[129910182428272520181513]plot(t,T,'*')ti=0:1/3600:24T1i=interp1(t,T,ti)plot(t,T,'*',ti,T1i,'r-')T2i=interp1(t,T,ti,'spline')plot(t,T,'*',ti,T1i,'r-',ti,T2i,'g-')解在命令窗口輸入:例7在一天24h內,從零點開始118例8在飛機的機翼加工時,由于機翼尺寸很大,通常在圖紙上只能標出部分關鍵點的數據.某型號飛機的機翼上緣輪廓線的部分數據如下:x04.749.051938577695114133y05.238.111.9716.1517.116.3414.6312.166.69x152171190y7.033.990二、數據插值例8在飛機的機翼加工時,由于機翼尺寸很大,通常在圖119例8在飛機的機翼加工時,由于機翼尺寸很大,通常在圖紙上只能標出部分關鍵點的數據.某型號飛機的機翼上緣輪廓線的部分數據如下:x=[04.749.051938577695114133152171190]y=[05.238.111.9716.1517.116.3414.6312.169.697.033.990]xi=[0:0.001:190]yi=interp1(x,y,xi,'spline')plot(xi,yi)二、數據插值例8在飛機的機翼加工時,由于機翼尺寸很大,通常在圖120例9天文學家在1914年8月份的7次觀測中,測得地球與金星之間距離(單位:m),并取其常用對數值與日期的一組歷史數據如下所示,試推斷何時金星與地球的距離(單位:m)的對數值為9.9352.日期18202224262830距離對數9.96189.95449.94689.93919.93129.92329.9150解由于對數值9.9352位于24和26兩天所對應的對數值之間,所以對上述數據用三次樣條插值加細為步長為1的數據:二、數據插值例9天文學家在1914年8月份的7次觀測中,測得地球與121解由于對數值9.9352位于24和26兩天所對應的對數值之間,所以對上述數據用三次樣條插值加細為步長為1的數據:x=[18:2:30]y=[9.96189.95449.94689.93919.93129.92329.9150]xi=[18:1:30]yi=interp1(x,y,xi,'spline')A=[xi;yi]二、數據插值解由于對數值9.9352位于24和26兩天所122練習:1.設在區間[-2,2]上用10等分點作為節點,分別用三種插值方法:二、數據插值(1)計算并輸出在該區間的20等分點的函數值.(2)輸出這個函數及兩個插值函數的圖形.(3)對輸出的數據和圖形進行分析.練習:1.設在區間123練習:2.已知某型號飛機的機翼斷面下緣輪廓線上的部分數據如表所示:假設需要得到x

坐標每改變0.1時的y

坐標,分別用兩種插值方法對機翼斷面下緣輪廓線上的部分數據加細,并作出插值函數的圖形.xy0031.251.772.092.1112.0121.8131.2141.0151.6二、數據插值練習:2.已知某型號飛機的機翼斷面下緣輪廓線上的部分數據如124(1)打開曲線擬合工具界面通過cftool命令打開曲線擬合工具界面三、擬合工具箱(1)打開曲線擬合工具界面三、擬合工具箱125Data按鈕:可輸出、查看和平滑數據;Fitting按鈕:可擬合數據、比較擬合曲線和數據集;Exclude按鈕:可以從擬合曲線中排除特殊的數據點;Ploting按鈕:在選定區間后,單擊按鈕,可以顯示擬合曲線和數據集;Analysis按鈕:可以做內插法、外推法、微分或積分擬合。三、擬合工具箱五個按鈕Data按鈕:可輸出、查看和平滑數據;三、擬合工具箱五個按鈕126在輸入數據之前,數據變量必須存在于matlab的工作區間。可以通過load命令輸入變量。單擊曲線擬合工具界面中的Data按鈕,打開Data對話框,在對話框中進行設置,可以輸入數據。注意:三、擬合工具箱在輸入數據之前,數據變量必須存在于注意:三、擬合127包括兩個選項卡:DataSets和Smooth.DataSets選項卡:.Importworkspacevectors把向量輸入工作區,要注意的是變量必須具有相同的維數,無窮大的值和不定值被忽略。Xdata用于選擇觀測數據Ydata用于選擇X的響應數據Weight用于選擇權重,與響應數據相聯系的向量,如果沒選擇,默認值為1.Data對話框:三、擬合工具箱包括兩個選項卡:DataSets和Smooth.Da128三、擬合工具箱.Preview對所選向量進行圖形化預覽.Datasetname設置數據集的名稱。工具箱可以隨即產生唯一的文件名,但用戶可以重命名。.Datasets選項以列表的形式顯示所有擬合的數據集。當選擇一個數據集時,可以對它做如下操作:

.View查看數據集,以圖標形式和列表形式,可以選擇方法排除異常值;

.Rename重命名.Delete刪除數據組Data對話框:三、擬合工具箱.Preview對所選向量進行圖形化預覽Da129census有兩個變量:cdate和pop。

cdate是一個年向量,包括1790-1990年,pop是對應年份的美國人口。whos-filecensusNameSizeBytesClassAttributescdate21x1168doublepop21x1168doubleloadcensuscftool(cdate,pop)例題,用matlab自帶的文件census擬合:三、擬合工具箱census有兩個變量:cdate和pop。例題,用130三、擬合工具箱散點圖三、擬合工

溫馨提示

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

評論

0/150

提交評論