擬合


  • 擬合是已知點列,從整體上靠近它們,不要求曲線經過每個樣本點,但要保證誤差足夠小
  • 已知一組數據,尋求一個y=f(x),使f(x)在某種准則下與所有數據點最為接近
  • 擬合的准則是使yi與f(xi)的距離的平方和最小,稱為最小二乘准則

 

若函數對參數線性(參數僅以一次方形式出現,且不能乘以或除以其他任何參數,並不能出現參數的復合函數形式),則可以用擬合優度來衡量擬合的好壞,其值越接近於1,說明擬合的越好

若不能用擬合優度,就用SSE的大小來衡量,SSE越小越好

Matlab擬合工具箱:Curve Fitting Tool

輸入命令cftool

讀入x、y的數據,選擇合適的函數形式進行擬合

函數選擇原則:

當散點圖走勢是直線,優先選擇線性擬合,評價指標為SSE和R^2,SSE越小、R^2越大越好

其他的函數選擇條件是SSE越小越好,函數形式應當越簡單越好

例題:

year = 1790:10:2000;
population = [3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.4,281.4];
plot(year,population,'o')
cftool  % 擬合工具箱
% 點擊Fit Options,修改非線性最小二乘估計法擬合的初始值(StartPoint), r修改為0.02,xm修改為500 
% Generate Code生成createFit.m文件
% 復制第一句的function后邊語句
% function [fitresult, gof] = createFit(year, population)
[fitresult, gof] = createFit(year, population)
t = 2001:2030;
xm = 342.4;   
r =  0.02735;
predictions = xm./(1+(xm./3.9-1).*exp(-r.*(t-1790)));  % 計算預測值(寫成點乘/點除)
figure(2)
plot(year,population,'o',t,predictions,'.')  % 繪制預測結果圖

預測結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM