美文网首页
Matlab绘制带置信区间的拟合曲线

Matlab绘制带置信区间的拟合曲线

作者: 枫桥夜漂客 | 来源:发表于2020-04-15 20:18 被阅读0次
       曲线拟合是已知离散点上的数据集,构造一个解析函数(其图形为一曲线),使在原离散点上尽可能接近给定的值。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)。
      DELTA为polyfit所得的回归多项式在x处的预测值Y及预测值的显著性为1-alpha的置信区间。alpha缺省时默认是0.05。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。p是polyfit函数的返回值;x和polyfit函数的x值相同;y和polyfit函数的y值相同。p和s可由polyfit函数的用法二获取。
    

    代码

    x=0:51;
    y=rand(1,51);
    [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 on
    h2=plot(x,y1,'b','linewidth',2);  
    hold on
    h3=plot(x,y,'r.','markersize',15);
    

    图像

    相关文章

      网友评论

          本文标题:Matlab绘制带置信区间的拟合曲线

          本文链接:https://www.haomeiwen.com/subject/wophvhtx.html