实验名称:随机模拟和统计分析
姓名:翁高成 学号:105012009078 实验日期:2011年6月10日
实验目的: 学习MTLAB有关数据统计和随机变量分布的指令。计算实验介绍随机模拟法(即Monte Carlo)的基本原理,以及他们在积分计算和最优化计算等方面的应用,建模实验讨论零件参数设计和学生体检数据分析问题。 实验项目: ①设计随机模拟抛掷硬币的实验,显示正面向上的概率为0.5。 ②在一维布朗运动的运动过程中导出二维布朗运动的过程。 实验背景: 自然界发生的现象可分为两类,一类现象在一定条件下发生的结果是完全可以预知的,称为必然现象。另一类现象发生的结果在事先是无法准确预知的,称为偶然现象或随机现象。 实验具体过程: 第1题:题目: 考虑将一枚均匀硬币掷N次,当N很大时,正面出现的几率接近0.5,设计一个随机模拟试验显示这一现象。 理论推导或编程说明: 通过产生一个组0~1的随机数,以大于0.5的数代表显示正面的情况,累计在N次试验中出现大于0.5的次数,比去总次数,得到的即为正面出现的概率。 程序: >> %文件exercise_4.m N=input('please input a number:'); r=rand(1,N);x=0; for i=1:N if r(i)>0.5 x=x+1; end end p=x/N >> exercise_4 please input a number:100 p = 0.4300 >> exercise_4 please input a number:5000 p = 0.5002 >> exercise_4 please input a number:100000 p = 0.5048 >> exercise_4 please input a number:10000000 p = 0.5000 对实验题目的解答: 改变N的大小,观察结果,发现正面出现的概率总在0.5附近浮动,当N越大时,浮动的范围变小,数据越来越接近0.5。 改进程序或思考:也可以用命令unidrnd(2,1,N)-1生成一个只含有0和1的随机矩阵 第2题:题目:(brown运动) brown运动是英国植物学家在观察液体中浮游微粒的运动发现的随机现象,现在已成为随机过程理论最重要的概念之一。下列M函数brwnm.m给出了一维布朗运动(或称维纳过程),使用格式 [t,w]=brwnm(t0,tf,h) 其中[t0,tf]为时间区间,h为采样步长,w(t)为布朗运动。 function [t,w]=brwnm(t0,tf,h) t=t0:h:tf; x=randn(size(t))*sqrt(h); w(1)=0; for k=1:length(t)-1, w(k+1)=w(k)+x(k); end 若w1(t), w2(t)都是一维布朗运动且相互独立,那么(w1(t), w2(t))是一个二维布朗运动。试给出二维布朗运动模拟作图程序。 理论推导或编程说明: 定义时间区间为[t0,tf],采样步长为h;求向量t的长度;产生2行,n列 N(0,1)随机距阵;定义Brown运动转移方程;绘制二维Brown运动图。 程序: function[t,w]=brwnm(t0,t1,h) t=[t0:h:t1] x=randn(length(t),2)*sqrt(h); w(1,1)=0;w(1,2)=0; for k=1:length(t)-1 w(k+1,1)=w(k,1)+x(k,1); w(k+1,2)=w(k,2)+x(k,2); end figure(1);plot(t,w) figure(2);plot(w(:,1),w(:,2)) 对实验题目的解答: 这就是二维布朗运动模拟作图程序 改进程序或思考:本题也可以编入题给函数,而后分别求两次brwnm函数亦可得。 实验总结:①本次活动学习了概率函数,了解并掌握用matlab产生各类随机数矩阵②利用matlab指令作出模拟显示抛掷硬币正面概率为0.5的程序和二维布朗运动的程序。
相关推荐: