MATLAB----模糊神经网络

MATLAB----模糊神经网络_第1张图片

MATLAB----模糊神经网络_第2张图片
MATLAB----模糊神经网络_第3张图片
MATLAB----模糊神经网络_第4张图片

function f=bpfun()
%Neural Network—bpfun.m
%输入矩阵的范围(数据源)
P=[20 3000;1400 3500;500 3500;];
%创建网络
net=newff(P,[6 1],{'tansig' 'purelin'});
%初始化神经网络
net=init(net);
%两次显示之间的训练步数 默认为25
net.trainParam.show=50;
%lr不能选择太大 太大了会造成算法不收敛 太小了会使训练时间太长
%一般选择0.1~0.01之间
%训练速度
net.trainParam.lr=0.05;
%训练次数 默认为100
net.trainParam.epochs=2000;
%训练时间 默认为inf,表示训练时间不限
net.trainParam.time=5000;
%训练的目标 默认为0
net.trainParam.goal=0.001;
%建立源数据的矩阵
SourceDataConvert=importdata('bp_train_sample_data.dat');
SourceData=SourceDataConvert'
TargetConvert=importdata('bp_train_target_data.dat');
Target=TargetConvert'
%神经网络训练
net=train(net,SourceData,Target)
%显示训练后的各层权重
mat1=cell2mat(net.IW(1,1))
mat2=cell2mat(net.LW(2,1))
%mat3=cell2mat(net.LW(3,2))
%读取仿真文件数据
simulate_data_convert=importdata('bp_simulate_data.dat');
simulate_data=simulate_data_convert';
result=sim(net,simulate_data)
result=result'
grid;
title('bp神经网络:训练次数-输出误差对应关系图');
xlabel('训练次数');
ylabel('误差值');
%打开存储仿真结果的文件  a 追加结果  w+ 清除原有内容后读或写
fid=fopen('result.dat','w+');
if fid==-1
    disp('file open error')
    fclosed(fid);
    return;
else
      ;
end
%仿真的样本数
simulate_num=30;
%存储结果到文件中
for i=1:1:simulate_num
    fprintf(fid,'%f',result(i));
    fprintf(fid,'%s','    ');
end
%换行输入
fprintf(fid,'%s\r\n','');
%fprintf(fid,'%f',20);

%关闭文件
fclose(fid);

%可以把结果文件的数据读出进行操作
matrix=importdata('result.dat');

你可能感兴趣的:(数据可视化,MATLAB可视化,可视化,矩阵,线性代数,图论,matlab,几何学)