matlab怎么求以下数据的2阶和3阶多项式进行拟合,分别求他们的相关系数
y=[4355.94 5041.21 6152.17 8439.06 8781.00 8988.00 10615.00 10925.84 12000.88] 展开
用matlab求已知数据的2阶和3阶多项式进行拟合,及其相关系数。可以这样来实现。
x=[2004:1:2012]';
y=[4355.94 5041.21 6152.17 8439.06 8781.00 8988.00 10615.00 10925.84 12000.88]';
n=length(x);
Y=y;
X=[ones(n,1) x x.^2]; %拟合2阶多项式的系数
[b,bint,r,rint,stats] = regress(y,X);
b',stats(1)%相关系数
X=[ones(n,1) x x.^2 x.^3]; %拟合3阶多项式的系数
[b,bint,r,rint,stats] = regress(y,X);
b',stats(1)%相关系数
运行结果:
1、2阶多项式的系数,b1= -1.6014e+08;b2= 1.5855e+05 ; b3= -39.239,相关系数R²= 0.97483
2阶多项式方程:y=-1.6014e+08+1.5855e+05 x -39.239 x²
2、3阶多项式的系数,b1=0 ;b2=-80692;b3= 79.898 ;b4=-0.019776,相关系数R²= 0.97483
3阶多项式方程:y=-80692 x +79.898 x² -0.019776 x³