y=b0+b1*X1+b2*X2+b3*X3;
X1=[2187.45 2482.49 2969.52 3585.72 4282.14 4950.91 5813.56 6801.57 7806.53 8201.23 9510.91 ];
X2=[701.24 724.57 746.62 778.27 800.80 827.75 846.43 861.55 876.83 891.23 1035.79];
X3=[30.68 42.86 47.44 61.87 79.50 115.70 156.60 193.50 218.58 237.84 272.96];
y=[201.90 219.00 221.10 324.50 346.97 332.90 359.53 406.98 440.69 475.96 479.25];
matlab或spss将一组数据怎么拟合成多元多项式,在日常的数理计算中,是非常实用的。也是最基础的操作,经过几个简单的步骤就能实现。
工具原料:Matlab
具体步骤:
1.多项式拟合,对一组数据,可以通过一般的最小二乘法拟合,或者或者多项式拟合。polyfit()
2.多项式显示,通过系数向量,用字符串表示,以及数值计算。
poly2sym()以变量形式显示
poly2str()以字符串形式显示
polyval()数值计算
3.对多项式求根,roots(),传入多项式系数向量,即可求得根。
及p*X=0,p=[a1,a2,a3,..],X=[x1,x2^2,x3^3,...]
4.对两多项式进行乘法或者除法运算。
conv():乘法
deconv():除法
5.对多项式进行微分和积分运算
polyder()
polyint()
程序:
clear
clc;
X1=[2187.45 2482.49 2969.52 3585.72 4282.14 4950.91 5813.56 6801.57 7806.53 8201.23 9510.91 ];
X2=[701.24 724.57 746.62 778.27 800.80 827.75 846.43 861.55 876.83 891.23 1035.79];
X3=[30.68 42.86 47.44 61.87 79.50 115.70 156.60 193.50 218.58 237.84 272.96];
y=[201.90 219.00 221.10 324.50 346.97 332.90 359.53 406.98 440.69 475.96 479.25];
X = [ones(length(X1),1),X1',X2',X3'];
Y = y';
b = regress(Y,X)
myY = X*b;
plot(y,'r')
hold on
plot(myY,'g')
legend('原始数据曲线','拟合数据曲线','Location','best')
title('回归分析')
xlabel('x')
ylabel('y')
结果:
b =
339.9521
0.1381
-0.5102
-2.3197
绘图:
copyright(c) cxd1301