資源描述:
《基于Matlab語言地Monte_Carlo入門教程.pdf》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、前言與說明一、MonteCarlo方法是一門簡單而復(fù)雜的學(xué)問MonteCarlo方法往小的方面說很簡單,就是生成一堆隨機(jī)數(shù),然后以某函數(shù)規(guī)則計算出一堆數(shù)值,最后求這些數(shù)值的平均值就得到了結(jié)果;往大的方面說卻很復(fù)雜,要將蒙特卡洛做好需要考慮的問題很多,例如:1.需要解決的問題是否收斂——倘若不收斂,MonteCarlo方法就不能用,不然計算出來的結(jié)果有何意義,只有老天才知道;2.所選用的具體方法收斂速度如何——雖然幾乎所有MonteCarlo收斂階數(shù)為1/2,但不同的方法收斂階數(shù)前面的系數(shù)不同;3.所得解的誤差是多少—
2、—MonteCarlo方法從來得不到精確值,而是一個近似的隨機(jī)變量,因此,任何時候,報告MonteCarlo解時,需要同時報告該解的方差;4.如何選擇具體算法,以加快速度——MonteCarlo模擬需要較長時間,所以速度很重要。尤其是你使用MonteCarlo方法實時計算金融產(chǎn)品價格時,時間就是金錢。加快MonteCarlo速度有很多或大或小的技巧,而且這些技巧還要依據(jù)不同問題而定。5.偽隨機(jī)數(shù)問題——計算機(jī)生成的隨機(jī)數(shù)都是偽隨機(jī)數(shù),很多MonteCarlo書中都大書特書偽隨機(jī)數(shù)的危害以及如何生成盡可能“真”的偽隨機(jī)
3、數(shù)。有此告誡在,我們自然不能對偽隨機(jī)數(shù)問題視而不見,但是我們是否就要因這一問題惶惶不可終日呢?6.模型與現(xiàn)實——模型是我們的理想,但是現(xiàn)實中的市場卻是殘酷的。如果有人僅僅拿著書本就沖進(jìn)市場,那他必然還要交高昂的學(xué)費,最終鮮血淋漓地出來。同理,MonteCarlo方法(以及其他幾乎所有方法),任何時候都只能給我們作參考。然而,我們卻可以以科學(xué)的態(tài)度和方法使用MonteCarlo方法,以使其結(jié)果更加貼近現(xiàn)實,參考價值更大。二、本課程將解決的問題作為一門針對非學(xué)術(shù)人士的入門性質(zhì)的課程,本課程最注重的是基礎(chǔ)的應(yīng)用性知識。在接
4、下來,我會詳細(xì)講述MonteCarlo方法本身,且為了確保大家看懂,我會精選一些例子,從這些例子的數(shù)學(xué)推導(dǎo),到算法描述,到程序設(shè)計,到誤差分析,這些基礎(chǔ)過程都將涉及。尤其考慮到我見過的不少人(尤其是論壇上的不少網(wǎng)友),編程基礎(chǔ)比較薄弱,所以在講解程序時我會逐句分析,至少確保你能看懂這個程序的每個步驟。另一方面,入門課程還肩負(fù)為大家未來學(xué)習(xí)奠定基礎(chǔ)的重要使命,故課程中要覆蓋各個方面的內(nèi)容,例如上一節(jié)所提到的都或多或少有所覆蓋。但是,正是因為這是一個入門性質(zhì)的課程,很多的內(nèi)容無法涉及,同時很多有所涉及的內(nèi)容也無法充分展開
5、。具體在下文中涉及到相關(guān)內(nèi)容時我會盡量提供進(jìn)一步學(xué)習(xí)的方向、方法等延伸性問題。這里值得一提的是上文所提及的模型與現(xiàn)實的問題。本課程中的例子基本都是理論化的例子,這樣的例子好處在于它簡化了很多復(fù)雜的現(xiàn)實狀況,對于初學(xué)者而言容易上手,也便于教授MonteCarlo方法如何使用,同時它還是解決現(xiàn)實問題的基礎(chǔ)。所以,要特別注意,我在課程中講的那些金融工具定價的例子都是理論化的例子,千萬不要以為學(xué)會那些之后就已經(jīng)學(xué)會了現(xiàn)實中的金融產(chǎn)品的定價,套用一句廣告詞:“才剛剛開始呢”。三、章節(jié)設(shè)置常見的MonteCarlo書籍包含如下內(nèi)
6、容:隨機(jī)數(shù)的生成、特定分布抽樣、優(yōu)化(降低方差)技巧、隨機(jī)過程模擬、MonteCarlo方法實際應(yīng)用、以及擴(kuò)展(主要是Quasi-MonteCarlo,即擬蒙特卡洛方法)本教程覆蓋隨機(jī)數(shù)生成、特定抽樣分布、隨機(jī)過程模擬和應(yīng)用實例。但和那些書籍不同在于如下這些方面:不詳細(xì)講偽隨機(jī)數(shù)問題——我們用Matlab內(nèi)附帶的隨機(jī)數(shù)生成器,將偽隨機(jī)數(shù)問題留給Mathworks的專家吧不講降低方差技巧——降低方差技術(shù)講的是怎樣更快地作MonteCarlo,而這是入門教程,目的在教會你怎樣做MonteCarlo,如果你還不會做就去學(xué)怎
7、樣可以做得更快那沒有意義。所以,先學(xué)會基本使用方法最重要,優(yōu)化的問題在熟練后再講述就水到渠成了。特定分布抽樣——會講很多有用的技巧,例如RejectMethod、條件分布方法、協(xié)方差陣、Copula等方法生成聯(lián)合分布隨機(jī)變量,但是如果講述太深,每個內(nèi)容都可以寫一本書了,所以不會講太深,只講用的最多的那很少一部分內(nèi)容。并行MonteCarlo——很多入門的書上不會講這個,但是這個課程里面會專門用一章講,更詳細(xì)介紹見本章倒數(shù)第三小節(jié)。四、課程的教授模式本課程中每個知識點基本按照如下步驟展開:(一)理論基礎(chǔ)主要介紹與知識點
8、息息相關(guān)的基礎(chǔ)知識,例如公式的數(shù)學(xué)推導(dǎo)、概念的含義、Matlab語句基礎(chǔ)、計算機(jī)相關(guān)知識等等。這樣做最大的作用是幫助大家回憶這些內(nèi)容,以便與主體內(nèi)容展開相銜接。由于這并非主旨所在,所以不會在其上花費過多筆墨。若你從未接觸過這些基礎(chǔ)知識,你要是看一遍課程中的簡介就懂了自然最好,若不懂,則建議翻閱相應(yīng)的參考書籍。我會在課程講義最后附上我寫作本課程講