同时用线性网络和bp网络模拟一对线性值,发现,线性网络结果更优!
源代码如下:
P=[-3,2]; T=[0.4,0.6]; %创建线性网络 net=newlind(P,T); y=sim(net,P); w1=net.iw{1,1},b1=net.b{1} %创建bp网络 net=newcf(minmax(P),[1],{'tansig'}); %创建前向BP网络 net.trainParam.epochs=50; %初始化训练次数 net.trainParam.goal=0.001; %初始化目标误差 net=train(net,P,T); %训练网络 W=net.iw{1,1}, B=net.b{1} Y=sim(net,P); %计算结果 % pause % y 黄- 实线. 点< 小于号 % m 紫: 点线o 圆s 正方形 % c 青-. 点划线x 叉号d 菱形 % r 红- - 虚线+ 加号h 六角星 % g 绿* 星号p 五角星 % b 蓝v 向下三角形 % w 白^ 向上三角形 % k 黑> 大于号 plot(P,T,'k*') %画出目标点 ,用紫色星号显示 hold on plot(P,Y,'r^') %画出bp预测时的值,为红色向上三角 plot(P,y,'bv') %画出线性预测时的值,为蓝色向下三角 hold off %为了显示明显,扩大显示的范围 % axis([xmin xmax ymin ymax]) axis([-3.4 2.5 0 1]);