📄 chap3_8.m
字号:
%Sugeno type fuzzy model
clear all;
close all;
ts2=newfis('ts2','sugeno');
ts2=addvar(ts2,'input','X',[-2 2]);
ts2=addmf(ts2,'input',1,'NS','gaussmf',[0.5 -2]);
ts2=addmf(ts2,'input',1,'ZE','gaussmf',[0.5 0]);
ts2=addmf(ts2,'input',1,'PS','gaussmf',[0.5 2]);
ts2=addvar(ts2,'input','Y',[-1 1]);
ts2=addmf(ts2,'input',2,'NS','gaussmf',[0.2 -1]);
ts2=addmf(ts2,'input',2,'ZE','gaussmf',[0.2 0]);
ts2=addmf(ts2,'input',2,'PS','gaussmf',[0.2 1]);
ts2=addvar(ts2,'output','Z1',[-3 3]);
ts2=addmf(ts2,'output',1,'1','linear',[1 1 0]);
rulelist=[1 1 1 1 1;
1 2 1 1 1;
1 3 1 1 1;
2 1 1 1 1;
2 2 1 1 1;
2 3 1 1 1;
3 1 1 1 1;
3 2 1 1 1;
3 3 1 1 1];
ts2=addrule(ts2,rulelist)
showrule(ts2);
Ulist=zeros(8,4);
for i=1:5
for j=1:3
e(i)=i-3;
ec(j)=j-2;
Ulist(i,j)=evalfis([e(i),ec(j)],ts2);
end
end
Ulist=ceil(Ulist);
%绘制出目标函数
x1=-2:0.02:2;
x2=-1:0.01:1;
[xx1,xx2]=meshgrid(x1,x2);
for i=1:length(x1)
for j=1:length(x2)
z1(i,j)=xx1(i,j)+xx2(i,j);
end
end
figure(1)
mesh(xx1,xx2,z1);
title('原函数图');
figure(2);
gensurf(ts2);
xlabel('x'),ylabel('y'),zlabel('z');
title('逼近函数图');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -