diff --git a/homework2/main.py b/homework2/main.py index e69de29..151a96b 100644 --- a/homework2/main.py +++ b/homework2/main.py @@ -0,0 +1,40 @@ +import numpy as np + +# 定义模糊集合的隶属度参数 +sludge = [0, 0.5, 1] # 污泥浓度模糊集 +grease = [0, 0.5, 1] # 油脂浓度模糊集 +time = [0, 0.25, 0.5, 0.75, 1] # 洗涤时间模糊集 + +# 构建污泥和油脂的模糊关系矩阵(取最大值) +sludgeandgrease = np.zeros((len(sludge), len(grease))) +for i in range(len(sludge)): + for j in range(len(grease)): + sludgeandgrease[i, j] = max(sludge[i], grease[j]) +sludgeandgrease = sludgeandgrease.reshape(9, 1) # 展平为列向量 + +# 构建模糊关系矩阵 R(取最小值) +R = np.zeros((len(sludgeandgrease), len(time))) +for i in range(len(sludgeandgrease)): + for j in range(len(time)): + R[i, j] = min(sludgeandgrease[i], time[j]) + +# 输入模糊集的隶属度 +x1 = [0, 0.83, 0.6] # 污泥浓度实际测量隶属度 +y1 = [0, 0.71, 0.7] # 油脂浓度实际测量隶属度 + +# 计算输入条件的模糊关系(取最大值) +x1y1 = np.zeros((len(x1), len(y1))) +for i in range(len(x1)): + for j in range(len(y1)): + x1y1[i, j] = max(x1[i], y1[j]) +x1y12 = x1y1.reshape(9) # 展平为一维数组 + +# 合成模糊推理结果 +result = np.zeros(5) +a = np.zeros(9) +for i in range(5): + for j in range(9): + a[j] = x1y12[j] * R[j, i] # 模糊推理合成运算 + result[i] = max(a) # 取最大值作为最终结果 + +print(result)