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

    曲线拟合是已知离散点上的数据集,构造一个解析函数(其图形为一曲线),使在原离散点上尽可能接近给定的值。MATLAB中与曲线拟合有关的函数主要有polyfit、polyval和polyconf。

1.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的输入来获取误差估计值。

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

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

3.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);

在这里插入图片描述

  • 11
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
方便大家使用的最小二乘法曲线拟合的Matlab程序-untitled2.fig 非常方便用户使用,直接按提示操作即可;这里我演示一个例子: 请以向量的形式输入x,y. x=[1,2,3,4] y=[3,4,5,6] 通过下面的交互式图形,你可以事先估计一下你要拟合的多项式的阶数,方便下面的计算. polytool()是交互式函数,在图形上方[Degree]框中输入阶数,右击左下角的[Export]输出图形 回车打开polytool交互式界面 回车继续进行拟合     输入多项式拟合的阶数   m = 4 Warning: Polynomial is not unique; degree >= number of data points. > In polyfit at 72   In zxecf at 64       输出多项式的各项系数          a = 0.0200000000000001          a = -0.2000000000000008          a = 0.7000000000000022          a = 0.0000000000000000          a = 2.4799999999999973       输出多项式的有关信息 S         R: [4x5 double]        df: 0     normr: 2.3915e-015 Warning: Zero degrees of freedom implies infinite error bounds. > In polyval at 104   In polyconf at 92   In zxecf at 69          观测数据     拟合数据        x         y       yh     1.0000    3.0000    3.0000     2.0000    4.0000    4.0000      3     5     5     4.0000    6.0000    6.0000       剩余平方和            Q = 0.000000         标准误差        Sigma = 0.000000         相关指数           RR = 1.000000 请输入你所需要拟合的数据点,若没有请按回车键结束程序.     输入插值点             x0 = 3     输出插值点拟合函数值   y0 = 5.0000 >> 结果: untitled.fig Figure88.jpg 最小二乘法曲线拟合的程序 untitled2.fig Figure89.jpg 最小二乘法曲线拟合的程序

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值