GRNN 函数逼近
此示例使用 NEWGRNN 和 SIM 函数。
此处我们要拟合 y 函数的八个数据点。函数输入 X 应该导致目标输出 T。
X = [1 2 3 4 5 6 7 8]; T = [0 1 2 3 2 1 2 1]; plot(X,T,'.','markersize',30) axis([0 9 -1 4]) title('Function to approximate.') xlabel('X') ylabel('T')
我们使用 NEWGRNN 创建 y 广义回归网络。我们使用略低于 1 的 y SPREAD(即输入值之间的距离),以便得到与各数据点拟合程度很高的 y 函数。较小的分布能更好地拟合数据,但不太平滑。
spread = 0.7; net = newgrnn(X,T,spread); A = net(X); hold on outputline = plot(X,A,'.','markersize',30,'color',[1 0 0]); title('Create and test y network.') xlabel('X') ylabel('T and A')
我们可以用网络在 y 新输入值处逼近函数。
x = 3.5; y = net(x); plot(x,y,'.','markersize',30,'color',[1 0 0]); title('New input value.') xlabel('X and x') ylabel('T and y')
在此处,针对许多值对网络的响应进行仿真,从而允许我们看到它所表示的函数。
X2 = 0:.1:9; Y2 = net(X2); plot(X2,Y2,'linewidth',4,'color',[1 0 0]) title('Function to approximate.') xlabel('X and X2') ylabel('T and Y2')