【数学建模】如何总结数学建模中的层次分析法最好

模型简介

  • 模型名称:层次分析法

  • 核心问题类型:评价类

  • 核心思想和适用场景

    • 核心思想:将大决策问题拆解成小比较问题,通过数学计算综合最终结论:本质是人的主观判断转换为客观数据的工具
    • [[适用场景]]
      • 个人决策
      • 企业 / 项目决策
      • 综合评价
  • 核心步骤与流程图:

    • 核心步骤:
      1. [[构建层次结构]]
        1. 目标层
        2. 准则层
        3. 方案层
      2. 构造判断矩阵
        1. 两两比较法/优劣度
          1. 用 1-9 标度法赋值
        2. 生成两类矩阵
          1. 准则层重要性矩阵
          2. 方案层在各准则下的优劣矩阵
      3. 计算权重 + 单层次一致性检验
        • [[计算权重]]
      4. 层次总排序 + 总一致性检验
        • [[总权重计算]]
        • [[总一致性检验]]
      5. 选择总权重最高的方案作为最优解
    • 流程图
      • image.png
  • 数学公式/表达式

    1. 基础:[[判断矩阵定义]]

      1. image.png
    2. 核心 1:权重计算

      1. [[特征值法]](优先级高)
      2. [[和法]]
      3. [[根法]]
    3. 核心 2:一致性检验(避免主观判断矛盾)

      • 步骤一:[[一致性指标CI]]
      • 步骤二:[[平均随机一致性指标RI]]
      • 步骤三:[[一致性比例CR]]
    4. [[层次总排序]](合成最终权重)

    • [[套路]]

获取判断矩阵

代码:

disp('请输入判断矩阵A')%相当于printfA=input('A=');%相当于scanf,输入函数[n,m] = size(A);
size(A)函数是用来求矩阵A的大小的,它返回一个行向量,第一个元素是矩阵的行数,第二个元素是矩阵的列数

方法1: [[算术平均法求权重]]

Sum_A = sum(A); %将A矩阵按列求和
SUM_A = repmat(Sum_A,n,1);
%B = repmat(A,m,n):将矩阵A复制m×n块,即把A作为B的元素,B由m×n个A平铺而成。
Stand_A = A ./ SUM_A;
disp('算术平均法求权重的结果为:');
w1 = sum(Stand_A,2)./n;
disp(w1)
  • [[SUM_A = repmat(Sum_A,n,1);(主要做算术平均法的分母)]]
    将列和向量 Sum_A 复制成与原矩阵 A 同维度的矩阵
    • [[Stand_A ]]= A ./ SUM_A
      对原矩阵 A 进行列归一化
  • [[w1]] = sum(Stand_A,2)./n; %n=3,2是行求和的意思
    计算最终权重

方法二:特征值法求权重

[V,D] = eig(A);%求特征值Max_eig = max(max(D));% 先按列求最大值,得到行向量,再从这个向量里面求最大值[r,c]=find(D == Max_eig , 1);disp('特征值法求权重的结果为:');w2 = V(:,c) ./ sum(V(:,c));disp(w2)disp('两种方法的平均权值为:');disp((w1 + w2) ./ 2);

还是用3*3的A举例

  • [[[V,D] = eig(A);]]
    特征值和特征向量
  • [[Max_eig = max(max(D));]]
    提取最大特征值
  • [[ [r,c] = find(D == Max_eig , 1)]]
    定位最大特征值在矩阵 D 中的列索引
  • [[w2]] = V(:,c) ./ sum(V(:,c));
    计算特征值法的权重向量
  • (w1 + w2) ./ 2
    将算术平均法得到的 w1 与特征值法得到的 w2 取平均值

计算一致性比例CR(优先计算)

CI = (Max_eig - n) / (n-1);RI=[0 0.0001 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59]; %这里的RI最多支持 n = 15,注意检查!% 这里n=2时,RI=0,我们为了避免分母为0,将这里的第二个元素改为了很接近0的正数CR=CI/RI(n);disp('最大特征值为:');disp(Max_eig);disp('一致性指标CI=');disp(CI);disp('一致性比例CR=');disp(CR);if CR<0.10disp('CR<0.10,该判断矩阵A的一致性可以接受!');elsedisp('注意:CR >= 0.10,该判断矩阵需要进行修改!');end
  • 若 (CR < 0.1):判断矩阵矛盾可接受,权重有效;
  • 若 (CR \geq 0.1):需调整判断矩阵(如修改两两比较的赋值),
    直至 (CR < 0.1)。·

源代码:

%% 层次分析法% 只有非一致矩阵才需要一致性检验% % 要先进行一致性检验,通过后才能求权重,我们这里为了方便讲解才放到了最后做的一致性检验%% 获取判断矩阵disp('请输入判断矩阵A')A=input('A=');[n,n] = size(A);%% 方法1: 算术平均法求权重Sum_A = sum(A); %将A矩阵按列求和SUM_A = repmat(Sum_A,n,1);%B = repmat(A,m,n):将矩阵A复制m×n块,即把A作为B的元素,B由m×n个A平铺而成。Stand_A = A ./ SUM_A;disp('算术平均法求权重的结果为:');w1 = sum(Stand_A,2)./n;disp(w1)%% 方法2: 特征值法求权重[V,D] = eig(A);Max_eig = max(max(D));% 先按列求最大值,得到行向量,再从这个向量里面求最大值[r,c]=find(D == Max_eig , 1);disp('特征值法求权重的结果为:');w2 = V(:,c) ./ sum(V(:,c));disp(w2)disp('两种方法的平均权值为:');disp((w1 + w2) ./ 2);%% 计算一致性比例CRCI = (Max_eig - n) / (n-1);RI=[0 0.0001 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59]; %这里的RI最多支持 n = 15,注意检查!% 这里n=2时,RI=0,我们为了避免分母为0,将这里的第二个元素改为了很接近0的正数CR=CI/RI(n);disp('最大特征值为:');disp(Max_eig);disp('一致性指标CI=');disp(CI);disp('一致性比例CR=');disp(CR);if CR<0.10disp('CR<0.10,该判断矩阵A的一致性可以接受!');elsedisp('注意:CR >= 0.10,该判断矩阵需要进行修改!');end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96897.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

`mmap` 系统调用详解

mmap 是 Unix/Linux 系统中一个强大且多用途的系统调用&#xff0c;用于将文件或设备映射到进程的地址空间&#xff0c;实现内存映射I/O。 1. 函数的概念与用途 mmap&#xff08;内存映射&#xff09;函数允许程序将文件或其他对象直接映射到其地址空间&#xff0c;这样文件内容…

深度剖析Spring AI源码(二):Model抽象层 - “驯服”天下AI的“紧箍咒”

深度剖析Spring AI源码&#xff08;二&#xff09;&#xff1a;Model抽象层 - “驯服”天下AI的“紧箍咒”上一章我们鸟瞰了Spring AI的宏伟蓝图&#xff0c;今天&#xff0c;我们要深入这座大厦的基石——Model抽象层。如果说Spring AI是连接Java与AI世界的桥梁&#xff0c;那…

永磁同步电机无速度算法--高频脉振正弦波注入到两相静止坐标系

一、原理介绍采用一种改进的永磁同步电机低速无位置传感器控制策略。与传统的旋转高频信号注入法和脉振高频信号注入法不同&#xff0c;该策略选择向静止坐标轴系注入高频脉振信号&#xff0c;转子位置估计信息可以通过载波电流响应提取。并使用一种类似于简化型扩展卡尔曼滤波…

嵌入式学习日志————ADC模数转换器之实验

1.配置ADC的步骤①开启RCC时钟&#xff0c;包括ADC和GPIO的时钟②配置GPIO&#xff0c;把相应端口配置成模拟输入模式③配置多路开关&#xff0c;把左边的通道接入右边的规则组列表里④配置ADC转换器⑤调用ADC_Cmd函数&#xff0c;开启ADC2.库函数配置ADCCLK分频器void RCC_ADC…

Java设计模式之《状态模式》

目录 1、状态模式 1.1、介绍 1.2、设计背景 1.3、适用场景 2、实现 2.1、if-else实现 2.2、状态模式实现 2.3、最终版 1、关于if-else的优化 2、状态模式下的优化 3、ArrayList 配置“状态流” 3、总结 前言 关于Java的设计模式分类如下&#xff1a; 对于状态模式…

three.js+WebGL踩坑经验合集(9.2):polygonOffsetFactor工作原理大揭秘

本篇延续上篇内容&#xff1a; three.jsWebGL踩坑经验合集(9.1):polygonOffsetUnits工作原理大揭秘-CSDN博客 跟polygonOffsetUnits相比&#xff0c;polygonOffsetFactor的系数m要复杂得多&#xff0c;因为它跟平面的视角相关&#xff0c;而不像r那样&#xff0c;在一个固定的…

C++高级特性与设计模式答案

目录 C++高级特性与设计模式:从资源管理到架构设计 一、C++高级特性:超越基础语法的利器 1. 什么是RAII(资源获取即初始化)?它有什么作用? 实现原理 核心作用 2. 什么是Pimpl惯用法?它有什么优势? 实现方式 核心优势 3. 什么是CRTP(奇异递归模板模式)?它的应用场景是…

论文阅读:arxiv 2025 Can You Trick the Grader? Adversarial Persuasion of LLM Judges

总目录 大模型安全相关研究&#xff1a;https://blog.csdn.net/WhiffeYF/article/details/142132328 Can You Trick the Grader? Adversarial Persuasion of LLM Judges https://arxiv.org/pdf/2508.07805 https://www.doubao.com/chat/17534937260220418 文章目录论文翻译…

6pen Art

本文转载自&#xff1a;6pen Art - Hello123工具导航 ** 一、&#x1f3a8; 6pen 是什么&#xff1f; 6pen 是一款由国内团队开发的 AI 绘画工具&#xff0c;让你只需用文字描述想法&#xff0c;就能瞬间生成惊艳的视觉画作。不管是写实风景还是抽象概念&#xff0c;它都能理…

Let‘s Encrypt证书在 Android5.x 的设备上报错

报错信息&#xff1a; com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.at com.android.volley.toolbox.NetworkUtility.shouldRetryException(N…

C语言数组名与sizeof的深层关联

要理解 “数组名本质代表整个数组的类型和内存块” 与 “sizeof(arr) 输出总字节数” 的关联&#xff0c;核心是抓住 sizeof 运算符的设计逻辑 和 数组类型的本质属性—— 这两者是直接挂钩的&#xff0c;我们一步步拆解&#xff1a;第一步&#xff1a;先明确 sizeof 的核心作用…

最近对javashop做了压力测试:百万级并发下完全不是问题

最近对 javashop 做了压力测试&#xff1a;百万级并发下完全不是问题 在电商行业竞争白热化的今天&#xff0c;系统性能直接决定了用户体验和企业商业成功。本文基于《Javashop 压测报告》&#xff0c;从技术架构、核心指标、业务价值三大维度深度解析其性能优势&#xff0c;并…

Java大厂面试实战:从Spring Boot到微服务架构的全链路技术解析

Java大厂面试实战&#xff1a;从Spring Boot到微服务架构的全链路技术解析 面试场景&#xff1a;某互联网大厂Java后端开发岗 面试官&#xff08;严肃&#xff09;&#xff1a;谢飞机&#xff0c;我们今天来聊点硬核的。先说说你对Java生态的理解。 谢飞机&#xff08;挠头&…

在分布式环境下正确使用MyBatis二级缓存

在分布式环境下使用 MyBatis 二级缓存&#xff0c;核心挑战是解决多节点缓存一致性问题。单机环境中&#xff0c;二级缓存是内存级别的本地缓存&#xff0c;而分布式环境下多节点独立部署&#xff0c;本地缓存无法跨节点共享&#xff0c;易导致 “缓存孤岛” 和数据不一致。本文…

血缘元数据采集开放标准:OpenLineage Integrations Apache Spark Quickstart with Jupyter

OpenLineage 是一个用于元数据和血缘采集的开放标准&#xff0c;专为在作业运行时动态采集数据而设计。它通过统一的命名策略定义了由作业&#xff08;Job&#xff09;、运行实例&#xff08;Run&#xff09;和数据集&#xff08;Dataset&#xff09; 组成的通用模型&#xff0…

人工智能之数学基础:离散随机变量和连续随机变量

本文重点 随机变量是概率论与统计学中的核心概念,用于将随机现象的抽象结果转化为可量化的数值。根据取值特性的不同,随机变量可分为离散型和连续型两大类。 在前面的课程中我们学习了随机变量,随机变量可以理解为一个函数,通过这个函数我们就可以将随机试验中的结果数值…

SQL语句(查询)

单表查询 常量查询 让我们来看一个具体的 SQL 代码和结果示例&#xff0c;假设有一张名为 orders 的数据表&#xff0c;它存储了订单信息&#xff0c;包括订单编号&#xff08;order_id&#xff09;、商品单价&#xff08;unit_price&#xff09;、购买数量&#xff08;quantit…

Java 大视界 -- Java 大数据机器学习模型在金融市场波动预测与资产配置动态调整中的应用

Java 大视界 -- Java 大数据机器学习模型在金融市场波动预测与资产配置动态调整中的应用引言&#xff1a;正文&#xff1a;一、Java 构建的金融数据处理架构1.1 多源数据实时融合与清洗1.2 跨市场数据关联&#xff08;风险传导分析&#xff09;二、Java 驱动的市场波动预测模型…

基于muduo库的图床云共享存储项目(一)

基于muduo库的图床云共享存储项目&#xff08;一&#xff09;项目简介整体架构项目依赖基础组件muduo库Channel类Poller / EpollPoller 类EventLoopAcceptor类FastDfsJSON的使用项目简介 当前所实现的项目是一个基于muduo库的图床云共享存储项目&#xff0c;他的主要的功能就是…

数字化转型三阶段:从信息化、数字化到数智化的战略进化

企业的数字化转型包括信息化、数字化、数智化三个阶段&#xff0c;并非一个阶段结束才能进入到下一个阶段。01信息化→业务数据化信息化是将企业在生产经营过程中产生的业务信息进行记录、储存和管理&#xff0c;通过电子终端呈现&#xff0c;便于信息的传播与沟通。信息化是对…