基于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 = ;
% 射击成绩的原始数据
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 = : size(Y,)
subplot(size(Y,)/, , i)
% 调用函数
[x, y, Ex, En, He] = cloud_transform(Y(:,i), N);
plot(x, y, 'r.');
xlabel('射击成绩分布/环');
ylabel('确定度');
title('人射击云模型还原图谱');
% 控制坐标轴的范围
% 统一坐标轴上才会在云模型形态上才具有可比性
axis([, , , ]);
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./);
He = sqrt(var(y_spor) - En.^);
% 通过统计数据样本计算云模型的数字特征
for q = :n
Enn = randn().*He + En;
x(q) = randn.*Enn + Ex;
y(q) = exp(-(x(q) - Ex).^./(.*Enn.^));
end
x;
y;
结果如下图:
可以看出C选手的云滴凝聚抱合程度更高,所以可以认为C选手在本次比赛表现更为出色
读 《MATLAB在数学建模中的应用》
基于MATLAB实现的云模型计算隶属度的更多相关文章
- 基于MATLAB搭建的DDS模型
基于MATLAB搭建的DDS模型 说明: 累加器输出ufix_16_6数据,通过cast切除小数部分,在累加的过程中,带小数进行运算最后对结果进行处理,这样提高了计算精度. 关于ROM的使用: 直接设 ...
- 如何将Matlab中“模糊控制设计器”的隶属度函数导出图片(figure)
如何将Matlab中"模糊控制设计器"的隶属度函数导出图片(figure)详情参考matlab官方帮助手册:plotmf()函数https://www.mathworks.com/ ...
- 模糊集合和隶属度函数--AForge.NET框架的使用(一)
原文:模糊集合和隶属度函数--AForge.NET框架的使用(一) 什么是AForge.NET? AForge.NET是一个为开发人员和研究人员开发的框架,它可以用于计算机视觉,遗传算法,图像处理,神 ...
- LSF-SCNN:一种基于 CNN 的短文本表达模型及相似度计算的全新优化模型
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本篇文章是我在读期间,对自然语言处理中的文本相似度问题研究取得的一点小成果.如果你对自然语言处理 (natural language proc ...
- 基于MATLAB System Generator 搭建Display Enhancement模型
基于MATLAB System Generator 搭建Display Enhancement模型
- 基于Matlab的多自由度系统固有频率及振型计算
可参考文涛,基于Matlab语言的多自由度振动系统的固有频率及主振型计算分析,2007 对于无阻尼系统 [VEC,VAL]=eig(inv(A)*K) 对于有阻尼系统,参考振动论坛计算程序 输入M,D ...
- 无人机基于Matlab/Simulink的模型开发(连载一)
"一切可以被控制的对象,都需要被数学量化" 这是笔者从事多年研发工作得出的道理,无论是车辆控制,机器人控制,飞机控制,还是无人机控制,所有和机械运动相关的控制,如果不能被很好的数学 ...
- 基于MATLAB的多项式数据拟合方法研究-毕业论文
摘要:本论文先介绍了多项式数据拟合的相关背景,以及对整个课题做了一个完整的认识.接下来对拟合模型,多项式数学原理进行了详细的讲解,通过对文献的阅读以及自己的知识积累对原理有了一个系统的认识.介绍多项式 ...
- 阿里云 CDN 业务基于边缘容器的云原生转型实践
导读:本文基于边缘容器的阿里云 CDN 云原生实践, 涵盖了边缘容器的背景和趋势,边缘托管集群 ACK Managed Edge K8s(文中简称“Edge@ACK”) 的能力.架构,以及基于边缘容器 ...
随机推荐
- 界面排版-TableLayout的stretchColumns方法
1.先把XML內的預設RelativeLayout排版方式清空,在去Layout區拉一個TableLayout的到表單上,XML下會出現下面程式碼 <TableLayout xmln ...
- Raspberry Pi --操作LED
最简单的一个树莓派GPIO操作入门,这里记录以下 先上连接图: 卧槽.图真特么的大 用到了GPIO的GND和#18针脚,这就不上图了,红色的线接的是18针脚,暗色的线接的是GND针脚,下面上Pytho ...
- 【转载】JDBC连接各种数据库的字符串
oracle driverClass:oracle.jdbc.driver.OracleDriver url:jdbc:oracle:thin:@127.0.0.1:1521:dbname ...
- ExtJs Column 显示文字内容过长 使用Tootip显示全部内容
{ text: 'Column Header Blah', dataIndex: 'blah', renderer: function(value, metaData, record, rowIdx, ...
- Spring.Net.FrameworkV3.0 版本发布了,感谢大家的支持
Spring.Net.FrameworkV3.0 版本发布了,感谢大家的支持. Spring.Net.Framework,基于.NET的快速信息化系统开发.整合框架,为企业或个人在.NET环境下快速开 ...
- Angular.js表单以及与Bootatrap的使用
首先从angular.js的目录开始,如下图,知道了我们要学什么,然后再开始有目的的学习与对比. 1.从表达式开始: ng-app指令初始化一个 AngularJS 应用程序. ng-init指令初始 ...
- Tmux 常用命令与快捷键
命令与别名 attach-session [-dr] [-t target-session] 别名 attach,连接会话. detach-client [-P] [-a] [-s target-se ...
- python函数式编程
函数式编程是使用一系列函数去解决问题,按照一般编程思维,面对问题时我们的思考方式是“怎么干”,而函数函数式编程的思考方式是我要“干什么”. 至于函数式编程的特点暂不总结,我们直接拿例子来体会什么是函数 ...
- 测试Flask应用_学习笔记
源代码尽在我的github上面:https://github.com/521xueweihan 欢迎大家交流学习 """ setUp() 方法中会创建一个新的测试客户端并 ...
- 关于SQL SERVER高并发解决方案
现在大家都比较关心的问题就是在多用户高并发的情况下,如何开发系统,这对我们程序员来说,确实是值得研究,最近找工作面试时也经常被问到,其实我早有去关心和了解这类问题,但一直没有总结一下,导致面试时无法很 ...