圆周率的近似计算.doc
文本预览下载声明
实验报告
实验编号 伍轶强 专业班级 电子1302班 学号 1305020225 一、实验名称
圆周率的近似计算1.了解(的计算历程2.理解和掌握近似计算(的数值积分法、蒙特卡罗(Monte?Carlo)法等方法的原理和过程。3.学习、掌握Mathematica的应用环境及其基本功能,通过一些练习掌握其基本的操作及相关命令。
Wolfram Mathematica 9
四、实验过程记录(基本步骤、主要程序清单、异常情况记录等)
方法一、利用单位圆与边长为1的正方形面积之比来计算π的近似值
基本步骤及程序清单:如图1单位圆的1/4为一个扇形G,它是边长为1的正方形的一部分。考虑扇形面积在正方形面积中所占的比例k,得出其结果为π/4,然后乘以4就可以得到π的值。
这里如何计算比例k,运用蒙特卡罗方法的随机投点思想。在正方形中随机投入很多点,使所投点落在正方形中每一个位置的机会均等,然后考察有多少点落在扇形内.其中落在扇形内的点的个数m与投点
总数n之比就是k的近似值。
图1
程序:
n=1000;p={};
Do[m=0;Do[x=Random[];y=Random[];If
[x^2+y^2=1,m++],{k,1,n}];
AppendTo[p,N[4m/n]],{t,1,20}];
Print[p];
Sum[p[[t]],{t,1,20}]/20
方法二、利用随机整数互素的概率来得到π的近似值.
基本步骤及程序清单:取一大整数N,在1到N之间随机地取一对整数a,b,找到它们的最大公约数(a,b),做n次这样的实验,记录(a,b)=1的情况次数m,计算出p=m/n的值.理论分析,随机整数互素的概率为
,于是可得π≈6n/m。
程序:
n=1000;p={};
Do[m=0;
Do[x=Random[Integer,{1,50000}];y=Random[Integer,{1,50000}];
If[GCD[x,y]==1,m++],{k,1,n}];
AppendTo[p,N[(6n/m)^(1/2)]],{t,1,20}];
Print[p];
Sum[p[[t]],{t,1,20}]/20
方法三、蒙特卡罗(Monte?Carlo)法作一个正方形及其内切圆,向正方形所在的区域内随机投点,那么根据古典概型的特征可知:落在圆内的点数与落在正方形内的点数之比在概率上等于圆与正方形的面积之比。假设内切圆的半径为R,投在正方形内的点共有N个,其中落在内切圆内的点有M个,则有如下关系式成立:(πR2)/(4R2)=M/N化简可得:π=4M/N其中,N是人为给定的变量,是已知的。因此,算法的任务就是数出落在圆内的点的个数Module[{i,x,y,s,m=0,n=200000},
For[i=n,i0,i=i-1,x=Random[];y=Random[];s=If[x^2+y^2=1,1,0];m=m+s];
N[4 m/n]]
五、实验总结
通过在Mathematica环境下,对进行近似计算的实验操作,一方面加深了我对数值积分法、蒙特卡罗(Monte Carlo)法等方法的原理和过程进一步理解,另一方面也提高了我上机实验的操作能力,同时也熟悉了Mathematica的应用环境及基本功能,掌握了其基本的操作和相关命令。
六、成绩
第3页 / 共3页
显示全部