日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三、数学建模之灰色关联分析【清风数学建模个人笔记】

發布時間:2023/12/14 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三、数学建模之灰色关联分析【清风数学建模个人笔记】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

灰色關聯分析概述

應用一:進行系統分析

什么是系統分析

步驟

?代碼

?應用二用于綜合評價

步驟:


灰色關聯分析概述

當樣本個數n較大時使用標準化回歸;當樣本個數n較少時,才使用灰色關聯分析

系統分析的方法:回歸分析、方差分析、主成分分析等

灰色關聯分析對樣本量的多少和樣本有誤規律都同樣適用,而且計算量小,十分方便,更不會出現量化結果與定性分析結果不相符的情況

灰色關聯分析的基本思想是根據序列曲線幾何形狀的相似程度來判斷其聯系是否緊密。曲線越接近,相應序列之間的關聯程度就越大,犯組織就越小

綜合評價的方法:層次分析法,優劣解距離法等

應用一:進行系統分析

什么是系統分析

一般的抽象系統,如社會系統、經濟系統、農業系統、生態系統、教育系統等都是多種因素共同作用的結果決定了該系統的發展態勢。在這些眾多因素中,哪些是主要因素,哪些是次要因素;哪些因素對系統發展影響大,哪些影響小;哪些因素對系統發展起推動作用需強化發展,哪些因素對系統發展起阻礙作用需加以抑制

步驟

例題:

下表為某地區國內生產總值的統計數據(以百萬元計),問該地區從2000年到2005年之間哪一種產業對GDP總量影響最大。

年份

國內生產總值

第一產業

第二產業

第三產業

2000

1988

386

839

763

2001

2061

408

846

808

2002

2335

422

960

953

2003

2750

482

1258

1010

2004

3356

511

1577

1268

2005

3806

561

1893

1352

第一步畫統計圖

畫圖分析

第二步確定分析序列

第三步對變量進行預處理

先求出每個指標的均值,再用該指標中的每個元素都除以其均值

?目的:去量綱、縮小變量范圍簡化計算

第四步計算序列中各個指標與母序列的關聯系數

?第五步計算灰色關聯度

本例中n=6,m=3

兩極最小差:每一個子序列與母序列作差后求絕對值

?灰色關聯度:對第四步求出的關聯度表格求算術平均值,該值為該子序列與母序列的灰色關聯度

第六步比較三個子序列與母序列的關聯度得出結論

美賽不推薦用?

?代碼

load gdp.mat % 導入數據 一個6*4的矩陣 % 不會導入數據的同學可以看看第二講topsis模型,我們也可以自己在工作區新建變量,并把Excel的數據粘貼過來 % 注意Matlab的當前文件夾一定要切換到有數據文件的這個文件夾內 Mean = mean(gdp); % 求出每一列的均值以供后續的數據預處理 gdp = gdp ./ repmat(Mean,size(gdp,1),1); %size(gdp,1)=6, repmat(Mean,6,1)可以將矩陣進行復制,復制為和gdp同等大小,然后使用點除(對應元素相除),這些在第一講層次分析法都講過 disp('預處理后的矩陣為:'); disp(gdp) Y = gdp(:,1); % 母序列 X = gdp(:,2:end); % 子序列 absX0_Xi = abs(X - repmat(Y,1,size(X,2))) % 計算|X0-Xi|矩陣(在這里我們把X0定義為了Y) a = min(min(absX0_Xi)) % 計算兩級最小差a b = max(max(absX0_Xi)) % 計算兩級最大差b rho = 0.5; % 分辨系數取0.5 gamma = (a+rho*b) ./ (absX0_Xi + rho*b) % 計算子序列中各個指標與母序列的關聯系數 disp('子序列中各個指標的灰色關聯度分別為:') disp(mean(gamma))

?應用二用于綜合評價

例題:

步驟:

第五步相當于歸一化,歸一化后更方便分析

%% 灰色關聯分析用于綜合評價模型例題的講解 clear;clc load data_water_quality.mat % 不會導入數據的同學可以看看第二講topsis模型,我們也可以自己在工作區新建變量,并把Excel的數據粘貼過來 % 注意Matlab的當前文件夾一定要切換到有數據文件的這個文件夾內%% 判斷是否需要正向化 [n,m] = size(X); disp(['共有' num2str(n) '個評價對象, ' num2str(m) '個評價指標']) Judge = input(['這' num2str(m) '個指標是否需要經過正向化處理,需要請輸入1 ,不需要輸入0: ']); %1if Judge == 1Position = input('請輸入需要正向化處理的指標所在的列,例如第2、3、6三列需要處理,那么你需要輸入[2,3,6]: '); %[2,3,4]disp('請輸入需要處理的這些列的指 標類型(1:極小型, 2:中間型, 3:區間型) ')Type = input('例如:第2列是極小型,第3列是區間型,第6列是中間型,就輸入[1,3,2]: '); %[2,1,3]% 注意,Position和Type是兩個同維度的行向量for i = 1 : size(Position,2) %這里需要對這些列分別處理,因此我們需要知道一共要處理的次數,即循環的次數X(:,Position(i)) = Positivization(X(:,Position(i)),Type(i),Position(i));% Positivization是我們自己定義的函數,其作用是進行正向化,其一共接收三個參數% 第一個參數是要正向化處理的那一列向量 X(:,Position(i)) 回顧上一講的知識,X(:,n)表示取第n列的全部元素% 第二個參數是對應的這一列的指標類型(1:極小型, 2:中間型, 3:區間型)% 第三個參數是告訴函數我們正在處理的是原始矩陣中的哪一列% 該函數有一個返回值,它返回正向化之后的指標,我們可以將其直接賦值給我們原始要處理的那一列向量enddisp('正向化后的矩陣 X = ')disp(X) end%% 對正向化后的矩陣進行預處理 Mean = mean(X); % 求出每一列的均值以供后續的數據預處理 Z = X ./ repmat(Mean,size(X,1),1); disp('預處理后的矩陣為:'); disp(Z)%% 構造母序列和子序列 Y = max(Z,[],2); % 母序列為虛擬的,用每一行的最大值構成的列向量表示母序列【max()函數用法自己搜吧】 X = Z; % 子序列就是預處理后的數據矩陣%% 計算得分 absX0_Xi = abs(X - repmat(Y,1,size(X,2))) % 計算|X0-Xi|矩陣 a = min(min(absX0_Xi)) % 計算兩級最小差a b = max(max(absX0_Xi)) % 計算兩級最大差b rho = 0.5; % 分辨系數取0.5 gamma = (a+rho*b) ./ (absX0_Xi + rho*b) % 計算子序列中各個指標與母序列的關聯系數 weight = mean(gamma) / sum(mean(gamma)); % 利用子序列中各個指標的灰色關聯度計算權重 score = sum(X .* repmat(weight,size(X,1),1),2); % 未歸一化的得分 stand_S = score / sum(score); % 歸一化后的得分 [sorted_S,index] = sort(stand_S ,'descend') % 進行排序

總結

以上是生活随笔為你收集整理的三、数学建模之灰色关联分析【清风数学建模个人笔记】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。