首先,确定一个逼近对象如:f(x)=exp(-1.7*x)*cos(10x).^3,因为目标函数是非线性变换函数(S型函数),所以样本数据与测试数据在【-1,1】之间选取效果较好。
如:样本数据选取:x=-0.8:0.01:0.98;
在MATLAB工作窗口中输入如下命令语句:
clear all;
close all;
x=-0.8:0.01:0.98;
m=-1.7*x;
m=exp(m);
m=m.*sin(10*x).^3;
figure(1);
plot(x,m,'bo');
ylabel('输出样本集m=f(x)','color','r');
xlabel('输入样本集','color','r');
显示的图形如下:
net=newff(minmax(x),[3,1],{'tansig','purelin'},'traingd');
>> y=sim(net,x);
>> figure(2);
>> plot(x,m,'bo',x,y,'r*');
>> ylabel('输出样本集m(o) 网络输出y(*)','color','r');
>> xlabel('输入样本集x')
接着对BP网络函数进行训练,在上面程序中输入下面的命令:
net.trainParam.show=100;
net.trainParam.epochs=1000;
net.trainParam.goal=0.001;
net=train(net,x,m);
各位大神,接下来如何操作才能得到训练后的网络输出与样本输出啊?
各位大神,这是摘抄别人的程序,她第三个图象是这样的,按照常理说,应该是蓝色和红色彼此无限逼近,近似重合!
求指教
如:样本数据选取:x=-0.8:0.01:0.98;
在MATLAB工作窗口中输入如下命令语句:
clear all;
close all;
x=-0.8:0.01:0.98;
m=-1.7*x;
m=exp(m);
m=m.*sin(10*x).^3;
figure(1);
plot(x,m,'bo');
ylabel('输出样本集m=f(x)','color','r');
xlabel('输入样本集','color','r');
显示的图形如下:
net=newff(minmax(x),[3,1],{'tansig','purelin'},'traingd');
>> y=sim(net,x);
>> figure(2);
>> plot(x,m,'bo',x,y,'r*');
>> ylabel('输出样本集m(o) 网络输出y(*)','color','r');
>> xlabel('输入样本集x')
接着对BP网络函数进行训练,在上面程序中输入下面的命令:
net.trainParam.show=100;
net.trainParam.epochs=1000;
net.trainParam.goal=0.001;
net=train(net,x,m);
各位大神,接下来如何操作才能得到训练后的网络输出与样本输出啊?
各位大神,这是摘抄别人的程序,她第三个图象是这样的,按照常理说,应该是蓝色和红色彼此无限逼近,近似重合!
求指教