MATLAB蒙特卡洛方法编程实例加程序
蒙特卡洛方法是一种利用计算机的随机数理论模拟实际的情况的一种方法。今天主要是以实例讲解蒙特卡洛方法的MATLAB编程实现。
实例1
程序clc;清除命令行窗口命令clearall;清除工作区变量closeall;关闭图形窗口L1;正方形长度n100000;计算随机生成的10万点数科学计数法随机生成〔0,1〕范围内的随机数xunifrnd(0,L,〔1n〕);unifrnd连续均匀分布的随机数生成器yunifrnd(0,L,〔1n〕);pinshusum((x。2y。2L));判断点是否在单位圆内ixfind(x。2y。2L);绘图figure;plot(〔0LL0〕,〔00LL〕,k);holdon;plot(x(ix),y(ix),r。);Pai4pinshun;输出结果fprintf(蒙特卡洛算法求解圆周率:。20f,Pai);xlim(〔0L1。2〕);ylim(〔0L1。2〕);legend(正方形区域,单位圆内的点);
运行结果
实例2
程序clc;clearall;closeall;symsxyf1x。42。y。481;f2x。2y。24;figure;ezplot(f1);holdon;ezplot(f2);n1e6;xunifrnd(6,6,〔1n〕);unifrnd连续均匀分布的随机数生成器yunifrnd(6,6,〔1n〕);pinshusum((x。42。y。481)(x。2y。24));area1212pinshuncount0;fori1:nif(x(i)42y(i)4)81(x(i)2y(i)24)countcount1;x1(count)x(i);y1(count)y(i);endendholdon;plot(x1,y1,r);title(面积区域)结果area22。7863
运行结果
实例3
模拟抛硬币,计算正面出现的频率,并画出随着试验次数n的增大,频率和概率的关系图。(unidrnd(N):生成最大值为N的随机正整数。)
程序clc;clearall;closeall;模拟抛硬币n100:1:1000;fori1:length(n)numn(i);xrand(1,num);rand(size)随机生成0到1之间均匀分布的浮点数假设大于0。5为硬币向上indexfind(x0。5);count(i)length(index);p(i)count(i)num;endfigure;plot(n,p,r);xlabel(次数n);ylabel(正面向上的频率)gridon;ylim(〔01〕);disp(随着n不断增大,频率稳定在概率0。5。)
运行结果
实例4
程序clc;clearall;closeall;a0;b1;f(x)4。(1x。2);n〔100100010000100000〕fori1:length(n)trand(1,n(i));rand(size)随机生成0到1之间均匀分布的浮点数xa(ba)t;ssum(f(x));S(i)s(ba)n(i);endSerrorpiS
运行结果n100100010000100000S3。19963。12273。13723。1419error0。05800。01890。00430。0003
网络上其他蒙特卡洛计算程序
程序clearall;clc;closeall;dt1365。0;一天的年单位时间S020;股票在初始时刻的价格,程序中假设r0。031;期望收益率sigma0。6;波动率0。6expTermrdt;漂移项dtstddevsigmasqrt(dt);波动项o:dz(t)nDays190;要模拟的总天数fornDays1:nDays1nDays表示时刻tnTrials10000;模拟次数forj1:nTrialsnrandn(1,nDays);生成nDays个标准正态分布随机数SS0;fori1:nDaysdSS(expTermstddevn(i));模拟计算股票价格的增量SSdS;计算股票价格endS1(nDays,j)S;将每天的股票模拟价格数据记录在S1中endendS2mean(S1);计算每天模拟的股票价格的均值,作为价格的估值plot(S2,o)90天期间股票价格估值的曲线图figure(2)hist(S1(90,:),0:0。5:65)第90天的股票价格模拟的直方图
运行结果
程序clc;clearall;closeall;T1;S048;underlyingasset(股票为主)期初价格r0。05;riskfreerate无风险利率NStep200;numberofsteps将时间分成200份deltaTTNStep;TimeStepSigma0。1;StrandDerivationRep20000;Numberofreplication重复试验次数mu(rSigma22)deltaT;sigmadeltaSigmasqrt(deltaT);计算增量Incrementsmusigmadelta。randn(NStep,Rep);增量为(rsigma22)(Tt)加上标准差0,1正态分布的数,一共200个20000次模拟计算对数价格LogPricecumsum(〔log(S0)ones(1,Rep);Increments〕);累加增量之后返回1到20000次的价格PricePathexp(LogPrice);对价格路径画图plot(PricePath)title(SimulationofPricePath)ylabel(StockPrice);xlabel(TimeStep);xlim(〔0,NStep〕);
运行结果
本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。
作者郭志龙
编辑郭志龙
校对郭志龙
我13岁开始打拼,独立买上房,嫁大12岁匈牙利帅大叔,被宠成公主这是我们讲述的第1187位真人的故事我是微拉爱笑的微拉小姐姐,80后,陕西人,现在在匈牙利布达佩斯生活。我5岁那年父亲离世,13岁我就走上社会开始打拼。为了拥有一技之长,我学习了美
巧克力甜蜜不再?21世纪经济报道记者易佳颖上海报道坐沙发,吃巧克力,读狄更斯,心情又会好起来,和世界妥协。大文豪托尔斯泰曾惬意地描述这样的场景。吃巧克力一直被认为是会让人心情变好,但今天不禁想问一
员工如何安全返岗?如何安全复工复产?一文读懂复工复产历来是事故多发时期,加之当前疫情影响年末岁尾特殊背景,安全风险激增,需高度警惕相关风险,并釆取相应对策措施。如何安全复工返岗?这些方面要注意1。坚持佩戴口罩上班途中,乘坐公
忆老屋老屋之老(文李晋勇)正在冰冻中的汾河水这是一个没有一片雪花飘过的冬季,汾水尝试着冰冻了两次都没有成功,之后,便无遮无羞地扭动着狭长的身躯迟缓地向南去了,留下了天地间干冷的空气和刺骨
散文丨归途归途文姚水叶尽管看不到雪,甚至连雪花见都没见过,但刺骨的寒冷却时时伴随着我,工长和工友都问我冷吗?我怕说错话会被借口辞退,连忙回答不冷,不冷。其实在寒风呼啸,滴水成冰的环境里哪有不
红尘不老,相思永生!人人皆是红尘里的过客来去匆匆只为冥冥中的那一份情三千弱水孤舟难渡有多少上不了岸的人在红尘中徘徊踟躇花谢花开只是生命在轮回春去冬来只是时间在反复红尘中人惦念的是那一份情是因为情意最难
职场中得意不张扬,失意不消沉,你能做到吗?头条创作挑战赛老话说得好凡事当留余地,得意不可再往。在职场上生活中,当你事业有成功成名就之时,恰是需要你小心提防的陷阱。得意不可再往,蕴含的哲理虽然微妙,却是生命中的常态。之所以不
你是你,不是你才是你?思考是让人不断进步的阶梯,没有思考就没有人的存在。因此,人在经历过某些事或者正在经历某些事的时候,脑子里总是会自然而然都冒出一些东西,这些东西指引着自己去寻找一个方向或者答案。我是
平安夜,睡不着毕竟到了圣诞节了,平复一下情绪,先起个引子吧,在美国,有一句著名的反战(姑且称之为反战纪念标语吧,实际上是纪念啥的我们不想提)纪念标语FreedomIsNotFree这是个英语双关
绝美不是人间种,风铃草传说只有装着故事的人才听得懂图益阳洪源图益阳洪源图益阳洪源图益阳洪源图益阳洪源风铃草,一种并不稀奇的植物。它却拥有一个动人的传说。妻子为让盲人丈夫找到她,便在身上放了一个铃铛。丈夫外出为躲避马车被撞下山腰摔死
中国足球的唯一希望开始出现(附现场图集)昨晚进行了中超第32轮的较量,成都蓉城主场对阵武汉三镇的比赛格外引人瞩目。不仅因为本场比赛事关争冠形势,更在于这是主队成都蓉城在新主场凤凰山专业球场的首秀。在疫情肆虐的三年里在全国