数学建模:TOPSIS分析
🔆 文章首发于我的个人博客:欢迎大佬们来逛逛
TOPSIS分析法
算法流程
- 假设有m个评价对象,n个评价指标,首先需要进行指标的正向化:
- 极大型
- 极小型
- 单点型
- 区间型
- 然后对正向化后的矩阵进行标准化,得到 Z Z Z 矩阵:假设 X X X 为正向化后的矩阵,则 Z Z Z 是标准化后的矩阵:
X = [ x 11 x 11 . . . x 1 n x 21 x 22 . . . x 2 n ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 . . . x m n ] ; X=\begin{bmatrix}x_{11}&x_{11}&...&x_{1n}\\x_{21}&x_{22}&...&x_{2n}\\\vdots&\vdots&\ddots&\vdots\\x_{m1}&x_{m2}&...&x_{mn}\end{bmatrix}; X= x11x21⋮xm1x11x22⋮xm2......⋱...x1nx2n⋮xmn ;
Z i j = x i j ∑ i = 1 n x i j 2 Z_{ij}=\frac{x_{ij}}{\sqrt{\sum_{i=1}^nx_{ij}^2}} Zij=∑i=1nxij2xij
- 得到标准化后的矩阵后,我们要进行打分:计算出第 i i i个评价对象与最大值的距离 D i + D^{+}_i Di+ ,和最小值的距离 D i − D^{-}_i Di−
- 计算带组合权重的 TOPSIS 分析法还需要 D i + D^{+}_i Di+ D i − D^{-}_i Di− 分别再乘以权重 W W W
然后再开方。
- 计算带组合权重的 TOPSIS 分析法还需要 D i + D^{+}_i Di+ D i − D^{-}_i Di− 分别再乘以权重 W W W
Z = [ z 11 z 11 . . . z 1 n z 21 z 22 . . . z 2 n ⋮ ⋮ ⋱ ⋮ z m 1 z m 2 . . . z m n ] ; Z=\begin{bmatrix}z_{11}&z_{11}&...&z_{1n}\\z_{21}&z_{22}&...&z_{2n}\\\vdots&\vdots&\ddots&\vdots\\z_{m1}&z_{m2}&...&z_{mn}\end{bmatrix}; Z= z11z21⋮zm1z11z22⋮zm2......⋱...z1nz2n⋮zmn ;
最大值 ( z 1 + , z 2 + . . . z n + ) = ( max { z 11 , z 21 , . . . , z m 1 } , max { z 12 , z 22 , . . . , z m 2 } , . . . , max { z 1 n , z 2 n , . . . , z m n } ) ∣ 最大值(z^{+}_1,z^{+}_2 ...z^{+}_n) = \left.\left(\max\begin{Bmatrix}z_{11},z_{21},...,z_{m1}\end{Bmatrix},\max\begin{Bmatrix}z_{12},z_{22},...,z_{m2}\end{Bmatrix},...,\max\begin{Bmatrix}z_{1n},z_{2n},...,z_{mn}\end{Bmatrix}\right)\right| 最大值(z1+,z2+...zn+)=(max{z11,z21,...,zm1},max{z12,z22,...,zm2},...,max{z1n,z2n,...,zmn})
最小值 ( z 1 − , z 2 − . . . z n − ) = ( min { z 11 , z 21 , . . . , z m 1 } , min { z 12 , z 22 , . . . , z m 2 } , . . . , min { z 1 n , z 2 n , . . . , z m n } ) ∣ 最小值(z^{-}_1,z^{-}_2 ...z^{-}_n) = \left.\left(\min\begin{Bmatrix}z_{11},z_{21},...,z_{m1}\end{Bmatrix},\min\begin{Bmatrix}z_{12},z_{22},...,z_{m2}\end{Bmatrix},...,\min\begin{Bmatrix}z_{1n},z_{2n},...,z_{mn}\end{Bmatrix}\right)\right| 最小值(z1−,z2−...zn−)=(min{z11,z21,...,zm1},min{z12,z22,...,zm2},...,min{z1n,z2n,...,zmn})
D i + = ∑ j = 1 m ( z j + − z i j ) 2 D_{i}^{+}=\sqrt{\sum_{j=1}^{m}(z_{j}^{+}-z_{ij})^{2}} Di+=j=1∑m(zj+−zij)2
D i − = ∑ j = 1 m ( z j − − z i j ) 2 {\cal D}_{i}^{-}=\sqrt{\sum_{j=1}^{m}(z_{j}^{-}-z_{ij})^{2}} Di−=j=1∑m(zj−−zij)2
- 计算出第 i i i 个评价对象未归一化后的得分: S i S_i Si ,很明显 0 < = S i < = 1 0<= S_i <=1 0<=Si<=1,且 S i S_i Si 越大 D i + D^{+}_i Di+ 越小,越接近最大值。
S i = D i − D i + + D i − S_i=\frac{D_i^-}{D_i^++D_i^-} Si=Di++Di−Di−
- 计算归一化后的得分:即每分数除以所有分数之和:
s t a n d _ S = S i ∑ i = 1 n S i stand\_S=\frac{S_i}{\sum_{i=1}^nS_i} stand_S=∑i=1nSiSi
程序代码
function [score]=mfunc_TOPSIS(data,W) % TOPSIS方法:求解每个对象的综合评价得分% paramts: % data: 原始数据矩阵,(m,n) m为评价对象,n为评价指标% W: 每个指标的初始权重% returns:% Score:每个评价对象的综合得分%X输入的数据,W各指标的权重[n,~]=size(data);%Z=zscore(X);Z = data ./ repmat(sum(data.*data) .^ 0.5, n, 1); %矩阵标准化V_D = sum(((Z - repmat(max(Z),n,1)) .^ 2 ) .* repmat(W,n,1) ,2) .^ 0.5; V_X = sum(((Z - repmat(min(Z),n,1)) .^ 2 ) .* repmat(W,n,1) ,2) .^ 0.5; S = V_X ./ (V_D+V_X); %未归一化得分Score_S = S / sum(S); %归一化得分,即为每个企业的投资风险评分,值越大,投资风险也越大% score=Score_S;score=100*Score_S/max(Score_S);
end
相关文章:
数学建模:TOPSIS分析
🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 TOPSIS分析法 算法流程 假设有m个评价对象,n个评价指标,首先需要进行指标的正向化: 极大型极小型单点型区间型 然后对正向化后的矩阵进行标准化,得到 Z Z Z…...
【Qt学习】10 利用QSharedMemory实现单例运行
问题 让应用程序只有一个运行实例 QSharedMemory除了可以完成进程间通信,还可以实现应用程序单例化。 解法 首先,看看QSharedMemory的几个函数: 1、QSharedMemory(const QString &key, QObject *parent Q_NULLPTR)构造函数 该构造函数…...
FPGA应用于图像处理
FPGA应用于图像处理 FPGA(Field-Programmable Gate Array)直译过来就是现场可编程门阵列。是一种可以编程的逻辑器件,具有高度的灵活性,可以根据具体需求就像编程来实现不同的功能。 FPGA器件属于专用的集成电流中的一种半定制电…...
vscode python 无法引入上层目录解决
在vscode 中.vscode 配置如下 { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid830387 “version”: “0.2.0”, “configurati…...
[开发|java] java list 取某个属性最大的项
示例代码: import java.util.*;class Person {private String name;private int age;public Person(String name, int age) {this.name name;this.age age;}public int getAge() {return age;} }public class Main {public static void main(String[] args) {List<Person…...
关闭浏览器的跨域校验
首发博客地址 问题描述 当你访问资源失败,并遇到以下类似提示时: Access to script at 资源路径 from origin null has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrom…...
USRP 简介,对于NI软件无线电你所需要了解的一切
什么是 USRP 通用软件无线电外设( USRP ) 是由 Ettus Research 及其母公司National Instruments设计和销售的一系列软件定义无线电。USRP 产品系列由Matt Ettus领导的团队开发,被研究实验室、大学和业余爱好者广泛使用。 大多数 USRP 通过以太网线连接到主机&…...
RTE_Driver驱动框架和Keil下开发需要支持的xxx_DFP软件包分析
1.RTE_Driver驱动框架 RTE_Driver代表"Run-Time Environment Driver",是Keil MDK(Microcontroller Development Kit)中的一个概念。Keil MDK是一种用于嵌入式系统开发的集成开发环境,提供了开发、编译、调试等一系列工具…...
ImportError: Cannot load dynamic library. Did you compile LSD?
1、问题描述 >>> import pylsd2 Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/data/data/wangzy-p-wangzy-p3-volume-pvc-0fee40a7-7013-49b4-8cfb-b4ab0394165b/.conda/envs/paddle/lib/python3.8/sit…...
音频应用编程
目录 ALSA 概述alsa-lib 简介sound 设备节点alsa-lib 移植编写一个简单地alsa-lib 应用程序一些基本概念打开PCM 设备设置硬件参数读/写数据示例代码之PCM 播放示例代码值PCM 录音 使用异步方式PCM 播放示例-异步方式PCM 录音示例-异步方式 使用poll()函数使用poll I/O 多路复用…...
软件测试/测试开发丨Python 学习笔记 之 链表
点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/26458 链表与数组的区别 复杂度分析 时间复杂度数组链表插入删除O(n)O(1)随机访问O(1)O(n) 其他角度分析 内存连续,利用CPU的机制࿰…...
Matlab 使用经验分享(常用函数介绍;矩阵常见计算)
Matlab 使用经验分享 大家好!最近有很多朋友询问我关于 Matlab 的使用,于是我决定写一篇博客来分享一下我的经验。对于数学和编程爱好者来说,Matlab 是一个非常有用的工具。我自己在数学实验和数学建模竞赛中也经常使用它。那么,…...
软件工程(十七) 行为型设计模式(三)
1、观察者模式 简要说明 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新 速记关键字 联动,广播消息 类图如下 基于上面的类图,我们来实现一个监听器。类图中的Subject对应我们的被观察对象接口(IObservable),…...
在抖音中使用语聚AI,实现自动回复用户视频评论、私信问答
您可以通过集简云数据流程,将语聚AI助手集成到抖音视频评论、抖音私信,实现自动回复用户视频评论、私信问答,大大提升账号互动与运营效率。 效果如下: 自动化流程: ● 抖音普通号评论对接语聚AI(点击可一…...
pyqt5-快捷键QShortcut
import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import *""" 下面示例揭示了,当关键字绑定的控件出现的时候,快捷键才管用, 绑定的控件没有出现的时候快捷键无效 """…...
匿名函数( lambda 表达式)
在 C 中,匿名函数也被称为 lambda 表达式。C11 引入了 lambda 表达式,使得在需要函数对象(函数符)的地方可以使用匿名函数来代替。 lambda 表达式的基本语法如下: [capture list] (parameter list) -> return typ…...
基于SSM的汽车维修管理系统——LW模板
摘要 随着人们生活水平的不断提高,私家车的数量正在逐年攀升。这带动了汽车维修行业的发展。越来越多的汽车维修厂如雨后春笋般涌现。同时,维修厂的业务操作产生了庞大的数据,这给汽车维修厂工作人员的数据管理提出了新的要求,他们…...
Ceph的纠删码特性 EC(Erasure Code)代码流程
从GitHub上Clone Ceph项目,我是基于(ceph version 12.2.11 luminous 版本)的代码来分析的 一、EC(Erasure Code)是什么? Ceph的纠删码特性EC:将写入的数据分成N份原始数据,通过这N份原始数据计算出M份效验…...
盘点那些国际知名黑客(上篇)
电影中的黑客仅靠一部电脑就可以窃取别人的信息,利用自己高超的技术让公司甚至国家都胆战心惊。“黑客”原指热心于计算机技术、水平高超的电脑高手,但逐渐区分为黑帽、白帽、灰帽。这些术语源自美国流行文化的老式西部电影,其中主角戴白色或…...
机器学习基础12-Pipeline实现自动化流程处理(基于印第安糖尿病Pima 数据集)
有一些标准的流程可以实现对机器学习问题的自动化处理,在 scikitlearn 中通过Pipeline来定义和自动化运行这些流程。本节就将介绍如何通过Pipeline实现自动化流程处理。 如何通过Pipeline来最小化数据缺失。如何构建数据准备和生成模型的Pipeline。如何构建特征选择…...
OpenClaw(小龙虾AI)Windows一键部署包v2.7.5|零代码+可视化操作
适配系统:Windows10 64 位(纯小白友好版) 核心优势:免命令行、免环境配置、解压即装,内置所有运行依赖,全程可视化操作,新手也能一次成功部署 2026 爆火的开源 AI 智能体! 本文专属…...
2026年SSL证书市场便宜且安全的SSL证书调研
随着互联网安全标准的不断升级,HTTPS加密已成为网站和各类数字应用的“标配”。然而,对于广大的中小企业、个人开发者以及初创团队而言,如何在控制成本的前提下,获取一张既便宜又足够安全的SSL证书,始终是一道棘手的难…...
别再手动一个个改了!ArcGIS属性表字段批量删除与数据裁剪的‘偷懒’技巧
ArcGIS高效工作流:属性表与数据批处理的进阶技巧 在GIS工程师的日常工作中,最令人头疼的莫过于那些看似简单却需要重复上百次的操作——删除几十个无用字段、裁剪数百个栅格图层、批量修改投影坐标系。这些机械性劳动不仅消耗时间,更消磨创造…...
如何查阅与分析Taotoken平台提供的详细用量账单
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何查阅与分析Taotoken平台提供的详细用量账单 对于使用大模型API的开发者与团队而言,清晰、准确地掌握资源消耗与成本…...
别再死记硬背占空比了!用STM32 HAL库驱动MG90S舵机,我总结了这份避坑指南
STM32 HAL库驱动MG90S舵机:从参数计算到实战调试的全方位指南 刚接触STM32和舵机的新手们,是否曾被PWM配置中的各种参数搞得晕头转向?明明按照教程设置了占空比,舵机却纹丝不动;或者角度总是偏差几度,调试…...
限时开放!ElevenLabs未公开东北话语音微调接口文档(含token绕过+方言embedding注入完整POC)
更多请点击: https://codechina.net 第一章:ElevenLabs东北话语音微调接口的发现与边界定义 ElevenLabs 官方 API 文档未显式标注“东北话”支持,但通过其语音克隆(Voice Cloning)与声音微调(Fine-tuning&…...
MCP电路设计:从门电路到CPLD的优先级仲裁硬件实现
1. 项目概述:从“命令打架”到“有序排队”的电路设计在嵌入式系统、工业控制或者任何需要处理多路信号的数字电路里,我们经常会遇到一个头疼的问题:当多个输入信号同时要求一个输出设备执行不同动作时,系统该听谁的?比…...
从一次‘迷路’说起:手把手调试LTE终端TAU失败问题(附Wireshark抓包分析)
从一次‘迷路’说起:手把手调试LTE终端TAU失败问题(附Wireshark抓包分析) 清晨的地铁站里,一位工程师盯着手机屏幕上反复跳出的"无服务"提示皱起眉头——这已经是本周第三次收到用户投诉在A区到B区的通勤路上出现信号中…...
靠谱的江西靠谱单招机构哪家靠谱
每年单招报名前后,总有不少家长和同学跑来问我:“江西到底哪家单招机构靠谱?”说实话,这个问题没有标准答案,但如果你愿意听点实在的,我可以分享一下这几年自己观察到的和从往届学员那里听到的信息。为什么…...
5步掌握Sollumz:让GTA V模型在Blender中自由编辑
5步掌握Sollumz:让GTA V模型在Blender中自由编辑 【免费下载链接】Sollumz Grand Theft Auto V modding suite for Blender. This add-on allows the creation of modded game assets: 3D models, maps, interiors, animations, etc. 项目地址: https://gitcode.c…...
