- 积分
- 1
- 注册时间
- 2009-10-20
- 仿真币
-
- 最后登录
- 1970-1-1
|
这是代码,大家运行看看,分析一下原因,先谢过了
s=[0.4500,0.4810,0.5120,0.5430,0.5740,0.6050,0.6360,0.6670,0.6980,0.7290,0.7600,0.7910,0.8220,...
0.8530,0.8840,0.9150,0.9460,0.9770,1.0080,1.0390,1.0700,1.1010,1.1320,1.1630,1.1940,1.2250,...
1.2560,1.2870,1.3180,1.3500];
m=[1.6080,1.2360,1.8250,1.4530,1.0810,1.6700,1.2980,1.8870,1.5150,1.1430,1.7320,1.3600,...
1.9500,1.5770,1.2050,1.7940,1.4220,1.0500,1.6390,1.2670,1.8560,1.4840,1.1120,1.7010,...
1.3290,1.9180,1.5460,1.1740,1.7630,1.3910];
h=[1.0622,0.9064,0.7516,1.1312,0.9752,0.8204,1.2000,1.0450,0.8892,0.7344,1.1138,0.9580,...
0.8032,1.1828,1.0268,0.8720,0.7172,1.0966,0.9408,0.7860,1.1656,1.0096,0.8548,0.7000,...
1.0794,0.9236,0.7688,1.1484,0.9924,0.8367];
wwc=[0.5660,0.6577,0.7069,0.7024,1.0342,0.5852,0.9330,0.5253,0.5067,0.5485,0.4558,0.6193,...
0.6955,0.6717,0.7981,0.5874,0.5663,1.8420,0.4812,0.4837,0.4414,0.5604,0.6366,0.6898,...
0.8030,0.5795,0.5446,1.2402,0.4912,0.4672];
p=[s;m;h];
t=wwc;
[np,minp,maxp,nt,mint,maxt]=premnmx(p,t); % 归一化
net=newff(minmax(np),[20,15,1],{'tansig','tansig','purelin'},'traingdx');
% net.inputWeights{1,1}.initFcn = 'rands';
% net.biases{1,1}.initFcn = 'rands';
net=init(net);
net.trainParam.mc=0.9;
net.trainParam.lr = 0.05;
net.trainParam.lr_inc = 1.05;
net.trainParam.show=100;
net.trainParam.epochs=10000;
net.trainParam.goal=0.00001;
net=train(net,np,nt);
ny=sim(net,np);
y=postmnmx(ny,mint,maxt);
error=y-t;
save fdb_net.mat net
figure
plot(error)
hold on
plot(error,'r*')
% 测试
s_test=[0.5021,0.7676,1.1818,0.4589,0.5750]; % 输入
m_test=[1.0637,1.7721,1.4506,1.8886,1.4694];
h_test=[1.1191,0.7098,1.0406,0.8897,1.1159];
wwc_test=[0.8475,0.7044,0.6784,0.6107,0.7510]; % 目标
p_simution=[s_test;m_test;h_test];
p_ntest=tramnmx(p_simution,minp,maxp);
y_ntest=sim(net,p_ntest); %网络输出
y_test=postmnmx(y_ntest,mint,maxt);
error_test=y_test-wwc_test
rate=error_test./wwc_test %误差率
figure
plot(error_test)
hold on
plot(error_test,'ro')
grid |
|