Professional Documents
Culture Documents
Lab 5
Lab 5
Виконала:
студентка групи БС-03,
Гуріна Софія Вікторівна
Київ – 2021
Завдання
Мета роботи: ознайомитися з принципами функціонування та навчання
нейронечіткої моделі у вигляді системи Anfis (об’єднання нейронних мереж з
нечіткими системами).
Об’єкт дослідження: система Anfis (anfisedit) в середовищі МатЛаб.
Предмет дослідження: використання системи Anfis для розв’язання задач
класифікації та апроксимації на основі даних вимірювань про вхід-вихід
системи.
1. Вивчити теоретичний матеріал.
2. Сформувати нейронечітку модель Anfis в середовищі МатЛаб, для
цього потрібно:
- cпроектувати апроксиматор у вигляді нечіткої моделі Сугено;
- на основі нечіткої моделі Сугено спроектувати нейронечітку модель,
- перевірити модель на здатність розв’язувати задачу апроксимації
функції.
Дані варіанту:
Лістинг програм та результати
Середовище MatLab:
clc;clear all;close all;
x_t=4; x_beg=0.5; x_end=3;
x_t_1=5; x_beg_1=0.5; x_end_1=5
f_name='l_52';
n=x_t;
m=x_t_1;
nm=n*m;
X=x_beg:(x_end-x_beg)/(n -1):x_end;
delta_x=(x_end-x_beg)/(n-1)
X_1=x_beg_1:(x_end_1-x_beg_1)/(m-1):x_end_1;
delta_x1=(x_end_1-x_beg_1)/(m-1)
z=0;
for i=1:n
for j=1:m
b = X_1(j); a = X(i);
z=z+1; Y(z)=(a*a*a*sin(0.2*b))/(a+b*b);
end
end
k=1;
data=zeros(m*n,3)
for i=1:n
for j=1:m
data(k,1)=X(i)
data(k,2)=X_1(j)
data(k,3)=Y(k)
k=k+1;
end;end;
data
Y2=sort(Y);
ymin=min(Y);ymax=max(Y);
delta_y=(ymax-ymin)/nm;
rullist=ones(nm,5); z=0;
for i=1:n
for j=1:m
z=z+1;
rullist(z,1)=i;
rullist(z,2)=j;
for k=1:nm
if (Y((i-1)*m+j)==Y2(k)) disp('U1 = ');
break;
end;
end
rullist(z,3)=k;
rullist(z,4)=1;
rullist(z,5)=1;
end; end;
ai= addrule(ai, rullist);
X_check=1:0.1:3;
rr=length(X_check)
X_1_check=0.0001;
Y_check(1:rr)=X_check(1:rr)*sqrt(X_1_check)
ai=readfis(f_name);
ep=0;
for i = 1:rr
out(i)=evalfis([X_check(i) X_1_check], ai);
ep=ep+abs(out(i)-Y_check(i));
end
ep=ep/rr
out_fismat=anfis(data, ai, 70);
X_check=1:0.1:3;rr=length(X_check);
X_1_check=.001;
Y_check(1:rr)=X_check(1:rr)*sqrt(X_1_check)
ai=readfis(f_name); showfis(ai);
data_ch=zeros(10,3);
for i = 1:rr
data_ch(i,1)=X_check(i);
data_ch(i,2)=X_1_check;
data_ch(i,3)=Y_check(i);
end;
out(:)=evalfis([data_ch(:,1) data_ch(:,2)], ai);
ep1=sum(abs(out(:)-Y_check(:)));
ep1=ep1/rr
ep
fuzzy(ai);
Результат:
Рис. 1.
Рис. 2.
Рис. 3.
Рис. 4.
Рис. 5.
Висновок
Виконавши цю лабораторну роботу, я ознайомилась з принципами
функціонування та навчання нейронечіткої моделі у вигляді системи Anfis
(об’єднання нейронних мереж з нечіткими системами).