思考题与习题3
3-1已知年龄的论域为[0,200],且设年老O和年轻Y两个模糊集的隶属函数分别为
试设计“很年轻W”、“不老也不年轻V”两个模糊集的隶属函数,并用matlab实现针对上述4个隶属函数的仿真。
程序代码
clear all;
close all;
%求年老
for k1 = 1:1:2001
x1(k1) = (k1-1)*0.1;
if x1(k1)>=50&x1(k1)<=70
y1(k1)=( x1(k1) -50)/20;
elseif x1(k1)>70
y1(k1) = 1.0;
else
y1(k1) = 0;
end
end
%年轻
for k = 1:1:2001
x(k) = (k-1)*0.1;
if x(k)>=0&x(k)<=25;
y(k) = 1.0;
elseif x(k)>25&x(k)<=70
y(k)=(70 - x(k))/45;
else
y(k) = 0;
end
end
%很年轻
for k2 = 1:1:2001
x2(k2) = (k2-1)*0.1;
if x(k2)>=0&x(k2)<=25;
y2(k2) = 1.0;
elseif x(k2)>25&x(k2)<=70
y2(k2)=((70 - x(k2))/45)^2;
else
y2(k2) = 0;
end
end
%不老也不年轻
for k3 = 1:1:2001
x3(k3) = (k3-1)*0.1;
if x(k3)>=25&x(k3)<=56.1;
y3(k3) = 1-(70 - x3(k3))/45;
elseif x(k3)>56.1&x(k3)<=70
y3(k3)=1- (x3(k3) -50)/20;
else
y3(k3) = 0;
end
end
figure(1);
plot(x,y,'k');
xlabel('x Years');
ylabel('年轻 Y');
figure(2)
plot(x1,y1,'k');
xlabel('x Years');
ylabel('年老 O');
figure(3)
plot(x2,y2,'k');
xlabel('x Years');
ylabel('很年轻 W');
figure(4)
plot(x3,y3,'k');
xlabel('x Years');
ylabel('不老也年轻 V');
之前上面的解析存在一些错误现已改正,代码并没有什么问题。
如果还有其他问题,大家可以在评论区指出,我有时间会进行改正和解答,感谢大家。