曲線擬合是已知離散點上的數據集,構造一個解析函數(其圖形為一曲線),使在原離散點上儘可能接近給定的值。MATLAB中與曲線擬合有關的函數主要有polyfit、polyval和polyconf。
polyfit:基於最小二乘法,用於曲線擬合的函數。用法:
(1)p=polyfit(x,y,n)。
其中,x和y為擬合數據向量,n為擬合多項式次數,預設時默認為1次。p中的係數按降冪排列,p的長度為 n+1。
(2)[p,s] = polyfit(x,y,n) 。
除p外還返回一個結構體s,可用作polyval的輸入來獲取誤差估計值。
polyval:求n次多項式p在x處的值的函數。
用法:
y1= polyval(p,x)。
輸入變量p=[p0 p1 p2…pn]是一個長度為n+1的行向量,由一個多項式的係數組成,多項式係數按降冪排列,缺少的冪次要用0來補齊。常和polyfit搭配使用。
polyconf:對ployfit擬合曲線進行評價和置信區間估計的函數。
用法:
[Y,DELTA]=polyconf(p,x,s,alpha)。
x=0:30;y=xlsread('C:\Users\Desktop\data.xlsx');[p,s]=polyfit(x,y,4);y1= polyval(p,x);[yfit,dy] = polyconf(p,x,s,'predopt','curve');h1=fill([x,fliplr(x)],[yfit-dy,fliplr(yfit+dy)],[0.8706 0.9216 0.9804]); hold onh2=plot(x,y1,'b','linewidth',2); hold onh3=plot(x,y,'r.','markersize',15);