怎样计算圆周率

上传人:小** 文档编号:93029634 上传时间:2019-07-15 格式:PDF 页数:27 大小:508.33KB
返回 下载 相关 举报
怎样计算圆周率_第1页
第1页 / 共27页
怎样计算圆周率_第2页
第2页 / 共27页
怎样计算圆周率_第3页
第3页 / 共27页
怎样计算圆周率_第4页
第4页 / 共27页
怎样计算圆周率_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《怎样计算圆周率》由会员分享,可在线阅读,更多相关《怎样计算圆周率(27页珍藏版)》请在金锄头文库上搜索。

1、哪里有数,哪里就 有美. 哪里有数,哪里就 有美. - Proclus 知其然,更知其所以 然. 知其然,更知其所以 然. -中国先哲 数学实验数学实验 上海交大数学系上海交大数学系 怎样怎样计算计算 的值 ?的值 ? 你也许能写出你也许能写出 = 3.1415926535 实际问题实际问题 圆周率, 我们十分熟悉的常数.圆周率, 我们十分熟悉的常数. 用用Matlab 容易求出容易求出到几百位到几百位 digits(100) vpa(pi) 但你会计算但你会计算 的值吗?你又能用几种方法计算?的值吗?你又能用几种方法计算? ans = 3.14159265358979323846264338

2、32795028841971693 99375105820974944592307816406286208998628034 825342117068 刘徽割园法刘徽割园法 ?从正六边形开始,逐步求 边长与面积 ?递推法 ,26 n n a的正多边形边长为设边数为 oA B C D 22222 )(ODOCADDCADAC+=+=如图 2 2 22 1 42) 2 (11) 2 ( n nn n a aa a= += + 相应正多边形面积 422 1 2 1 1 nn n aa ADOCS= + ? 的值 n n n n aS2326 1 1 = + + (刘徽计算到96边形面积,得到 3.1

3、41) 用Matlab计算用Matlab计算 function y=calpi(n) syms a; for i=1:n a=sqrt(2-sqrt(4-a2); end a=subs(a,a,1); y=3*2n*vpa(a,n+5); n=53.14145240288 (刘徽3位) n=11 3.1415926198105522176 (祖冲之7位) n=16 3.1415926535797449417818112 (韦达10位) n=61 3.1415926535897932384626433832754 (鲁道夫29 (34)位) LL+ += 12 1 )1( 5 1 3 1 1 4

4、 1 n n LL+ += 12 )1( 53 arctan 12 1 53 n xxx xx n n LL+= + 22142 2 ) 1(1 1 1 nn xxx x 积分导出 取 x=1 利用幂级数计算 用Matlab计算用Matlab计算 function y=calpi1(k) for n=1:k a(n)=(-1).(n-1)./(2*n-1); end; 4*sum(a) 创建m文件 calpi1.m,内容如下: calpi1(1000) ans = 3.14059265383979 calpi1(10000) ans = 3.14149265359003 在命令窗口中输入如下命

5、令: calpi1(15000) ans = 3.14152598692319 calpi1(20000) ans = 3.14154265358982 问题: 能不能算得更快一点、更精确一点?问题: 能不能算得更快一点、更精确一点? 43 1 arctan 2 1 arctan =+ LL+ += 12 1 53 ) 2 1 ( 12 )1( ) 2 1 ( 5 1 ) 2 1 ( 3 1 2 1 4 n n n Machin公式 4239 1 arctan 5 1 arctan4 = 简单公式 ) 3 1 ( 12 )1( ) 3 1 ( 5 1 ) 3 1 ( 3 1 3 1 12 1

6、53 LL+ + n n n 用Matlab计算用Matlab计算 function y=calpi2(k) for n=1:k a(n)=(-1).(n-1)*(1/2).(2*n-1)./(2*n-1)+(-1).(n- 1)*(1/3).(2*n-1)./(2*n-1); end; vpa(4*sum(a) 创建m文件 calpi2.m,内容如下: digits(30)%保留小数点后30位 calpi2(10) ans = 3.14159257960635063255949717131 在命令窗口中输入如下命令: calpi2(20) ans = 3.141592653589756256

7、59354591335 calpi2(50) ans = 3.14159265358979323846264338328 = dx x A 1 0 2 1 1 4 2 1 1 )( x xy + =设将0,1区间n等分,取xk=k/n, )(2 2 0121nn yyyyy n A+= L梯形法 )(2)( 6 1 224220 + mm yyyyy m SimpsonL法 yk= 1/ (1+xk2) )(4 1231 利用数值积分方法 + m yyyL 用Matlab计算用Matlab计算 function y=fun(x) y=4./(1+x.2); function y=calpi3(

8、k) for n=1:k-1 a(n)=2*fun(n/k); end; vpa(1/(2*k)*(sum(a)+fun(0)+fun(1) 创建 m 文件 fun.m,内容如下: 创建 m 文件calpi3.m,内容如下: digits(30)%保留小数点后30位 calpi3(100) ans = 3.14157598692312900467982217378 在命令窗口中输入如下命令: calpi3(500) ans = 3.14159198692313035294887413329 calpi3(10000) ans = 3.14159265192314007819618382200

9、针与平行线相交的次数为n Monte Carlo 法 从Buffon落针实验谈起: 纸上一组平行线距离为1, 将长度为1的针多次地扔到 纸上。若扔针次数为m,而其中 Buffon指出:的数值与 m/n 有关,他由此 求出的近似值为3.142 设计方案 4 m/n 计算机模拟:产生区间0,1上数目为n 的一组 在正方形 0calpi4(10000) ans = 3.13240000000000 calpi4(50000) ans = 3.14728000000000 calpi4(100000) ans = 3.14608000000000 在命令窗口中输入如下命令: 其他方法其他方法 ?1/

10、的展开式 Ramanujan 公式 = + = 1 42 396) !( )263901103()!4( 9801 221 n n n nn ?算术几何平均值迭代法算术几何平均值迭代法 n n n n nnn nn n baMbab ba aba + = + =limlim, 2 , 2 1 , 1 1100 2 0 22 2 )(21 1 M ba n nn n = = 计算 的意义计算 的意义 ? 反映数学和计算技术发展的一个侧面 “历史上一个国家所算得的圆周率的准确程 度,可以作为衡量这个国家当时数学发展水 平的指标。” 3.1415926 3.1415927 113 355 7 22

11、(领先世界900余年) ? 引发新的概念、方法和思想 ,产生新的问题 位数位数2035 100万10亿2061亿12411万亿 年代年代1949 1973 1989 1999 2002 人工计算:实验法 几何法 分析法 计算机方法: 最高记录:808位(1948 ) ? 测试或检验超级计算机的各项性能(Super PI) 作业作业 8 1 arctan 5 1 arctan 2 1 arctan 4 += 1.验证公式 2.利用积分 dxx n 2 0 sin 为奇数n n n , 2! ! !)!1( = 推导公式 LL 12 2 12 2 5 4 3 4 3 2 1 2 2+ = n n

12、n n 3. Buffon落针实验中,若扔针次数为m, 而其中针与平行线相交的次数为n,试导出 与m/n 的关系 实验任务实验任务 1. 用反正切函数的幂级数展开式结合有关公式 2. 用数值积分计算,分别用梯形法和Simpson 简单公式和Machin公式所用的项数. 求,若要精确到40位、50位数字,试比较 法精确到10位数字,用Simpson法精确到15 位数字. 看能否求得5位精确数字? 4. 设计方案用计算机模拟Buffon实验 3. 用Monte Carlo 法计算,除了加大随机数, 在随机数一定时可重复算若干次后求平均值, 5. 利用学习过的知识(或查阅资料),提出其他 计算的方法(先用你学过的知识证明),然后 6.对你在实验中应用的计算的方法 进行比较讨论 实践这方法. 谢谢各位!谢谢各位!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号