pi的计算实验报告

上传人:简****9 文档编号:63921784 上传时间:2022-03-20 格式:DOCX 页数:17 大小:313.13KB
返回 下载 相关 举报
pi的计算实验报告_第1页
第1页 / 共17页
pi的计算实验报告_第2页
第2页 / 共17页
pi的计算实验报告_第3页
第3页 / 共17页
点击查看更多>>
资源描述
实验报告班级:02姓名:张海洋学号:9圆周率(选做)要求:先查资料看看古人是怎样计算兀的,再对兀的各种计算方法进行研究和讨论(收敛速度等),弁给出不同算法算出.的小数点后第10000位的数字是什么,你觉得该数字应该是多少第一部分:圆周率简介圆周率是指平面上圆的周长与直径之比(ratioofthecircumferenceofacircletothediameter)。用符号冗(读音:pa)i表示。中国古代有圆率、圆率、周等名称。它是一个常数(约等于)。它是一个无理数,即无限不循环小数。在日常生活中,通常都用代表圆周率去进行近似计算。而用十位小数便足以应付一般计算。即使是工程师或物理学家要进行较精密的计算,充其量也只需取值至小数点后几百个位。计算圆周率的方法“历史上一个国家所算得的圆周率的准确程度,可以作为衡量这个国家当时数学发展水平的指标。”历史上最马拉松式的计算,其一是彳惠国的LudolphVanCeulein他几乎耗尽了一生的时间,计算到圆的内接正262边形,于1609年得到了圆周率的35位精度值,以至于圆周率在彳惠国被称为Ludolph数;其二是英国的WilliamShanks,他耗费了15年的光阴,在1874年算出了圆周率的小数点后707位。可惜,后人发现,他从第528位开始就算错了。把圆周率的数值算得这么精确,实际意义并不大。现代科技领域使用的圆周率值,有十几位已经足够了。如果用LudolphVanCeulenB出的35位精度的圆周率值,来计算一个能把太阳系包起来的一个圆的周长,误差还不到质子直径的百万分之一。以前的人计算圆周率,是要探究圆周率是否循环小数。自从1761年Lambert证明了圆周率是无理数,1882年Lindemann证明了圆周率是超越数后,圆周率的神秘面纱就被揭开了。在中国,公元263年前后,刘徽提出著名的“割圆术”求出了比较精确的圆周率。他发现:当圆内接正多边形的边数不断增加后,多边形的周长会越来越逼近圆周长,而多边形的面积也会越来越逼近圆面积。于是,刘徽利用正多边形面积和圆面积之间的关系,从正六边形开始,逐步把边数加倍:正十二边形、正二十四边形,正四十八边形,一直到正三。七二边形,算出圆周率等于三点一四一六,将圆周率的精度提高到小数点后第四位。在刘徽研究的基础上,祖冲之进一步地发展,经过既漫长又烦琐的计算,一直算到圆内接正24576边形,而得到一个结论:兀l.Oe-6h(b-a)/n.5=0;fori=l;ns=s-H(a+i*h-h/2;endt2=(tl+h*)/?;eu=abs(t2-t1);fprin+f(ofjr=9t.6nt12ner);n=2*n;tl=t2;endendt-3.lOCOOO,r=0.100000t=5.131170Jr=C(031176t=3.13S9S8,r=0.007912:i=3.140942,r=0.001955t=3.141430,匚0.COC409t=3.141552,r=0.00C122t=3.141B82,r=0.000031t=3.141590,r=C.000003t=3.141592,r=0.000002t=3.141592,r=0.0000004、泰勒级数法计算利用反正切函数的泰勒级数arctan x2k 1(1)k11h来计算(I)x=1 时1 -43 5n=4*171 k 12 k 1C3irnnandWindown=lQOO;5=0;fork=1:ne=s44(-1)*(k+1)/(2*k1);endypa(Ej20)ans-J.1405926538397941350n=10ans=;n=20ans=n=50ans=;n=100ans=;n=200ans=;n=500ans=;n=1000ans=;n=2000ans=;x=1时得到的arctanl的展开式收敛太慢,逼近速度太慢,运算庞大,对速度造成了很大影响。5、泰勒级数法计算:利用反正切函数的泰勒级数352k1xxk1xarctanxx(1)采计舁352k11 1(II)进一步精细化arctan1arctan-arctan-2 3Gemm4ndwindoweymsn;f2=C-l)*(n-l)*(1/3)V(2tn-1);ans1-symsujii(f1;1,79),anssynsujnCf2,%I,79);ari=vpa(4*(51+52),20)ans-3 .H15926535897932385n=10ans=;n:=20ansn=二50ansn:=100ansn:=200ansn:=500ansn:=1000ansn=二2000ans当x=1时得到的arctanl的展开式收敛太慢。要使泰勒级数收敛得快,容易想到,11应当使x的绝对值小于1,取好是远比1小。例如,因为arctanlarctan-arctan-,所以我们可以计算出arctan工,arctan1的值,从而得到arctan1的值。这样,就使得收敛23速度加快,逼近的速度大大增加.6、利用攵今给出一4arctan114*Grrr,.11.1、arctan,推出九=4(4arctanarctan)452395239CommandWindowIsyirisn;T1二(-1)Cn.l)*(l/5)(2*ir-l)/(2n-1);2二(-1)、Cn-D*(1/233)*(2*n-l)/C2*n-l);ansl=s7nsujn(flfn,1,9);ans2=s!fflk5uni(f2,n,79);an=vpa(4*(4*ansl-ans2)j2Q)ans=3.141592663B8Q7932386n=10ans=;n=20ans=;n=50ans=;n=100ans=;n=200ans=;n=500ans=;n=1000ans=;n=2000ans=;对泰勒级数,随着1X1的减小,级数的收敛速度明显加快,这启示我们另外构造相关级数来逼近兀。7、蒙特卡罗法计算单位圆的1/4是一个扇形,它是边长为1的单位正方形的一部分,单位正方形的面积S1。只要能够求出扇形的面积S在正方形的面积中所占的比例kS/S,就能立即得到S,从而得到的值。下面的问题归结为如何求k的值,这就用到了一种利用随机数来解决此种问题的蒙特卡罗法,其原理就是在正方形中随机的投入很多点,是所投的每个点落在正方形中每一个位置的机会均等,看其中有多少个点落在扇形内。降落在扇形内的点的个数m与所投店的总数n的比可以近似的作为k的近似值。ICommandWindowk=2000,mrD;forn=1ikifrandU)2+-rand(1)1m=m+1;erulendvpa(4*VlJ)ans=3.1080000000000000000000000000000n=100ans=;n=200ans=;n=500ans=n=1000ans=;n=2000ans=;n=5000ans=;n=10000ans=;n=20000ans=;这种数据模拟算法收敛的速度很慢,从运行结果来看,蒙特卡罗法的计算结果为,虽然精确度不太高,但运行时间短,在很多场合下,特别是在对精确度要求不高的情况下很有用的。除以上几种方法之,还有下列一些的求其他的方法:*利用高斯公式1”11=48arctan+32arctan20arctan* 、兀=2+1/3*(2+2/5*(2+3/7*(2+(2+k/(2k+1)*(2+).)当.(k=2799时可精确到800位)* 、6=1/2+1/2*1/(3*2八3)+(1*3)/(2*4)*(1/(5*2八5)+* 、a(裙i)+1=0(欧拉公式,也称世界上最杰出的公式)* 、1+(1/2)八2+(1/3)八2+(1/4)八2+.(1/rf)/6=兀* 、1+(1/2)八4+(1/3)八4+(1/4)八4+.(1/rf)440兀* 、1+(1/2)八6+(1/3)八6+(1/4)八6+.(1/rf)6/945兀* 、1+(1/2)八8+(1/3)八8+(1/4)八8+.(1/rf)8/S450兀* 、1+(1/2)八10+(1/3)八10+(1/4)八10+-.(1/0r110793555第四部分:求的小数点后第位数字的几种方法:1、反正切函3 X arctan x x 3数5X5的泰勒级(1)k12k 1X2k 1Mathematica 程序出:=n = In finity;上打得到一14推出:1 =4 *1)k(1)kk 02k 12k 1i=i ;回3.1415926535S93Z3S426433S32502S341971fi9339J7510552097444592307514052&6205962603402&343小数点后10000位数字为82、沃里斯(Wallis)方法c2244662133557c2k2k2k12k12k1Mathematica 程序r-rnS3ii丁.二 n s Infinity;5 = 2 P (2 t / C2上一1) t 2 1c / (2 J: + 1);Ns, 10 0021二r :二 3,141552535595323246264335327950206419719399375L05E2C 974 344S923C73146622 620 2 93250 3 4 3Z5S42-G未令名1*35y?y5U545U7irawr2UgTTU53B7UlJT745tUUI7T742BZr二三二三:”;肥匕 4 斐=5 二 4三1 二二二 4 2 3Emm:9S922 59S9Eaai59205600101fi5525fi 37567小数点后10000位数字为83、基于arctanx的级数麦琴给出:414 arctan5.山 ,1推出兀=4( 4 arctan arctan5+1 .arctan;239 _1_ 239)MATLAB程序yyeynsii;f1=(-1)xtn-l)*(l/b)A(2*n-l)/(2*n-l);arx51=sjTnsm(fljns1irf),ms2=syikEun(f2,m1inf);ans=vpa(4*(4*anpl-ais2);10002)STlE3.14159265355979323840264338327050285419?1693991592056。101比52563756芮&小数点后10000位数字为8求取的方法很多,过程类似,不再累述验证lr-49445铝配HLGM及萌20的9找之酊34醛53屯2;110679221405132E23(j647Q938460955C5:223172-qq耳4代4汽11i,idAn?*di仆。7什i口才白彳寸力与:白片工口书*?。;*日回於35鹫/颐970704号乳工口乳4。;二。1*41口口162=02109276457州1M57922955249犯7275后架比126躺3的黑3f?225c95965150560010ie552563757e6结论:兀的小数点后10000位数字为8第五部分:心得体会对于兀的值我们早已知晓,但是对于这个数值如何得到却不清楚。通过这次学习,我们知道原来计算兀的值有如此多的方法,并且知道了级数在一些计算中的作用。通过本次实验,我们知道了运用各种方法计算兀的近似值,知道了matlab和mathematica中关于级数的运算,学习是一个枯燥的过程,有些东西是必须懂的。也就是一些基础知识吧,包括基础的操作和相关的理论知识。因此,有一本教材看一次,必定会有所收获。看了,练习,思考。MATLAB是一个实用性很强,操作相对容易,比较完善的工具软件。使用起来比较方便,通过操作可以很快看到结果,能够清晰地感觉到成功与失败,编程问题最头疼的不是编程序,而是调程序,所以在你的程序编完之后,一定要进行验证其正确性,你要尽量多的设想你的问题的复杂性,当然,要一步一步复杂,这样才能保证你的程序的适用性很强。以后虽然没有数学应用软件设计的课程了,但是对于一个学习数学的学生来说,以后用到MATLAB和mathematica的地方还有很多,我不会因为不用学而不去学,希望能在数学建模之前,把两个软件运用灵便,为以后更强大的数学世界打下夯实的基础。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!