基于Matlab语言的Monte Carlo入门教程的设计与实现.docx
《基于Matlab语言的Monte Carlo入门教程的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Matlab语言的Monte Carlo入门教程的设计与实现.docx(40页珍藏版)》请在第一文库网上搜索。
1、前言与说明 % Monte Car Io方法是一门简单而复杂的学问Monte Carlo方法往小的方面说很简单,就是生成一堆随机数,然后以某函数规则计算出一堆数值,最后求这些数值的平均值就得到了结果;往大的方面说却很复杂,要将蒙特卡洛做好需要考虑的问题很多,例如:1 .需要解决的问题是否收敛一一倘若不收敛,Monte Carlo方法就不能用,不然计算出来的结果有何意义,只有老天才知道;2 .所选用的具体方法收敛速度如何一一虽然几乎所有Monte Carlo收敛阶数为1/2,但不同的方法收敛阶数前面的系数不同;3 .所得解的误差是多少一一Monte Carlo方法从来得不到精确值,而是一个近似的
2、随机变量,因此,任何时候,报告Monte Carlo解时,需要同时报告该解的方差;4 .如何选择具体算法,以加快速度Monte Carlo模拟需要较长时间,所以速度很重要。尤其是你使用Monte Carlo方法实时计算金融产品价格时,时间就是金钱。加快Monte Carl。速度有很多或大或小的技巧,而且这些技巧还要依据不同问题而定。5 .伪随机数问题一一计算机生成的随机数都是伪随机数,很多Monte Carlo书中都大书特书伪随机数的危害以及如何生成尽可能“真”的伪随机数。有此告诫在,我们自然不能对伪随机数问题视而不见,但是我们是否就要因这一问题惶惶不可终口呢?6 .模型与现实一一模型是我们的
3、理想,但是现实中的市场却是残酷的。如果有人仅仅拿着书本就冲进市场,那他必然还要交高昂的学费,最终鲜血淋漓地出来。同理,Monte Carlo方法(以及其他几乎所有方法),任何时候都只能给我们作参考。然而,我们却可以以科学的态度和方法使用Monte Carlo方法,以使其结果更加贴近现实,参考价值更大。二、本课程将解决的问题作为一门针对非学术人士的入门性质的课程,本课程最注重的是基础的应用性知识。在接下来,我会详细讲述Monte Carlo方法本身,且为了确保大家看懂,我会精选一些例子,从这些例子的数学推导,到算法描述,到程序设计,到误差分析,这些基础过程都将涉及。尤其考虑到我见过的不少人(尤其
4、是论坛上的不少网友),编程基础比较薄弱,所以在讲解程序时我会逐句分析,至少确保你能看懂这个程序的每个步骤。另一方面,入门课程还肩负为大家未来学习奠定基础的重要使命,故课程中要覆盖各个方面的内容,例如上一节所提到的都或多或少有所覆盖。但是,正是因为这是一个入门性质的课程,很多的内容无法涉及,同时很多有所涉及的内容也无法充分展开。具体在下文中涉及到相关内容时我会尽量提供进一步学习的方向、方法等延伸性问题。这里值得一提的是上文所提及的模型与现实的问题。本课程中的例子基本都是理论化的例子,这样的例子好处在于它简化了很多复杂的现实状况,对于初学者而言容易上手,也便于教授Monte Carlo方法如何使用
5、,同时它还是解决现实问题的基础。所以,要特别注意,我在课程中讲的那些金融工具定价的例子都是理论化的例子,千万不要以为学会那些之后就已经学会了现实中的金融产品的定价,套用一句广告词:“才刚刚开始呢”。三、章节设置常见的Monte Carlo书籍包含如下内容:随机数的生成、特定分布抽样、优化(降低方差)技巧、随机过程模拟、Monte Carlo方法实际应用、以及扩展(主要是QuasiMonte Carlo,即拟蒙特卡洛方法)本教程覆盖随机数生成、特定抽样分布、随机过程模拟和应用实例。但和那些书籍不同在于如下这些方面:不详细讲伪随机数问题一一我们用Matlab内附带的随机数生成器,将伪随机数问题留给
6、Mathworks的专家吧不讲降低方差技巧一一降低方差技术讲的是怎样更快地作Monte Carlo,而这是入门教程,目的在教会你怎样做Monte Carlo,如果你还不会做就去学怎样可以做得更快那没有意义。所以,先学会基本使用方法最重要,优化的问题在熟练后再讲述就水到渠成了。特定分布抽样会讲很多有用的技巧,例如Reject Method,条件分布方法、协方差阵、Copula等方法生成联合分布随机变量,但是如果讲述太深,每个内容都可以写一本书了,所以不会讲太深,只讲用的最多的那很少一部分内容。并行Monte Carlo一一很多入门的书上不会讲这个,但是这个课程里面会专门用一章讲,更详细介绍见本章
7、倒数第三小节。本课程中每个知识点基本按照如下步骤展开:(一)理论基础主要介绍与知识点息息相关的基础知识,例如公式的数学推导、概念的含义、Matlab语句基础、计算机相关知识等等。这样做最大的作用是帮助大家回忆这些内容,以便与主体内容展开相衔接。由于这并非主旨所在,所以不会在其上花费过多笔墨。若你从未接触过这些基础知识,你要是看一遍课程中的简介就懂了自然最好,若不懂,则建议翻阅相应的参考书籍。我会在课程讲义最后附上我写作本课程讲义所用到的所有参考书目。(由于我习惯看英文原版书,所以此教程的参考书目大多数是英文书籍)(二)主体内容不必多言,就是知识点的展开。(三)相关例子每个知识点后面我会附上一些
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Matlab语言的Monte Carlo入门教程的设计与实现 基于 Matlab 语言 Monte Carlo 入门教程 设计 实现