數學建模算法
- 可以使用多個算法求解同一個問題,相互印證比較,寫進論文中可以增色不少。
目錄
線性規划
- 標准形式:向量均為列向量,最后一條語句中缺少的項使用
[]
代替 - 化成求最小值,約束不等式為
<=
號; - 腳本的最后配合輸出語句使用
- 切記切記:列向量每行使用
;
隔開 x
為列向量,可以不是\(n*1\),可以是\(n*2\)等等
插值 && 擬合 && 逼近
- 插值: 插值曲線一定要經過樣本點,即使樣本點有誤差也要嚴格經過樣本點,這就要求樣本點數據正確無誤的時候使用插值(對象:散點),三次樣條插值使用很廣泛
- 擬合:在插值的基礎上有了誤差分析,不嚴格要求進過所有樣本點,只要求構造函數描述整體趨勢並使得誤差最小。(對象:散點)
- 函數逼近:擬合是構造函數對散點擬合,函數逼近是對已知的復雜函數,通過構造一個較簡單的函數或多項式,使得數據接近原來的復雜函數
層次分析法(計算權重)
方法步驟
- 應用:解決選擇最佳問題。給出一系列影響選擇的因素,按照因素之間的相互關聯和相對重要程度,綜合考慮這些因素,做出最佳選擇。
- 當各行各列嚴格成比例時,表示完全一致性
實例
- 構造比較矩陣
A矩陣為A1,A2,..…..,A5之間兩兩比較的結果,如:A1:A3=4,結合前面圖的成對比較陣標度表,表示對於最佳選擇來說,A1(景色)比A3(居住)大於稍微重要但是又小於明顯重要。
B1,B2,..…B5表示三個地方在這5個因素之間的對比。如:B1中第一行的2表示在景色方面蘇杭比北戴河要稍微好一些(結合成對比較陣標度表)這些矩陣的填寫主觀性很強,可以通過查找相關資料稍微減少主觀性
% 按要求輸入比較矩陣即可得出每個因素相對於目標來說的權值
% 注意矩陣的輸入格式,代碼無需修改直接使用
disp('請輸入成對比較矩陣A(n階)');
A=input('A=');
[n,n]=size(A);
x=ones(n,100);
y=ones(n,100);
m=zeros(1,100);
m(1)=max(x(:,1));
y(:,1)=x(:,1);
x(:,2)=A*y(:,1);
m(2)=max(x(:,2));
y(:,2)=x(:,2)/m(2);
p=0.0001;i=2;k=abs(m(2)-m(1));
while k>p
i=i+1;
x(:,i)=A*y(:,i-1);
m(i)=max(x(:,i));
y(:,i)=x(:,i)/m(i);
k=abs(m(i)-m(i-1));
end
a=sum(y(:,i));
w=y(:,i)/a;
t=m(i);
disp(w);
%以下是一致性檢驗
CI=(t-n)/(n-1);RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];
CR=CI/RI(n);
if CR<0.10
disp('此矩陣的一致性可以接受!');
disp('CI=');disp(CI);
disp('CR=');disp(CR);
end
- 圈住的部分表示5個影響因素的權值,CI和CR可以不用管
- 根據得到的權值,進行權值傳遞(其實就是對應權值相乘再累加)得到最低層對最終目標的取值,根據權值大小可以得出最佳選擇
- 答案的正確性程度取決於成對比較矩陣的合理性
模型拓展
- 多准則層,一層一層計算即可
- 每個准則層對應自己的方案層,非當前准則層的因素的權重設置為0即可,具體看付費群的論文
多屬性決策模型(計算屬性值)
+
- 屬性值的歸一化處理,在上面的得分數據組中,比如:不一定每個得分都是百分制的,可能有些是十分制的。屬性值量綱不一致時,通過歸一化處理全部轉化為百分制形式。
例子
- 利用上一講的層析分析計算權值
- 利用加權平均算子,結合屬性權值和屬性值計算每個企業的總得分
灰色預測(小樣本回歸分析)
和常見預測方法的區別:
- 常見預測方法:一些常用的預測方法,像回歸分析,需要大量樣本,,若樣本較小會造成較大的誤差
- 灰色預測:此模型所需建模信息少,建模精度高,處理小樣本預測問題的有效工具
特點
-
不直接使用原始數據,對原始數據進行處理生成新的數據,用於預測(原始數據一般雜亂無章,但是內部必然存在某種規律,只不過被表象所掩蓋),常見生成灰色預測數據的方式:累加生成,類減生成,均值生成,級比生成
-
累加生成:其實就是前綴和
-
GM(1,1)模型精度檢驗(適用於較強指數規律序列,描述單調變化,非單調的擺動或者飽和S形使用其他模型(參加數學建模算法與應用))
- 只有通過檢驗的模型才能用來預測,常用精度檢驗方法:相對誤差大小檢驗法,關聯度檢驗法,后驗差檢驗法
- 后驗差檢驗法
模擬退火算法
- 模擬物理退火,使總能量達到最低值,系統達到平衡狀態,也就是可以用來求最小值,乘上-1或者取倒數可以用來求解最大值。
- 從某一初始溫度開始,伴隨問題的不斷下降,結合概率突跳特性在解空間中隨機尋找全局最優解
主成分分析法
主成分分析,因子分析,層次分析法比較
- 主成分分析法,因子分析法,層次分析法,前兩種方法是多維變量的降維處理,簡化數據的,后一種主觀賦權的綜合評價方法
- 對於少數據樣本不如因子分析有用,但是數據量較大時,主成分分析方法就有用武之地了
- 主成分分析法:線性變換進行降維,將多指標轉化為幾個不相關的綜合指標(主成分),每個主成分都是原始變量的線性組合,主成分幾乎保留原始變量的全部信息,達到抓住問題實質的目的
- 因子分析:主成分的推廣,不是對原始變量的取舍,而是根據原始變量和信息進行重新組合,找出變量的公共因子,化簡數據
神經網絡
-
一般有兩種神經網咯,bp神經網絡(有導師學習方式訓練,誤差逆傳播算法),RBF神經網絡(有很強的逼近能力,分類能力,學習速度)
-
一般使用RBF,更簡單智能,相比BP神經網絡要自定義神經元個數,RBF會在訓練過程中自適應取定神經元個數,RBF代碼參考《數學建模算法與應用》,最后的誤差分析參考《MATLAB與機器學習》
-
RBF神經網絡只有一個參數可調,《數學建模算法與應用》中這個參數是缺省值,參數值越小誤差越大,但是當這個參數值達到1e5數量級的時候,誤差也很大,這個參數要根據實際情況取合適的值。