Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-06-22
年龄: 40
帖子: 2
声望力: 0 ![]() |
![]()
function f = parity()
clear all; % 输入样本 % 输出样本 %T = 1.5*(exp(-30.*(P-0.25).^2)+sin(pi.*(P-0.2)).^2); %Tt = 1.5*(exp(-30.*(Pt-0.25).^2)+sin(pi.*(Pt-0.2)).^2); %P =[ 10 20 30 40 50 60 70 80 10 20 30 40 50 60 70 80 10 20 30 40 50 60 70 80 10 20 30 40 50 60 70 80 10 20 30 40 50 60 70 80 10 20 ; % 150 150 150 150 150 150 150 150 200 200 200 200 200 200 200 200 250 250 250 250 250 250 250 250 300 300 300 300 300 300 300 300 350 350 350 350 350 350 350 350 400 400 ] %T =[ 2.2 1 0.9 0.7 0.7 0.7 0.8 0.9 7 1 1.2 0.9 0.7 0.7 0.9 1.2 13.5 1.6 1.1 0.7 0.7 0.7 0.9 1.5 26.4 3.1 1.6 1 0.9 0.9 1.3 2.4 40.1 3.4 1.4 0.8 0.7 0.7 1.3 1.2 45.7 6.2 ] P=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 ; 0 0 0 0 0 0 0 0 0 0 0 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 1 1 1 1 1 1 1 1 1 1 1 ]; T=[0.00849617672047579 0.007646559 0.006796941 0.006796941 0.006796941 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.018691589 0.009345794 0.007646559 0.007646559 0.007646559 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.059473237 0.017841971 0.010195412 0.010195412 0.010195412 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.114698386 0.022939677 0.013593883 0.01104503 0.009345794 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.224299065 0.034834325 0.028887001 0.016992353 0.013593883 0.009345794 0.008496177 0.005947324 0.005947324 0.005947324 0.005947324 0.340696686 0.063721325 0.030586236 0.019541206 0.011894647 0.008496177 0.006796941 0.006796941 0.005947324 0.005947324 0.005947324 0.388275276 0.071367884 0.044180119 0.034834325 0.020390824 0.0144435 0.01104503 0.009345794 0.008496177 0.008496177 0.009345794 0.443500425 0.104502974 0.054375531 0.041631266 0.021240442 0.015293118 0.011894647 0.010195412 0.008496177 0.008496177 0.008496177 0.513169074 0.173322005 0.086661003 0.044180119 0.024638912 0.018691589 0.015293118 0.01104503 0.009345794 0.008496177 0.008496177 0.582837723 0.198810535 0.104502974 0.049277825 0.038232795 0.022090059 0.017841971 0.01104503 0.010195412 0.010195412 0.009345794 0.651656754 0.214103653 0.121495327 0.077315208 0.048428207 0.041631266 0.018691589 0.013593883 0.010195412 0.010195412 0.009345794 0.721325404 0.231096007 0.134239592 0.097706032 0.061172472 0.042480884 0.023789295 0.0144435 0.010195412 0.010195412 0.010195412 0.790994053 0.281223449 0.163126593 0.127442651 0.112149533 0.060322855 0.040781648 0.032285472 0.022939677 0.021240442 0.016992353 0.860662702 0.313593883 0.191163976 0.152931181 0.129141886 0.107051827 0.041631266 0.038232795 0.022939677 0.020390824 0.018691589 0.930331351 0.34664401 0.239592184 0.226847918 0.215802889 0.113848768 0.054375531 0.053525913 0.041631266 0.040781648 0.039082413 1 0.379779099 0.367034834 0.349192863 0.177570093 0.146983857 0.127442651 0.120645709 0.064570943 0.061172472 0.053525913 ] % [P,minp,maxp,T,mint,maxt]=premnmx(P,T); % 隐层节点数 s1 = 4; s2 = 1; % 输出层节点数 net=newff(minmax(P),[s1 s2],{'logsig' 'purelin'},'trainrp'); net.trainParam.epochs=12000; net.trainParam.goal=0.0001; net.trainParam.lr = 0.68; %目标误差 W1 = net.iw{1,1}; W2 = net.lw{2,1}; B1 = net.b{1}; B2 = net.b{2}; % net.lw{2,1} = lw21; % net.b{1,1} = b11 ; % net.b{2,1} = b21; tic % 训练网络 net = train(net,P,T); toc w1 = net.iw{1,1}; w2 = net.lw{2,1}; b1 = net.b{1}; b2 = net.b{2}; % 仿真运行,得到测试样本的输出 % At = sim(net,Pt); %set(gcf, 'Color', [1,1,1]); %plot(Pt,Tt); %hold on; %plot(Pt,At,'r--'); save('MTM_Sinok','net'); 训练完的截图如下: ![]() 可以看到虽然没有收敛,但误差已经到了0.0002529,可以我用At = sim(net,Pt);测试样本数据,误差还是很大,远远不只0.0002529,是什么原因,请大家帮忙分析 |
![]() |
![]() |