matlab中如何用特征值法,和积法和对数最小偏差法求解正互反判断矩阵的排序,举例并写出解题过程
时间: 2024-03-18 21:42:58 浏览: 221
针对正互反判断矩阵的排序问题,可以使用特征值法、积法和对数最小偏差法进行求解。下面以一个3x3的正互反判断矩阵为例,介绍三种方法的解题过程。
假设正互反判断矩阵为:
A = [1, 3, 5;
1/3, 1, 2;
1/5, 1/2, 1]
1. 特征值法
步骤1:计算矩阵A的特征值和特征向量。
[V, D] = eig(A)
其中,V为矩阵A的特征向量,D为矩阵A的特征值对角矩阵。
步骤2:将特征值按从大到小的顺序排列,并将对应的特征向量按相同顺序排列。
[d, index] = sort(diag(D), 'descend');
V = V(:, index);
步骤3:计算权重向量。
w = V(:, 1) / sum(V(:, 1))
其中,权重向量w即为特征值最大的特征向量,其元素之和为1。
步骤4:计算一致性指标及其随机一致性指标。
CI = (d(1) - 3) / (3 - 1);
RI = [0, 0, 0.58, 0.90, 1.12, 1.24, 1.32, 1.41, 1.45, 1.49];
CR = CI / RI(3);
其中,RI为随机一致性指标,根据矩阵大小选择对应的值。
步骤5:判断结果是否合理。
如果CR小于0.1,则认为结果是可接受的。
2. 积法
步骤1:将矩阵A的每一行元素相乘,得到向量B。
B = prod(A, 2);
其中,prod是matlab中的函数,用于计算矩阵每一行元素的积。
步骤2:计算权重向量。
w = B / sum(B);
其中,权重向量w即为向量B的归一化值,其元素之和为1。
步骤3:计算一致性指标及其随机一致性指标。
CI = (sum(B) / 3)^(1/3) - 1;
RI = [0, 0, 0.58, 0.90, 1.12, 1.24, 1.32, 1.41, 1.45, 1.49];
CR = CI / RI(3);
其中,RI为随机一致性指标,根据矩阵大小选择对应的值。
步骤4:判断结果是否合理。
如果CR小于0.1,则认为结果是可接受的。
3. 对数最小偏差法
步骤1:计算矩阵A的对数值。
B = log(A);
步骤2:计算每一行的平均值。
C = mean(B, 2);
步骤3:计算每一列的权重。
w = exp(C) / sum(exp(C));
其中,exp是matlab中的函数,用于计算自然指数的幂。
步骤4:计算一致性指标及其随机一致性指标。
D = B - repmat(C, 1, 3);
E = sum(D .^ 2, 2);
F = sum(E) / (3 * (3 - 1));
CI = F / (log(3));
RI = [0, 0, 0.58, 0.90, 1.12, 1.24, 1.32, 1.41, 1.45, 1.49];
CR = CI / RI(3);
其中,repmat是matlab中的函数,用于将向量复制成矩阵。
步骤5:判断结果是否合理。
如果CR小于0.1,则认为结果是可接受的。
以上三种方法均可用于正互反判断矩阵的排序,具体选择哪种方法取决于实际情况。
阅读全文