一元多项式回归(matlab)

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

一、概念

一元多项式回归(matlab)_第1张图片

二、例题

一元多项式回归(matlab)_第2张图片

法一:

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);
一元多项式回归(matlab)_第3张图片

结果分析:

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

你可能感兴趣的:(数学建模,matlab,回归)