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為擬合最高次冪,
polyval(P,xi),P為各項的係數,結果展示為:
P 0.148
-1.403
1.8536
8.2698
故多項式的結果為:
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*’);
得出結果如下:
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)
註釋:fittype是自定義擬合函式,cfun=fit(x,y,f)擬合數據x、y,x、y必須為列向量。
故結果為: