📄 fuzzy_control_to_imitate_function.txt
字号:
x=[-0.4:0.04:3.6];
y=8+2*exp(1-x.^2).*cos(2*pi*x);
net=newff(minmax(x),[20,1],{'tansig','purelin'});
y1=sim(net,x);
net.trainParam.epochs=50;
net.trainParam.goal=0.01;
net=train(net,x,y);
y2=sim(net,x);
figure;
plot(x,y,'-',x,y1,'-',x,y2,'--');
title('原函数与网络训练前后的确仿真结果比较');
text(2,12,'原函数y');
text(2,11,'-未训练网络的仿真结果y1');
text(2,10,'--训练后网络的仿真结果y2');
这个程序如何转化成
训练BP神经网络连接权值的源代码(matlab)
Ir=0.05; %Ir为学习速率
err_goal=0.001;%期望最小误差值
max_epoch=10000;
X=[0.75 1 0 1;0.25 0 0.55 0;0 0 0.45 0;0 0 0 0;0 0 0 0;1 1 1 1;0.5 0 0.5 0.5;0.5 0 0.5 0.5;0 1 0 0;1 1 1 1;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;1 1 1 1];
T=[0 0 0 0;0 1 1 1;0 0 0 0;1 0 0 0];%提供4组15输入4输出训练集和目标集
[M,N]=size(X);q=10;[L,N]=size(T);
Wij=rand(q,M);
Wki=rand(L,q);
b1=zeros(q,1);b2=zeros(L,1);—随机给定隐含层、输出层偏值
for epoch=1:max_epoch
Oi=tansig(Wij*X,b1);
Ok=purelin(Wki*Oi,b2);
E=T-Ok;
deltak=deltalin(Ok,E);%计算输出层的delta
deltai=deltatan(Oi,deltak,Wki);%计算隐含层的deita
[dWki,db2]=learnbp(Oi,deltak,Ir);%调整输出层加权系数
Wki=Wki+dWki;b2=b2+db2;
[dWij,db1]=learnbp(X,deltai,Ir);
Wij=Wij+dWij;b1=b1+db1;
SSE=sumsqr(T-purelin(Wki*tansig(Wij*X,b1),b2));
if(SSE<err_goal) break;end
end
epoch %显示计算次数
X1=X;
Oi=tansig(Wij*X1,b1);%各隐含层输出
Ok=purelin(Wki*Oi,b2);%显示网络输出层的输出
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -