数学建模:评价性模型学习——灰色关联分析法(GRA模型)

article/2025/8/18 20:59:26

目录

前言

一、灰色关联分析

1.什么是灰色关联分析?

2.流程介绍

二、综合评价

1.数据无量纲化处理

2.确定参考序列

3.确定权重

4.计算灰色关联系数

 5.计算灰色加权关联度

6.代码

总结


前言

        继续学习数学建模涉及的评价性模型,这篇会介绍如何使用灰色关联分析法进行综合评价以及分析灰色关联分析法的适用条件和优缺点。


一、灰色关联分析

1.什么是灰色关联分析?

        对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,称为关联度。在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二者关联程度较高;反之,则较低。因此,灰色关联分析方法,是根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,作为衡量因素间关联程度的一种方法。

        灰色关联分析主要有两个作用:一是综合评价,给出研究对象或者方案的优劣排名。二是系统分析,判断影响系统发展的因素的重要性。

2.流程介绍

  1. 数据无量纲化处理
  2. 确定参考序列
  3. 确定权重
  4. 计算灰色关联系数
  5. 计算灰色加权关联度

二、综合评价

这里沿用上篇文章用到的案例的拓展,有兴趣可以点进查看CSDNhttps://mp.csdn.net/mp_blog/creation/editor/126567801

针对以下七个因素对五个城市(厦门、杭州、成都、长沙、桂林)的旅游竞争力进行排名:

1.数据无量纲化处理

        由于每个影响因素的维度不同,因此对每个量纲进行标准化。标准化方法很多,如z-score法(每个数据减去均值再除以方差)、平均值法(每个数据除以该子序列的均值)、max-min方法(每个数据减去最小值再除以最大值与最小值的差)等等。
        由于我数据处理时采用了极大型数据,即数字越大越相关,因此采用max-min方法:

原始数据构成的矩阵:

无量纲化后的矩阵(matlab代码下文给出):

2.确定参考序列

        由于原始数据为极大型数据,因此选取每个指标标准化后的最大值为参考序列,在此为 A 0 = (1,…, 1 )

3.确定权重

        在这里通常有两种方法,一是等权重,二是采用层次分析法所确定的权重。这里采用上篇介绍层次分析法所确定的权重,感兴趣的可以点进卡片学个方法。CSDNhttps://mp.csdn.net/mp_blog/creation/editor/126567801计算得:W = ( 0.08265, 0.02755, 0.13156, 0.52624, 0.02429, 0.14778, 0.05993 )

4.计算灰色关联系数

对于某一个因素,其中的每个维度进行计算,得到一个新的序列,这个序列中的每个点就代表着该子序列与参考序列对应维度上的关联性(数字越大,代表关联性越强)

 在这里,\left | X0(k)-Xi(k) \right | 表示每个数据与该行参考序列数据的差的绝对值。\rho是是分辨系数,一般位于[0,1]之间,往往取0.5。

运用matlab计算结果如下(代码下文给出):

 5.计算灰色加权关联度

若权重为等权,只需求出该列的均值即为最终得分;若采用层次分析法确定的权重,则将该列数据与权重对应相乘即为最终得分:

最终排名如上图,成都的旅游竞争力在这五座城市里面位于首席。

6.代码

%读取数据
a=xlsread('data.xlsx');%无量纲化
for i =[1:7] 
a(i,:)=(a(i,:)-min(a(i,:)))/(max(a(i,:))-min(a(i,:))) 
end%选出参考序列
t = max(a.');
t = repmat(t.',1,5); %灰色相关系数 
m = t-a; 
mmin = min(min(m)); 
mmax = max(max(m));
rho = 0.5; 
coefficient = (mmin + rho*mmax)./(m + rho*mmax); %权重
w = [0.08265, 0.02755, 0.13156, 0.52624, 0.02429, 0.14778, 0.05993];  %灰色关联度
correlation = w * coefficient; 

三、分析总结

优点:对需要样本量无要求,计算简单,结果与定性结果吻合;

缺点:数据指标和方法部分带有主观因素,对要求定量分析的数据所得结果较不精确


总结

    文章属于个人学习笔记类型,介绍的也许不太详细,可以结合例子揣摩一下下或者结合其他文章学习,当然也非常欢迎评论区或私信讨论!

    求一个赞哦!


http://chatgpt.dhexx.cn/article/irEO4nGY.shtml

相关文章

unity 赛车race(手游)

就业班是面向工作,企业应用级别的学习。在这里我们将在游戏项目开发的深度和任务上有所提高。通过分析和开发大型的游戏项目,让大家熟练使用Unity,并分析大型游戏开发思路,为自己专业开发游戏和就业提供保障。 unity 赛车race(手游…

ranchar

添加主机报错

D. Race

GDUT 2020寒假训练 排位赛三 D 原题链接 D. Race 题目 outputstandard output Bessie is running a race of length K (1≤K≤109) meters. She starts running at a speed of 0 meters per second. In a given second, she can either increase her speed by 1 meter per s…

ROS智能车实现darknet_ros检测物体

文章目录 一、搭建智能车环境1、下载包以及编译1.1、下载源码包1.2、编译1.3、错误解决(1)、controllers相关(2)、driver_base相关(3)、ackermann_msgs相关(4)、Could not find a pa…

智能车仿真 —— 2020室外光电组仿真指导(一)

前言 今天推出了官方的仿真文件,我也参与了部分仿真模型的设计,提供一个简单的参考思路。 完整文章地址:古月居博客网站 模型下载地址 https://pan.baidu.com/s/1TFBTbCeyQMuKnxemCbyNSw 提取码: crm5 安装依赖工具 sudo apt-get instal…

教程 | 阿克曼结构移动机器人的gazebo仿真(五)

第四章、用xacro优化URDF并配置gazebo仿真插件 1►前言 上节用简易模型写了一个小车的URDF代码,这一节将用xacro对其进行优化,这里我并不打算用宏对参数进行封装,因为我个人觉得这样看起来会比较直观,方便读者阅读。 2►配置主x…

利用Gazebo搭建赛道,控制小车完成比赛(大学生智能车大赛室外光电组赛道仿真模拟)

ROS学习【18】-----利用Gazebo搭建赛道,控制小车完成比赛目录 一、 ROS仿真功能包下载编译1、racecar功能包下载2、安装该功能包运行需要的控件3、racecar功能包编译4、测试是否编译成功 二、 运行功能包自带的赛道1、运行赛道,控制小车进行位移2、进行g…

ROS智能车定位导航仿真(原赛道自主导航,构建地图再导航)

文章目录 0.视频演示1.智能车环境,空间,资源准备a.初始化b.克隆 racecar 源代码包,并编译(1)遇到问题:Could NOT find driver_base_DIR(2)遇到问题:Could NOT find OpenCV (missing: OpenCV_DIR)(3)随带把环境变量添加…

AR rc漂移车

文章目录 前言一、物料准备二、车辆安装三、舵机调试1.舵机控制原理2.舵机供电及连线3.PWM控制舵机 四、电机调试1.电机控制原理2.电机供电及连线3.PWM控制电机4.附 五、单片机独立供电六、蓝牙遥控 前言 前几天偶然看到了《马里奥赛车 Live:家庭巡回赛》这款运行在switch上的A…

ROS学习记录(二)阿克曼转向车运动学模型及在gazebo中搭建仿真环境

前言:该篇是ROS学习记录的第二篇,如果还没关注过之前文章的读者,如有需要可以通过下方传送门去看之前的文章: ROS学习记录(一) Plugin插件 这两天关注了古月老师的公众号,看到了其中一篇课程推…

(ROS)ROS智能车自主导航roslaunch racecar_gazebo racecar_runway_navigation.launch报错

前提: 修改修改racecar_runway_navigation.launch文件后,运行roslaunch racecar_gazebo racecar_runway_navigation.launch 出现红色报错。 ERROR: cannot launch node of type [move_base/move_base]: move_base ROS path [0]/opt/ros/indigo/share/ro…

用ROS来做无人测试平台系列之国外的一些RACECAR

MIT RACECAR,最早开始做racecar的,主要基于双目摄像头激光雷达: http://fast.scripts.mit.edu/racecar/hardware/ UPENN F1 TENTH,同MIT racecar特别像,不过很多东西需自己组装,电调模块需自己焊接: http://f1tenth.o…

多移动机器人(阿克曼小车)在gazebo中的配置

多移动机器人(阿克曼小车)在gazebo中的配置 前言 最近需要进行异构多机器人方面的工作,在之前的工作中已经实现了多麦克纳姆轮小车在gazebo中的仿真。 (如何在Gazebo中实现多机器人仿真 https://www.guyuehome.com/4889&#xf…

记实现多racecar仿真过程中遇到的问题(一)

最近尝试过使用多turtlebot3仿真之后,想测试一下多Ackermann结构车的仿真效果,在一番寻找下将目光锁定到了MIT-racecar。但是在使用过程中遇到了许多问题,在此记录一下。 运行环境: Ubuntu18.04(虚拟机),ROS-melodic…

HackTheBox You know racecar 格式化字符串漏洞pwn题目

题目网址: https://app.hackthebox.com/challenges/racecar解压密码为hackthebox 文件信息收集 file racecar这是一个32位的程序,动态链接的 checksec vuln防护都开着的,从上到下依次是 32位程序 全部RELRO 开启栈保护 启用数据执行防护…

什么是Race Condition?

简介 race condition是多线程的应用程序中经常遇到的问题,本文章接下来会解释什么是race condition,如何检测到它们以及如何解决这类问题。 Race condition 从定义来说,race condition是代码中一些执行结果取决于其执行的相对时间或者多线…

免费教程·开源 | 从零开始制作ROS无人竞速车RACECAR教程

一、课程前提 自动驾驶汽车即将成为交通出行的主流工具之一,它以计算机、现代汽车产业技术为基础,以数字化、智能化为依托实现自动化驾驶,学习自动驾驶需要了解架构、环境感知、行为决策、规划路径,多传感器融合等一系列技术&…

Racecar 基于ROS通信机制的多点导航实验

基于ROS通信机制的多点导航实验 一、实验目的二、实验环境三、实验原理四、实验内容五、实验步骤1.获取rviz发送目标点的topic;2.对已经建好的图获取相应目标点的坐标(多个,即小车要去的目标),还没建图先完成建图&…

C语言的整数除法

c语言的整数除法是向下取整的。

C语言 从5~100之间找出能被5或7整除的数

从5~100之间找出能被5或7整除的数 算法分析&#xff1a;注意“或”的理解&#xff1a;或此或彼或彼此 #include "stdio.h" main( ) { int i;for(i5;i<100;i)if(i%50||i%70)printf("%d\t",i); }有伙伴问倒序输出&#xff1a; 在线编译C语言&#xff1a;…