import numpy as np import skfuzzy as fuzz from skfuzzy import control as ctrl import matplotlib.pyplot as plt import pdb credit = ctrl.Antecedent(np.arange(0, 11, 0.1), 'credit') credit['low'] = fuzz.trimf(credit.universe, [0,2,4]) credit['high'] = fuzz.trimf(credit.universe, [0,5,10]) credit.view() risk = ctrl.Consequent(np.arange(0, 9, 0.5), 'risk') risk['low'] = fuzz.trimf(risk.universe, [0, 2, 4]) risk['high'] = fuzz.trimf(risk.universe, [2,4, 6]) risk.view() rule1 = ctrl.Rule(credit['low'] ,risk['low']) rule2 = ctrl.Rule(credit['high'] , risk['high']) risk_assessment_ctrl = ctrl.ControlSystem([rule1,rule2]) risk_assessment = ctrl.ControlSystemSimulation(risk_assessment_ctrl) # risk_assessment.input['credit'] = 700 risk_assessment.input['credit'] = 1 risk_assessment.compute() risk_result = risk_assessment.output['risk'] print(risk_result) risk.view(sim=risk_assessment) plt.show()
解:2.5952879581151826
clear; close all; clc; syms x; K = int(1/2*x^2,[0 1])+int(0.5*x, [1 3])+int(-1/2*x^2+2*x,[3 3.6])+ ... int(0.2*x, [3.6 5.6])+int(-1/2*x^2+3*x,[5.6 6]); S = int(1/2*x,[0 1])+0.5*(3-1)+int(-1/2*x+2,[3 4])+ ... int(1/2*x-1,[2 2.4])+0.2*(5.6-2.4)+int(-1/2*x+3,[5.6 6])+ ... -int(1/2*x-1,[2 2.4])-0.2*(3.6-2.4)-int(-1/2*x+2,[3.6 4]); %S = int(1/2*x,[0 1])+0.5*(3-1)+int(-1/2*x+2,[3 4])+ ... % int(1/2*x-1,[2 2.4])+0.2*(5.6-2.4)+int(-1/2*x+3,[5.6 6])+ ... % -int(1/2*x-1,[2 2.4])-0.2*(3.6-2.4)-int(-1/2*x+2,[3.6 4]); S = int(1/2*x,[0 1])+0.5*2+int(-1/2*x+2,[3 3.6])+ ... 0.2*2+int(-1/2*x+3,[5.6 6]); eval(K/S)
2.5895