模糊数学模型Matlab实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模糊数学模型Matlab 实验

1、画出下面这些模糊隶属函数的图形(要求:从下面三种分布类型的隶属函数中各选一个用Matlab 画出它们的图形)

偏小型梯形分布隶属函数:

令a=1,b=2

偏小型Г分布隶属函数:

令a=1,k=0.5,得:

x a b x A x a x b b a x b

1,(),0,<⎧⎪-⎪=≤≤⎨-⎪>⎪⎩

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

k x a x a A x e x a k ()1,(),(0)--<⎧=⎨≥>⎩

偏小型正态分布隶属函数:

令a=1, σ=2

00.20.40.60.81 1.2 1.4 1.6 1.82

0.65

0.7

0.75

0.8

0.85

0.9

0.95

x a x a A x e x a 2

()1,(),--σ≤⎧⎪=⎨⎪>⎩

2、用Matlab 编程计算下面两个矩阵A 和B 的模糊合成,得到矩阵C ,其中}1)max{(s k b a c kj ik ij ≤≤∧=

⎪⎪⎪⎭

⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛=6.04.02.05.03.01.0,3.06.02.05.01.04.0B A 1运行matlab ,先将模糊合成的函数synt 编写成M 文件

function ab=synt(a,b);

m=size(a,1);n=size(b,2);

for i=1:m

for j=1:n

ab(i,j)=max(min([a(i,:);b(:,j)']));

end

end

之后再在matlab 中输入如下:

A=[0.4,0.5,0.6;0.1,0.2,0.3]; %输入A 矩阵

B=[0.1,0.2;0.3,0.4;0.5,0.6]; %输入B 矩阵

C=synt(A,B) %A 、B 矩阵进行模糊合成C 矩阵

运行后得到如下结果:

C =

00.20.40.60.81 1.2 1.4 1.6 1.82

0.10.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

0.5000 0.6000

0.3000 0.3000

3、用Matlab 编程计算下面这个模糊关系矩阵的0.8—截集矩阵得到8.0A

⎪⎪⎪⎪⎪⎭

⎫ ⎝

⎛=18.03.008.011.02.03.01.015.002.05.01A

在matlab 中运行如下程序:

A=[1,0.5,0.2,0;0.5,1,0.1,0.3;0.2,0.1,1,0.8;0,0.3,0.8,0.1];

for i=1:4

for j=1:4

if A(i,j)>=0.8

A(i,j)=1;

else A(i,j)=0;

end

end

end

A

运行后得到结果: 8.0A =

1 0 0 0

0 1 0 0

0 0 1 1

0 0 1 0

4、大气环境质量的模糊综合评价

实验过程:

1、按照题目要求,先编写四个隶属函数,并分别存为ri1,ri2ri3,ri4四个M 文件,以备之后运算需要(即将题目中所给的函数编码化)

ri1:

function Ri1=ri1(x1,a1,a2);

if x1<=a1

Ri1=1

elseif x1>a1&&x1

Ri1=(a2-x1)/(a2-a1);

else Ri1=0;

end

ri2:

function Ri2=ri2(x1,a1,a2,a3)

if x1a1

Ri2=(x1-a1)/(a2-a1);

elseif x1a2

Ri2=(a3-x1)/(a3-a2);

else Ri2=0;

end

ri3:

function Ri3=ri3(x1,a2,a3,a4);

if x1a2

Ri3=(x1-a2)/(a3-a2);

elseif x1a3

Ri3=(a4-x1)/(a4-a3);

else Ri3=0;

end

ri4:

function Ri4=ri3(x1,a3,a4);

if x1<=a3

Ri4=0;

elseif x1a3

Ri4=(x1-a3)/(a4-a3);

else Ri3=1;

end

2、做Fuzzy_Relational_Matrix主函数,主程序如下:

function R=Fuzzy_Relational_Matrix(SO2,TSP,NOx,CO,PM1,O3)

R=zeros(6,4); %建立6行4列空矩阵R

S=[0.05 0.15 0.25 0.5;0.12 0.30 0.5 1;0.1 0.1 0.15 0.3;4 4 6 10;0.05 0.15 0.25 0.5;0.12 0.16 0.2 0.4]; %大气污染物评价标准

T=zeros(1,6); %建立1行6列空矩阵

T(1,1)=SO2;T(1,2)=TSP;T(1,3)=NOx;T(1,4)=CO;T(1,5)=PM1;T(1,6)=O3;

for i=1:6 %将6种污染物的实际值填入表中

R(i,1)=ri1(T(i),S(i,1),S(i,2));

R(i,2)=ri2(T(i),S(i,1),S(i,2),S(i,3));

R(i,3)=ri3(T(i),S(i,2),S(i,3),S(i,4));

R(i,4)=ri4(T(i),S(i,3),S(i,4)); %将6种污染物数值带入隶属函数进行评价end

2、将以上4个分函数和1个主函数都编写好存成M文件后,在matlab主画面输入:

相关文档
最新文档