为甚么我用神经网络进行曲线拟合,拟合出来的结果都是1,与原函数相差太大啊,代码...
clcclear all
a=[0 1.7219 5.026946
1 1.2257 5.092308
2 1.776 4.48
3 2.7555 3.078846
4 2.667 3.248899
5 2.5951 3.078333
6 2.4764 3.03
7 2.9587 3.11
8 3.0508 2.959113
9 3.4656 2.609524
10 3.144 3.3125
11 1.875 3.333333
12 1.152 3.86
14 1.03 5.25
16 0.18 4.4
20 5.28 1.7
21 2.84 3.8
22 3.3663 3.0625
23 4.0619 2.832787
24 3.5945 2.82963
25 3.3912 2.518966
26 3.2431 3.354167
27 2.46 2.9
28 2.76 4.2
29 2.508 3.94
37 7.825 3.325
38 3.14 2.964286
39 4.2731 2.710204
40 3.9198 2.739286
41 3.4965 3.062963
42 1.78 3.327273
43 2.6033 4.4
44 2.68 2.7
45 3.2 4.3
46 2.804 4.266667]
x=a(:,1);
y1=a(:,2);
y2=a(:,3);
%预测47-50周的浓度
%数据预处理
x=x';
y3=1.7415+0.4041.*x-0.0637.*x.*x +0.0037.*x.*x.*x-(8.36*10^(-5)).*x.*x.*x.*x + (6.39*10^(-7)).*x.*x.*x.*x.*x;
net=newff(,,{'tansig','logsig'});
net.trainParam.epochs=1000;
net=train(net,x,y3);
x0=x;
figure(1)
y4=sim(net,x0);
plot(x,y3,'o', x0,y4,'r')
%为甚么神经网络拟合出来的结果都是1
求帮忙解答下,谢谢啊 输出层如果为logsig,输出的最大范围就是[-1,1],改为purelin试试 好东西,大家分享
页:
[1]