📄 f_appr.m
字号:
% 用BP网络实现函数逼近的问题
k=1;
n=10;
aim=0.01;
% 产生频率可调的正弦波作为要逼近的非线性函数
p=[-1:0.05:1];
t=sin(k*pi*p);
plot(p,t);
title('要逼近的非线性函数');
xlabel('时间');
ylabel('非线性函数');
hold on;
pause;
% 建立一具有两层结构的BP网络,第一层(隐层)神经元数目为n,传递函数为tansig,输出层有一个线性神经元
net=newff(minmax(p),[n,1],{'tansig' 'purelin'},'trainlm');
y1=sim(net,p);
plot(p,t,p,y1,'--');
title('未训练的网络输出结果');
xlabel('时间');
ylabel('仿真输出-- 原函数—');
pause;
% 网络训练
% 先设置训练参数
net.trainParam.epochs = 50;
net.trainParam.goal =aim;
net= train(net,p,t);
% 网络测试
y2 = sim(net,p);
plot(p,t,p,y1,p,y2);
title('训练后的网络输出结果');
xlabel('时间');
ylabel('仿真输出');
pause;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -