层次分析法之matlab
目錄
1.簡(jiǎn)介
2.算法解析
3.實(shí)例分析
3.1 構(gòu)造矩陣
3.2 查看行數(shù)和列數(shù)
3.3 求特征向量
3.4 找到最大特征值和最大特征向量
3.5 計(jì)算權(quán)重
3.6 一致性檢驗(yàn)
3.7 計(jì)算評(píng)分
完整代碼
1.簡(jiǎn)介
? ? ? ? 一種主觀賦權(quán)的方法,在數(shù)據(jù)集比較小,實(shí)在不好比較的時(shí)候可以用這個(gè)方法,如果有別的選擇還是盡量不要用這個(gè)算法比較好。
????????層次分析法的特點(diǎn)是在對(duì)復(fù)雜的決策問題的本質(zhì)、影響因素及其內(nèi)在關(guān)系等進(jìn)行深入分析的基礎(chǔ)上,利用較少的定量信息使決策的思維過程數(shù)學(xué)化,從而為多目標(biāo)、多準(zhǔn)則或無結(jié)構(gòu)特性的復(fù)雜決策問題提供簡(jiǎn)便的決策方法。尤其適合于對(duì)決策結(jié)果難于直接準(zhǔn)確計(jì)量的場(chǎng)合。
????????層次分析法是將決策問題按總目標(biāo)、各層子目標(biāo)、評(píng)價(jià)準(zhǔn)則直至具體的備投方案的順序分解為不同的層次結(jié)構(gòu),然后得用求解判斷矩陣特征向量的辦法,求得每一層次的各元素對(duì)上一層次某元素的優(yōu)先權(quán)重,最后再加權(quán)和的方法遞階歸并各備擇方案對(duì)總目標(biāo)的最終權(quán)重,此最終權(quán)重最大者即為最優(yōu)方案。這里所謂“優(yōu)先權(quán)重”是一種相對(duì)的量度,它表明各備擇方案在某一特點(diǎn)的評(píng)價(jià)準(zhǔn)則或子目標(biāo),標(biāo)下優(yōu)越程度的相對(duì)量度,以及各子目標(biāo)對(duì)上一層目標(biāo)而言重要程度的相對(duì)量度。層次分析法比較適合于具有分層交錯(cuò)評(píng)價(jià)指標(biāo)的目標(biāo)系統(tǒng),而且目標(biāo)值又難于定量描述的決策問題。其用法是構(gòu)造判斷矩陣,求出其最大特征值。及其所對(duì)應(yīng)的特征向量W,歸一化后,即為某一層次指標(biāo)對(duì)于上一層次某相關(guān)指標(biāo)的相對(duì)重要性權(quán)值。
2.算法解析
例如某研究對(duì)象的指標(biāo)集
然后通過以下表格復(fù)制指標(biāo)n對(duì)指標(biāo)m的重要性
判斷矩陣匯總指標(biāo)n對(duì)指標(biāo)m滿足公式
然后通過eig函數(shù)求取矩陣的特征向量
一致性檢驗(yàn)
其中RI根據(jù)指標(biāo)個(gè)數(shù)通過下表選擇對(duì)應(yīng)的RI值
如果CR<0.10時(shí),則建立的判斷矩陣的一致性認(rèn)為是可接受的,否則應(yīng)對(duì)其進(jìn)行修正。
3.實(shí)例分析
????????小美要選男朋友了,現(xiàn)有小明、小李兩個(gè)人選,到底該選誰呢?現(xiàn)在小美要從四個(gè)指標(biāo)去選擇,分別是身高、顏值、學(xué)歷、性格。小美對(duì)他們各個(gè)指標(biāo)的評(píng)分如下:
由于兩者各有其優(yōu)點(diǎn),實(shí)在令人難以抉擇,于是小美根據(jù)自己的主觀判斷,認(rèn)為如下:
- 1.身高與顏值比較,身高稍重要
- 2.身高與學(xué)歷相比,同樣重要
- 3.身高和性格相比,性格稍重要
- 4.顏值和學(xué)歷相比,學(xué)歷介于相同重要和稍微重要之間
- 5.顏值和性格相比,性格明顯重要
- 6.性格和學(xué)歷相比,性格稍重
| 身高 | 顏值 | 學(xué)歷 | 性格 | |
| 身高 | 1 | 3 | 1 | 1/3 |
| 顏值 | 1/3 | 1 | 1/2 | 1/5 |
| 學(xué)歷 | 1 | 2 | 1 | 1/3 |
| 性格 | 3 | 5 | 3 | 1 |
由此,可得到判斷矩陣
3.1 構(gòu)造矩陣
P=[8,7,6,8;7,8,8,7] %每一行代表一個(gè)對(duì)象的指標(biāo)評(píng)分 %A為自己構(gòu)造的輸入判別矩陣 A=[1,3,1,1/3;1/3,1,1/2,1/5;1,2,1,1/3;3,5,3,1]P=[8,7,6,8;7,8,8,7] %每一行代表一個(gè)對(duì)象的指標(biāo)評(píng)分 %A為自己構(gòu)造的輸入判別矩陣 A=[1,3,1,1/3;1/3,1,1/2,1/5;1,2,1,1/3;3,5,3,1]返回:
3.2 查看行數(shù)和列數(shù)
[n,m]=size(A)返回:
3.3 求特征向量
[V,D]=eig(A)返回:
3.4 找到最大特征值和最大特征向量
tzz=max(max(D)) %找到最大的特征值 c1=find(D(1,:)==tzz);%找到最大的特征值位置 tzx=V(:,c1) %最大特征值對(duì)應(yīng)的特征向量返回:
3.5 計(jì)算權(quán)重
%賦權(quán)重 quan=zeros(n,1); for i=1:n quan(i,1)=tzx(i,1)/sum(tzx); end Q=quan返回:
3.6 一致性檢驗(yàn)
%一致性檢驗(yàn) CI=(tzz-n)/(n-1); RI=[0,0,0.58,0.9,1.12,1.24,1.32,1.41,1.45,1.49,1.52,1.54,1.56,1.58,1.59]; %判斷是否通過一致性檢驗(yàn) CR=CI/RI(1,n); if CR>=0.1fprintf('沒有通過一致性檢驗(yàn)\n'); elsefprintf('通過一致性檢驗(yàn)\n'); end返回:
3.7 計(jì)算評(píng)分
%顯示出所有評(píng)分對(duì)象的評(píng)分值score=P*Q;for i=1:length(score)name=['object_score',num2str(i)];eval([name,'=score(i)'])end返回:
完整代碼
clear;clc; P=[8,7,6,8;7,8,8,7]; %每一行代表一個(gè)對(duì)象的指標(biāo)評(píng)分 %A為自己構(gòu)造的輸入判別矩陣 A=[1,3,1,1/3;1/3,1,1/2,1/5;1,2,1,1/3;3,5,3,1]; [n,m]=size(A); [V,D]=eig(A); tzz=max(max(D)); %找到最大的特征值 c1=find(D(1,:)==tzz);%找到最大的特征值位置 tzx=V(:,c1); %最大特征值對(duì)應(yīng)的特征向量 %賦權(quán)重 quan=zeros(n,1); for i=1:n quan(i,1)=tzx(i,1)/sum(tzx); end Q=quan; %一致性檢驗(yàn) CI=(tzz-n)/(n-1); RI=[0,0,0.58,0.9,1.12,1.24,1.32,1.41,1.45,1.49,1.52,1.54,1.56,1.58,1.59]; %判斷是否通過一致性檢驗(yàn) CR=CI/RI(1,n); if CR>=0.1fprintf('沒有通過一致性檢驗(yàn)\n'); elsefprintf('通過一致性檢驗(yàn)\n'); end %顯示出所有評(píng)分對(duì)象的評(píng)分值score=P*Q;for i=1:length(score)name=['object_score',num2str(i)];eval([name,'=score(i)'])end總結(jié)
以上是生活随笔為你收集整理的层次分析法之matlab的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小网站asp好还是php好,网站程序是a
- 下一篇: 平稳序列的预测和拟合之模型检验