• 大小: 49KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: Matlab
  • 标签:

资源简介

是实现BP神经网络和混沌神经网络的matlab程序,但是没有调用神经网络工具箱。

资源截图

代码片段和文件信息

%------------初始化---------------------%
clear all;close all;
innode=1;hiddennode=15;outnode=1;
w12=0.01*rand(hiddennodeinnode);                %设置输入层和隐层权值
theta1=0.01*rand(hiddennode1);                     %阈值
w23=0.01*rand(outnodehiddennode);              %设置隐层和输出层间权值
theta2=0.01*rand(outnode1);                            %阈值
delta1=zeros(hiddennodeinnode);             %权值修正值
delta2=zeros(outnodehiddennode);
u0=0.0335;                                                     %学习率
Epx=0;                                                      
in2=zeros(hiddennode1);out2=zeros(hiddennode1);in3=zeros(outnode1);out3=zeros(outnode1);
output=zeros(outnode80);%存储实际输出数据
%----------------读取训练样本---------------------%
format long 
fi=fopen(‘C:\Users\Administrator\Documents\MATLAB\BP\MDT.txt‘);
[tecount]=fscanf(fi‘%f %f %f %f %f‘[5 inf]);
fclose(fi);
iteration=count/(innode+outnode);
f=fopen(‘C:\Users\Administrator\Documents\MATLAB\BP\MDT.txt‘);
[tempcount1]=fscanf(f‘%f ‘[(innode+outnode)iteration]);

data=temp‘;

%------------输入输出数据归一化-----------------------%
for i=1:(outnode+innode)
    maxi=data(1i);mini=data(1i);
   for j=2:iteration
       if maxi>data(ji)
           ma(i)=maxi;
       else
           ma(i)=data(ji);
       end
       maxi=ma(i);
       if mini           mi(i)=mini;
       else
           mi(i)=data(ji);
       end
       mini=mi(i);
   end
end

for i=1:(outnode+innode)
    for j=1:iteration
        da(ji)=(data(ji)-mi(i))/(ma(i)-mi(i));
    end
end

for i=1:innode
    x(i:)=da(:i)‘;
end
%x1=da(:1)‘;
%x2=da(:2)‘;
%x3=da(:3)‘;

%x=[x1;x2;x3];
y=da(:innode+1)‘;
%-------------------------主程序开始---------------------%
for s=1:1000           
   Epx=0;
   for i=1:iteration
        in2= w12*x(:i)-theta1 ; %计算隐藏层的输入
         
         for j=1:hiddennode
             out2(j1)=1/(1+exp(-1*in2(j1))); %隐含层输出
         end
         
         in3=w23*out2-theta2   ;      %输出层的输入 
         
        for j=1:outnode
            out3(j1)=in3(j1);    %输出层的输出
        end
        
         output(:i)=out3;                      %output储存输出结果
         epoc(i)=i;
         error=0.5*(y(:i)-out3)‘*(y(:i)-out3);%计算E
         Epx=Epx+error; %误差输出
         e=y(:i)-out3;
         epoch(s)=s;
%---------------修正隐含层到输出层的权值-------------------
         for t=1:outnode
                det2(t1)=out3(t1)*(1-out3(t1))*e(t1);   %输出层小delta的值
                for k=1:hiddennode
                        delta2=u0*det2(t1)*out2(k1);
                        w23(tk)=w23(tk)+delta2;
                end
         end
         theta2=theta2-u0*det2;         %修正阈值
 %----------------------修正输入层到隐含层的权值-----------------------
           for m=1:hiddennode
                det1(m1)=det2‘*w23(:m)*out2(m1)*(1-out2(m1));%隐含层小delta的值
           
                for n=1:innode
                    delta1(mn)=u0*det1(m1)*x(ni);
                    w12

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      41984  2011-06-09 15:19  程序\BP算法程序-混沌系统.doc

     文件      46592  2011-06-09 15:04  程序\BP算法程序.doc

     文件       6386  2011-05-24 19:59  程序\dtest-0.m

     文件       6545  2011-05-25 21:09  程序\dtest4.m

     文件       6395  2011-05-23 23:20  程序\test0.m

     文件       6403  2011-05-25 22:17  程序\test4.m

     文件      46080  2011-06-09 15:40  程序\混沌网络程序-混沌系统.doc

     文件      46592  2011-06-09 15:29  程序\混沌网络程序.doc

     目录          0  2011-06-09 15:47  程序

----------- ---------  ---------- -----  ----

               206977                    9


评论

共有 条评论

相关资源