數模系列一 導言和線性規劃問題

注1:
本系列博客是《數學建模算法與應用》的閱讀筆記,適合入門閱讀,快速上手數學建模競賽。

注2:
對於數學建模,我們需要知道在分析一個具體的建模問題時,需要用到那些方法;反過來講,當我們瞭解到
了數學建模的常用方法之後,拿到題目也就有了大致的思路。
所以,我根據《數學建模算法與應用》,針對每一個數學建模的方法(如圖論、微分方程、數理統計等),
回答下面幾個問題:一、這個方法是什麼;二、這個方法可以解決什麼問題;三、如何使用這個方法分析解
決具體問題,並給出實例;四、matlab中的具體模板方法

注3:
作者也是建模萌新〒▽〒,疏漏之處在所難免,有什麼問題請私信/留言交流

什麼是線性規劃

線性規劃問題是在一組線性約束條件的限制下,求一線性目標函數最大或最小的問題。
在解決實際問題時,把問題歸結成一個線性規劃數學模型是很重要的一步,但往往也是困難的一步,模型建立得是否恰當,直接影響到求解。而選適當的決策變量,是我們建立有效模型的關鍵之一。

可以用來解決什麼問題

線性規劃方法主要可以解決以下幾方面的問題:
(1)生產計劃和組織問題;
(2)運輸與佈局問題;
(3)配料和下料問題。

如何使用線性規劃來分析解決具體問題

給建模新人

在分析具體問題之前,你需要知道,在數學建模中,我們是怎樣完成一篇比賽論文的呢?
一個比較完整的數學建模論文往往有如下幾個部分組成:

1.summary——對解決的問題、建模過程和方法進行總結
2.Key Words——給出這篇文章的關鍵詞(問題和數學方法)
2.5 目錄
3.Restatement of problems——問題重述(不是對題目複製粘貼!而是簡明扼要地總述問題和說明研究問題的意義)
4.Assumptions and Notations——符號規定和基本假設
5.模型的分析與建立(包括The Solution of question(問題分析)、Simplifying(模型簡化)、Calculate(模型求解))
6.結果分析
7.Validating the Model——有效性驗證、優缺點分析
8.Conclusions——結論
9.Appendix——附錄(代碼等)(沒有人看你的代碼!所以建模的思路、數據、語言纔是最重要的!文章格式(latex用的好不好)也很重要!)

從下面這個目錄中也可一窺端倪:

所以,我們選好題目之後,會進行問題分析,把題目中的數據轉換成數學語言,並且用一系列的數學方法分析它。並且,在這個過程中,我們會對問題在合理的前提下進行簡化和假設。

當模型建立完成、數據結果出來之後,剩下的部分是不是就水到渠成了?

可能你看到這裏還是十分茫然——核心問題還是沒有解決呀?如何“把題目中的數據轉換成數學語言,並且用一系列的數學方法分析它”呢?

這就是我這一系列的博客要寫的東西了。如果你是我博客的讀者,那麼你就是要從我的博客之中,從一個又一個的題目案例之中,不斷學習數學分析的方法,培養數學的和建模的思維。掌握了這些基本方法,才能面對建模題目遊刃有餘。

與此同時,數學和建模思維的培養,意義遠遠超過了比賽本身。這是後話,在此不表。

投資的收益和風險

問題:

這就是一個簡單的數學建模題目了,我們用高中的線性規劃的知識就足以解決它。

但是注意!在這個題目中已經給出了“度量風險”的數學公式,一般我們則需要找出這個公式並且說明它的
合理性。

另一個值得注意的問題是:大多數建模問題並非像高考中的數學問題一樣,只有一個解,所以我們要針對
不同的場景對模型進行假設和簡化,也就是所謂的“多目標規劃模型”;與高考數學相同的是,同一個問題
我們可以用不同的方法進行分析!這也就是考驗我們創新能力的時候了。

這幅圖片給出了符號規定和基本假設。

對於一個嚴謹的數學分析來說,界定系統邊界是非常重要的,因此我們要儘可能全面地限制問題邊界,這

也避免了建模過程中的一些邊界錯誤和方向錯誤。

符號在用到地時候規定就可以了。

要注意的是符號規範問題,隊伍中要有一位能夠準確快速使用latex輸出數學公式和符號的隊員。

這就是一個簡單的數學模型建立的過程。毋庸置疑,線性規劃問題需要找出約束條件和結果的表達式。我
們在高中已經訓練過這方面的能力。
同時,我們認識到這是個多目標規劃模型以後,就要學會衡量問題規模進行模型簡化。
在這個問題中根據兩個指標:淨收益和風險水平,進行合理簡化即可。
需要注意的是,在模型一中,風險水平是一個變量。

步長:程序語言中的名詞,讓一個數值在每次運算中加上某個數(此即步長)重複執行此項運算。

數據處理隊員需要掌握線性規劃的matlab求解方法,線性規劃問題雖然簡單,但是數據並非整數的時候,
就需要用到計算機進行處理。

負責數學的隊員最好掌握matlab的線性規劃標準
我把線性規劃標準和題目的matlab代碼放在了文章最後面。

結果分析

非常值得一看。

這是個非常有趣也非常合理的結果,它符合經濟學中的邊際效益遞減規律。

matlab中的具體模板方法

%求解線性規劃問題
f=[-2;-3;5];
a=[-2,5,-1;1,3,1];
b=[-10;12];
aeq=[1,1,1];
beq=7;
[x,y]=linprog(f,a,b,aeq,beq,zeros(3,1));
x,y=-y
%輸出x和y
%[x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS)
%這裏fval 返回目標函數的值,LB 和UB 分別是變量x 的下界和上界, 0 x 是x 的初始值,
%OPTIONS 是控制參數。
%如果沒有等式約束,對應矩陣爲空矩陣
%在這裏,zeros(3,1)是下界條件,沒有上界條件

題目代碼

clc,clear
a=0;
hold on
while a<0.05
    c=[-0.05,-0.27,-0.19,-0.185,-0.185];
    A=[zeros(4,1),diag([0.025,0.015,0.055,0.026])];
    b=a*ones(4,1);
    Aeq=[1,1.01,1.02,1.045,1.065];
    beq=1;
    LB=zeros(5,1);
    [X,Q]=linprog(c,A,b,Aeq,beq,LB);
    Q=-Q;
    plot(a,Q,'*k')
    a=a+0.001;
end
xlable('a'),ylable('Q')

發佈了136 篇原創文章 · 獲贊 14 · 訪問量 5808
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章