怎么用mytlab算层次分析法得到的比较矩阵

怎么用mytlab算层次分析法得到的比较矩阵,第1张

先确定判断矩阵

然后用以下程序就好了:

%层次分析法的matlab程序 %%%%diertimoxingyi

clc,clear

disp('输入判断矩阵')% 在屏幕显示这句话

A=input('A=')% 从屏幕接收判断矩阵

[n,n]=size(A)% 计算A的维度,这里是方阵,这么写不太好

x=ones(n,100)% x为n行100列全1的矩阵

y=ones(n,100)% y同x

m=zeros(1,100)% m为1行100列全0的向量

m(1)=max(x(:,1))% x第一列中最大的值赋给m的第一个分量

y(:,1)=x(:,1)% x的第一列赋予y的第一列

x(:,2)=A*y(:,1)% x的第二列为矩阵A*y(:,1)

m(2)=max(x(:,2))% x第二列中最大的值赋给m的第二个分量

y(:,2)=x(:,2)/m(2)% x的第二列除以m(2)后赋给y的第二列

p=0.0001i=2k=abs(m(2)-m(1))% 初始化p,i,k为m(2)-m(1)的绝对值

while k>p% 当k>p是执行循环体

i=i+1% i自加1

x(:,i)=A*y(:,i-1)% x的第i列等于A*y的第源塌乱i-1列

m(i)=max(x(:,i))% m的第i个分量等于x第i列中最衫模大的值

y(:,i)=x(:,i)/m(i)% y的第i列等于x的第i列除以m的第i个分量

k=abs(m(i)-m(i-1))% k等于m(i)-m(i-1)的绝对值

end

a=sum(y(:,i))% y的第i列的和赋予a

w=y(:,i)/a% y的第i列除以a

t=m(i)% m的第i个分量赋给t

disp('权向雹档量:')disp(w)% 显示权向量w

disp('最大特征值:')disp(t)% 显示最大特征值t

%以下是一致性检验

CI=(t-n)/(n-1)% t-维度再除以维度-1的值赋给CI

RI=[0 0 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]% 计算的标准

CR=CI/RI(n)% 计算一致性

下面的代码你可以参考一下,大部分的数据类型都包含了

public class MyMath{

//加法

public int add(int a,int b){

return a+b

}

public float add(float a,float b){

return a+b

}

public double add(double a,double b){

return a+b

}

public int add(byte a,byte b){

return a+b

}

public int add(short a,short b){

return a+b

}

public float add(float a,int b){

return a+b

}

public float add(int a,float b){

return a+b

}

public double add(int a,double b){

return a+b

}

public double add(double a,int b){

return a+b

}

public int add(int a,byte b){

return a+b

}

public int add(byte a,int b){

return a+b

}

public int add(short a,int b){

return a+b

}

public int add(int a,short b){

return a+b

}

public double add(double a,float b){

return a+b

}

public double add(float a,double b){

return a+b

}

//减法

public int subtraction(int a,int b){

return a-b

}

public float subtraction(float a,float b){

return a-b

}

public double subtraction(double a,double b){

return a-b

}

public int subtraction(byte a,byte b){

return a-b

}

public int subtraction(short a,short b){

return a-b

}

public float subtraction(float a,int b){

return a-b

}

public float subtraction(int a,float b){

return a-b

}

public double subtraction(int a,double b){

return a-b

}

public double subtraction(double a,int b){

return a-b

}

public int subtraction(int a,byte b){

return a-b

}

public int subtraction(byte a,int b){

return a-b

}

public int subtraction(short a,int b){

return a-b

}

public int subtraction(int a,short b){

return a-b

}

public double subtraction(double a,float b){

return a-b

}

public double subtraction(float a,double b){

return a-b

}

}

#这个还是比较简单的

a = input("a=")

b = input("b=")

print("a+b=",a+b)

print("埋侍a-b=",a-b)

print("axb=",a*b)

print("a/b=",a/b)

print("平均值:型液埋"卜蚂,(a+b)/2)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12351742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存