




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、曲線擬合(curve-fitting):工程實踐中,用測量到的一些離散的數據(Xi,yi),i0,1,2,.m)求一個近似的函數(x)來擬合這組數據,要求所得的擬合曲線能最好的反映數據的根本趨勢(即使(x)最好地逼近fx,而不必滿足插值原那么.因此沒必(xi)yi盡可能地小).(x)o并且使得近似曲線與fx的偏yi,i=1,2,.,m.要取(x)=yi,只要使i原理:給定數據點(xi,yi),i0,1,2,.m.求近似曲線i(xi)差最小.近似曲線在該點處的偏差常見的曲線擬合方法:1. 使偏差絕對值之和最小2. 使偏差絕對值最大的最小3. 使偏差平方和最小最小二乘法:按偏差平方和最小的原那么選
2、取擬合曲線,并且采取二項式方程為擬合曲線的方法,稱為最小二乘法.推導過程:1. 設擬合多項式為:2. 各點到這條曲線的距離之和,即偏差平方和如下:3. 問題轉化為求待定系數a.ak對等式右邊求ai偏導數,因而我們得到了:4. 、把這些等式化簡并表示成矩陣的形式,就可以得到下面的矩陣:5. 將這個范德蒙得矩陣化簡后可得到:6.也就是說X*A=Y,那么A=(X'*X)-1*X'*Y,便得到了系數矩陣A,同時,我們也就得到了擬合曲線.MATLA改現:MATLA掘供了polyfit()函數命令進行最小二乘曲線擬合.調用格式:p=polyfit(x,y,n)p,s=polyfit(x,y
3、,n)p,s,mu=polyfit(x,y,n)x,y為數據點,n為多項式階數,返回p為幕次從高到低的多項式系數向量p.x必須是單調的.矩陣s包括R(又tx進行QRb解的三角元素)、df(自由度)、normr(殘差)用于生成預測值的誤差估計.p,s,mu=polyfit(x,y,n)在擬合過程中,首先對x進行數據標準化處理,以在擬合中消除量綱等影響,mu包含標準化處理過程中使用的x的均值和標準差.polyval()為多項式曲線求值函數,調用格式:y=polyval(p,x)y,DELTA=polyval(p,x,s)y=polyval(p,x)為返回對應自變量x在給定系數P的多項式的值.y,D
4、ELTA=polyval(p,x,s)使用polyfit函數的選項輸出s得出誤差估計YDELTA它假設polyfit函數數據輸入的誤差是獨立正態的,并且方差為常數.那么YDELTA將至少包含50%勺預測值.如下給定數據的擬合曲線:x=0.5,1.0,1.5,2.0,2.5,3.0,y=1.75,2.45,3.81,4.80,7.00,8.60.解:MATLA毓序如下:x=0.5,1.0,1.5,2.0,2.5,3.0;y=1.75,2.45,3.81,4.80,7.00,8.60;p=polyfit(x,y,2)x1=0.5:0.05:3.0;y1=polyval(p,x1);plot(x,y
5、,'*r',x1,y1,'-b')運行結果如圖1計算結果為:p=0.56140.82871.1560即所得多項式為y=0.5614xA2+0.08287x+1.15560圖1最小二乘法曲線擬合例如比照檢驗擬合的有效性:例:在0,句區間上對正弦函數進行擬合,然后在0,2句區間畫出圖形,比擬擬合區間和非擬合區間的圖形,考察擬合的有效性.在MATLAB中輸入如下代碼:clearx=0:0.1:pi;y=sin(x);p,mu=polyfit(x,y,9)x1=0:0.1:2*pi;y1=sin(x1);%實際曲線y2=polyval(p,x1);%根據由區間0到pi上
6、進行擬合得到的多項式計算0到2pi上的函數值,%需要注意的是polyval()返回的函數值在pi到2pi上并沒有進行擬合plot(x1,y2,'k*',x1,y1,'k-')運行結果:p=0.00000.0000-0.00030.00020.00800.0002-0.16680.00001.00000.0000mu=R:10x10doubledf:22normr:1.6178e-07MATLAB勺最優化工具箱還提供了lsqcurvefit()函數命令進行最小二乘曲線擬合(Solvenonlinearcurve-fitting(data-fitting)probl
7、emsinleast-squaressense).調用格式:x=lsqcurvefit(fun,x0,xdata,ydata)x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub)x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)x=lsqcurvefit(problem)x,resnorm=lsqcurvefit(.)x,resnorm,residual=lsqcurvefit(.)x,resnorm,residual,exitflag=lsqcurvefit(.)x,resnorm,residual,exitflag,ou
8、tput=lsqcurvefit(.)x,resnorm,residual,exitflag,output,lambda=lsqcurvefit(.)x,resnorm,residual,exitflag,output,lambda,jacobian=x0為初始解向量;xdata,ydata為滿足關系ydata=F(x,xdata)的數據;lb、ub為解向量的下界和上界,假設沒有指定界,那么lb=,ub=;options為指定的優化參數;fun為擬合函數,其定義方式為:x=lsqcurvefit(myfun,x0,xdata,ydata)其中myfun已定義為functionF=myfun(x
9、,xdata)F=計算x處擬合函數值fun的用法與前面相同;resnorm=sum(fun(x,xdata)-ydata).A2),即在x處殘差的平方和residual=fun(x,xdata)-ydata,即在x處的殘差;exitflag為終止迭代的條件;output為輸出的優化信息;lambda為解x處的Lagrange乘子;jacobian為解x處擬合函數fun的jacobian矩陣.例:lsqcurvefit()優化程序Data=.0.00005.89550.10003.56390.20002.51730.30001.97900.40001.89900.50001.39380.6000
10、1.13590.70001.00960.80001.03430.90000.84351.10000.61001.20000.53921.30000.39461.40000.39031.50000.54741.60000.34591.70000.13701.80000.22111.90000.17042.00000.2636;t=Data(:,1);y=Data(:,2);%axis(02-0.56)plot(t,y,'ro')title('Datapoints')%Wewouldliketofitthefunctiony=c(1)*exp(-lam(1)*t)+
11、c(2)*exp(-lam(2)*t)tothedata%Thelsqcurvefitfunctionsolvesthistypeofproblemeasily.%Tobegin,definetheparametersintermsofonevariablex:%x(1)=c(1)%x(2)=lam(1)%x(4)=lam(2)%Thendefinethecurveasafunctionoftheparametersxandthedatat:F=(x,xdata)x(1)*exp(-x(2)*xdata)+x(3)*exp(-x(4)*xdata);x0=1110;x,resnorm,exit
12、flag,output=lsqcurvefit(F,x0,t,y)holdonplot(t,F(x,t)holdoffFsumsquares=(x)sum(F(x,t)-y).A2);opts=optimset('LargeScale','off');xunc,ressquared,eflag,outputu=.fminunc(Fsumsquares,x0,opts)fprintf('Therewere%diterationsusingfminunc,'.'and%dusinglsqcurvefit.n',.outputu.ite
13、rations,output.iterations)fprintf('Therewere%dfunctionevaluationsusingfminunc,'.'and%dusinglsqcurvefit.',.outputu.funcCount,output.funcCount)typefitvectorx02=10;F2=(x,t)fitvector(x,t,y);x2,resnorm2,exitflag2,output2=lsqcurvefit(F2,x02,t,y)fprintf('Therewere%dfunctionevaluationsus
14、ingthe2-d'.'formulation,and%dusingthe4-dformulation.',.output2.funcCount,output.funcCount)x0bad=5110;xbad,resnormbad,exitflagbad,outputbad=.lsqcurvefit(F,x0bad,t,y)holdonplot(t,F(xbad,t),'g')legend('Data','Globalfit','Badlocalfit','Location','N
15、E')holdofffprintf('Theresidualnormatthegoodendingpointis%f,'.'andtheresidualnormatthebadendingpointis%f.',.resnorm,resnormbad)displayEndOfDemoMessage(mfilename)擬合效果如下:直線的最小二乘擬合:y=a+bx式中有兩個待定參數,a代表截距,b代表斜率.對于等精度測量所得到的N組數據(xi,yi),i=1,2,N,xi值被認為是準確的,所有的誤差只聯系著yi.下面利用最小二乘法把觀測數據擬合為直線.用最小二乘法估計參數時,要求觀測值yi的偏差的加權平方和為最小.對于等精度觀測值的直線擬合來說,可使下式的值最小:上式分別對a、b求偏導得:整理后得到方程組:解上述方程組便可求得直線參數a和b的最正確估計值.1、可看
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南稅務高等專科學校《葡萄牙語視聽說(III)》2023-2024學年第二學期期末試卷
- 江蘇省江陰四校2024-2025學年高三3月模擬考生物試題含解析
- 浙江省蒼南縣2024-2025學年初三下學期綜合練習(二)英語試題試卷含答案
- 管理學廣告案例分析
- 私募基金培訓
- 2025勞動合同績效考核
- 2025私人買賣合同協議
- 氣管套管脫管護理流程
- 2025年實習生聘用合同范本
- 2025建筑施工合同范本(方案施工圖) 新手看施工圖紙
- 二襯帶模注漿施工方案
- 煤礦節電降耗管理措施
- 《英語委婉語與忌語》PPT課件.ppt
- 地域文化教學大綱(修訂本)
- 通用航空產業園項目商業計劃書范文參考
- 中國書法演變史
- 工商企業管理畢業論文范文
- 調查問卷設計-課件PPT
- 井下電纜著火應急演練預案
- APP開發合作協議通用版
- 小學數學 五進制
評論
0/150
提交評論