⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yuce.m

📁 具有反馈的BP神经网络Matlab实现
💻 M
字号:
function [outo,d,ave]=yuce(ti,to,IM,MT,hilayers)
[samples,inum]=size(ti);

%归一化
for i=1:inum                         %找出最大最小值
    max(1,i)=ti(1,i);
    min(1,i)=ti(1,i);
end
for i=1:inum
    for j=1:samples
        if max(1,i)<ti(j,i) 
           max(1,i)=ti(j,i);
        end
        if min(1,i)>ti(j,i)
           min(1,i)=ti(j,i);
        end
    end
end
for i=1:inum                                 %inputs归一化(0,1)
    for j=1:samples
        ti(j,i)=(ti(j,i)-min(1,i))/(max(1,i)-min(1,i));
    end
end
mmax=to(1,1);     %找出最大最小值
mmin=to(1,1);
for i=1:samples
    if mmax<to(i,1)
       mmax=to(i,1);
    end
    if mmin>to(i,1)
       mmin=to(i,1);
    end
end
for i=1:samples                                 %targets归一化(0,1)
    to(i,1)=(to(i,1)-mmin)/(mmax-mmin);
end

%hilayers=9;                   %layers为隐层节点数
outi=zeros(samples,1)
    outo=zeros(samples,1)
    for k=1:samples
        hilayersin=zeros(hilayers,1);
        hilayersout=zeros(hilayers,1);
        for i=1:hilayers
            for j=1:inum
                hilayersin(i,1)=hilayersin(i,1)+ti(k,j)*IM(j,i);
            end
            hilayersout(i,1)=logsig(hilayersin(i,1));
        end
        for i=1:hilayers
            outi(k,1)=outi(k,1)+hilayersout(i,1)*MT(i,1);
        end
        outo(k,1)=logsig(outi(k,1));          
    end
    d=zeros(samples,1);
    E=outo-to;
    d=abs(outo-to);
    ave=0;
    for i=1:inum
        ave=ave+abs(outo(i,1)-to(i,1));
    end
    ave=ave/samples        
    figure
    plot(to,'b-+');
    hold on;
    plot(outo,'r:*');
    hold on;
    title('预测值与实际值拟合曲线')
    xlabel('预测样本数')
    ylabel('输出')
    figure
    plot(E,'-+');
    title('预测绝对误差曲线')
    xlabel('预测样本数')
    ylabel('绝对误差')
    hold on

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -