哪里有数,哪里就 有美 Proclus 知其然,更知其所以 然 中国先哲
哪里有数,哪里就 有美 . - Proclus 知其然,更知其所以 然 . -中国先哲
数学实验 怎样计算 π的值? 上海交大数学系
数学实验 上海交大数学系 怎样计算 π 的值 ?
实际问题 兀一圆周率,我们十分熟悉的常数 你也许能写出兀=3.1415926535 用 Matlab容易求出π到几百位 MATLAB >> digits(100) >> vpa(pi) ans 3.1415926535897932384626433832795028841971693 99375105820974944592307816406286208998628034 825342117068 但你会计算兀的值吗?你又能用几种方法计算?
你也许能写出 π = 3.1415926535 实际问题 π―圆周率, 我们十分熟悉的常数. 用Matlab 容易求出π 到几百位 >> digits(100) >> vpa(pi) 但你会计算π 的值吗?你又能用几种方法计算? ans = 3.1415926535897932384626433832795028841971693 99375105820974944592307816406286208998628034 825342117068
刘徽割园法 ■从正六边形开始,逐步求 B 边长与面积 C ■递推法 设边数为62的正多边形边长为a 如图AC2=AD2+DC2=AD2+(OC-OD)2 n+1 +1 相应正多边形面积 +1 OC×AD=
刘徽割园法 从正六边形开始,逐步求 边长与面积 递推法 26 , n n 设边数为 ⋅ 的正多边形边长为a o A B C D 2 2 2 2 2 如图 −+=+= ODOCADDCADAC )( 2 2 2 2 1 42) 2 (11) 2 ( n n n n a a a a −−= ⎟⎟⎠⎞ ⎜⎜⎝⎛ + −−+= 相应正多边形面积 422 1 2 1 1 nn n aa + ADOCS =⋅=×=
■兀的值 丌≈62S1=3·2"an (刘徽计算到96边形面积,得到兀≈3141) 用 Matlab计算 MATLAB function y=calpi(n syms a, for j=l: n a=sqrt(2-sqrt(4-a 2)) end a=subs(a, 'a, 1) y=3"2An*vpa(a, n+5)
π 的值 n n n n 26 23 aS 1 1 + ⋅=⋅⋅≈ + π (刘徽计算到96边形面积,得到π ≈ 3.141) 用Matlab计算 function y=calpi(n) syms a; for i=1:n a=sqrt(2-sqrt(4-a^2)); end a=subs(a,'a','1'); y=3*2^n*vpa(a,n+5);
n=53.14145240288 (刘徽3位) n=113.1415926198105522176 (祖冲之7位) n=163.1415926535797449417818112 (韦达10位) n=613.1415926535897932384626433832754 鲁道夫29(34)位)
n=5 3.14145240288 (刘徽 3位) n=11 3.1415926198105522176 (祖冲之 7位) n=16 3.1415926535797449417818112 (韦达 10位) n=61 3.1415926535897932384626433832754 (鲁道夫 29 (34)位)
利用幂级数计算 1-x2+x n-12n-2 x 1+x 2 积分导出 5 2n-1 n-1 x arctan x=x +(-1) 2n-1 取x=1 2n-1
L + L − −+−+−= − 12 1 )1( 51 31 1 4 1 n π n L + L − −+−+−= − − 12 )1( 53 arctan 12 1 53 n xx x xx n n L −+−+−= +L + 42 −− 221 2 1 )1( 1 1 nn xx x x 积分导出 取 x=1 利用幂级数计算
用 Matlab计算 MATLAB 创建m文件 calpe1m,内容如下: function y=calpi 1(k) for n=1: k a(n)=(-1)A(n-1)./(2Mn-1) end 4*sum(a)
用Matlab计算 function y=calpi1(k) for n=1:k a(n)=(-1).^(n-1)./(2*n-1); end; 4*sum(a) 创建m文件 calpi1.m,内容如下:
在命令窗口中输入如下命令: >>capi1(1000 ans 3.14059265383979 >>capi1(10000 ans 3.14149265359003 >> calpe1(15000) ans 3.14152598692319 >> calpe1(20000 ans 3.14154265358982
>> calpi1(1000) ans = 3.14059265383979 >> calpi1(10000) ans = 3.14149265359003 在命令窗口中输入如下命令: >> calpi1(15000) ans = 3.14152598692319 >> calpi1(20000) ans = 3.14154265358982
问题:能不能算得更快一点、更精确一点? 简单公式 arctan -+ arctan 34 丌=4 2n-1 2n-13 Machin公式 4 arctan--arctan 2394
问题: 能不能算得更快一点、更精确一点? 43 1 arctan 2 1 arctan π =+ L + L − − +−+−= − − 12 1 3 5 ) 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 3 5 L + L − − +−+−+ − − n n n