2个回答
展开全部
判断矩阵一致性检验的Matlab源程序代码
Matlab源程序代码如下:
clc
clear
disp('请输入判断矩阵A')
A=input('A=');
[n,n] = size(A)
%方法1: 算术平均法
Sum_A = sum(A);
SUM_A = repmat(Sum_A,n,1);
Stand_A = A ./ SUM_A;
Stand_A = A ./ Sum_A; % 这样也可以的
disp('算术平均法求权重的结果为:');
disp(sum(Stand_A,2)./n)
%方法2: 几何平均法
Prduct_A = prod(A,2);
Prduct_n_A = Prduct_A .^ (1/n);
disp('几何平均法求权重的结果为:');
disp(Prduct_n_A ./ sum(Prduct_n_A))
%方法3: 特征值法求权重
[V,D] = eig(A);
Max_eig = max(max(D))
[r,c]=find(D == Max_eig , 1);
disp('特征值法求权重的结果为:');
disp( V(:,c) ./ sum(V(:,c)) )
%计算一致性比例CR
CI = (Max_eig - n)/(n-1);
RI=[0 0.0001 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];
% 这里n=2时,一定是一致矩阵,所以CI = 0,为了避免分母为0,将这里的第二个元素改为了很接近0的正数
CR=CI/RI(n);
disp('一致性指标CI=');disp(CI);
disp('一致性比例CR=');disp(CR);
if CR<0.10
disp('因为CR<0.10,所以该判断矩阵A的一致性可以接受!');
else
disp('注意:CR >=
0.10,因此该判断矩阵A需要进行修改!');
end
Matlab源程序代码如下:
clc
clear
disp('请输入判断矩阵A')
A=input('A=');
[n,n] = size(A)
%方法1: 算术平均法
Sum_A = sum(A);
SUM_A = repmat(Sum_A,n,1);
Stand_A = A ./ SUM_A;
Stand_A = A ./ Sum_A; % 这样也可以的
disp('算术平均法求权重的结果为:');
disp(sum(Stand_A,2)./n)
%方法2: 几何平均法
Prduct_A = prod(A,2);
Prduct_n_A = Prduct_A .^ (1/n);
disp('几何平均法求权重的结果为:');
disp(Prduct_n_A ./ sum(Prduct_n_A))
%方法3: 特征值法求权重
[V,D] = eig(A);
Max_eig = max(max(D))
[r,c]=find(D == Max_eig , 1);
disp('特征值法求权重的结果为:');
disp( V(:,c) ./ sum(V(:,c)) )
%计算一致性比例CR
CI = (Max_eig - n)/(n-1);
RI=[0 0.0001 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];
% 这里n=2时,一定是一致矩阵,所以CI = 0,为了避免分母为0,将这里的第二个元素改为了很接近0的正数
CR=CI/RI(n);
disp('一致性指标CI=');disp(CI);
disp('一致性比例CR=');disp(CR);
if CR<0.10
disp('因为CR<0.10,所以该判断矩阵A的一致性可以接受!');
else
disp('注意:CR >=
0.10,因此该判断矩阵A需要进行修改!');
end
展开全部
选择几本经典教材,对照书中的代码在按照自己的理解来编写一遍程序,这就是最好的学习方法。Matlab是一款十分有用的科学计算软件(也是一款不错的IDE),学好它对工作和科研都大有用处。下面我就从四个方面来介绍一下matlab入门时的一些学习要点。
矩阵操作。Matlab最为强大的的地方据在于它的矩阵计算能力,Matlab其他许多模块的计算也都是把运算转换为矩阵来计算的。要能够使用M语言对各式各样的矩阵运算进行操作,最基本的要能用Matlab编写程序来完成线性代数课本上的所有习题。再高阶一点的可以用它来计算一些基础的高等数学习题。
M语言编程。Matlab不止能进行科学计算,同样能够用来编写各种程序(使用M语言)。学习Matlab,要能够编写GUI程序,能够对各类文件进行IO处理,能够熟练使用M语言对工作生活中的很多问题进行编程处理。能够做到这些对于初学者就很不错了。
数据可视化。Matlab中有丰富的工具来实现数据可视化,对于这些工具,要能够熟练掌握。对于常见的统计数据以及矩阵,能够按照要求以合理的方式呈现出来(可视化结果)。
科学计算。Matlab中有大量的科学计算工具。对于初学者而言,需要掌握插值拟合、数据拟合、微分方程求解、级数求解、方程组求解(包括非线性方程组)。只有掌握这些技术。才能够应付一些普通的工程技术(及科研)问题。
matlab需要学习的地方还有很多,欢迎打击关注太科罗技,并在下方积极留言讨论。
太科罗技
1880粉丝 · 1183赞
搜索
自学编程python方法
matlab基本编程步骤
从零开始学python编程
python 和matlab的区别
matlab小波滤波详解
初学matlab哪本书好
矩阵操作。Matlab最为强大的的地方据在于它的矩阵计算能力,Matlab其他许多模块的计算也都是把运算转换为矩阵来计算的。要能够使用M语言对各式各样的矩阵运算进行操作,最基本的要能用Matlab编写程序来完成线性代数课本上的所有习题。再高阶一点的可以用它来计算一些基础的高等数学习题。
M语言编程。Matlab不止能进行科学计算,同样能够用来编写各种程序(使用M语言)。学习Matlab,要能够编写GUI程序,能够对各类文件进行IO处理,能够熟练使用M语言对工作生活中的很多问题进行编程处理。能够做到这些对于初学者就很不错了。
数据可视化。Matlab中有丰富的工具来实现数据可视化,对于这些工具,要能够熟练掌握。对于常见的统计数据以及矩阵,能够按照要求以合理的方式呈现出来(可视化结果)。
科学计算。Matlab中有大量的科学计算工具。对于初学者而言,需要掌握插值拟合、数据拟合、微分方程求解、级数求解、方程组求解(包括非线性方程组)。只有掌握这些技术。才能够应付一些普通的工程技术(及科研)问题。
matlab需要学习的地方还有很多,欢迎打击关注太科罗技,并在下方积极留言讨论。
太科罗技
1880粉丝 · 1183赞
搜索
自学编程python方法
matlab基本编程步骤
从零开始学python编程
python 和matlab的区别
matlab小波滤波详解
初学matlab哪本书好
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询