📄 mat-bp.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<P>
<P>
<P>
<P><BR>
可以改变原始非线性函数的频率及BP网络隐层单元神经元的数目,可见网络隐层单元神经元数目越多,或训练次数越多,精度越小,也就越能对非线性程度越高的函数进行更好地逼近。<BR>
<BR>
%通过下面两个参数值的改变比较结果<BR>
k=1; %设置非线性函数的频率<BR>
n=10; %设置网络隐单元的神经元数目<BR>
%定义要逼近的非线性函数<BR>
p = [-1:.05:1];<BR>
t = sin(k*pi*p);<BR>
plot(p,t,'-')<BR>
title('要逼近的非线性函数');<BR>
xlabel('时间');<BR>
ylabel('非线性函数');<BR>
%建立相应的BP网络<BR>
net = newff(minmax(p),[n,1],{'tansig' 'purelin'},'trainlm');<BR>
%对没有训练的网络进行仿真<BR>
y1 = sim(net,p);<BR>
%绘出仿真得到的曲线<BR>
figure;<BR>
plot(p,t,'-',p,y1,'--')<BR>
title('没有训练的网络仿真结果');<BR>
xlabel('时间');<BR>
ylabel('仿真输出-- 原函数-');<BR>
%训练网络<BR>
net.trainParam.epochs = 50;<BR>
net.trainParam.goal = 0.01;<BR>
net = train(net,p,t);<BR>
%对训练后的网络进行仿真<BR>
y2 = sim(net,p);<BR>
%绘出训练后的仿真结果<BR>
figure;<BR>
plot(p,t,'-',p,y1,'--',p,y2,'--')<BR>
title('训练后的网络仿真结果');<BR>
xlabel('时间');<BR>
ylabel('仿真输出');<BR>
<BR>
<IMG alt=""
src="file:///H|/nn/UV/用BP实现函数逼近.files/200486232448170.gif"
onload="javascript:if(this.width>740)this.width=740"
border=undefined></P>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -