层次分析法java_层次分析法java实现
做毕设时因为恐惧层次分析法的计算量,所以通过程序实现了.
层次分析法计算过程的程序化实现代码
package e_5_28;
/*
* author 曾绍涛
* time 2009-5-29
* function 层次分析法的程序化计算
*/
import java.util.HashMap;
class Caltest1
{
static int n;//矩阵的阶数
double cal[][];//层次比较矩阵,归一化后的
double cal1[][];//层次比较矩阵
static HashMap hm=null;//将12阶的成对比较矩阵的平均随机一致性指标值保存在哈希映射表里
//设置平均随机一致性指标值
public static void setHm()
{
hm=new HashMap();hm.put(1, 0);hm.put(2, 0);
hm.put(3, 0.58);hm.put(4, 0.89);hm.put(5, 1.12);
hm.put(6, 1.24);hm.put(7, 1.32);hm.put(8, 1.41);
hm.put(9, 1.45);hm.put(10, 1.49);hm.put(11, 1.52);
hm.put(12, 1.54);
}
public int getN(){
return n;
}
public void setN(int n){
this.n = n;
}
//原始成对比较矩阵列向量的归一化
public void colvectortoone(double arr[])//列向量的归一化
{
arr=new double[n];
System.out.println("*****************每列求加和开始*****************");
for(int j=0;j
{
for(int i=0;i
{
arr[j]+=cal[i][j];//每列求加和
}
}
System.out.println("*****************每列求加和完毕*****************");
System.out.println("*****************打印行值和进行验证开始*****************");
for(int i=0;i
{
System.out.println(arr[i]);//打印行值和进行验证
}
System.out.println("*****************打印行值和进行验证完毕*****************");
System.out.println("*****************列向量归一化开始*****************");
for(int j=0;j
{
for(int i=0;i
{
cal[i][j]=cal[i][j]/arr[j];//列向量归一化
}
}
System.out.println("*****************列向量归一化完毕*****************");
System.out.println("*****************打印归一化后的数组开始*****************");
for(int j=0;j
{
for(int i=0;i
{
System.out.print(cal[j][i]+"\t");//列向量归一化
}
System.out.println();
}
System.out.println("*****************打印归一化后的数组结束*****************");
}
//得到归一化矩阵各行的行和
public double [] rowsum(double arr1[])//按行求和,并返回求得的数组
{
arr1=new double[n];
for(int j=0;j
{
for(int i=0;i
{
arr1[j]+=cal[j][i];//每行求加和
}
}
System.out.println("*****************行和打印验证开始*****************");
for(int j=0;j
{
System.out.println(arr1[j]);
}
System.out.println("*****************行和打印验证结束*****************");
//以下对arr1[]进行归一化
double sum=0;
for(int i=0;i
{
sum+=arr1[i];
}
System.out.println("*****************向量归一化计算开始*****************");
for(int i=0;i
{
arr1[i]=arr1[i]/sum;
}
System.out.println("*****************向量归一化计算结束*****************");
System.out.println("*****************打印权重开始*****************");
for(int j=0;j
{
System.out.println(arr1[j]);
}
System.out.println("*****************打印权重结束*****************");
return arr1;
}
//求最大特征值
public double getnamda(double arr1[],double arr2[])
{
arr2=new double[n];
for(int j=0;j
{
for(int i=0;i
{
arr2[j]+=cal1[j][i]*arr1[i];//得到A*w
}
}
System.out.println("*****************打印A*w开始*****************");
for(int i=0;i
{
System.out.println(arr2[i]);//打印权重向量
}
System.out.println("*****************打印A*w结束*****************");
double L=0;//5*namda
for(int i=0;i
{
L+=arr2[i]/arr1[i];
}
double namda=L/n;
return namda;
}
层次分析法java_层次分析法java实现相关推荐
- 扩展欧几里得算法java_扩展欧几里得算法
首先.扩展欧几里得定理:对于两个不全为0的整数a.b,必存在一组解x,y,使得ax+by==gcd(a,b); int gcd(int a,intb) {intt,d;if(b==0) { x=1; ...
- 怎样计算权重?——层次分析法、熵值法:工具+数据+案例+代码
1权重系数的计算 计算权重是一种常见的分析方法,在实际研究中,需要结合数据的特征情况进行选择,比如数据之间的波动性是一种信息量,那么可考虑使用CRITIC权重法或信息量权重法:也或者专家打分数据,那么 ...
- 基于层次分析法与熵权法的主客观组合赋权模型(原创:小青龙)
基于层次分析法与熵权法的主客观组合赋权模型 组合赋权大家可以尝试进行改变,一个主观一个客观.(原创:小青龙) 简介 权重是用来衡量总体中各单位标志值在总体中作用大小的数值, 用来描述单因子在因子集 ...
- 综合评价分析法:熵权法matlab实现+层次分析法matlab实现
综合评价分析法:熵权法matlab实现+层次分析法matlab实现 层次分析法matlab实现 clc;clear%层次分析法matlab实现A=[1 1/9 1/2 1/4 1/6 9 1 6 5 ...
- ahp层次分析法_层次分析法在历史街区研究中的应用简析
摘要 AHP (Analytic Hierarchy Process)层次分析法通常被运用于解决多目标.多标准.多要素.多层次的非结构化的复杂决策性问题,特别是战略决策性问题,在建筑.规划.风景园林等 ...
- 【论文速递】基于改进层次分析法与熵权法的目标选择模型
[论文原文]:基于改进层次分析法与熵权法的目标选择模型 作者信息: 张指辉,张毅,李健宁 获取地址:https://kns.cnki.net/kcms2/article/abstract?v=3uoq ...
- java 象限分析_四象限分析法
四象限分析法,也叫矩阵分析法,是指将事物(如产品.服务等)的两个重要属性(指标)作为分析的依据,进行分类关联分析,找出解决问题的一种分析方法. 以属性A为横轴,属性B为纵轴,组成一个坐标系,在两坐标轴 ...
- python灰色关联度分析_灰色关联分析法 python
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本文2290字,预计阅读需10分钟: 关联分析(association anal ...
- 不重不漏的分析方法:MECE分析法
MECE分析法 麦肯锡的巴巴拉·明托(Barbara Minto)顾问在金字塔原理中提到的一个重要原则就是MECE,那么满足MECE的分析方法就是MECE分析法,全称 Mutually Exclusi ...
最新文章
- python装饰器函数-Python函数装饰器指南
- 一次 Druid 连接池泄露引发的血案!
- TI-BLE协议栈的GAP
- java 观察者模式_Java技术干货分享:深入理解观察者模式原理与技术
- Kettle连接Hive2的问题解决思路
- 56秒看完131年英格兰顶级联赛冠军排行:利物浦时隔30年再夺冠
- aes加密 js_吊打SRC的加密传输实现SQLi挖掘
- mysql 额外内存池_MySQL探秘(三):InnoDB的内存结构和特性
- oracle database version,Oracle Database Version History
- xmos驱动_独家!XMOS发表最新Xcore.ai“跨界处理器”
- c语言编写打字母游戏代码,求一个用C语言编写的小游戏代码
- Springboot专利申请服务平台 毕业设计-附源码260839
- patch补丁文件格式
- 使用axure RP8 画UI原型图
- 为什么总是封板又打开涨停_多次涨停多次被打开,涨停板打开然后封住反复
- html中如何使用input表单隐藏域?
- Showwindow及参数介绍
- 科技爱好者周刊(第 108 期):阵地战与奇袭战
- mac 设置网红屏保
- app推广:转化率低才是最大的浪费
热门文章
- 松下PLC FP-XHC60T 程序 两个PLC通信控制11个轴 程序稳定已批量生产 注释完整 带威纶通触摸屏程序
- python opencv 读取视频保存视频片段和图片
- DBA平均月薪17000,入职3年感叹这份工作实在是太难了!
- linux和华为云计算区别,华为云计算HCIE-Cloud面试宝典(九)
- vue2实现海康威视根据海康插件进行监控实时预览和回放功能,全套代码,开箱即用。
- JAVA——多线程【线程终止、中断、插队】
- 打开回收站提示“回收站已损坏是否清空该驱动器上的回收站“解决方法
- [转] COM编程总结
- myeclipse下载
- Android Context 到底是什么?