//计算节点的特征向量
        private double[] normalize(double[][] matrix)
        {
            int row = matrix.Length;
            int column = matrix[0].Length;
            double[] Sum_column = new double[column];
            double[] w = new double[row];
            if (normalizeType == "和法")
            {                
                for (int i = 0; i < column; i++)
                {
                    Sum_column[i] = 0;
                    for (int j = 0; j < row; j++)
                    {
                        Sum_column[i] += matrix[j][i];
                    }
                }
                //进行归一化,计算特征向量W
                
                for (int i = 0; i < row; i++)
                {
                    w[i] = 0;
                    for (int j = 0; j < column; j++)
                    {
                        w[i] += matrix[i][j] / Sum_column[j];
                    }
                    w[i] /= row;
                }
            }
            if (normalizeType == "根法")
            {
                for (int i = 0; i < column; i++)
                {
                    Sum_column[i] = 0;
                    for (int j = 0; j < row; j++)
                    {
                        Sum_column[i] += matrix[j][i];
                    }
                }
                //进行归一化,计算特征向量W
                double sum = 0;
                for (int i = 0; i < row; i++)
                {
                    w[i] = 1;
                    for (int j = 0; j < column; j++)
                    {
                        w[i] *= matrix[i][j] / Sum_column[j];
                    }
                    
                    w[i]=Math.Pow(w[i],1.0/row);                    
                    sum += w[i];
                }
                for (int i = 0; i < row; i++)
                {
                    w[i] /= sum;
                }
            }
            if (normalizeType == "幂法")
            {
                double[] w0 = new double[row];
                for (int i = 0; i < row; i++) 
                {
                    w0[i] = 1.0/row;
                }
                //一般向量W(k+1)
                double[] w1 = new double[row];
                //W(k+1)的归一化向量                
                double sum = 1.0;
                double d = 1.0;
                double delt = 0.00001;
                while (d > delt) 
                {
                    d=0.0;
                    sum = 0;
                    //获取向量
                    for (int j = 0; j < row; j++) 
                    {
                        w1[j] = 0;
                        for (int k = 0; k < row; k++)
                        {
                            w1[j] += matrix[j][k] * w0[k];
                        }
                        sum += w1[j];
                    }
                    //向量归一化 
                    for (int k = 0; k < row; k++) 
                    {
                        w[k] = w1[k] / sum; 
                        d = Math.Max(Math.Abs(w[k] - w0[k]), d);//最大差值
                        w0[k] = w[k];//用于下次迭代使用 
                    }
                }                
            }
            return w;
        }

C# AHP层次分析法计算特征向量(和法、根法、幂法)相关推荐

  1. 【AHP层次分析法python部分实现】

    提示:仅用到AHP层次分析法的部分功能因此只完成了python的部分实现 目录 前言 一.AHP是什么? 层次分析法的特点: 层次分析法的原理: 二.使用步骤 参考视频 前言 提示:这里可以添加本文要 ...

  2. AHP层次分析法分析流程

    AHP层次分析法分析流程: 一.案例背景 当前有一项研究,想要构建公司绩效评价指标体系,将一级指标分为4个,分别是:服务质量.管理水平.运行成本.安全生产,现在想要确定4个指标的权重. AHP层次分析 ...

  3. Matlab基于SEIRD模型,NSIR预测模型,AHP层次分析法新冠肺炎预测与评估分析

    全文链接:http://tecdat.cn/?p=32175 分析师:Jiahui Zhao 新型冠状病毒肺炎COVID-19 给中国乃至全世界都带来了深重的灾难,对世界经济也造成了不可逆的影响(点击 ...

  4. AHP层次分析法与python代码讲解(处理论文、建模)

    目录 AHP是啥 题目  ①构建阶梯层次结构 ②构建判断矩阵 ④综合算术平均法 .几何平均法.特征值法求权重  方法1:算术平均法求权重 一般步骤  表达式解释 代码实现 方法2:几何平均法求权重 一 ...

  5. 用AHP层次分析法挑选最佳结婚对象

    为了使文章读起来比较有趣,假设屏幕前的你现在中了彩票头奖,奖金5亿RMB.于是你彻底解放不用再写代码啦,天天开辆法拉利到处玩,来给你介绍对象的媒人踏破家门.经过初赛.复赛.泳装.晚装.才艺展示之后,仍 ...

  6. AHP层次分析法(Analytic Hierarchy Process)——个人学习笔记

    目录 一.相关知识与例子 二.代码实现 一.相关知识与例子 层次分析法是数学建模过程中最基础的模型之一,主要应用于评价问题.层次分析法是对一些较为复杂.较为模糊的问题作出决策的简易方法,其适用于那些难 ...

  7. AHP层次分析法在水利中的实践技术应用

    原文:AHP层次分析法在水利中的实践技术应用 内容简述: 1.认识 AHP,掌握 AHP 的基本原理,优缺点及建模的步骤.以手算案例的方式,熟 悉层次分析法的计算过程,为后期学习软件夯实理论基础. 2 ...

  8. AHP层次分析法matlab实现

    AHP层次分析法的步骤和matlab实现方法 AHP (Analytic Hierarchy Process)层次分析法是美国运筹学家T. L. Saaty教授于二十世纪70年代提出的一种实用的多方案 ...

  9. MATLAB AHP AHP层次分析法code 自写代码 完美运行。 权重设计

    MATLAB AHP AHP层次分析法code 自写代码 完美运行. 权重设计 ID:5150612144581085YouthOG

  10. 数学建模之AHP层次分析法

    一.定义 层次分析法,简称AHP,是指将与决策总是有关的元素分解成目标.准则.方案等层次,在此基础之上进行定性和定量分析的决策方法.该方法是美国运筹学家匹茨堡大学教授萨蒂于20世纪70年代初,在为美国 ...

最新文章

  1. TabLayout+ViewPager更新fragment的ui数据
  2. WEB接口测试之Jmeter接口测试自动化 (一)(初次接触)
  3. 让Android Studio代码提示不区分大小写的方法
  4. Java黑皮书课后题第7章:*7.11(统计:计算标准差)编程练习题5.45计算数字的标准差。本题…计算标准差,使用一个数组存储x的每个数。编写测试程序,提示用户输入10个数字,显示平均值和标准差
  5. asp.net core使用serilog将日志推送到腾讯云日志服务
  6. P4351-[CERC2015]Frightful Formula【组合数学,MTT】
  7. android uber启动动画,仿 Uber 视频背景登录界面以及登录动画
  8. html读取oss_阿里云使用js 实现OSS图片上传、获取OSS图片列表(示例代码)
  9. Unity3d Android安卓JDK9打包失败
  10. tomcat ng mysql 集成_整合nginx,tomcat,mysql的安装与配置
  11. 微软十月补丁星期二值得关注的0day及其它
  12. 新颖性搜索(Novelty Search,NS)算法实践——利用NS算法解决迷宫导航问题
  13. python判断ip能否ping通_python 检查IP是否能ping通,并且分别导入两个文件
  14. spss clementine Twostep Cluster(两步聚类 二阶聚类)
  15. CodeForces Round #295 Div.2
  16. VC6.0中使用Activex控件小结
  17. arcgis制图汇总
  18. 福州到横店嘉兴三日游(仅供参考)
  19. 领带的10种打法图解
  20. canvas教程12-阴影

热门文章

  1. 通过u盘启动计算机使用ghost安装系统步骤,详细教您如何使用u盘启动盘手动ghost备份系统...
  2. java导出dbf文件_Java 导出dbf文件
  3. 小龙 Dev-C++ 5.16 发布了
  4. python从excel中读取数据 写入word_Java调用python脚本,读取excel表格数据并写入word文档-Go语言中文社区...
  5. 页面风格设定参考——色彩及其效
  6. 亲爱的,别把上帝缩小了 ---- 读书笔记1
  7. 你为什么那么努力还是不开心!
  8. iGoogle自定义
  9. 排列组合解析与例题总结
  10. 2020年10月最新免费加速下载百度网盘文件方法