1、多項式擬合

例如:有兩組資料為x=[1 2 3 4 5 6 7 8 9];y=[9 7 6 3 -1 2 5 7 20];寫出x與y的表示式;

clear

clc

x=[1 2 3 4 5 6 7 8 9];

y=[9 7 6 3 -1 2 5 7 20];

P=polyfit(x,y,3);

xi=0:2:10;

yi=polyval(P,xi);

plot(xi,yi,x,y,‘r*’);

註釋:polyfit(x,y,N),x、y為原始資料,N為擬合最高次冪,

【MATLAB資料】—資料擬合

polyval(P,xi),P為各項的係數,結果展示為:

P 0.148

-1.403

1.8536

8.2698

故多項式的結果為:

【MATLAB資料】—資料擬合

2、工具箱擬合

開啟工具→基本擬合,選定擬合的方式。

x=[1 2 3 4 5 6 7 8 9];

y=[9 7 6 3 -1 2 5 7 20];

plot(x,y,‘r*’);

得出結果如下:

【MATLAB資料】—資料擬合

3、自定義擬合函式

例如:要擬合數據x=[0;0。4;1。2;2;2。8;3。6;4。4;5。2;6;7。2;8;9。2;10。4;11。6;12。4;13。6;14。4;15];

y=[1;0。85;0。29;-0。27;-0。53;-0。4;-0。12;0。17;0。28;0。15;-0。03;-0。15;-0。071;0。059;0。08;0。032;-0。015;-0。02];

clear

clc

syms t

x=[0;0。4;1。2;2;2。8;3。6;4。4;5。2;6;7。2;8;9。2;10。4;11。6;12。4;13。6;14。4;15];

y=[1;0。85;0。29;-0。27;-0。53;-0。4;-0。12;0。17;0。28;0。15;-0。03;-0。15;-0。071;0。059;0。08;0。032;-0。015;-0。02];

f=fittype(‘a*cos(k*t)*exp(w*t)’,‘independent’,‘t’,‘coefficients’,{‘a’,‘k’,‘w’});

cfun=fit(x,y,f)

xi=0:1:20;

yi=cfun(xi);

plot(x,y,‘r*’,xi,yi,‘b-’);

結果:

cfun =

General model:

cfun(t) = a*cos(k*t)*exp(w*t)

Coefficients (with 95% confidence bounds):

a = 0。9987 (0。9836, 1。014)

k = -1。001 (-1。006, -0。9958)

w = -0。2066 (-0。2131, -0。2002)

【MATLAB資料】—資料擬合

註釋:fittype是自定義擬合函式,cfun=fit(x,y,f)擬合數據x、y,x、y必須為列向量。

故結果為:

【MATLAB資料】—資料擬合