exponenta event banner

Аппроксимация функции 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')

Figure contains an axes. The axes with title Function to approximate. contains an object of type line.

Мы используем NEWGRNN для создания y обобщенной регрессионной сети. Мы используем y SPREAD немного ниже 1, расстояние между входными значениями, чтобы получить 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')

Figure contains an axes. The axes with title Create and test y network. contains 2 objects of type line.

Мы можем использовать сеть для аппроксимации функции при 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')

Figure contains an axes. The axes with title New input value. contains 3 objects of type line.

Здесь реакция сети моделируется для многих значений, позволяя увидеть функцию, которую она представляет.

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')

Figure contains an axes. The axes with title Function to approximate. contains 4 objects of type line.