Этот пример использует функции 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. Мы используем 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')
Мы можем использовать сеть, чтобы аппроксимировать функцию в 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')