java 多项式拟合最多的项数_MATLAB绘制带置信区间的拟合曲线

曲线拟合是已知离散点上的数据集,构造一个解析函数(其图形为一曲线),使在原离散点上尽可能接近给定的值。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的输入来获取误差估计值。

02

polyval:求n次多项式p在x处的值的函数。

用法:

y1= polyval(p,x)。

输入变量p=[p0 p1 p2…pn]是一个长度为n+1的行向量,由一个多项式的系数组成,多项式系数按降幂排列,缺少的幂次要用0来补齐。常和polyfit搭配使用。

03

polyconf:对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);  

bb157577ab00963c23c629b31f231a2d.png

    ▼更多精彩推荐,敬请关注我们▼

f71d1bb32728ffdda5be2d552f1d0227.png