• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Matlab GUI層次分析法的實現(xiàn)和應(yīng)用

    2013-01-22 11:44:30溫州大學數(shù)學與信息科學學院石珍妮竺賽棟張克林
    電子世界 2013年19期
    關(guān)鍵詞:特征向量分析法一致性

    溫州大學數(shù)學與信息科學學院 石珍妮 竺賽棟 張克林

    1.層次分析法基本原理

    層次分析法(Analytic Hierarchy Process簡稱AHP)是將與決策總是有關(guān)的元素分解成目標、準則、方案等層次,在此基礎(chǔ)之上進行定性和定量分析的決策方法。

    層次分析法的主要流程分為四步:一是建立層次分析結(jié)構(gòu)模型,二是構(gòu)造成對比矩陣并計算權(quán)向量,三是做一致性檢驗,四是計算組合權(quán)向量(作組合一致性檢驗)。

    層次分析法的基本思想是把復(fù)雜問題分解為若干層次,在最底層次通過兩兩對比得出各因素權(quán)重,通過由低到高的層層分析計算,最后計算出各方案對總目標的權(quán)數(shù),權(quán)數(shù)最大的方案即為最優(yōu)方案。

    決策的實質(zhì)是進行比較,通過比較做出選擇,但是對于缺乏公度性的多目標決策問題來說,由于無法用統(tǒng)一尺度去衡量比較各個不同目標,因此,唯一可行的辦法是進行兩兩比較。通過將兩兩比較后的結(jié)果填入判斷矩陣的特征和特征向量,然后確定各目標重要性的加權(quán)值。

    層次分析方法的基本假設(shè)是層次之間存在遞進結(jié)構(gòu),即從高到低或從低到高遞進。當復(fù)雜系統(tǒng)中某一層次既可直接地影響其他層次,同時又直接及間接受其他層次影響時,就不屬于層次分析范圍,需要用網(wǎng)絡(luò)模型來描述。

    層次分析的基本方法是建立層次結(jié)構(gòu)模型。建立層次模型,首先要對所解決問題有明確的認識,弄清它涉及哪些因素,如目標、分目標、部門、約束、可能情況和方案等,以及因素相互之間的關(guān)系。其次,將決策問題層次化。將決策問題劃分為若干個層次,第一層是總目標層,即要想達到的目標;中間層常稱為分目標層、標準層、部門層、約束層、準則層等;最底層一般是解決問題的方案或者與問題有關(guān)的可能情況,常稱為方案層或者措施層。

    建立層次模型之后,可以在各層元素中進行兩兩比較,構(gòu)造出判斷矩陣。判斷矩陣是定性過渡到定量的重要環(huán)節(jié),再通過求解判斷矩陣的特征向量,并對判斷矩陣的一致性進行檢驗,檢查決策者在構(gòu)造判斷矩陣時判斷思維是否具有一致性。

    通過一致性檢驗后,便可按歸一化處理已經(jīng)處理過的特征向量作為某一層次的加權(quán)值,然后從高層次到低層次逐層計算排序加權(quán)值,得出層次總排序。

    最后是對總排序的一致性檢驗,通過檢驗,則其結(jié)果可以用于決策;否則,就需要重新調(diào)整判別矩陣。

    2.Matlab GUI層次分析法軟件包實現(xiàn)

    雖然利用Matlab的程序語句命令也能實現(xiàn)層次分析法,但是不夠簡潔直觀。結(jié)合Matlab GUI設(shè)計。編寫應(yīng)用程序,并設(shè)計相應(yīng)的用戶界面來實現(xiàn)層次分析法,可以使使用者更加方便快捷的應(yīng)用層次分析法。

    2.1 軟件算法流程

    軟件算法流程:開始→輸入層數(shù)N→輸入判別矩陣→一致性檢驗→(通過)輸入準則層與方案層的關(guān)聯(lián)→計算組合權(quán)向量→根據(jù)組合權(quán)向量決策→結(jié)束

    注:若一致性檢驗不通過,則直接結(jié)束。

    2.2 關(guān)鍵編程要點

    2.2.1 寫入txt文件

    由于層次分析法需要處理很多矩陣,如果一個個輸入會相對比較麻煩,我們采取單獨的txt文件形式進行保存。將所有結(jié)果保存為txt文件。

    關(guān)鍵代碼如下:

    string=get(handles.edit11,'string');

    [name,path]=uiputfile({‘*.txt’},’保存’);

    str=[path name];

    [nrows,~]=size(string);

    fid=fopen(char(str),'wt');

    for row=1:nrows

    fprintf(fid,'%s ',string{row,:});

    end

    fclose(fid);

    2.2.2 寫入數(shù)據(jù)

    寫入所有操作的數(shù)據(jù),以便層次分析法操作。

    關(guān)鍵代碼如下:

    function writejuzhen(juzhen,filename)

    fid=fopen(filename,'a');

    leng=size(juzhen);

    fprintf(fid,'%c','[');

    for i=1:leng(1)

    for j=1:leng(2)

    fprintf(fid,'%d',juzhen(i,j));

    if j~=leng(2)

    fprintf(fid,'%c',',');

    end

    end

    if i~=leng(1)

    fprintf(fid,'%c',';');

    end

    end

    fprintf(fid,'%c ',']');

    fclose(fid);

    2.2.3 輸入矩陣

    由于層次分析法需要處理很多矩陣,當矩陣階數(shù)小于7時,可以手動輸入矩陣;

    當矩陣階數(shù)大于7時,可以導入excel文件。

    關(guān)鍵代碼如下:

    t=findobj('tag','uitable1');

    set(t,'visible','off');

    num=get(handles.edit1,'string');

    num1=str2num(num);

    if num1<7

    XX=cell(1,num1);

    h=findobj('tag','uitable1');

    set(h,'visible','on');

    set(handles.uitable1,'data',XX);else

    [n a m e,p a t h]=u i g e t f i l e(‘*.xls’,’選擇文件’);

    [num,txt,raw]=xlsread(strcat(path,name));

    h=findobj('tag','uitable1');

    set(h,'visible','on');

    set(handles.uitable1,'columnname',raw(1,:),'data',raw(2:end,:));

    End

    3.實例應(yīng)用

    根據(jù)1中的“選擇旅游地”模型,繼續(xù)求解,

    得到準則層的判別矩陣:

    最大特征值:λmax=5.073

    權(quán)向量(特征向量):

    w=(0.263,0.475,0.055,0.090,0.110)T

    隨機一致性指標RI=1.12(查表)

    一致性比率CR=0.018/1.12=0.016<0.1

    結(jié)論:通過一致性檢驗。

    最后用本軟件輸入數(shù)據(jù),得到的結(jié)果如圖1所示:

    圖1 輸出結(jié)果界面圖

    4.總結(jié)

    本文應(yīng)用實際例子,結(jié)合Matlab強大的數(shù)學算法功能和GUI的界面設(shè)計功能,來解決數(shù)學建模過程中的層次分析法問題。由于層次分析法的運用范圍極廣,如經(jīng)濟計劃和管理,能源政策和分配,人才選拔和評價,生產(chǎn)決策,交通運輸,科研選題,產(chǎn)業(yè)結(jié)構(gòu),教育,醫(yī)療,環(huán)境,軍事等,說明該軟件的應(yīng)用前景很好。同時,我們的MatlabGUI設(shè)計存在著一些優(yōu)點和不足。不足有:界面設(shè)計不夠美觀、代碼不夠精煉等。而優(yōu)點則有:數(shù)據(jù)多時,矩陣可以利用Excel導入,避免了輸入的繁雜;對數(shù)據(jù)采用文本錄入方式,具備存儲能力和糾錯能力,這點還可以深入探討。

    [1]蔣難得.基于MATLAB_GUI層次分析法軟件實現(xiàn)及其實例應(yīng)用[J].物流工程與管理,2012(9).

    [2]邱金蕙,李振全.基于Matlab/GUI的新型界面開發(fā)方式[J].河北工業(yè)科技,2008(7):25.

    [3]宗節(jié)保,段柳云,王瑩.基于Matlab GUI軟件制作方法的研究和實現(xiàn)[J].電子設(shè)計工程,2010(7):18.

    [4]王玉林.新型界面開發(fā)工具_MATLAB_GUI[J].工程及實踐應(yīng)用技術(shù),2008(6).

    猜你喜歡
    特征向量分析法一致性
    二年制職教本科線性代數(shù)課程的幾何化教學設(shè)計——以特征值和特征向量為例
    異步機傳統(tǒng)分析法之困難及其克服
    防爆電機(2022年4期)2022-08-17 05:59:06
    關(guān)注減污降碳協(xié)同的一致性和整體性
    公民與法治(2022年5期)2022-07-29 00:47:28
    克羅內(nèi)克積的特征向量
    注重教、學、評一致性 提高一輪復(fù)習效率
    IOl-master 700和Pentacam測量Kappa角一致性分析
    一類特殊矩陣特征向量的求法
    EXCEL表格計算判斷矩陣近似特征向量在AHP法檢驗上的應(yīng)用
    基于時間重疊分析法的同車倒卡逃費探析
    層次分析法在SWOT分析法中的應(yīng)用
    张掖市| 和林格尔县| 绥江县| 常州市| 宜川县| 湖南省| 淄博市| 镶黄旗| 依兰县| 酉阳| 孟村| 彝良县| 新绛县| 虹口区| 措美县| 蒙城县| 德阳市| 黄骅市| 五常市| 静宁县| 紫阳县| 晋城| 鄂温| 德化县| 兴宁市| 铜陵市| 洛宁县| 富阳市| 乐山市| 遵义市| 施秉县| 屏山县| 贵南县| 新蔡县| 乌拉特后旗| 青铜峡市| 罗江县| 安宁市| 南宁市| 西城区| 漳州市|