Matlab问题!逐步多元非线性回归 以及求极值问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 00:10:01
1.0 13.0 1.5 0.330
1.4 19.0 3.0 0.366
1.8 25.0 1.0 0.294
2.2 10.0 2.5 0.476
2.6 16.0 0.5 0.209
3.0 22.0 2.0 0.451
3.4 28.0 3.5 0.482

这是文献上的一组均匀试验的设计和结果。从左至右:自变量x1,x2,x3;因变量y;试验次数7次。请问能否用Matlab进行多元非线性的回归?(二次多项式)可能的模型y= a + b1*x1 + b2*x2 + b3*x3 + b4*x1*x2 + b5*x1*x3 + b6*x2*x3 + b7*x1^2 + b8*x2^2 + b9*x3^2;最好可以用逐步回归技术或其他技术剔除一些影响小的变量或项。请给出具体的方法。谢谢。

其实最终的目的是找出极大值点和极大值(优化),所以,除了用上述多元非线性回归方法外,如有其他方法如用人工神经网络结合遗传算法、SNTO(序贯优化方法)等进行有效处理的,也可,并烦请给出具体命令、方法。多谢!!!

如果答案优秀,再追加分数。

多谢多谢!!!!
能解决以上部分问题也可。

%%引言
%%你的变量是10个,而方程只有7个,做的效果可能会比较差
%%神经网络等我没接触过
%%下面只弄那个多项式
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%第一步
data=[1.0 13.0 1.5 0.330;
1.4 19.0 3.0 0.366;
1.8 25.0 1.0 0.294;
2.2 10.0 2.5 0.476;
2.6 16.0 0.5 0.209;
3.0 22.0 2.0 0.451;
3.4 28.0 3.5 0.482];

x1=data(:,1);
x2=data(:,2);
x3=data(:,3);
y=data(:,4);
mat=[ones(size(x1)),x1,x2,x3, x1.*x2, x1.*x3, x2.*x3, x1.^2, x2.^2, x3.^2];
%下面的A就是我们要的常数,分别对应于a,b1,b2,b3,b4,b5,b6,b7,b8,b9
A=mat\y
%%%%%%%%%第一步结束

%%%%%%%%得到的结果是:
A =
0
0
0.0149
0.1844
-0.0024
0.0510
-0.0024
0
-0.0002
-0.0448
发现第一个,第二个以及第8个等于0。先去掉这三个。即a,b1,b7=0

%%%%第二步。去掉上述三项再次拟合
%%你好好比较一下两步之间的mat矩阵的构造就知道怎么弄了。
data=[1.0 13.0 1.5 0.330;
1.4 19.0 3.0 0.366;
1.8 25.0 1.0 0.294;
2.2 10.0 2.5 0.476;
2.6 16.0 0.5 0.2