1. 程式人生 > >MATLAB資料擬合

MATLAB資料擬合

MATLAB中資料擬合

資料擬合的目的是使用一個較為簡單的函式去逼近一個複雜的、未知的函式,在MATLAB中資料擬合的原理是最小擬合的最小二乘原理,其中polyfit與polyval是最基本的擬合方法,除此之外,MATLAB還提供了更為直接簡單的資料擬合工具,cftool,下面舉一個例子,介紹這兩種資料擬合的方法。

%%資料表:
>> t=1:10;
>> y=[9.6,4.1,1.3,0.4,0.05,0.1,0.7,1.8,3.8,9.0];
  1. 使用polyfit與polyval命令:
    首先,polyfit函式的呼叫格式:
    P=polyfit(X,Y,n)
    [P,S]=polyfit(X,Y,n)
    [P,S,mu]=polyfit(X,Y,n)
    函式將根據取樣點X和取樣點的函式值Y,產生一個n次的多項式P,S為取樣點的誤差向量
    ,mu(1)是mean(X)(平均值),mu(2)是std(X)(方差)。
>> p=polyfit(t,y,2)
p =
    0.4561   -5.0412   13.2533
>> ti=1:0.5:10;
>> yi=polyval(p,ti)
yi =
  Columns 1 through 15
    8.6682    6.7177    4.9952    3.5007    2.2342    1.1958    0.3855   -0.1969   -0.5512   -0.6775   -0.5758   -0.2460    0.3118    1.0977    2.1115
  Columns 16 through 19
3.3534 4.8233 6.5213 8.4473 >> plot(t,y,':o',ti,yi,'-*')

在上述例子中,根據取樣點數值的特點,我們採用二次函式擬合,返回p是該二次函式的三個係數,然後採用polyval函式ti各點上的函式近似值接下來就是plot繪圖函數了。

2.使用cftool擬合工具箱
使用cftool擬合工具箱就要簡單多了,而且功能還很強大,輸入開啟工具箱的指令:

>>cftool

如下圖:

使用時在左側選擇相應的X data,Y data 然後選擇相應的擬合函式方式就可以了,下圖中紅色方框中就是需要選擇的內容,這裡選擇Polynomial(多項式形式),Degree選擇“2”,就可以在下面看到函式影象了,除了選擇多項式函式之外,我們還可以選擇指數函式等等形式。

在這裡這是一個簡單的例子,cftool擬合工具箱功能很強大,還可以對三維的函式、高斯擬合、指數函式擬合等。