主页 > php易尔灵网络科技

随机梯度算法?

188 2023-12-11 07:50

clc;

clear;

FF=0.4;

sigma1 = 0.1; %

PlotLength =10;

L=100;

length1 = L + 20;

%----- Compute the noise-to-signal ratio--------------------------

na=2;nb=8;nd=1;

n=5;

a=[0.2,-0.2,0.3,0.5,0.17];

par0=[a]';

p0=1000000;r=1;

PP = eye(n)*p0;

par1=ones(n,1)/p0;

%----Generate the input-output data-----------------------------------------

rand('state',1); randn('state',0);

u=(rand(length1,1))*sqrt(1);

v=randn(length1,1)*sigma1;

y = ones(length1,1)/p0;

haty=zeros(length1,1)/p0;

for k=4:(length1)

y(k)=par0(1)*y(k-1)+par0(2)*y(k-2)+par0(3)*y(k-3)+par0(4)*u(k-1)+par0(5)*u(k-2)+v(k);

end

%----DR-M-SG------Generating data---------------------------------------

jj=0;j2=0;

r=0;

for t=4+1:length1

jj=jj+1;

varphi=[y(t-1);y(t-2);y(t-3);u(t-1);u(t-2)];

r=varphi'*varphi;

par1=par1+varphi*(y(t)-varphi'*par1)/r;

delta=norm(par1-par0)/norm(par0);

ls2(jj,:)=[jj, par1', delta];

if ((jj==10)|(jj==20)|(mod(jj,20)==0))|(jj==100)

j2 = j2+1;

ls_20(j2,:)=[jj, par1', delta*100];

end

ls_20(j2+1,:)=[0, par0', 0];

end

fprintf('\n %s \n','$k$ & $a_1$ & $a_2$ & $a_3$ & $b_1$&$b_2$ & $\delta\ (\%)$ \\');

fprintf('%4d & %10.5f & %10.5f & %10.5f & %10.5f & %10.5f & %10.5f &\\\\\n',ls_20');

%fprintf('%10.5f & %10.5f &%10.5f &%10.5f &%10.5f &%10.5f &%10.5f & %10.5f \\\\\n',ls_20);

figure(3); plot(ls2(:,1), ls2(:,n+2),'k');

axis([0, 100, 0, 1])

xlabel('\it k'); ylabel('{\it\tau}');

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片

热点提要

网站地图 (共14个专题12720篇文章)

返回首页