You are on page 1of 9

МІНІСТЕРСТВО ОСВІТИ I НАУКИ

УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ
УНІВЕРСИТЕТ УКРАЇНИ
«КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ
ІНСТИТУТ
ІМЕНІ ІГОРЯ СІКОРСЬКОГО»
ФАКУЛЬТЕТ БІОМЕДИЧНОЇ ІНЖЕНЕРІЇ
КАФЕДРА БІОМЕДИЧНОЇ КІБЕРНЕТИКИ

Комп’ютерний практикум №5
з дисципліни «Нечіткі моделі в медицині»
на тему: «Нейронечітка мережа ANFIS. Автоматична
генерація функцій незалежності»

Варіант №13

Виконала:
студентка гр. БС-

Перевірив:
доц. каф. БМК
Добровська Л.М.

Зараховано від ___.___._______

___________________________
(підпис викладача)
Київ-2021
Мета роботи: ознайомитися з принципами функціонування та
навчання нейронечіткої моделі у вигляді системи Anfis (об’єднання
нейронних мереж з нечіткими системами).
Об’єкт дослідження: система Anfis (anfisedit) в середовищі МатЛаб.
Предмет дослідження: використання системи Anfis для розв’язання задач
класифікації та апроксимації на основі даних вимірювань про вхідвихід
системи.
Завдання до практичної роботи №5
1. Вивчити теоретичний матеріал.
2. Сформувати нейронечітку модель Anfis в середовищі МатЛаб, для цього
потрібно:
- cпроектувати апроксиматор у вигляді нечіткої моделі Сугено;
- на основі нечіткої моделі Сугено спроектувати нейронечітку модель,
- перевірити модель на здатність розв’язувати задачу апроксимації функції

Виконання практичної роботи №5

Лістинг програми за допомогою MATLAB:


clc;clear all;close all;
x_t=6; x_beg=1; x_end=6;
x_t_1=4; x_beg_1=5; x_end_1=7
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
z=z+1; Y(z) = X(i)^3*sin((pi/3)*X_1(j))-sqrt(X_1(j));
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;

ai=newfis(f_name,'sugeno', 'min', 'max', 'prod', 'sum', 'wtaver');

ai= addvar (ai,'input','X', [x_beg x_end]);


for i=1:n
if i==n
c=x_end+delta_x; else c=X(i+1)
end;
if i==1
a=x_beg -delta_x; else a=X(i-1)
end; b=X(i);
ai=addmf (ai,'input',1, int2str(i),'trimf', [a b c])
end;
ai = addvar (ai,'input','X_1', [x_beg_1 x_end_1])
for i=1:m
if i==m
c=x_end_1 + delta_x1; else c=X_1(i+1)
end;
if i==1
a=x_beg_1-delta_x1; else a=X_1(i-1)
end; b=X_1(i);
ai=addmf (ai,'input',2, int2str(i),'trimf', [a b c])
end;

ai= addvar (ai,'output','y', [ymin ymax]);


for i=1:nm
if i==nm
c=ymax+delta_y;
else c=Y2(i+1); end;
if i==1
a=ymin-delta_y; else a=Y2(i-1)
end; b=Y2(i);
ai= addmf (ai,'output',1, ['y', int2str(i)],'constant', b);
end;

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

figure (2), gensurf (ai);title ('aproximate surface')


writefis (ai,f_name)

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);
Результати:
Висновок: У лабораторній роботі №5 я ознайомилася з принципами
функціонування та навчання нейронечіткої моделі у вигляді системи Anfis
(об’єднання нейронних мереж з нечіткими системами). Також в цій роботі я
дослідила систему Anfis (anfisedit) в середовищі MATLAB, використовуючи
системи Anfis для розв’язання задач класифікації та апроксимації на основі
даних вимірювань про вхід – вихід системи. В результатах роботи можемо
побачити похибку моделювання на основі нечіткої моделі Сугено і
нейронечіткої моделі Anfis (похибка на основі нейронечіткої моделі трохи
менша).

You might also like