曲线拟合是已知离散点上的数据集,构造一个解析函数(其图形为一曲线),使在原离散点上尽可能接近给定的值。MATLAB中与曲线拟合有关的函数主要有polyfit、polyval和polyconf。
01 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的输入来获取误差估计值。
02polyval:求n次多项式p在x处的值的函数。
用法:
y1= polyval(p,x)。
输入变量p=[p0 p1 p2…pn]是一个长度为n+1的行向量,由一个多项式的系数组成,多项式系数按降幂排列,缺少的幂次要用0来补齐。常和polyfit搭配使用。
03polyconf:对ployfit拟合曲线进行评价和置信区间估计的函数。
用法:[Y,DELTA]=polyconf(p,x,s,alpha)。
DELTA为polyfit所得的回归多项式在x处的预测值Y及预测值的显著性为1-alpha的置信区间。alpha缺省时默认是0.05。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。p是polyfit函数的返回值;x和polyfit函数的x值相同;y和polyfit函数的y值相同。p和s可由polyfit函数的用法二获取。 代码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); 图
