使用模糊RBF神经网络逼近函数

逼近函数为:y(k)=u(k)^3 +
y(k-1)/(1+y(k-1)^2),
其中u(k)=0.5sin(6pit),网络结构为“2-5-25-1”

clear all;
close all;
xite=0.20;
alfa=0.05;
b=5*ones(5,1);%初始化高斯隶属度函数宽度
c=[-5 -2 0 2 5;%初始化高斯隶属度函数中心
   -5 -2 0 2 5; ];
w=rands(25,1);%初始化模糊推理层到输出层的权值
%***********************初始化************************
c_1=c;
c_2=c_1;
b_1=b;
b_2=b_1;
w_1=w;
w_2=w_1;
u_1=0.0;
y_1=0.0;
%***********************初始化************************

ts=0.001;%采样周期
for k=1:1:1000
    time(k)=k*ts;
    u(k)=0.5*sin(6*pi*k*ts);%输入层第一个输入
    y(k)=u_1^3+y_1/(1+y_1^2);%输入层第二个输入
    x=[u(k),y_1]';%输入层的两个输入
    f1=x;%1层——输入层输出
    for i=1:1:2
        for j=1:1:5
            net2(i,j)=-(f1(i)-c(i,j))^2/b(j)^2;
            f2(i,j)=exp(net2(i,j));%2层——模糊化层输出
        end
    end
  
    for j=1:1:5
        m1(j)=f2(1,j);%输入u(k)的隶属度
        m2(j)=f2(2,j);%输入y(k)的隶属度
    end
    for i=1:1:5
        for j=1:1:5
            ff3(i,j)=m2(i)*m1(j);%3层——模糊推理层的输出,即模糊关系R,该层共5*5=25个节点,采用笛卡尔乘积法取代马达尼取小运算
        end
    end
    f3=[ff3(1,:),ff3(2,:),ff3(3,:),ff3(4,:),ff3(5,:)];%将模糊关系矩阵写成行向量形式
    
    f4=w_1'*f3';%4层——输出层的输出
    ym(k)=f4;
    e(k)=y(k)-ym(k);%误差
    d_w=0*w_1;%Δw初始化
    for j=1:1:25
        d_w(j)=xite*e(k)*f3(j);%计算Δw的值
    end
    w=w_1+d_w+alfa*(w_1-w_2);%计算权值W
    delta2=-e(k)*w'*f3';%计算σ
    d_b=0*b_1;%Δb初始化
    for j=1:1:5
        d_b(j)=xite*delta2*2*(x(1)-c(1,j))^2*(b(j)^-3);%通过σ计算Δb
    end
    b=b_1+d_b+alfa*(b_1-b_2);%计算b
    
    d_c=0*c_1;%Δc初始化
    for i=1:1:2
        for j=1:1:5
            d_c(i,j)=-xite*delta2*2*(x(i)-c(i,j))*b(j)^-2;%计算Δc
        end
    end
    c=c_1+d_c+alfa*(c_1-c_2);%计算c
    %**************更新***********************
    u_1=u(k);
    y_1=y(k);
    w_2=w_1;
    w_1=w;
    
    c_2=c_1;
    c_1=c;
    
    b_2=b_1;
    b_1=b;
    %**************更新***********************
end
%******************绘图*************************
    figure(1);
    plot(time,y,'r',time,ym,'b');
    xlabel('time(s)');
    ylabel('Approaching');
    figure(2);
    plot(time,y-ym,'r');
    xlabel('time(s)');
    ylabel('Approaching error');
 %******************绘图*************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

karwen2020

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值