1. 程式人生 > >《數學建模競賽入門與提高》讀書筆記

《數學建模競賽入門與提高》讀書筆記

第1章:數學建模概述

       近半個多世紀以來,數學已經走進了各大領域,而與其他學科相結合形成交叉學科,首要的關鍵一步就是建立研究物件的數學模型,並加以計算求解,數學建模和計算機技術在知識經濟時代的作用可謂是如虎添翼。

1.1  初入門徑——認識數學模型與數學建模

數學建模就是用數學語言描述實際現象的過程,這裡的實際現象包含具體的自然現象,也包含抽象的比如顧客對某種商品所取的價值傾向。這裡的描述不但包括外在形態,內在機制的描述,也包括預測,試驗和解釋評價實際現象等內容。

       數學模型一般是實際事物的一種數學簡化,它常常是以某種意義上接近實際事務的抽象形式存在的,但它和真實地事物有著本質的區別。使用數學語言描述的事物就稱為數學模型,

       重點:數學建模問題與其他數學問題不同,數學建模問題的結果本身沒有對錯之分,但有優劣之分。建立模型解決問題也許不難,但是需要所建立的模型能夠有效地指導實際工作就比較困難了,這才是數學建模的難點(我理解為假設的合理性)。

1.2  建模實際舉例:

1.2.1     測量山高

一般我們用H = 1/2gt^2,來計算山高,但實際中,卻沒有人敢用這個值當做真正的山高來處理。

此時我們研究的不再是一個抽象的理論問題,而是一個具體的實際問題,所建立的數學模型應該能夠對實際的工作有較強的指導意義,應該盡力使求得的答案貼近事實。

       改善:

       (1)考慮人的反應時間:查詢資料獲取人的反應時間大約在0.1s左右;

       (2)考慮空氣阻力:查閱資料發現石頭所受空氣阻力和速度成正比,建立微分方程,積分獲取答案。

       (3)聲音傳播時間:實際中,聲音傳播也是一個不可忽略的因素,在模型中引入迴音傳播時間,對模型進行進一步修改。

1.2.2 教室光照問題

       假設:

(1)光源對目標點的光照強度與該光源到目標點距離的平方成反比;

       (2)各個光源的光照強度符合獨立作用與疊加原理;

       (3)在光源點的光照強度為‘1’;

       (4)在整個空間中,反射情況忽略不計。

       結論:

       得距離地面1米地方,的光照強度公式:


在matlab中計算都是對離散點進行的,因此將距離地面高1m處的12m*15m的平面離散成為網格,每隔0.25m取一個點,而點與點之間採用插值演算法,可以得到這個平面的光照強度。

改善:

考慮一次反射:假設牆面反射滿足鏡面反射原理,重新計算;等

1.2.3 汙染預測問題(重在原始資料的獲取,可能題目中會給你)

       這種題目,一般是在給你原始資料的基礎上,進行函式擬合(最小二乘法確定係數),預測未來的一些趨勢,當然,需要做檢測。

       假設:

       先做前10年的散點圖,觀察假定資料以二次函式的形式增長,通過最小二乘擬合確定二次函式的係數,並預測後10年的資料。

1.3  建模的要求

從上面例子中,我們可以看出,數學建模往往考慮一下兩方面的權衡:

(1)數學建模是用以解決實際問題的,所建立的模型不能太理想、太簡單,過於理想化的建模往往脫離實際情況,這就違背了建模的目的。

(2)數學建模必須是以能夠求解為前提的,建立的模型一定要能夠求出解,所建立的模型不能過於實際,過於實際的模型往往難以求解,因此作適當的簡化假設是十分有必要的。

       通過以上的講解,希望大家初步能夠明白什麼是數學模型,對數學建模的過程有一個大致的瞭解,下面將比較系統地介紹數學建模的一般步驟,明白如何建立一個數學模型。

1.4  數學建模的分類以及建立模型的一般步驟

1.4.1     數學模型的分類

按照不同的方式有不同的分類:

(1)  按照應用領域:經濟模型、醫學模型、地質模型、社會模型等等;

(2)  按照建立方法:幾何模型、微分方程模型、圖論模型等等;

1.4.2     數學建模的方法

一般有:機理分析、資料分析和類比模擬法等。

       機理分析:根據對現實物件特徵的認識,分析其因果關係,找出反映內部機理的規律等,用這種方法建立的模型,通常有明確的物理或現實意義。

       資料分析:運用統計分析的方法,擬合模型;

       類比模擬:在兩類不同的事物之間進行對比,找出若干相同或相似之處,推測在其他方面也可能存在相同或相似之處的一種思想,這類一般是借用一些現有的模型,推測現實問題應該或可能的模型結構。

1.5  建模步驟:

(1)形成問題:需要有明確的問題背景,物件特徵,掌握有關的資料,瞭解建模目的。

(2)假設和簡化:根據物件特徵和建模目的,對問題進行必要的、合理的簡化和假設(難在需要緊抓本質的因素,忽略的是次要的因素)。

(3)模型構建:根據所做的假設,分析物件的因果關係,用適當的數學語言刻畫物件的內在規律,構建現實問題中各個變數之間的數學結構,得到相應的數學模型;(注意儘量採用簡單的數學工具。)

(4)檢驗和評價:數學模型能否反映原來的現實問題,必須經受多種途徑的檢驗;主要指:合理性與適用性。

(5)模型的改進:模型在不斷的檢驗過程中進行修正,逐步趨向完善;

(6)模型的氣節:經過檢驗,獲取能比較好地反映現實問題的數學模型,最後通過求解得到數學上的結果,通過“翻譯”回到現實,得到相應的結論。

1.6  建模組隊:

一個數學功底深厚、理論紮實:掌握幾類基本的數學模型;

一個擅長演算法實踐:熟練掌握Matlab、Lingo、SPSS等軟體的使用。

另一個是寫作:有基本的寫作技巧。

第2章:初等數學建模方法示例

       對於數學建模問題,如果能用不同的方法建模,顯然最簡單的方法是我們的首選,這就是所謂的工程師原則。並不一定非要在比賽中採用一些啟發式演算法建立模型,如:遺傳演算法、模擬退火演算法等。

2.1 公平席位分配方案

(1)分析問題:發現我要要解決的問題是,對於某校有m個系,第i系的學生有ni個,校會共設N個席位,怎樣分配才能儘可能公平?

(2)假設:ai越大損失越大,因此要保證各系ai儘量相等;

(3)建模:基於不同的假設,提出不同的“公平性”標準,進行建模處理。

       (4)到最後發現,這時一個整數規劃模型。

       (5)不同的建模之後,還有討論哪種模型更加公平,給出最終結論才可(這一點書中也沒有提到)。

2.2 商人安全渡河問題

       (1)給出解題思路;

       (2)但重要的是,當初始條件不同時,如何進行處理?(此題不需要假設)

2.3 貨物儲存模型:

       (1)找準問題矛盾,明確目標,列出模型。

       (2)軟體求解

2.4 制動器試驗檯的控制方法分析

       (1)問題描述:為了檢測制動器的綜合性能,做了一些列的假設,在實際中需要進行模擬實踐,其中為了補償由於機械慣量不足而缺少的能量,需要使用驅動電流,而問題就是:在給定的條件下,計算驅動電流應該為多大。

       (2)解題思路:猛一看真的是一點思路都沒有,光一個什麼慣量、電流就夠暈了,總之就是列各種式子,求解各種值(要求對於方程的微分與積分需要十分了解,需要熟悉matlab的軟體使用)。

第3章:預測類數學模型

       主要是根據某組試驗觀測資料找到變數與變數之間相對準確的函式關係。

3.1 資料擬合與插值

(1)插值:通過每個測試資料點,得到測試函式(要求擬合函式通過全部點,可能是幾個分片的光滑的連續曲面來穿過所有點)。

(2)擬合:以殘差平方和最小為原則,得到測試函式不一定經過所有測試點。

3.2 多項式資料擬合:(多項式係數可以用最小二乘法進行計算)

       例:中國人口預測問題

(1)  首先,使用matlab軟體畫出歷史資料的散點圖;

(2)  觀察散點圖,確定做幾次方的擬合;

(3)  將得到的擬合曲線與實際資料相比較。

3.2.1 matlab中進行多項式擬合

       主要有兩種形式:

(1)  採用Ployfit、Ployval等命令,編寫程式完成擬合工作:

例如:世界人口預測問題

 Code:

Year = [1625,1830,1930,1960,1974,1987,1999];   

Population = [5,10,20,30,40,50,60];            

Year1 = 1625:2000;                             

Year2 = 2000:2020;                            

[P2,S2] = polyfit(Year,Population,3)          

Population1 = polyval(P2,Year1);             

Population2 = polyval(P2,Year2);              

plot(Year,Population,'*',Year2,Population2,'X',Year1,Population1);

legend('fact','think')

xlabel('year');ylabel('populations')

       上述命令首先輸入歷史資料,然後呼叫Polyfit命令,第一個引數表示待擬合的資料的自變數,第二個引數表示待擬合數據的因變數,最後一個數據表示擬合的次數。命令返回的第一個引數P2表示擬合多項式的係數,第二個引數S2表示擬合多項式所產生的誤差。

       2次擬合與其類似。

(2)  在M-file中輸入擬合數據,畫點圖,採用Basic-fitting工具箱進行多項式擬合。(第二種先不考慮,主要練習第一種程式設計。)

3.2.2 非多項式資料擬合:

       有時需要對非多項式的資料進行擬合,Malthus、Logistic擬合是兩種最典型的擬合。

(1)  Malthus擬合

需要年增長率r保持穩定;仍然使用最小二乘估計,但是注意需要將指數運算轉化為線性運算。

       例:人口估計

       程式碼:

Y = 1900:10:2000;

PP = [76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4 281.4];

y = log(PP);

x = y-1900;

P = polyfit(x,y,1);

r = exp(P(1)) - 1

x0 = exp(P(2))

plot(x,y)

執行程式後得到的r便是增長率,x0便是從1900年的人口數量估計值。

(注意當預測值對於近年資料有較大誤差時,不能採用!)

·這裡預測值的變數p需要重新寫為求出引數的原函式。

(2)  Logistic擬合

在群體可能達到生存極限的情況下使用;開始群體的自然增長率為r,隨著群體的增長,增長率下降,一旦群體總數達到K,群體停止增長,即增長率為0。

3.3 除此之外,還有很多種其它非多項式的擬合

       例如:

      

       經由上述程式,可得擬合函式如下。(37頁)

3.4 還有區分不同階段的擬合:(40頁)

       Leslie矩陣模型

3.5 灰色預測模型:(48頁)

       當只有少量資料時,針對小資料進行預測的方法。

第4章:評價類數學模型

       要求參賽者分析已有體系的特點,確定評價指標,形成評價體系,以便指導以後的工作。

       另一種簡易的說法就是對需要進行評價的各個方案或者各個體系打一個總分,並依據此總分對方案或者體系進行評價。本章主要介紹幾種不同的評價方法:層次分析法、灰色體系評價法等。

4.1 層次分析法(57頁)

       較合理地解決了定性問題定量化的處理過程,主要特點是通過建立遞階層次結構,把人們的判斷轉化到若干因素兩兩之間重要度的比較上,從而把難以量化的定性判斷轉化為可操作的重要度比較上面。

4.1.1 步驟:

(1)分析系統中各因素之間的關係,建立系統的遞階層次結構;

(2)對於同一層次的各元素關於上一層次中某一準則的重要性進行兩兩比較,構造兩兩比較矩陣;

(3)由判斷矩陣計算被比較元素對於該準則的相對權重,並進行一致性檢驗;

(4)計算各層元素對系統目標的合成權重,並進行排序。

4.2 灰色關聯分析體系

第5章:優化類數學模型(運籌學知識)

       本章依次介紹:線性規劃模型、非線性規劃模型、整數規劃模型、目標規劃模型、動態規劃模型以及利用數學軟體實現它們的方式。

       Matlab可以進行求解,但是Lingo是用來準們解決各種優化問題的。

·筆者有運籌學知識基礎,而且隊員會用Lingo軟體,由於準備時間按有限,這部分先省略。

第6章:概率類數學模型

       建模比賽中或多或少會遇到一些隨機性問題,此時需要利用概率統計知識去建立模型。

       本章主要介紹了幾種不同的處理隨機問題的方法:隨即問題轉化為確定性問題、可靠性分析法、時間序列法等。

第7章:多元統計分析模型

       使用SPSS軟體:聚類分析、主因素分析、相關分析等。

第8章:方程類數學模型

       在數學建模競賽中,機理型問題大都是通過建立微分方程數學模型加以解決的。其中典型的微分方程模型有人口問題中的Malthus模型與Logistic模型,醫療問題中的簡單傳染病模型與一般傳染病模型,種群問題中的種群競爭模型與戰鬥模型。

第9章:圖與網路模型

       例如:最短路徑模型、網路流模型。

       但在建模的過程中,涉及的方面多很多:時間、費用、路線長度、是否涉及換乘等。

第10章:如何準備全國大學生數學建模競

       時間安排。