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

📄 jtrbfnet.m

📁 对静态对象采用rbf神经网络进行建模的源程序,经过调试,直接就可以由MATLAB运行!
💻 M
字号:
function main()
samnum=100;
targetsamnum=101;
indim=1;
unitnum=10;
maxepoch=5000;
E0=0.1;

rand('state',sum(100*clock))
noisevar=0.01;
noise=noisevar*randn(1,samnum);
samin=8*rand(1,samnum)-4;
samoutnonoise=1.1*(1-samin+2*samin.^2).*exp(-samin.^2/2);
samout=samoutnonoise+noise;

targetin=-4:0.08:4;
targetout=1.1*(1-targetin+2*targetin.^2).*exp(-targetin.^2/2);

figure
hold on
grid
plot(samin,samout,'k+')
plot(targetin,targetout,'b-')
xlabel('input x');
ylabel('output y');

center=8*rand(indim,unitnum)-4;
sp=0.2*rand(1,unitnum)+0.1;
w=0.2*rand(1,unitnum)-0.1;

lrcent=0.001;
lrsp=0.001;
lrw=0.001;

errorhistory=[];
for epoch=1:maxepoch
    alldist=dist(center',samin);
    spmat=repmat(sp',1,samnum);
    unitout=radbas(alldist./spmat);
    netout=w*unitout;
    
    error=samout-netout;
    SSE=sumsqr(error)
    
    errorhistory=[errorhistory SSE];
    
    if SSE<E0,break,end
    
    for i=1:unitnum
        centgrad=(samin-repmat(center(:,i),1,samnum))*(error.*unitout(i,:)*w(i)/(sp(i)^2))';
        spgrad=alldist(i,:).^2*(error.*unitout(i,:)*w(i)/(sp(i)^3))';
        wgrad=error*unitout(i,:)';
        
        center(:,i)=center(:,i)+lrcent*centgrad;
        sp(i)=sp(i)+lrsp*spgrad;
        w(i)=w(i)+lrw*wgrad;
    end
end

testdistance=dist(center',targetin);
testspreadsmat=repmat(sp',1,targetsamnum);
testhiddenunitout=radbas(testdistance./testspreadsmat);
testnnout=w*testhiddenunitout;
plot(targetin,testnnout,'r-')

figure
hold on
grid
[xx,num]=size(errorhistory);
plot(1:num,errorhistory,'r-');

⌨️ 快捷键说明

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