灰色关联分析应用

article/2025/10/19 14:13:14

参考学习b站:数学建模学习交流

感觉这篇博客写的很好:灰色关联分析+Matlab代码实现

看完后自己尝试运行的一下,发现和自己本地的matlab代码运行结果不同,就把其中细节写到这篇博客里了

运行上述博客应用2的代码,将更多中间变量输出出来,得到结果:

请输入最佳的中间值:7
请输入区间的下界:10
请输入区间的下界:20
正向化后的矩阵为:4.6900    0.7172    3.0000    1.00002.0300    0.4069   35.0000    0.69409.1100    0.5241    8.0000    0.90588.6100    0.9655    8.0000    0.44437.1300    0.6552    4.0000    0.69142.3900    0.8414   16.0000    0.60077.6900    0.8552   16.0000    0.65519.3000    0.8690   27.0000         05.4500    0.5724   49.0000    1.00006.1900    0.8138   37.0000    0.78487.9300    0.6345   45.0000    0.69924.4000    0.8069   37.0000    0.54197.4600    0.1448   31.0000    1.00002.0100         0    7.0000    0.45462.0400    0.5862   31.0000    1.00007.7300    0.4069    2.0000    1.00006.3500    0.6000   29.0000    0.18248.2900    0.0276   15.0000    1.00003.5400    0.8138         0    0.40887.4400    0.4897   46.0000    0.2731a =2.1526b =48.0900各个指标对于母序列的灰色关联度为:gamma =0.6320    0.6323    0.6254    0.6326各个指标的权重为:weight =0.2506    0.2507    0.2479    0.2508******标准化后的矩阵为:Z =0.1622    0.2483    0.0245    0.30650.0702    0.1408    0.2863    0.21270.3150    0.1814    0.0655    0.27760.2977    0.3342    0.0655    0.13610.2466    0.2268    0.0327    0.21190.0826    0.2912    0.1309    0.18410.2659    0.2960    0.1309    0.20080.3216    0.3008    0.2209         00.1885    0.1981    0.4009    0.30650.2141    0.2817    0.3027    0.24050.2742    0.2196    0.3682    0.21430.1522    0.2793    0.3027    0.16610.2580    0.0501    0.2536    0.30650.0695         0    0.0573    0.13930.0705    0.2029    0.2536    0.30650.2673    0.1408    0.0164    0.30650.2196    0.2077    0.2373    0.05590.2867    0.0095    0.1227    0.30650.1224    0.2817         0    0.12530.2573    0.1695    0.3763    0.0837Z_max =0.3216    0.3342    0.4009    0.3065Z_min =0.0695         0         0         0D_max =0.20820.17510.18430.18790.20040.19130.14840.17850.09530.08410.07910.12360.16320.28320.15970.21630.17030.21430.24230.1429D_min =0.20320.19140.20910.21620.17960.18450.21450.22520.27710.24970.26020.22560.22140.07540.22320.19590.17660.19780.15660.2300该矩阵得分为:S =0.49400.52230.53160.53500.47270.49100.59110.55780.74410.74810.76700.64600.57580.21020.58300.47540.50910.48000.39260.6167矩阵归一化后得分为:S =0.04510.04770.04860.04890.04320.04490.05400.05100.06800.06840.07010.05900.05260.01920.05330.04340.04650.04390.03590.0564

但是我用下面的代码试了一下

%% 对正向化后的矩阵进行预处理
Mean = mean(X);  % 求出每一列的均值
Z = X ./ repmat(Mean,size(X,1),1);  
disp('预处理后的矩阵为:'); disp(Z)%% 构造母序列和子序列
Y = max(Z,[],2);  % 母序列为虚拟的,用每一行的最大值构成的列向量表示母序列
X = Z; % 子序列就是预处理后的数据矩阵%% 计算得分
absX0_Xi = abs(X - repmat(Y,1,size(X,2)))  % 计算|X0-Xi|矩阵
a = min(min(absX0_Xi))    % 计算两级最小差a
b = max(max(absX0_Xi))  % 计算两级最大差b
rho = 0.5; % 分辨系数取0.5
gamma = (a+rho*b) ./ (absX0_Xi  + rho*b)  % 计算子序列中各个指标与母序列的关联系数
weight = mean(gamma) / sum(mean(gamma))  % 利用子序列中各个指标的灰色关联度计算权重
score = sum(X .* repmat(weight,size(X,1),1),2);   % 未归一化的得分
stand_S = score / sum(score);   % 归一化后的得分
[sorted_S,index] = sort(stand_S ,'descend') % 进行排序

运行结果为:

正向化后的矩阵 X =  4.6900    0.7172    3.0000    1.00002.0300    0.4069   35.0000    0.69409.1100    0.5241    8.0000    0.90588.6100    0.9655    8.0000    0.44437.1300    0.6552    4.0000    0.69142.3900    0.8414   16.0000    0.60077.6900    0.8552   16.0000    0.65519.3000    0.8690   27.0000         05.4500    0.5724   49.0000    1.00006.1900    0.8138   37.0000    0.78487.9300    0.6345   45.0000    0.69924.4000    0.8069   37.0000    0.54197.4600    0.1448   31.0000    1.00002.0100         0    7.0000    0.45462.0400    0.5862   31.0000    1.00007.7300    0.4069    2.0000    1.00006.3500    0.6000   29.0000    0.18248.2900    0.0276   15.0000    1.00003.5400    0.8138         0    0.40887.4400    0.4897   46.0000    0.2731预处理后的矩阵为:0.7831    1.2228    0.1345    1.49970.3390    0.6937    1.5695    1.04081.5211    0.8936    0.3587    1.35841.4376    1.6461    0.3587    0.66621.1905    1.1170    0.1794    1.03690.3991    1.4345    0.7175    0.90081.2840    1.4580    0.7175    0.98251.5528    1.4815    1.2108         00.9100    0.9759    2.1973    1.49971.0336    1.3874    1.6592    1.17691.3241    1.0817    2.0179    1.04860.7347    1.3757    1.6592    0.81271.2456    0.2469    1.3901    1.49970.3356         0    0.3139    0.68180.3406    0.9994    1.3901    1.49971.2907    0.6937    0.0897    1.49971.0603    1.0229    1.3004    0.27351.3842    0.0470    0.6726    1.49970.5911    1.3874         0    0.61311.2423    0.8348    2.0628    0.4096absX0_Xi =0.7166    0.2769    1.3651         01.2306    0.8758         0    0.52870    0.6275    1.1624    0.16270.2085         0    1.2873    0.97990    0.0735    1.0111    0.15361.0354         0    0.7170    0.53360.1739         0    0.7405    0.47550    0.0714    0.3421    1.55281.2873    1.2214         0    0.69760.6256    0.2718         0    0.48230.6938    0.9362         0    0.96930.9245    0.2835         0    0.84650.2541    1.2528    0.1095         00.3462    0.6818    0.3679         01.1591    0.5003    0.1095         00.2090    0.8060    1.4100         00.2402    0.2775         0    1.02700.1155    1.4526    0.8270         00.7963         0    1.3874    0.77430.8205    1.2280         0    1.6532a =0b =1.6532gamma =0.5356    0.7491    0.3771    1.00000.4018    0.4855    1.0000    0.60991.0000    0.5684    0.4156    0.83550.7986    1.0000    0.3910    0.45761.0000    0.9183    0.4498    0.84330.4439    1.0000    0.5355    0.60770.8261    1.0000    0.5275    0.63481.0000    0.9205    0.7073    0.34740.3910    0.4036    1.0000    0.54230.5692    0.7526    1.0000    0.63150.5437    0.4689    1.0000    0.46030.4720    0.7446    1.0000    0.49410.7649    0.3975    0.8830    1.00000.7048    0.5480    0.6920    1.00000.4163    0.6230    0.8830    1.00000.7982    0.5063    0.3696    1.00000.7749    0.7486    1.0000    0.44600.8774    0.3627    0.4999    1.00000.5093    1.0000    0.3733    0.51630.5018    0.4023    1.0000    0.3333weight =0.2433    0.2482    0.2574    0.2511sorted_S =0.07030.06870.06590.05760.05720.05530.05490.05330.05290.05130.05090.04600.04580.04530.04490.04430.04370.04320.03210.0167index =9111012207131583421711816561914

上面仅列出了灰色关联分析的结果,发现a,b的值(全矩阵最小/大值)不太对
在这里插入图片描述
和:
在这里插入图片描述

之后看博主的代码,发现有些问题:
在这里插入图片描述
这里预处理后的矩阵应该是new_X,而不是X,改完后和下面代码结果的ab值就一样了(0,1.6532)weight也一样了(0.2433 ,0.2482,0.2574,0.2511)

那么修正后灰色关联分析归一化后的得分为(未排序):

stand_S =0.04530.04600.05130.05090.04370.04320.05530.05290.07030.06590.06870.05760.05490.01670.05330.04430.04580.04490.03210.0572

这样问题得以解决


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

相关文章

灰色关联案例与代码

案例 求他们之间的关联度,并且大小排序。 代码 写了注释,自行查看,换了案例,你只需要修改这一部分即可: 因为读取不一样了嘛,你总要改改数字。 clc; close; clear all; xxlsread(gray_data1.xlsx); xx(:,2:end);%所…

灰色关联法 —— python

目录 1.简介 2.算法详解 2.1 数据标准化 2.2 计算灰色相关系数 2.3 计算灰色关联度系数 3.实例分析 3.1 读取数据 3.2 数据标准化 3.3 绘制 x1,x4,x5,x6,x7 的折线图 3.4 计算灰色相关系数 完整代码 1.简介 对于两个系统之间的因素,其随时间或不同对象而变…

数学建模之灰色关联分析(GRA)

本文参考的是司守奎,孙兆亮主编的数学建模算法与应用(第二版) 灰色关联分析不仅能够用做关联分析,也能够用于评价。 其具体分析步骤如下: 第一步,需要确定评价对象和参考数列。 评价对象一般指的就是待分…

【DOM】DOM操作之如何添加、删除、替换元素_04

目录 一. 添加删除替换元素 1. 添加新元素: 3步: (1). 创建一个新的空元素对象 (2). 为新元素设置必要的属性: 新元素.属性名"属性值" (3). 将新元素添加到DOM树 2. 示例: 动态创建a元素和input元素 3. 示例: 动态生成表格内容 4. 优化 5. 删除元素: 父元素.re…

DOM操作_获取元素

概述 DOM (Document objectModal) :文档对象模型。 DOM;是浏览器提供的(浏览器特有),专[ ]用来操作网页内容的一些JS对象。 目的:让我们可以使用Js/TS代码来操作页面(HTML) 内容,让页面“动”起来,从而实现Web开发。 HTML:超文本标记语言…

DOM操作class属性的方法

新增标签对象.classList.add(新增属性值) 删除 标签对象.classList.remove(删除属性值) 替换标签对象.classList.replace(原始 , 新的) 切换标签对象.classList.toggle(切换属性值)有执行删除,没有执行新增 <body><div class "box box2 "></div&…

js DOM操作自定义属性

自定义属性&#xff1a;在日常开发中&#xff0c;html的内置属性已经无法满足程序员的日常开发&#xff0c;所以需要我们自己定义属性&#xff0c;H5给我们新增了自定义属性&#xff0c;为了防止自定义属性和内置属性引起歧义&#xff0c;所以H5规定自定义属性以data-开头定义。…

JavaScript之DOM操作获取元素、事件、操作元素、节点操作

什么是 DOM&#xff1f; 文档对象模型&#xff08;Document Object Model&#xff0c;简称 DOM&#xff09;&#xff0c;是 W3C 组织推荐的处理可扩展标记语言&#xff08;HTML或者XML&#xff09;的标准编程接口。W3C 已经定义了一系列的 DOM 接口&#xff0c;通过这些 DOM 接…

DOM 基础操作

文章目录 前言一、DOM 简介1.1 什么是 DOM 二、获取元素2.1 如何获取页面元素2.2 根据 ID 获取2.3 根据标签名获取2.4 通过 HTML5 新增的方法获取2.5 获取特殊元素&#xff08;body&#xff0c;html&#xff09; 三、事件基础3.1事件三要素3.2 执行事件的步骤3.3常见的鼠标事件…

[js]DOM操作

DOM也就是文档对象模型&#xff1a;document object model 主要用来动态操作HTML的元素节点&#xff0c;dom操作文档是居于DOM树为根据操作的。DOM树为html整体结构框架&#xff0c;其中有各种嵌套标签&#xff0c;最典型的就是以body为主容器&#xff0c;在body内部设置各种元…

DOM操作总结  (。♥ᴗ♥。) 哇!!

知识点 DOM 本质DOM 节点操作DOM 结构操作DOM 性能 前言 各种框架层出不穷&#xff0c;但DOM操作一直都会是前端工程师的基础&#xff0c;必备知识。 只会Vue和React等框架&#xff0c;而不懂DOM操作的前端程序员们。。。 DOM的本质&#xff1f; Do you know&#xff1f; 首…

JavaScript中DOM操作

Web前端基础修炼 HTML基本标签详解与运行截图 CSS基本操作详解及截图演示 JavaScript基础(ECMAScript) JavaScript中DOM操作 JavaScript中BOM操作 目录 DOM介绍 获取元素 操作元素 节点操作 DOM介绍 JavaScript一共包括三部分&#xff0c;分别是ECMAScript也就是Jav…

Dom操作的性能优化

在 开发过程中&#xff0c;或多或少都会遇到要操作dom的情况&#xff0c;而dom操作多多少少都会耗费一些性能&#xff0c;那今天我们就一起来看看在操作dom的时候有哪些性能优化方式吧&#xff1a; 1.选择性能更好的获取dom元素的方法 首先&#xff0c;我们一起来看看&#xf…

常见的DOM操作有哪些

这里是修真院前端小课堂&#xff0c;本篇分析的主题是 【常见的DOM操作有哪些】 这里是修真院前端小课堂&#xff0c;每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析前端知识/技能&…

js中Dom操作

简单的Dom获取 什么是Dom操作&#xff1f; 1.DOM使一个"使程序"和"脚本"有能力的"动态地访问"和"更新文档内容结构"&#xff0c;以及"样式"的平台和语言中立的接口. 2.在HTML和JavaScript的学习中&#xff0c;DOM操作可谓时…

TypeScript Dom操作

文章目录 介绍获取元素类型断言获取多个DOM元素操作文本内容操作样式操作事件 介绍 DOM 是浏览器提供的&#xff08;浏览器特有)&#xff0c;专门用来操作网页内容的一些JS对象(API) 通过DOM操作&#xff0c;可以让Js/Ts控制页面&#xff08;(HTML)内容&#xff0c;让页面“动…

JavaScript DOM操作

文章目录 JavaScript DOM操作DOM操作元素DOM查询修改元素内容/属性获取元素节点 DOM的增删改 DOM操作CSS内联样式获得当前正在显示的样式 DOM的事件操作事件对象事件对象的属性 事件的冒泡和事件的委托事件冒泡事件委派事件的传播事件的绑定 JavaScript DOM操作 DOM操作元素 …

DOM的操作

一、DOM的操作 1、复制节点 cloneNode(deep) 参数deep是boolean类型&#xff0c;true/false true&#xff1a;表示深度复制&#xff08;将节点及其子节点都进行复制&#xff09; --- 深拷贝 false&#xff1a;表示浅复制&#xff08;只复制节点而不复制子节点&#xff09; ----…

DOM(操作)

DOM 1 作用和分类 作用&#xff1a;使用 JS 去操作 html 和浏览器 分类&#xff1a;DOM(文档对象模型)、BOM(浏览 器对象模型) DOM 是用来呈现以及与任意HTML 或 XML文档交互的API简单说&#xff1a;DOM 是浏览器提供的一套专门用来 操作网页内容 的功能DOM的作用&am…

13前端学习之WebAPI(三):节点操作、事件高级、DOM事件流、事件委托冒泡

文章目录 一、节点操作:1. 删除节点:1.2. 案例&#xff1a;删除留言 2. 赋值(克隆)节点:3. 案例:动态生成表格:3.1 案例分析:3.2 实现: 4. 创建元素的三种方式:4.1 区别:4.2 innerTHML和createElement效率对比: 5. DOM的核心总结:5.1 创建:5.2 增加:5.3 删除:5.4 改:5.5 查&…