模糊推理:if A,B,C then D (三输入一输出,自编)

在这里插入图片描述
1.底层函数
1.1模糊向量的笛卡尔积:
function[D]=cartesian_product(A,B)
[a1,a2]=size(A);
[b1,b2]=size(B);
if a1== b1== 1
C=A’;
for i=1:a2
for j=1:b2
D(i,j)=min(C(i,1),B(1,j));
end
end
else
fprintf(‘输入矩阵不规范’)
end
1.2模糊向量的最大最小合成:
function [T]=max_minCompound(R,S)
[m1,n1]=size®;
[m2,n2]=size(S);
if n1==m2
for i=1:m1
for j=1:n2
T(i,j)=max(min(R(i,:),S(:,j)’));
end
end
else
fprint(‘模糊集合有错误’);
end
2. 计算模糊关系R
%A=[1 0.5 0.1] B=[0.1 1 0.1]C=[0.1 0.5 1] D=[0.4 0.1];
function[]=R(A,B,C,D)
%A,B,C论域元素相同
%分别计算A与D、B与D、C与D笛卡尔积
R1=cartesian_product(A,D);
R2=cartesian_product(B,D);
R3=cartesian_product(C,D);
%计算R1、R2、R3最小值
R=min(min(R1,R2),R3)
在这里插入图片描述
3. 基于推理合成规则R,求取D
% A=[1 0.5 0.1];B=[0.1 1 0.1];C=[0.1 0.5 1];R=[0.1 0.1;0.4 0.1;0.1 0.1]
function []=D(A,B,C,R)
%计算A与R、B与R、C与R的合成
D1=max_minCompound(A,R);
D2=max_minCompound(B,R);
D3=max_minCompound(C,R);
%输出D模糊集合
D=min(min(D1,D2),D3)
在这里插入图片描述
可知结果D与以前相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值