【No.1】:动画模拟Galton 钉板试验
1) 确定钉子的位置。将钉子的横、纵坐标存储在一个矩阵中;
2) 模拟了小球从顶端随机地落入某一格子的过程。设向右的概率为p ,向左的概率为q=1-p ;将[0,1]分成两段,区间[0,p]和(p,1]。利用rand[]产生一个介于0和1之间的随机数u ,如果随机数u p [0,]∈,让小球落向左边,否则落向右边;将这一过程重复n 次,并用直线连接小球落下时所经过的点。
3) 模拟小球堆积的形状。输入扔球次数m ,计算落在第i 个格子的小球数i m 在总球数m 中所占的比例,这样当模拟结束时,就得到了频率i m i m
f i n ,0,1,2,...,==,
用频率反映小球堆积的形状。 4) 利用movie 完成动画。 5)程序代码: clear; clc; clf;
m=input('请输入小球的个数:'); n=5;
y0=2;
ballnum=zeros(1,n+1); %生成1*(n+1)全零阵
p=input('请输入概率P 的值(0.5最佳):'); %设置向左的概率 q=1-p;
for i=n+1:-1:1 %创建钉子的坐标 x(i,1)=0.5*(n-i+1); y(i,1)=(n-i+1)+y0; for j=2:i
x(i,j)=x(i,1)+(j-1)*1; y(i,j)=y(i,1); end end
mm=moviein(m); %开始模拟小球下落 for i=1:m
s=rand(1,n); %产生n 个随机数