神经元网络对复杂系统建模二
目标
未知函数 f 的训练
x1=rand(1000,1)*2-1;
x2=rand(1000,1)*2-1;
x3=rand(1000,1)*2-1;
x4=rand(1000,1)*2-1;
x5=rand(1000,1)*2-1;
XX=[x1(:),x2(:),x3(:),x4(:),x5(:)];%区间为[-1,1]均匀分布,构造1000个训练样本
XX=XX';
YY=(x1.*x2.*x3.*x5.*(x3-1)+x4)./(1+x3.^2+x2.^2);%函数f真实输出
YY=YY';
net=feedforwardnet([20,10]);
view(net);
net=train(net,XX,YY);
验证
设定系统输入为
假设系统输出初始状态为:
编码实现该动态过程在k=1:800之间的过程,得到真实过程与辨识模型的输出如下图,红色为辨识模型输出结果,蓝色为真实模型输出结果,由图可见辨识结果几乎与实际输出基本一致。
相关代码与报告见链接