Задача. В среде Matlab необходимо построить и обучить нейронную сеть для аппроксимации таблично заданной функции yi=f(xi)=[2.09 2.05 2.19 2.18 2.17 2.27 2.58 2.73 2.82 3.04 3.03 3.45 3.62 3.85 4.19 4.45 489 5.06 5.63 5.91], i=1,20.
В математической среде Matlab создаем новый M-File, в котором записываем код программы создания и обучения нейронной сети с использованием встроенных функций пакета сетей Neural Netwworks Toolbox.
Для решения воспользуемся функцией newff(.) – создание «классической» многослойной НС с обучением по методу обратного распространения ошибки.
P = zeros(1,20);
for i = 1:20 %создание массива
P(i) = i*0.1; %входные данные (аргумент)
end
T=[2.09 2.05 2.19 2.18 2.17 2.27 2.58 2.73 2.82 3.04 3.03 3.45 3.62 3.85 4.19 4.45 489 5.06 5.63 5.91]; %входные данные (значение функции)
net = newff([-1 2.09],[5 1],{'tansig' 'purelin'}); %создание нейронной сети
net.trainParam.epochs = 100; %задание числа эпох обучения
net=train(net,P,T); %обучение сети
y = sim(net,P); %опрос обученной сети
figure (1);
hold on;
xlabel ('P');
ylabel ('T');
plot(P,T,P,y,'o'),grid; %прорисовка графика исходных данных и функции, сформированной нейронной сетью.
Содержание отчета: 1. Цель работы. 2. Задание. 3. Программа. 4. Результаты выполнения программы и их сравнение с исходной последовательностью данных.