遗传算法MATLAB实现代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%%以下代码可直接复制粘贴到m文档运行

clc;

clear all;

%输入数据

for i=1:4000

input(i,:)=10*rand(1,2)-5;

output(i)=input(i,1)^2+input(i,2)^2;

end

output=output';

k = rand(1,4000);

[m,n] = sort(k);%m是数值排序,n是对应的位置

%找出训练数据和预测数据

input_train = input(n(1:3900),:)';

output_train = output(n(1:3900),:)';

input_test = input(n(3901:4000),:)';

output_test = output(n(3901:4000),:)';

%%数据归一化

[gui_1_input,gui_1_inputs] =

mapminmax(input_train);%gui_1_inputs是一个包含最大最小值等信息的结构体

[gui_1_output,gui_1_outputs] = mapminmax(output_train);

%构建神经网络

net = newff(gui_1_input,gui_1_output,5); %5是隐含层节点数net.trainParam.epochs = 100;%训练次数

net.trainParam.lr = 0.1;%学习速率

net.trainParam.goal = 0.0000004;%训练目标最小误差

%%bp神经网络训练

net = train(net,gui_1_input,gui_1_output);

%测试样本归一化

gui_1_input_test =

mapminmax('apply',input_test,gui_1_inputs);%"apply"根据

input数据进行归一化

%%Bp神经网络预测

yuce = sim(net,gui_1_input_test);

%预测结果反归一化

Bp_output =

mapminmax('reverse',yuce,gui_1_outputs);%reverse表示根据output进行反归一化

%网络存储

save data net gui_1_inputs gui_1_outputs

%网络预测图形

figure(1)

plot(Bp_output,'og');

hold on

plot(output_test,'-*');

legend('预测输出','期望输出');

title('bp 网络预测输出');

xlabel('样本');

ylabel('输出');

相关文档
最新文档