用割圆术计算π

在中国古代,魏晋时期的数学家刘徽于公元263年就提出了“割圆术”的方法,来计算圆的周长,进而可以计算出圆周率。

其实,割圆术的原理并不复杂,它通过圆内接正多边形细割圆周,从而使正多边形的周长无限接近圆周长,进而来求得较为精确的圆周率。

割圆术从圆内接六边形出发,每一次倍增多边形的边数,并计算新的多边形边长。每一次的计算如下图所示(以六边形为例):

设圆半径为r,已知圆内接正n边形的边长为a,即AB=a。如果取正n边形每两个相邻顶点间的弧的中点,和已有的顶点一起,依次相连,就可以获得圆内接正2n边形。图中C即为一个新增的顶点,则正2n边形的边长就是AC的长度。由于△OAB和△CAB均为等腰三角形,所以AD=BD=a/2,OCABD,所以△ADO和△ADC均为直角三角形,利用勾股定理,OD2=OA2-AD2=r2-(a/2)2,可以求出OD,而CD=OC-OD=r-OD,再根据AC2=AD2+CD2=CD2+(a/2)2即可求出AC的长度,以此循环,就可以使用割圆术估算圆的周长,进而计算出圆周率π。

在割圆术的处理中,圆的半径是不变的,为了简便可以设为1,而正六边形的边长和外接圆半径是一样的也是1,根据上面的思路,在esProc中可以通过循环计算2n边形的周长,从而计算出π。以循环10次为例,如下图所示:

 ABCD
16/sides1/sides length
2for 10=C1/2/AD 
3 =sqrt(1-B2*B2)/OD 
4 =1-B3/CD 
5 >C1=sqrt(B2*B2+B4*B4)/AC,new side length 
6 >A1=A1*2/new sides 
7=A1*C1/circumference  
8=A7/2  

在程序中,用A1存储多边形的边数,C1存储多边形边长,由A2循环计算,以循环10次为例,在每次循环中,通过计算重新设定多边形的边数和边长。循环结束后,在A7中通过计算多边形的周长来拟合圆周长,在A8中计算π。
A8中的计算结尾为:

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值