一元多项式回归(matlab)

文章参考自 25 回归分析算法基本原理及编程实现_哔哩哔哩_bilibili

一、概念

二、例题

法一:

t=1/30:1/30:14/30;
s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77129.54 146.48 ];
[p,s]=polyfit(t,s,2)

polyfit函数用法

p =polyfit(x,y,n) 返回次数为 n 的多项式 p(x) 的系数,该阶数是 y 中数据的最佳拟合(在最小二乘方式中)。p 中的系数按降幂排列,p 的长度为 n+1。
[p,S]= polyfit(x,y,n) 还返回一个结构体 S,后者可用作 polyval 的输入来获取误差估计值。
[p,S,mu]= polyfit(x,y,n) 还返回 mu,后者是一个二元素向量,包含中心化值和缩放值。mu(1) 是 mean(x),mu(2) 是std(x)。使用这些值时,polyfit 将 x 的中心置于零值处并缩放为具有单位标准差

结果

p =
 
  489.2946  65.8896    9.1329
 
s =
 
  包含以下字段的 struct:
 
        R: [3×3 double]
       df: 11
    normr: 0.1157

结果分析:

多项式方程:S=489.2946t*t+65.8896t+9.1329

法二:化为多元线性回归

相当于我把t*t看作新变量x1,t看作新变量x2,也就变成了y=cx1+bx2+a
t=1/30:1/30:14/30;
s=[11.8615.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77 129.54146.48];
T=[ones(14,1)t' (t.^2)];
[b,bint,r,rint,stats]=regress(s',T);

结果分析:

多项式方程:S=489.2946t*t+65.8896t+9.1329

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值