recurrent.m

来自「递归神经网络程序」· M 代码 · 共 64 行

M
64
字号
%extremum_RNN
clear;
clc;
simustep=0.001;
theta=4;
x1=4;
x2=0;
c=[0 1 0]';
y=[20 20 0.01]';
z2=[0 0 0]';
mu=0.25;%mu=5.6555;
t=0;
j=1;
for i=0:150000
    A2=[1 -sign(y(1)) 0;-20*(x1-5)*x2/(y(1)) 0 0;0 0 y(1)];
    ratelast=-20*(x1-5)*x2;
    b2=[0 ratelast ratelast]';
    dy=-mu*[c*(c'*y-b2'*z2)+A2'*(A2*y-b2)];
    dz2=-mu*[-b2*(c'*y-b2'*z2)+A2*(A2'*z2-c)];
    y=y+dy*simustep;
    z2=z2+dz2*simustep;
    dtheta=y(3);
    theta=theta+dtheta*simustep;
    u=-30*(x1-theta)-11*x2;
    dx2=u;
    x2=x2+dx2*simustep;
    dx1=x2;
    x1=x1+dx1*simustep;
    yout=-10*(x1-5)^2+10; 
    t=t+simustep;
    if (mod(i,50)==0)
            ddy1(j)=dy(1);
            ddy2(j)=dy(2);
            ddy3(j)=dy(3);
            yy1(j)=y(1);
            yy2(j)=y(2);
            yy3(j)=y(3);
            thetaout(j)=theta;
            uu(j)=u;
            xx2(j)=x2;
            xx1(j)=x1;
            fmin(j)=yout;                                
            tt(j)=t;
            j=j+1;
     end;
 end;
x1
yout
clf;
plot(tt,yy1);
figure;
plot(tt,yy2);
figure;
plot(tt,yy3);
figure;
plot(tt,thetaout);
figure;
plot(tt,uu);
figure;
plot(tt,xx2);
figure;
plot(tt,xx1);
figure;
plot(tt,fmin);

⌨️ 快捷键说明

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