《matlab模拟蒲丰掷针实验计算pi的值》由会员分享,可在线阅读,更多相关《matlab模拟蒲丰掷针实验计算pi的值(2页珍藏版)》请在金锄头文库上搜索。
matlab 模拟蒲丰掷针实验计算 pi 的值%投掷次数为 n,针和直线相交的次数为 m%分析知真和直线相交的概率为 p=2l/pid%则有 pi=2nl/mdclear allclcd=1;% 设置两条平行线之间的距离,相当于在一张纸上画很多间距为 d 的平行线l=0.6;% 投针的长度(ld)n=1000000;% n 为投掷次数x=unifrnd(0,d/2,1,n);%产生 n 个(0,d/2)之间均匀分布的随机数,这里 d/2 是投针的中点到最近的平行线的距离alpha=unifrnd(0,pi,1,n);% 产生 n 个(0,pi) 之间均匀分布的随机数,这里 pi 是投针到最近的平行线的角度m=0;%记 针与平行线相交的次数初始值为 0for i=1:nif x(i)l*sin(alpha(i)/2 % 只要 x 小于 l*sin(alpha(i)/2,则相交m=m+1;endendp=m/n; % 计算相交的频率,即相交次数比总次数Vpi=2*l/(d*p) % 从相交的频率总求的 Value pi,即 pi 的值%运行结果:%Vpi =% 3.140710093614099%因每次产生的随机数都不一样,每次运算出来的 pi 的值都不同。n 越大,越精确。