|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
一个神经网络对logistic混沌序列一步预测的程序
- %% use logistic function to genenrate a sequence
- %%
- clear all;
- x=[];
- T=[];
- x(1)=0.22;
- k=4;
- n=900;
- N=400;
- % 产生logistic序列,前100个去除
- for i=1:n
- x(i+1)=k*x(i)*(1-x(i));
- end
- X(1:800)=x(101:900);
- % 用X的前400个数据训练RBF神经网络
- for j=1:N
- P(1:8,j)=X(j:j+7)';
- end
- T=X(9:408); % 目标数据
- net1=newrb(P,T,0.001,1); % 训练RBF神经网络
- N1=300;
- % 选取X的400—700个数据进行RBF神经网络检验
- for j=1:N1
- P1(1:8,j)=X(j+400:j+7+400)';
- end
- T1=X(409:708); % 目标数据
- %仿真验证
- a=sim(net1,P1); % 对检验数据的预测结果
- e = T1-a; % 一步预测误差
- mse = sqrt(e*e')/size(e,2) % 均方误差 Mean Square Error
- %画图描绘仿真结果
- figure(2)
- plot(X(1:200));
- axis([1 200 -0.1 1.1]);
- title('logistic混沌序列');
- xlabel('t');
- ylabel('magnitude');
- figure(3)
- plot(1:300,T1,'b',1:300,a,'r*');
- h = legend('混沌序列','RBF神经网络一步预测值');
- axis([1 300 -0.5 1.5]);
- hold on
- title('混沌序列与一步预测值');
- xlabel('t');
- ylabel('magnitude');
- figure(4);
- plot(e,'b-');
- axis([1 300 -0.1 0.1]);
- title('预测误差e');
- xlabel('t');
- ylabel('magnitude');
复制代码
转自:matwav--mary |
|