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

📄 dfnn.asv

📁 MATLAB作为通讯控制类极好的仿真软件平台
💻 ASV
字号:
function[w1,w2,width,rule,e,RMSE]=DFNN(p,t,parameters)
%模糊神经网络训练程序
%输入:
%    p是输入数据,是r*q的矩阵
%    r是输入层神经元的个数
%    t是输出数据,是s2*q的矩阵
%    q是采样数据的个数
%    parameters 是实现定义的参数
%    parameters(1)=kdmax (输入空间的最大长度)
%    parameters(2)=kdmin (输入空间的最小长度)
%    parameters(3)=gama  (衰减常数)
%    parameters(4)=emax  (输出误差最大值)
%    parameters(5)=emin  (输出误差最小值)
%    parameters(6)=beta  (收敛常数)
%    parameters(7)=width0 (第一条规则的宽度)
%    parameters(8)=k     (重叠因子)
%    parameters(9)=kw    (更新因子的宽度)
%    parameters(10)=kerr  (预设的阈值,用于剔出某条规则)
%Output:
%    w1是RBF网络的中心
%    w2是网络的权值
%    width是RBF网络中心的宽度

if nargin <2                              %函数的输入引数个数<2
    error( 'Not enough input arguments')  
end 
if size(p,2)~=size(t,2)                   %使输入数据和输入数据的列数一样
    error('The input data are not correct')
end 
[r,q]=size(p);[s2,q]=size(t);

%设置参数
kdmax=parameters(1);kdmin=parameters(2);gama=parameters(3);
emax=parameters(4); emin=parameters(5);beta=parameters(6);
width0=parameters(7);k=parameters(8);kw=parameters(9);
kerr=parameters(10);
ALLIN=[];ALLOUT=[];CRBF=[];
%当第一个采样数据来时
ALLIN=p(:,1);                              %获取采样输入数据矩阵的第一列
ALLOUT=t(:,1);                             %获取采样输入数据矩阵的第一列
%建立初始的动态模糊神经网络
CRBF=p(:,1);w1=CRBF';width(1)=width0;rule(1)=1;
%计算第一个输出误差
a0=RBF(dist(w1,ALLIN),1./width');
a01=[a0 p(:,1)'];
w2=ALLOUT/a01';
a02=w2*a01';
RMSE(1)=sqrt(sumsqr(ALLOUT-a02)/s2);


    
    

⌨️ 快捷键说明

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