Matlab 实验四
1、利用 2 输入的 MP 模型是否可实现“与”、“或”、“非”和“异或”功能?若能,
编程实现并给出实现各种功能的权值和实验结果,若不能,请说明原因。
解答:MP 模型可以实现“与”、“或”、“非”功能,但不能实现“异或”功能。
因为在实现“异或”功能时,数据不可分,所以无法实现“异或”功能。
设输入矢量为
0 1 0 1
P
0 0 1 1
é ù
=
ê ú
ë û
,相应的目标矢量 T 根据所实现的功能不
同而改变。
(1) 程序代码
%第 1 题
%“与”功能
P = [0 1 0 1; % 当实现“或”功能时,只需将 T 变为[0 1 1 1]
0 0 1 1]; % 当实现“非”功能时,只需将 T 变为[1 0 1 0]
T = [0 1 1 0]; % 实现“异或”时,T 变为[0 1 0 1],但不可分
plotpv(P,T);
pause
net=newp([0 1;0 1],1);
net.initFcn='initlay';
net.layers{1}.initFcn='initwb';
net.inputWeights{1,1}.initFcn='rands';
net.layerWeights{1,1}.initFcn='rands';
net.biases{1}.initFcn='rands';
net=init(net);
plotpc(net.iw{1,1},net.b{1});
pause
net=train(net,P,T);
pause
plotpv(P,T)
plotpc(net.iw{1,1},net.b{1});
pause
p = [0; 1];