matlab擬合曲線的方法有很多,針對不同的函式型別應選用合適的擬合方法。
按照擬合方法來進行劃分,一般可將待擬合的函式分為曲線/曲面擬合與多元函式擬合。
穩健性robust:
擬合效果評估:
擬合工具箱主要涉及的函式有:fit fitype等。 這裡以一元線性擬合為例進行說明:
%matlab擬合工具箱的使用
xdata = x_fit_4;ydata = y_fit_4;
% f = fittype(
'k*x+b'
) %採用自定義函式
[fit1, estimate1]
= fit(xdata,ydata,'poly1'
) % 針對原始資料的擬合
fdata = feval(fit1, xdata)
; % 求得擬合資料
i = abs(fdata-ydata)
> 1.5*std(ydata)
;% 剔除點計算方法outliers = excludedata(xdata, ydata, 'indices', i) % 找到對應的剔除資料點
[fit2, estimate2]
= fit(xdata, ydata, 'poly1',... 'exclude', outliers) % 針對剔除異常點後的擬合
[fit3, estimate3]
= fit(xdata, ydata, 'poly1',... 'robust', 'on'
) % 採用穩健性擬合
plot(fit1,'r-',xdata,ydata,'k.',outliers,'m*'
) % 繪製擬合曲線,原始資料,剔除資料點。
hold on
plot(fit2,'c--'
)plot(fit3,'b:'
)
輸出結果如下:
fit1 =linear model poly1:
fit1(x) = p1x + p2
coefficients (with 95% confidence bounds):
p1 = 1.545 (1.156, 1.933)
p2 = 4.901 (3.619, 6.184)
estimate1 = 包含以下欄位的 struct:
sse: 454.1470
rsquare: 0.5046
dfe: 62
adjrsquare: 0.4966
rmse: 2.7065
fit2 =
linear model poly1:
fit2(x) = p1x + p2
coefficients (with 95% confidence bounds):
p1 = 1.517 (1.186, 1.847)
p2 = 4.718 (3.625, 5.812)
estimate2 = 包含以下欄位的 struct:
sse: 317.3518
rsquare: 0.5838
dfe: 60
adjrsquare: 0.5768
rmse: 2.2998
fit3 =
linear model poly1:
fit3(x) = p1*x + p2
coefficients (with 95% confidence bounds):
p1 = 1.513 (1.145, 1.881)
p2 = 4.712 (3.498, 5.927)
estimate3 = 包含以下欄位的 struct:
進一步採用繪圖視窗的prediction bounds for function 繪圖選項可以得到函式擬合的邊界圖如下:
多元函式的擬合,建議一般先將其轉換為線性擬合方式,具體參考我的另外一篇部落格
matlab求解模型待定係數
擬合工具箱的使用
MATLAB模糊邏輯工具箱函式
36 說明 本文件中所列出的函式適用於matlab5.3以上版本,為了簡明起見,只列出了函式名,若需要進一步的說明,請參閱matlab的幫助文件。1 gui工具 anfisedit 開啟anfis編輯器gui fuzzy 呼叫基本fis編輯器 mfedit 隸屬度函式編輯器 ruleedit 規則編...
MATLAB模糊邏輯工具箱函式
說明 本文件中所列出的函式適用於matlab5.3以上版本,為了簡明起見,只列出了函式名,若需要進一步的說明,請參閱matlab的幫助文件。1 gui工具 anfisedit 開啟anfis編輯器gui fuzzy 呼叫基本fis編輯器 mfedit 隸屬度函式編輯器 ruleedit 規則編輯器和...
CRF的matlab工具箱
最近在學習crf,由於 較複雜,網上有很多人開發了工具箱,推薦幾個crf的matlab工具箱 1維crf 2維crf 最近在學習crf,由於 較複雜,網上有很多人開發了工具箱,推薦幾個crf的matlab工具箱 1維crf 2維crf drf 還有兩個經常用crf的人主頁,他們都開發了一些工具箱 s...