”雲”或者’雲滴‘是雲模型的基本單元,所謂雲是指在其論域上的一個分布,可以用聯合概率的形式(x, u)來表示
雲模型用三個數據來表示其特征
期望:雲滴在論域空間分布的期望,一般用符號Εx表示。
熵:不確定程度,由離散程度和模糊程度共同決定,一般用En表示。
超熵: 用來度量熵的不確定性,既熵的熵,一般用符號He表示。
雲有兩種發生器:正向雲發生器和逆向雲發生器,分別用來生成足夠的雲滴和計算雲數字特征(Ex, En,He)。
正向雲發生器:
1.生成以En為期望,以He^2為方差的正態隨機數En’。
2.生成與Ex為期望,以En‘^2為方差的正態隨機數x。
3.計算隸屬度也就是確定是 u=exp(-(x - Ex)^2 / 2*En‘^2),則(x, u)便是相對於論域U的一個雲滴。這里選擇常用的“鍾型”函數u=exp(-(x - a)^2 / 2*b^2)為隸屬度函數。
4. 重復生成123步驟直到生成足夠的雲滴
逆向雲發生器
1.計算樣本均值X和方差S^2
2.Ex = X
3.En = S^2
4. He = sqrt(S^2 - En^2)
雲模型的MATLAB設計 ———評估下面四位選手的設計水平
| 選手 | A | B | C | D |
|---|---|---|---|---|
| 1 | 9.5 | 10.3 | 10.1 | 8.1 |
| 2 | 10.3 | 9.7 | 10.4 | 10.1 |
| 3 | 10.6 | 8.6 | 9.2 | 10.0 |
| 4 | 10.5 | 10.4 | 10.1 | 10.1 |
| 5 | 10.9 | 9.8 | 10.0 | 10.1 |
| 6 | 10.6 | 9.8 | 9.7 | 10.0 |
| 7 | 10.4 | 10.5 | 10.6 | 10.3 |
| 8 | 10.1 | 10.2 | 10.8 | 8.4 |
| 9 | 9.3 | 10.2 | 9.6 | 10.0 |
| 10 | 10.5 | 10.0 | 10.7 | 9.9 |
MATLAB程序如下:
cloud_main.m
% 以下是主函數cloud_main.m clc; clear all; close all; % 每幅圖生成N個雲滴 N = 1500; % 射擊成績的原始數據 Y = [ 9.5 10.3 10.1 8.1; 10.3 9.7 10.4 10.1; 10.6 8.6 9.2 10.0; 10.5 10.4 10.1 10.1; 10.9 9.8 10.0 10.1; 10.6 9.8 10.0 10.1; 10.4 10.5 10.6 10.3; 10.1 10.2 10.8 8.4; 9.3 10.2 9.6 10.0; 10.5 10.0 10.7 9.9; ]; for i = 1: size(Y,2) subplot(size(Y,2)/2, 2, i) % 調用函數 [x, y, Ex, En, He] = cloud_transform(Y(:,i), N); plot(x, y, 'r.'); xlabel('射擊成績分布/環'); ylabel('確定度'); title('人射擊雲模型還原圖譜'); % 控制坐標軸的范圍 % 統一坐標軸上才會在雲模型形態上才具有可比性 axis([8, 12, 0, 1]); end
cloud_transform.m
function [x, y, Ex, En, He] = cloud_transform(y_spor, n); % x 表示雲滴, y 表示隸屬度(這里是鍾型隸屬度), 意義是度量傾向的穩定程度; % Ex 雲模型的數字特征,表示期望;En 雲模型的數字特征,表示滴(表示混亂程度的物理量,實在是打不出來了,就用這個代替了,下同); % He 雲模型的數字特征,表示超滴 Ex = mean(y_spor); En = mean(abs(y_spor - Ex)).*sqrt(pi./2); He = sqrt(var(y_spor) - En.^2); % 通過統計數據樣本計算雲模型的數字特征 for q = 1:n Enn = randn(1).*He + En; x(q) = randn.*Enn + Ex; y(q) = exp(-(x(q) - Ex).^2./(2.*Enn.^2)); end x; y;
結果如下圖:

可以看出C選手的雲滴凝聚抱合程度更高,所以可以認為C選手在本次比賽表現更為出色
讀 《MATLAB在數學建模中的應用》
