📄 problem3.m
字号:
clear;clc;
% 论域
MinOfU=-1; % 论域的下界
MaxOfU=1; % 论域的上界
h=0.0005; % 步长
SizeOfU=floor((MaxOfU-MinOfU)/h)+1; % 离散后的论域大小
% 离散化
for x=MinOfU:h:MaxOfU
i=floor((x-MinOfU)/h)+1; % 当前的离散点的位置
if ((x>=MinOfU)&(x<=-0.5)) % if条件中-0.5和0.5来自已知的模糊变量e的隶属度函数
EN(i)=1;
EP(i)=0;
elseif ((x>-0.5)&(x<0.5))
EN(i)=-x+0.5;
EP(i)=x+0.5;
else
EN(i)=0;
EP(i)=1;
end;
end;
DEP=EP;
DEN=EN;
for x=MinOfU:h:MaxOfU
i=floor((x-MinOfU)/h)+1;
if (x<=0) % if条件中0来自已知的模糊变量u的隶属度函数
UN(i)=-x;
UZ(i)=x+1;
UP(i)=0;
else
UN(i)=0;
UZ(i)=-x+1;
UP(i)=x;
end;
end;
% 模糊化
e=0.2; % 已知条件
de=0.5; % 已知条件
ee=floor((e-MinOfU)/h)+1;
dee=floor((de-MinOfU)/h)+1;
% 模糊推理
alpha1=min(DEP(dee),EP(ee)); % alpha1,2,3,4由规则表得出
alpha2=min(DEP(dee),EN(ee));
alpha3=min(DEN(dee),EP(ee));
alpha4=min(DEN(dee),EN(ee));
for i=1:SizeOfU
UU1(i)=alpha1*UN(i);
UU2(i)=alpha2*UZ(i);
UU3(i)=alpha3*UZ(i);
UU4(i)=alpha4*UP(i);
end;
UU=max(UU1,UU2);
UU=max(UU3,UU);
UU=max(UU4,UU);
% 清晰化
z0=0; % 输出量
Sum=0; % 模糊集合的和
for x=MinOfU:h:MaxOfU
i=floor((x-MinOfU)/h)+1;
z0=z0+UU(i)*x;
Sum=Sum+UU(i);
end;
z0=z0/Sum
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -