1、ex41.m
clear clc
%newp--创建感知器神经网络 -apt--训练网络 %sim--仿真 clc
%P为输入矢量
P=[-0.5,-0.5,0.3,-0.1;-0.5,0.5,-0.5,1.0] %P为输入矢量 T=[1,1,0,0]
%绘出待分类的数据点图 plotpv(P,T) pause clc
%创建感知器神经网络 net=newp(minmax(P),1); net.IW{1,1}=[-1.2 -0.5]; net.b{1}=1;
line=plotpc(net.IW{1,1},net.b{1}); pause clc
echo off E=1; n=0; echo on clc
%训练神经网络 while(sse(E))
[net,y,E]=adapt(net,P,T); n=n+1;
perf(n)=sse(E)
line=plotpc(net.IW{1},net.b{1},line); drawnow; end pause clc
%绘制误差变化曲线 figure
plot(perf); pause clc
%引入新的数据点 p=[0.7;1.2]; a=sim(net,p) plotpv(p,a); pause clc
%绘制新的分类结果 hold on; plotpv(P,T);
plotpc(net.IW{1},net.b{1}) echo off
2、4101.m
clear clc
%newp--创建感知器神经网络 -apt--训练网络 %sim--仿真 pause clc
%P为输入矢量
P=[0.1 0.7 0.8 0.8 1.0 0.3 0.0 -0.3 -0.5 -1.5; 1.2 1.8 1.6 0.6 0.8 0.5 0.2 0.8 -1.5 -1.3]; %P为输入矢量
T=[1 1 1 0 0 1 1 1 0 0; 0 0 0 0 0 1 1 1 1 1]; %绘出待分类的数据点图 plotpv(P,T) pause clc
%创建感知器神经网络 net=newp(minmax(P),2); net.IW{1} net.b{1}
line=plotpc(net.IW{1},net.b{1}); pause clc
echo off E=1; n=0; echo on clc
%训练神经网络 while(sse(E))
[net,y,E]=adapt(net,P,T); n=n+1;
perf(n)=sse(E)
line=plotpc(net.IW{1},net.b{1},line); drawnow; end pause clc
%绘制误差变化曲线 figure plot(perf); pause clc
%引入新的数据点 p=[0.7;1.2]; a=sim(net,p) plotpv(p,a); pause clc
%绘制新的分类结果 hold on;
plotpv(P,T);
plotpc(net.IW{1},net.b{1}) echo off
3、ex410
close all clear clf reset figure(gcf); echo on clc
%newlin--生成一个新的线性神经网络 %train--训练 %sim--仿真 pause%任意键开始 clc
%P为输入矢量 P=[0.8,-2; 0.9 2]; %T为目标矢量 T=[0.5,1;0.6,0.8];
%设定线性神经元可能的权值和阀值范围 % w_range=-1:0.1:1; % b_range=-1:0.1:1;
%根据输入和目标矢量绘制线性神经元的误差曲面 % ES=errsurf(P,T,w_range,b_range,'purelin'); % plotes(w_range,b_range,ES); % pause % clc
%创建线性神经网络 net=newlin(minmax(P),2);
%对线性神经网络进行训练
net.trainParam.goal=0.00001;%设置训练目标误差 net.trainParam.epochs=1000; [net,tr]=train(net,P,T); pause clc
%绘制误差变化曲线 close(gcf);
plotperf(tr,net.trainParam.goal); pause clc
%对线性神经网络进行仿真 A=sim(net,P) %计算仿真误差 E=T-A
SSE=sse(E) echo off