MATLAB資料擬合
阿新 • • 發佈:2019-01-03
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];
- 使用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擬合工具箱功能很強大,還可以對三維的函式、高斯擬合、指數函式擬合等。