//计算节点的特征向量
        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. 解決yum [Errno -1] Metadata file does not match checksum
  2. Boost:无序的bimap双图的测试程序
  3. glid加载不出来图片
  4. android jni通过cmake使用第三方静态库和动态库
  5. Python 使用 itchat+pillow 实现微信消息自动回复
  6. Sublime Text 的快捷方式的用法
  7. 【渝粤题库】广东开放大学社会学概论形成性考核
  8. Nacos服务发现控制台预览
  9. A + B Problem II 大数加法
  10. 期刊投稿状态_这些SCI期刊的投稿显示状态是什么意思?
  11. idea自动导包_IDEA已经世界第一了,听说你还不会?
  12. 转载:Xshell使用教程
  13. 路由器WIFI密码忘记了怎么办
  14. range-coder使用
  15. 微信与QQ聊天记录从旧电脑到新电脑之间无缝备份迁移
  16. e900v21e 装第三方_创维e900v21e刷机包
  17. 最全面的shiro知识点学习
  18. 动态规划算法04-最长递增子序列问题
  19. DedeCMS找后台目录漏洞
  20. 【MySQL进阶】存储过程及存储函数

热门文章

  1. iPhone前置排线教程
  2. RV1109人脸识别门禁闸机主板方案
  3. 堡垒机阿里云安装包安装
  4. 大学几年一直在“半瓶哐镗”的我
  5. excel随机数_EXCEL随机数函数rand、randbetween
  6. word分节符设置与不同页眉页脚页码设置
  7. “红黑树”,我一脸懵逼......
  8. TP5整合阿里云OSS上传文件第二节,异步上传头像(下)
  9. 小程序容器在一体化在线政务服务平台中的应用
  10. vue实现倒计时60秒