matlab2曲線擬合_第1頁
matlab2曲線擬合_第2頁
matlab2曲線擬合_第3頁
matlab2曲線擬合_第4頁
matlab2曲線擬合_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、MATLAB曲線擬合工具箱1曲線擬合定義 在實際工程應(yīng)用和科學(xué)實踐中,經(jīng)常需要尋求 兩個(或多個)變量間的關(guān)系,而實際去只能 通過觀測得到一些離散的數(shù)據(jù)點。針對這些分 散的數(shù)據(jù)點,運(yùn)用某種你和方法生成一條連續(xù) 的曲線,這個過程稱為曲線擬合。 曲線擬合可分為: (1)參數(shù)擬合 - 最小二乘法 (2)非參數(shù)擬合 - 插值法2一、數(shù)據(jù)預(yù)處理 在曲線擬合之前必須對數(shù)據(jù)進(jìn)行與處理,去 除界外值、不定值和重復(fù)值,以減少認(rèn)為誤 差,提高擬合的精度。 數(shù)據(jù)預(yù)處理包括: (1)數(shù)據(jù)輸入與查看 (2)數(shù)據(jù)的預(yù)處理 傳輸數(shù)據(jù)通過數(shù)據(jù)GUI來實現(xiàn),查看數(shù)據(jù)點 通過曲線擬合工具的散點圖來實現(xiàn)。31.輸入和查看數(shù)據(jù)集 (

2、1)打開曲線擬合工具界面 通過cftool命令打開曲線擬合工具界面45個命令按鈕 Data按鈕:可輸出、查看和平滑數(shù)據(jù); Fitting按鈕:可擬合數(shù)據(jù)、比較擬合曲線和數(shù)據(jù)集; Exclude按鈕:可以從擬合曲線中排除特殊的數(shù)據(jù)點; Ploting按鈕:在選定區(qū)間后,單擊按鈕,可以顯示擬合曲線和數(shù)據(jù)集; Analysis按鈕:可以做內(nèi)插法、外推法、微分或積分?jǐn)M合。5(2)輸入數(shù)據(jù)集 在輸入數(shù)據(jù)之前,數(shù)據(jù)變量必須存在于 matlab的工作區(qū)間??梢酝ㄟ^load命令輸 入變量。單擊曲線擬合工具界面中的Data 按鈕,打開Data對話框,在對話框中進(jìn)行設(shè) 置,可以輸入數(shù)據(jù)。6Data對話框 包括兩個

3、選項卡:Data Sets 和 Smooth. Data Sets選項卡: .Import workspace vectors 把向量輸 入工作區(qū),主要以變量必須具有相同的維數(shù) ,無窮大的值和不定值被忽略。 X data 用于選擇觀測數(shù)據(jù) Y data 用于選擇X的響應(yīng)數(shù)據(jù) Weight 用于選擇權(quán)重,與響應(yīng)數(shù)據(jù)相聯(lián)系的向量,如果沒選擇,默認(rèn)值為1.7 .Preview 對所選向量進(jìn)行圖形化預(yù)覽 .Data set name 設(shè)置數(shù)據(jù)集的名稱。工具箱可以隨即產(chǎn)生唯一的文件名,但用戶可以重命名。 .Data sets 選項以列表的形式顯示所有擬合的數(shù)據(jù)集。當(dāng)選擇一個數(shù)據(jù)集時,可以對它做如下操作:

4、 .View 查看數(shù)據(jù)集,以圖標(biāo)形式和列表形式,可以選擇方法排除異常值; .Rename 重命名 .Delete 刪去數(shù)據(jù)組8例:輸入數(shù)據(jù),采用matlab自帶的文件census census 有兩個變量:cdate和pop。 cdate是一個年向量,包括1790-1990 年,間隔為10年; pop是對應(yīng)年份的美國人口。 whos -file census Name Size Bytes Class Attributes cdate 21x1 168 double pop 21x1 168 double load census cftool(cdate,pop)9散點圖10 單擊Data按鈕

5、11 在X data和Y data兩個下拉式列表框中選 擇變量名,將在Data對話框中顯示散點圖的 預(yù)覽效果:12 當(dāng)選擇Data sets列表框中的數(shù)據(jù)集時,單 擊View按鈕,打開View Data Set對話框工作表方式132.數(shù)據(jù)的預(yù)處理 在曲線擬合工具箱中,數(shù)據(jù)的預(yù)處理主要包 括平滑法、排除法和區(qū)間排除法等。 (1)平滑數(shù)據(jù) 打開擬合工具箱,單擊Data按鈕,打開 Data對話框,選擇Smooth選項卡1415Smooth選項卡各選項的功能: .Original data set 用于挑選需要擬合的數(shù)據(jù)集; .Smoothed data set平滑數(shù)據(jù)的名稱; .Method用于選擇

6、平滑數(shù)據(jù)的方法,每一個相應(yīng)數(shù)據(jù)用通過特殊的曲線平滑方法所計算的結(jié)果來取代。平滑數(shù)據(jù)的方法包括: ()Moving average 用移動平均值進(jìn)行替換; ()Lowess局部加權(quán)散點圖平滑數(shù)據(jù),采用線性最小二乘法和一階多項式擬合得到的數(shù)據(jù)進(jìn)行替換;16 ()Loess局部加權(quán)散點圖平滑數(shù)據(jù),采用線性最小二乘法和二階多項式擬合得到的數(shù)據(jù)進(jìn)行交換; ()Savitzky-Golay 采用未加權(quán)的線性最小二乘法過濾數(shù)據(jù),利用指定階數(shù)的多項式得到的數(shù)據(jù)進(jìn)行替換; ()Span用于進(jìn)行平滑計算的數(shù)據(jù)點的數(shù)目; ()Degree 用于Savitzky-Golay方法擬合多項式的階數(shù)。17 .Smoothe

7、d data sets 對于所有平滑數(shù)據(jù)集進(jìn)行列表。可以增加平滑數(shù)據(jù)集,通過單擊Create smoothed data set按鈕,可以創(chuàng)建經(jīng)過平滑的數(shù)據(jù)集。 .View按鈕 打開查看數(shù)據(jù)集的GUI,以散點圖方式和工作表方式查看數(shù)據(jù),可以選擇排除異常值的方法。 .Rename用于重命名。 .Delete可刪去數(shù)據(jù)組。 .Save to workspace保存數(shù)據(jù)集。18(2)排除法和區(qū)間排除法 排除法是對數(shù)據(jù)中的異常值進(jìn)行排除。 區(qū)間排除法是采用一定的區(qū)間去排除那些用 于系統(tǒng)誤差導(dǎo)致偏離正常值的異常值。 在曲線擬合工具中單擊Exclude按鈕,可以 打開Exclude對話框1920 Excl

8、usion rule name指定分離規(guī)則的名稱 Existing exclusion rules列表產(chǎn)生的文件 名,當(dāng)你選擇一個文件名時,可以進(jìn)行如下操 作: Copy 復(fù)制分離規(guī)則的文件; Rename重命名;delete 刪去一個文件; View以圖形的形式展示分離規(guī)則的文件。 Select data set 挑選需要操作的數(shù)據(jù)集; Exclude graphically允許你以圖形的形式去除異常值,排除個別的點用“”標(biāo)記。21 Check to exclude point 挑選個別的點進(jìn)行排除,可以通過在數(shù)據(jù)表中打勾來選擇要排除的數(shù)據(jù)。 Exclude Sections 選定區(qū)域排除數(shù)

9、據(jù): Exclude X選擇預(yù)測數(shù)據(jù)X要排除的數(shù)據(jù)范圍; Exclude Y選擇響應(yīng)數(shù)據(jù)Y要排除的數(shù)據(jù)范圍。22(3)其他數(shù)據(jù)預(yù)處理方法 其他的預(yù)處理方法不便通過曲線擬合工具箱 來完成,主要包括兩部分: 響應(yīng)數(shù)據(jù)的轉(zhuǎn)換和去除無窮大、缺失值和異 常值。 響應(yīng)數(shù)據(jù)的轉(zhuǎn)換一般包括對數(shù)轉(zhuǎn)換、指數(shù)轉(zhuǎn) 換,用這些轉(zhuǎn)換可以使非線性的模型線性 化,便于曲線擬合。變量的轉(zhuǎn)換一般在命令 行里實現(xiàn),然后把轉(zhuǎn)換后的數(shù)據(jù)輸入曲線擬 合工具箱,進(jìn)行擬合。23 無窮大、不定值在曲線擬合中可以忽略,如 果想把他們從數(shù)據(jù)集中刪除,可以用isinf和 isnan置換無窮大值和缺失值。24二、曲線擬合 Matlab提供兩種曲線擬合

10、方法: (1)以函數(shù)的形式,使用命令對數(shù)據(jù)進(jìn)行擬合。這種方法比較繁瑣,需要對擬合函數(shù)有比較好的了解。 (2)用圖形窗口進(jìn)行操作,具有簡便、快速,可操作性強(qiáng)的優(yōu)點。251.多項式擬合函數(shù)(1)Polyfit函數(shù)P=polyfit(x,y,n)用最小二乘法對數(shù)據(jù)進(jìn)行擬合,返回n次多項式的系數(shù),并用降序排列的向量表示,長度為n+1.1121)(nnnnpxpxpxpxp p,s=polyfit(x,y,n) 返回多項式系數(shù)向量p和矩陣s。s與 polyval函數(shù)一起用時,可以得到預(yù)測值的 誤差估計。如數(shù)據(jù)y的誤差服從方差為常數(shù)的 獨(dú)立正態(tài)分布,polyval函數(shù)將生成一個誤 差范圍,其中包含至少50

11、%的預(yù)測值.27p,s,mu=polyfit(x,y,n)返回多項式的系數(shù),mu是一個二維向量u1,u2,u1=mean(x),u2=std(x),對數(shù)據(jù)進(jìn)行預(yù)處理 x=(x-u1)/u2(2)Polyval函數(shù) 利用該函數(shù)進(jìn)行多項式曲線擬合評價 y=polyval(p,x) 返回n階多項式在x處的值,x可以是一個矩 陣或者是一個向量,向量p是n+1個以降序 排列的多項式的系數(shù)。29 .y=polyval(p,x,mu) 用x=(x-u1)/u2代替x,其中mu是一個 二維向量u1,u2, u1=mean(x),u2=std(x),通過這 樣處理數(shù)據(jù),使數(shù)據(jù)合理化。30 y,delta=pol

12、yval(p,x,s) y,delta=polyval(p,x,s,mu) 產(chǎn)生置信區(qū)間ydelta。如果誤差結(jié)果服從 標(biāo)準(zhǔn)正態(tài)分布,則實測數(shù)據(jù)落在ydelta區(qū) 間內(nèi)的概率至少為50%。31 例 x=0 0.0385 0.0963 0.1925 0.2888 0.385; y=0.042 0.104 0.186 0.338 0.479 0.612; p,s,mu=polyfit(x,y,5)32輸出結(jié)果為:p = Columns 1 through 5 0.0193 -0.0110 -0.0430 0.0073 0.2449 Column 6 0.2961說明擬合的多項式為:2961. 02

13、449. 00073. 0043. 00110. 00193. 02345 xxxxxs = R: 6x6 double df: 0 normr: 2.3684e-016mu = 0.1669 0.1499自由度為 0 標(biāo)準(zhǔn)偏差為 2.3684e-016例:根據(jù)表中數(shù)據(jù)進(jìn)行4階多項式擬合X1345678910F(x) 10 54211234 x=1 3 4 5 6 7 8 9 10; y=10 5 4 2 1 1 2 3 4; p,s=polyfit(x,y,4); y1=polyval(p,x); plot(x,y,go,x,y1,b-)1234567891012345678910 poly

14、2str(p,t)ans = -0.0049945 t4 + 0.11461 t3 - 0.61143 t2 - 1.1005 t + 11.549936例:電阻和溫度的關(guān)系數(shù)據(jù)如下 求60度時的電阻. 溫度 20.5 32.7 51.0 73.0 95.7 電阻 765 826 873 942 1032 T=20.5 32.7 51 73 95.7; R=765 826 873 942 1032; a=polyfit(T,R,1); y=poly2str(a,t) y = 3.3987 t + 702.096837 y=polyval(a,T) %計算多項式在某一點處的值 y = 1.0e+

15、003 * 0.7718 0.8132 0.8754 0.9502 1.0274 plot(T,R,k+,T,y,r*) hold on plot(T,y,b) polyval(a,60) ans = 906.02123820304050607080901007508008509009501000105039 例:已知年齡和運(yùn)動能力的一組數(shù)據(jù),試確定二者的關(guān)系(根據(jù)圖形指定次數(shù)) x1=17:2:29; x=x1 x1; y=20.48 25.13 26.15 30.0 26.1 20.3 19.35 24.35 28.11 26.3 31.4 26.92 25.7 21.3; plot(x,

16、y,r+)年齡17192123252729第一人20.4825.1326.153026.120.319.35第二人24.3528.1126.331.426.9225.721.3401618202224262830182022242628303241 a=polyfit(x,y,2) a = -0.2003 8.9782 -72.2150 poly2str(a,x) ans = -0.20031 x2 + 8.9782 x - 72.215 x1=17:0.1:29; y1=-0.20031*x1.2+8.9782*x1-72.215; hold on;plot(x1,y1,b)42161820

17、2224262830182022242628303243數(shù)據(jù)擬合函數(shù)表cfit產(chǎn)生擬合的目標(biāo)產(chǎn)生擬合的目標(biāo)fit用庫模型、自定義模型、平滑樣條或用庫模型、自定義模型、平滑樣條或內(nèi)插方法來擬合數(shù)據(jù)內(nèi)插方法來擬合數(shù)據(jù)fitoptions產(chǎn)生或修改擬合選項產(chǎn)生或修改擬合選項fittype產(chǎn)生目標(biāo)的擬合形式產(chǎn)生目標(biāo)的擬合形式cflibhelp顯示一些信息,包括庫模型、三次樣顯示一些信息,包括庫模型、三次樣條和內(nèi)插方法等。條和內(nèi)插方法等。disp顯示曲線擬合工具的信息顯示曲線擬合工具的信息get返回擬合曲線的屬性返回擬合曲線的屬性set對于擬合曲線顯示屬性值對于擬合曲線顯示屬性值數(shù)據(jù)擬合函數(shù)表exclu

18、dedata指定不參與擬合的數(shù)據(jù)指定不參與擬合的數(shù)據(jù)smooth平滑響應(yīng)數(shù)據(jù)平滑響應(yīng)數(shù)據(jù)confint計算擬合系數(shù)估計值的置信區(qū)間邊界計算擬合系數(shù)估計值的置信區(qū)間邊界differentiate對于擬合結(jié)果求微分對于擬合結(jié)果求微分integrate對于擬合結(jié)果求積分對于擬合結(jié)果求積分predint對于新的觀察量計算預(yù)測區(qū)間的邊界對于新的觀察量計算預(yù)測區(qū)間的邊界datastates返回數(shù)據(jù)的描述統(tǒng)計量返回數(shù)據(jù)的描述統(tǒng)計量feval估計一個擬合結(jié)果結(jié)果或擬合類型估計一個擬合結(jié)果結(jié)果或擬合類型plot畫出數(shù)據(jù)點、擬合線、預(yù)測區(qū)間、異畫出數(shù)據(jù)點、擬合線、預(yù)測區(qū)間、異常值點和殘差常值點和殘差2.曲線的參數(shù)

19、擬合 第一步:在命令行鍵入Cftool打開 curve fitting tool對話框; 第二步: 在curve fitting tool對話框中 單擊Data按鈕打開data對話框指 定要分析的(預(yù)先存在工作區(qū)間) 數(shù)據(jù); 第三步:在curve fitting tool對話框中 單擊fitting按鈕打開fitting對話 框,進(jìn)行設(shè)置,實現(xiàn)曲線擬合。4647Fitting對話框 包括兩個面板:“Fit Editor”面板和“Tabe of Fits”面板。 (1)Fit editor 選擇擬合的文件名、數(shù)據(jù)集,選擇排除數(shù)據(jù)的文件,比較數(shù)據(jù)擬合的各種方法,包括庫函數(shù)、自定義的擬合模型和擬合參

20、數(shù)的選擇。 (2)Table of Fits 同時列出所有的擬合結(jié)果。48兩個面板的詳細(xì)描述: New fit 和 Copy fit 按鈕:開始進(jìn)行曲線擬合是,單擊New fit按鈕,它采用默認(rèn)的線性多項式擬合數(shù)據(jù)。在原有的擬合形式上,選擇不同的曲線擬合方法,可以用Copy fit 按鈕。 Fit name 選項為當(dāng)前擬合曲線的名字。單擊New fit 按鈕時系統(tǒng)會產(chǎn)生默認(rèn)的文件名。 Data set 選項為當(dāng)前的數(shù)據(jù)集。 Exclusion rule 排除異常值的文件名,在數(shù)據(jù)與處理前建立的文件名。49 Center and scale X data 可對觀測數(shù)據(jù)進(jìn)行中心化和離散化處理。 T

21、ype of fit 擬合的類型,包括參數(shù)擬合和非參數(shù)擬合兩種。具體包括: (1)Custom Equations 自定義擬合的線性或非線性方程; (2)New equation 使用Custom Equations 按鈕錢,必須單擊New equation 按鈕選擇合適的方程;50(3)Exponential指數(shù)擬合包括兩種形式: y=a*exp(b*x) y=a*exp(b*x)+c*exp(d*x)(4)Fourier傅立葉擬合,正弦和余弦之和(共8個多項式) )*8sin()*8cos()*sin()*cos()*2sin()*2cos()*sin()*cos()*sin()*cos(

22、8811022110110wxbwxawxbwxaawxbwxawxbwxaawxbwxaa (5)Gaussian 高斯法,包括8個公式:)2)/ )(exp(*)2)/ )(exp(*)2)/ )(exp(*888111111cbxacbxacbxa (6)Interpolant 內(nèi)插法,包括線性內(nèi)插、最近鄰內(nèi)插、三次樣條內(nèi)插和shape-preserving內(nèi)插;(7)Polynomial多項式,從一次到九次; (8)Rational有理擬合,兩個多項式之比,分子與分母都是多項式; (9)Power指數(shù)擬合,包括兩種形式: y=a*xb y=a*xb+c (10)Smoothing sp

23、line 平滑樣條擬合,默認(rèn)的平滑參數(shù)由擬合的數(shù)據(jù)集來決定,參數(shù)是0產(chǎn)生一個分段的線性多項式擬合,參數(shù)是1產(chǎn)生一個分段三次多項式擬合;53 (11)Sum of Sin Functions 正弦函數(shù)的和,采用以下8個公式: a1*sin(b1*x+c1) a1*sin(b1*x+c1)+ a8*sin(b8*x+c8) (12)Weibull 兩個參數(shù)的Weibull分布,表達(dá)式如下: Y=a*b*x(b-1)*exp(-a*xb)54 (3)Degree of Freedom Adjusted R-Square 調(diào)整自由度以后的殘差的平方,數(shù)值越接近1,曲線的擬合效果越好 (4)Root M

24、ean Square Error 根的均方誤差 Table of fits 擬合曲線的列表,可以對每個列表做如下操作: Delete fit 刪除所選的擬合曲線; Save to workspace 儲存所有的擬合信息; Table options 選擇與擬合相聯(lián)系的信息。55 Fit options 包括一些擬合方法,如線性擬合、非線性擬合,以及其他選項; 單擊Apply按鈕:采用上述所選各種方法進(jìn)行擬合; 單擊Immediate apply按鈕,在選擇一個擬合形式后立即輸出結(jié)果并存儲; Results羅列進(jìn)行擬合的各種參數(shù): (1)SSE-sum of squares due to err

25、or 誤差平方和,越接近0曲線的擬合效果越好 (2)R-square 越接近1,曲線的擬合效果越好56例:用三次和五次多項式擬合下列數(shù)據(jù) rand(state,0) x=1:0.1:3 9:0.1:10; c=2.5 -0.5 1.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文件,并運(yùn)行上述文件,打開曲線擬合工具5758 點擊fitting按鈕new fitcubic polynomial-apply59resultsLinear model Poly3: f(x) = p1*x3

26、+ p2*x2 + p3*x + p4Coefficients (with 95% confidence bounds): 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)Goodness of fit: SSE: 2.587 R-square: 0.9993 Adjusted R-square: 0.9993 RMSE: 0.303960Results:Linear model Poly5: f(x) = p1*x

27、5 + p2*x4 + p3*x3 + p4*x2 + p5*x + p6Coefficients (with 95% confidence bounds): 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)Goodness of fit: SSE: 2.552 R-square: 0.999

28、3 Adjusted R-square: 0.9992 RMSE: 0.313361擬合圖形:62例:用有理擬合方法擬合數(shù)據(jù)hahn1.m hahn1.m是matlab自帶,描述銅的熱膨脹與熱力學(xué)溫度的相關(guān)性,包括兩個向量temp與thermex。 load hahn1 cftool(temp,thermex) 6364分子分母均為2次65分子分母均為3次66分子三次、分母二次67 分子三次、分母二次的有理多項式擬合鮮果很好,擬合曲線充分體現(xiàn)了整個數(shù)據(jù),殘差隨機(jī)分布在0附近。683.非參數(shù)擬合 有時我們對擬合參數(shù)的提取或解釋不感 興趣,只想得到一個平滑的通過各數(shù)據(jù)點的 曲線,這種擬合曲線的形式稱之為非參數(shù)擬 合。 非參數(shù)擬合的方法包括 (1)插值法Interpoants (2)平滑樣條內(nèi)插法Smoothing spline 69內(nèi)插法: 在已知數(shù)據(jù)點之間估計數(shù)值的過程,包括 Linear 線性內(nèi)差,在每一隊數(shù)據(jù)之間用不同的線性多項式擬合; Nearest neighbor 最近鄰內(nèi)插,內(nèi)差點在最相鄰的數(shù)據(jù)點之間; Cubic spline 三次樣條內(nèi)插,在每一隊數(shù)據(jù)之間用不同的三次多項式擬合; Shape-preserving

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論