基于matlab实现的云模型计算隶属度,基于MATLAB实现的云模型计算隶属度
”云”或者’云滴‘是云模型的基本單元,所謂云是指在其論域上的一個分布,可以用聯合概率的形式(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在數學建模中的應用》
總結
以上是生活随笔為你收集整理的基于matlab实现的云模型计算隶属度,基于MATLAB实现的云模型计算隶属度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js 正则 长度不超过50_如何花不超过
- 下一篇: wind 下装mysql,windows