下面,通過一個例子說明cftool可視化界面工具箱的用法.
例如,已知
x = [0 0.2 0.50.8 0.9 1.3 1.4 1.9 2.1 2.2 2.5 2.6 2.9 3.0];
y = [1.27792.1596 2.7311 2.5974 2.4068 1.6215 1.4178 0.9955 0.9666 0.8837 0.9639 1.00311.1233 1.1583];
並且根據某種物理或數學關系確定y=f(x)的表達形式為y =a*sin(b*x)*exp(c*x)+d,其中a,b和d均為正數,c為負數,現要利用該函數形式對已知數據進行擬合,並求出擬合結果對應的系數a,b,c,d.
解法如下
①在Command窗口輸入兩個向量的具體值,即輸入
clc;clear;
x = [0 0.2 0.50.8 0.9 1.3 1.4 1.9 2.1 2.2 2.5 2.6 2.9 3.0];
y = [1.2779 2.1596 2.7311 2.5974 2.4068 1.6215 1.41780.9955 0.9666 0.8837 0.9639 1.0031 1.1233 1.1583];
②在Command窗口輸入cftool命令,打開如下界面

③在上述窗口中選中相應數據和擬合選項,如下
③勾選[Auto fit]選項(或者點擊[fit]按鈕),即可得到對應圖像,如下

④由圖可知,曲線和擬合程度較差。這是因為,對同一問題的擬合情況,每次可能都不一樣,這取決對於參數a,b,c,d的StartPoint的選取.解決方法是在擬合過程中,將a,b,c和d也作為約束擬合的條件.例子中已知a,b,c,d的的取值范圍(正負范圍),可以在擬合中加入這個選項.方法為,點擊[Fit Options]按鈕,彈出的窗口如下

可以調整a,b,c,d參數的StartPoint,Lower,Upper三個選項來是擬合更加准確,例如,已知a,b,d都大於0,則將a,b,d的Lower選項設為0,c小於0,則將c的Upper選項設為0,設如下
⑤設置完畢之后,(如果選擇了[Auto fit]選項)就會出現重新擬合之后的圖像,如下圖,其中右邊為圖像,左邊為參數值,參數置信區間等擬合信息。可以看到,擬合程度較之前有了很大的提高

小結:在擬合過程中,設置好待擬合函數的參數的StartPoint,Lower和Upper三者的值可以使擬合更加准確。更多有關cftool擬合效果的問題,可以參看下面這篇文章
http://cn.mathworks.com/matlabcentral/answers/99087-how-do-i-improve-convergence-in-fitting-my-data-with-curve-fitting-toolbox?requestedDomain=www.mathworks.com