用matlab或spss将一组数据怎么拟合成多元多项式

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()

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-03

程序:

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

第2个回答  2013-06-03
实际上方法都是做回归,但是:
如果仅仅拟合的话,使用MATLAB就可以,如果想要对拟合得到的参数进行检验,还是使用spss比较方便。
第3个回答  2013-06-03
用spss中的非线性回归分析可以自己输入方程式进行拟合,效果不错的,我经常做数据分析的
或用多重线性回归分析既可。
相似回答