數學建模層次分析法與matlab初識

2022-06-09 18:48:07 字數 2373 閱讀 9809

tip1:在每一行的語句後面加上分號表示不顯示執行結果,加上的話則顯示

tip2:多行注釋 ctrl+r,解除多行注釋 ctrl+t

tip3:clc可以清除命令列視窗中的所有文字,即清屏操作

tip4:clear可以清除工作區的所有變數

輸入輸出函式(input和disp)

disp()函式可以近似理解為c語言中的printf()函式

向量表示方法

[1 2 3]

[1,2,3]

matlab中字串的合併方法

strcat("字串1","字串2");

['字串1' '字串2'];

num2str:數字轉化為字串

str2num:字串轉化為數字

如:disp(strcat('c的取值為' num2str(100)));是合法的

input()函式可以近似理解為c語言中的scanf()函式

input函式內可以放提示資訊,如input("請輸入a:");

並且語句後加分號不顯示執行結果,不加則顯示

求和函式sum()

如果是向量,無論行列,直接求和

如果是矩陣,則需要根據行和列的方向做區分

e=[1,2,3

4,5,6],則sum(e)可得到5 7 9;

sum(e,1)得到的也是5 7 9

但sum(e,2)得到的卻是6 15

sum函式第二個引數為1代表求列向量和,為2則代表求行向量和

若想對整個矩陣求和,則應該寫為sum(sum(e));或者sum(e(:));

獲取矩陣中特定位置的元素

假如有一矩陣為

a=[1,2,3

4,5,6

7,8,9],則a(2,1)=4;

a(2,:)=4,5,6; 冒號代表所有

取多行:a([1,2],:)--會輸出1 2 3

4 5 6

取連續行,假如對某個足夠大矩陣要取2--5行

則應該寫為a(2:5,:); 2:5其實是2:1:5 表示的是乙個等差數列,公差為1遞增

而且若乙個矩陣非常大,大到我們『懶得』統計它的行數,這是我們想要取到第二行到最後一行的內容,可以這樣寫a(2:end,:);

取全部元素:a(:);且按列優先的方式呈現出來.

size()函式,如a=[1,2,3,4,5;

1,2,3,4,5;

6,7,8,9,10]

size(a)=3,5;

一般會用乙個向量來接收size()的返回值,[r,c]=size(a);

則r=3,c=5;

size(a,1)返回的是行數,以a為例就是3,

size(a,2)返回的是列數,以a為例就是5;

repmat(矩陣a,m,n)意為將a矩陣重複m*n塊,m-行,n-列

matlab中 * / 代表的是矩陣之間的乘除,並不是代表兩數之間的乘除,而規模一樣的矩陣之間的對應元素的乘除應該用.*和 ./來表示

假設某矩陣a每個元素要與常數相乘或除,直接a*n即可,

假設某個矩陣a每個元素都要乘方,則a .^2

平均值法求權重

對每一列求和

所求出來的和行向量使用repmat()函式使其變為與原矩陣規模等大的矩陣

然後倆矩陣對應元素相除。

然後對相除所得的矩陣按行求和得到乙個和列向量,然後列向量除以n即可得權重

幾何平均值法求權重

矩陣按行求乘積 product = prod(a,2),2代表按行求和

然後對這個乘積開n次方 product _a = product .^(1/n);

最後對得到的這個向量 每個元素除以整個向量的和即可

特徵值法求權重

求目標矩陣a的最大特徵值及其最大特徵值對應的特徵向量,[v,d]=eig(a);v即為特徵向量拼起來組成的乙個矩陣,d為幾個特徵值組成的對角矩陣

然後在d中找出最大的特徵值 the_max = max(max(d));

然後通過 the_max==d 來得到乙個邏輯矩陣,在邏輯矩陣中只有0和1,並且為1的那乙個元素所對應的索引就是最大特徵值所處在的位置,在通過[r,c]=find(d,1);r為行,c為列

然後從特徵向量拼起來組成的矩陣v中提取出這個特徵向量,採取的操作是 the_tezheng = v(:,c),按列.

最後各指標的權重就為 the_quanzhong = the_tezheng ./sum(the_tezheng);這裡的the_quanzhong 即為權重,並以列向量呈現。

extra:一致性檢驗,ci=(the_max-n)/(n-1),ri查表可得

cr=ci/ri(n);

且if cr<0.1

disp("通過了一致性檢驗")!

else

disp("沒有通過一致性檢驗")!

end

數學建模 層次分析法

層次分析法 the analytic hierarchy process,簡稱ahp 建模比賽中最基礎的模型之一,其主要用於解決評價類問題 例如 選擇哪種方案最好 哪位運動員或者員工表現的更優秀 評價類問題可以用打分來解決。1.確定指標,構建判斷矩陣 根據參考資料 一定要有,顯得專業 確定評價的指標...

數學建模 層次分析法

模型分為三層。分別為最高層 決策問題最終要解決什麼,即決策的目的 中間層 考慮的因素,決策的準則。比如買衣服要考慮 尺寸 款式等因素 和最低層 決策時的備選方案,即有幾種選擇可以選擇 也叫作目標層 準則層 方案層。層次分析法所要解決的問題是關於最低層對最高層的相對權重的問題,按此相對權重可以對最低層...

數學建模 層次分析法AHP

層次分析法 層次分析法 analytichierarchy process 簡稱ahp 是將與決策總是有關的元素分解成目標 準則 方案等層次,在此基礎之上進行定性和定量分析的決策方法。該方法是美國運籌學家匹茨堡大學教授薩蒂於 20世紀 70年代初,在為美國國防部研究 根據各個工業部門對國家福利的貢獻...