使用Matlab實現AHP演算法
clc,clear
fid=fopen('txt3.txt','r');
n1=6;n2=3;
a=[];
for i=1:n1
tmp=str2num(fgetl(fid));
a=[a;tmp]; %讀準則層判斷矩陣
end
for i=1:n1
str1=char(['b',int2str(i),'=[];']);
str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']);
eval(str1);
for j=1:n2
tmp=str2num(fgetl(fid));
eval(str2); %讀方案層的判斷矩陣
end
end
ri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; %一致性指標
[x,y]=eig(a);
lamda=max(diag(y));
num=find(diag(y)==lamda);
w0=x(:,num)/sum(x(:,num)); %w0表示特徵向量除以特徵向量的代數和,表示層次單排序
cr0=(lamda-n1)/(n1-1)/ri(n1) %表示準則層判斷矩陣的一致性檢驗
for i=1:n1
[x,y]=eig(eval(char(['b',int2str(i)])));
lamda=max(diag(y));
num=find(diag(y)==lamda);
w1(:,i)=x(:,num)/sum(x(:,num)); %表示方案層各個判斷矩陣的層次單排序,層次總排序矩陣等於準則層層次單排序乘以方案曾層次單排序
cr1(i)=(lamda-n2)/(n2-1)/ri(n2); %表示方案層各個判斷矩陣的一致性檢驗
end
cr0,cr1, ts=w1*w0, cr=cr1*w0 %列印出一致性檢驗標準和層次總排序
fid=fopen('txt3.txt','r');
n1=6;n2=3;
a=[];
for i=1:n1
tmp=str2num(fgetl(fid));
a=[a;tmp]; %讀準則層判斷矩陣
end
for i=1:n1
str1=char(['b',int2str(i),'=[];']);
str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']);
eval(str1);
for j=1:n2
tmp=str2num(fgetl(fid));
eval(str2); %讀方案層的判斷矩陣
end
end
ri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; %一致性指標
[x,y]=eig(a);
lamda=max(diag(y));
num=find(diag(y)==lamda);
w0=x(:,num)/sum(x(:,num)); %w0表示特徵向量除以特徵向量的代數和,表示層次單排序
cr0=(lamda-n1)/(n1-1)/ri(n1) %表示準則層判斷矩陣的一致性檢驗
for i=1:n1
[x,y]=eig(eval(char(['b',int2str(i)])));
lamda=max(diag(y));
num=find(diag(y)==lamda);
w1(:,i)=x(:,num)/sum(x(:,num)); %表示方案層各個判斷矩陣的層次單排序,層次總排序矩陣等於準則層層次單排序乘以方案曾層次單排序
cr1(i)=(lamda-n2)/(n2-1)/ri(n2); %表示方案層各個判斷矩陣的一致性檢驗
end
cr0,cr1, ts=w1*w0, cr=cr1*w0 %列印出一致性檢驗標準和層次總排序
相關文章
- FFT演算法實現與分析MATLABFFT演算法Matlab
- NSGA2 演算法Matlab實現演算法Matlab
- 蟻群演算法原理及Matlab實現演算法Matlab
- 排隊論演算法的matlab實現演算法Matlab
- kmeans聚類演算法matlab實現聚類演算法Matlab
- 蒙特卡羅演算法的matlab實現演算法Matlab
- Matlab與自己實現的平滑演算法對比Matlab演算法
- 模擬退火演算法舉例及其matlab實現演算法Matlab
- MATLAB實現頻數表——hist的使用Matlab
- 使用matlab實現遺傳演算法解決飛行員偵查問題Matlab演算法
- 差分進化演算法介紹及matlab實現演算法Matlab
- 量子圖形加密演算法的MATLAB程式碼實現加密演算法Matlab
- MATLAB實現頻數直方圖——hist的使用Matlab直方圖
- 基於粒子群演算法的分組揹包MATLAB實現演算法Matlab
- 基於MATLAB的指紋識別演算法模擬實現Matlab演算法
- 數值積分公式及龍貝格(Romberg)演算法實現matlab公式演算法Matlab
- sobel運算元,matlab實現Matlab
- 水晶藍蓮花(Matlab實現)Matlab
- KPCA的matlab實現Matlab
- svpwm的matlab模擬實現Matlab
- 使用DQN演算法實現遊戲智慧演算法遊戲
- Matlab 實現介面相應滑鼠事件Matlab事件
- 奇異值分解以及matlab實現Matlab
- 主成分分析及其matlab實現Matlab
- 粒子群優化演算法對BP神經網路優化 Matlab實現優化演算法神經網路Matlab
- 限流器演算法實現(JUC原子類使用實踐)演算法
- 牛頓插值 C++ 和 Matlab實現C++Matlab
- 灰度共生矩陣GLCM及其matlab實現矩陣Matlab
- 【演算法】使用Golang實現加權負載均衡演算法演算法Golang負載
- MATLAB實戰系列(十一)-多種群遺傳演算法的函式優化演算法(附MATLAB程式碼)Matlab演算法函式優化
- 使用 Redis 實現限流——滑動視窗演算法Redis演算法
- Matlab實現模擬調製與解調Matlab
- 運籌學——matlab實現單純形法Matlab
- [譯]使用 Python 實現接縫裁剪演算法Python演算法
- C#中使用CAS實現無鎖演算法C#演算法
- Java中使用Stream實現6種演算法教程Java演算法
- 矩陣LU分解---使用MATLAB和DEV-C++實現的程式碼過程矩陣MatlabdevC++
- 乾貨回顧丨機器學習筆記-----AP(affinity propagat)演算法講解及matlab實現機器學習筆記演算法Matlab