实验名称: 随机模拟与统计分析
姓名: 学号:105012009 实验日期:2011年5月31日
实验目的:
1、 学习MATLAB有关数据统计和随机变量分布的指令
2、 了解建立MATLAB函数方法,理解循环语句for — end
3、 掌握二项分布随机数产生命令binornd及求和命令sum
实验项目:
1、 掷硬币
2、 Brown运动
实验背景:
1、抛硬币实验是概率论中非常简单易懂而且易于操作的试验,在概率研究的发展史上就有很多著名的数学家做了这样的试验。如下图:
试验者
抛硬币
次数
正面朝上
次数
反面朝上
次数
正面朝上
概率
德?摩根
4092
2048
2044
0.5005
蒲丰
4040
2048
1992
0.5069
费勒
10000
4979
5021
0.4979
皮尔逊
24000
12012
11988
0.5005
罗曼诺夫斯基
80640
39699
40941
0.4923
2、布朗运动是英国植物学家在观察液体中浮游微粒的运动发现的随机现象,现在已成为随机过程理论最重要的概念之一.
实验具体过程:
1、
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目:
(掷硬币) 考虑将一枚均匀硬币掷N次,当N很大时,正面出现的机率接近0.5,设计一个随机模拟试验显示这一现象.
理论推导或编程说明:
程序中“n”
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示抛硬币的次数,“0” 表示正面朝上,“m” 表示正面朝上的次数,“
”表示正面出现的机率。
程序(或命令):
>> n=1000;
>> m=0;
>> for i=1:n
x=randperm(2)-1;
y=x(1);
if y==0
m=m+1;
end
end
>> m/n
ans = 0.4860
>> n=10000;
>> m=0;
>> for i=1:n
x=randperm(2)-1;
y=x(1);
if y==0
m=m+1;
end
end
>> m/n
ans = 0.5036
>> n=100000;
>> m=0;
>> for i=1:n
x=randperm(2)-1;
y=x(1);
if y==0
m=m+1;
end
end
>> m/n
ans = 0.4979
对实验题目的解答:
解:在MATLAB命令窗口中输入下述命令:
>> n=1000;
>> m=0;
>> for i=1:n
x=randperm(2)-1;
y=x(1);
if y==0
m=m+1;
end
end
>> m/n
ans = 0.4860
通过逐渐增加n的大小,由上的MATLAB程序可得:当n 越来越大时,硬币正面出现的机率越接近于0.5.
改进程序或思考:
在MATLAB中建立M文件money. m:
function y=money(n)
for i=1:n
x(i)=binornd(1,0.5);
end;
m=sum(x);
y=m/n
在MATLAB命令窗口中输入下述命令:
>> money(1000)
y =
0.4900
ans =
0.4900
>> money(10000)
y =
0.5064
ans =
0.5064
>> money(100000)
y =
0.4994
ans =
0.4994
2、 题目:
(布朗运动) 布朗运动是英国植物学家在观察液体中浮游微粒的运动发现的随机现象,现在已成为随机过程理论最重要的概念之一.下列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为采样步长。因为w1(t), w2(t)都是一维布朗运动且相互独立,那么二维布朗运动(w1(t), w2(t)) 模拟作图程序就可以在一维布朗运动模拟作图程序的基础上进行改造。
程序(或命令):
function [t,w]=brwnm(t0,tf,h)
t=t0:h:tf;
x=randn(length(t)-1,2);
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
plot(w( : ,1),w( : ,2));
>> [t,w]=brwnm(0,1,0.01);
对实验题目的解答:
解:在MATLAB中建立M函数brwnm. m:
function [t,w]=brwnm(t0,tf,h)
t=t0:h:tf;
x=randn(length(t)-1,2);
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
plot(w( : ,1),w( : ,2));
在MATLAB命令窗口中输入下述命令:
>> [t,w]=brwnm(0,1,0.1);
得到如下的图形:
改进程序或思考:
以下给出10颗微粒的扩散过程:
先建立M函数brwnm. m:
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
再建立M脚本文件brwn2. m:
clear;close;
t0=0;tf=1;h=0.01;x=zeros((tf-t0)/h+1,10);
for j=1:10,
[t,x(:,j)]=brwnm(t0,tf,h);
[t,y(:,j)]=brwnm(t0,tf,h);
end
for i=1:length(t),
plot(x(i,1:9),y(i,1:9),'.','markersize',24);
hold on;
plot(x(i,10),y(i,10),'r.','markersize',24);
axis([-2 2 -2 2]);grid on;hold off;
pause(0.2);
end
在MATLAB命令窗口中输入下述命令:
>> brwn2
得到如下图形:
实验
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
:
1、 通过实验,我学会了randperm、binornd、randn等MATLAB语句。
2、 学会了建立MATLAB函数方法。
3、 在做第二题得过程中,多次出现错误,最后在同学的帮助下终于完成了,并经过自己的思考,对此实验进行了改进。
4、 由于在高中比较少接触这一方面的知识,导致在作这一章的实验时会有点吃力。
5、实验过程发现自己的知识掌握的还不是很好。究其原因有两个:一是课堂上的听课效果不好,容易开小差;二是课后没有花时间去看书和进行实际操作。
6、验中,对MATLAB有了进一步的了解,发现其功能是十分强大的。