|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
各位大虾!
我用newgrnn工具实现了一个时序序列的matlab程序,模拟时非常精确,可是测试时确出现了错误提示如下:
Warning: Divide by zero.
> In normprod at 73
In calca at 119
In network.sim at 204
In matlabRBF200703062 at 30
Y =
NaN
这里的Y应该是0.9左右才对,请高手给与帮助,代码如下:
%-----------------------------------------------------------------------------------
p=[0.1254 0.2315 0.3297;
0.2315 0.3297 0.4376;
0.3297 0.4376 0.5425;
0.4376 0.5425 0.6078;
0.5425 0.6078 0.7119;
0.6078 0.7119 0.8685]';
t=[0.4376 0.5425 0.6078 0.7119 0.8685];
%画出待逼近的图
length_source=length(t)
figure
P=[1:1:length_source]
plot(P,t,'r*:')
grid on
xlabel('样本数')
ylabel('学习误差')
%length_source(源数据数量)中神经网络的学习数据数
number_learn=5
%建立网络
spread=1
i=300
net=newgrnn(p(:,1:number_learn),t(1:number_learn),spread/i)
%模拟网络,做学习图
a=sim(net,p(:,1:number_learn))
hold on
plot(1:number_learn,a,'g+-')
%将测试样本代入网络
P_test=[0.6078 0.7119 0.8685]'
Y=sim(net,P_test)
hold on
plot(number_learn+1:number_learn+1,Y,'g+-') |
|