数学实验之mdashmdash.docx
《数学实验之mdashmdash.docx》由会员分享,可在线阅读,更多相关《数学实验之mdashmdash.docx(21页珍藏版)》请在冰豆网上搜索。
![数学实验之mdashmdash.docx](https://file1.bdocx.com/fileroot1/2023-4/21/ad71be84-6329-4b80-ab3e-2e45d97b65df/ad71be84-6329-4b80-ab3e-2e45d97b65df1.gif)
数学实验之mdashmdash
数学实验之——
,无穷的神秘气息探秘
薛东明5030309891张晗雨5030309928
圆周率是一个极其驰名的数。
从有文字记载的历史开始,这个数就引进了外行人和学者们的兴趣。
作为一个非常重要的常数,圆周率最早是出于解决有关圆的计算问题。
仅凭这一点,求出它的尽量准确的近似值,就是一个极其迫切的问题了。
事实也是如此,几千年来作为数学家们的奋斗目标,古今中外一代一代的数学家为此献出了自己的智慧和劳动。
回顾历史,人类对π的认识过程,反映了数学和计算技术发展情形的一个侧面。
π的研究,在一定程度上反映这个地区或时代的数学水平。
德国数学史家康托说:
“历史上一个国家所算得的圆周率的准确程度,可以作为衡量这个国家当时数学发展水平的指标。
”直到19世纪初,求圆周率的值应该说是数学中的头号难题。
之所以如此,看看下面的方程就会明白。
这只是一小部分,后面有更多。
下面我和我的同伴就计算π的历史过程讨论一下π值的计算方法。
几何学:
若圆的半径为r,圆周为C=2πr
若圆的半径为r,其面积为A=πr2
若球的半径为r,其体积为V=(4/3)πr3
若球的半径为r,其表面积为r:
A=4πr2
分析数学:
数论:
任意两个自然数,互质的概率是6/π/π。
概率论
取一枚长为l的针,再取一张白纸在上面画上一些距离为2的平行线。
把针从一定高度释放,让其自由落体到纸面上。
针与平行线相交的概率是圆周率的倒数。
(蒲丰投针)
物理学
(海森堡测不准原理)
(爱因斯坦相对论场方程)
实验时期计算π
通过实验对π值进行估算,这是计算π的的第一阶段。
这种对π值的估算基本上都是以观察或实验为根据,是基于对一个圆的周长和直径的实际测量而得出的。
在古代世界,实际上长期使用π=3这个数值。
最早见于文字记载的有基督教《圣经》中的章节,其上取圆周率为3。
这一段描述的事大约发生在公元前950年前后。
其他如巴比伦、印度、中国等也长期使用3这个粗略而简单实用的数值。
在我国刘徽之前“圆径一而周三”曾广泛流传。
我国第一部《周髀算经》中,就记载有圆“周三径一”这一结论。
在我国,木工师傅有两句从古流传下来的口诀:
叫做:
“周三径一,方五斜七”,意思是说,直径为1的圆,周长大约是3,边长为5的正方形,对角线之长约为7。
这正反映了早期人们对圆周率π和√2这两个无理数的粗略估计。
东汉时期官方还明文规定圆周率取3为计算面积的标准。
后人称之为“古率”。
早期的人们还使用了其它的粗糙方法。
如古埃及、古希腊人曾用谷粒摆在圆形上,以数粒数与方形对比的方法取得数值。
或用匀重木板锯成圆形和方形以秤量对比取值……由此,得到圆周率的稍好些的值。
如古埃及人应用了约四千年的4(8/9)2=3.1605。
在印度,公元前六世纪,曾取π=√10=3.162。
在我国东、西汉之交,新朝王莽令刘歆制造量的容器――律嘉量斛。
刘歆在制造标准容器的过程中就需要用到圆周率的值。
为此,他大约也是通过做实验,得到一些关于圆周率的并不划一的近似值。
现在根据铭文推算,其计算值分别取为3.1547,3.1992,3.1498,3.2031比径一周三的古率已有所进步。
人类的这种探索的结果,当主要估计圆田面积时,对生产没有太大影响,但以此来制造器皿或其它计算就不合适了
几何法计算π
凭直观推测或实物度量,来计算π值的实验方法所得到的结果是相当粗略的。
真正使圆周率计算建立在科学的基础上,首先应归功于阿基米德。
他是科学地研究这一常数的第一个人,是他首先提出了一种能够借助数学过程而不是通过测量的、能够把π的值精确到任意精度的方法。
由此,开创了圆周率计算的第二阶段。
圆周长大于内接正四边形而小于外切正四边形,因此2√2<π<4。
当然,这是一个差劲透顶的例子。
据说阿基米德用到了正96边形才算出他的值域。
阿基米德求圆周率的更精确近似值的方法,体现在他的一篇论文《圆的测定》之中。
在这一书中,阿基米德第一次创用上、下界来确定π的近似值,他用几何方法证明了“圆周长与圆直径之比小于3+(1/7)而大于3+(10/71)”,他还提供了误差的估计。
重要的是,这种方法从理论上而言,能够求得圆周率的更准确的值。
到公元150年左右,希腊天文学家托勒密得出π=3.1416,取得了自阿基米德以来的巨大进步。
割圆术。
不断地利用勾股定理,来计算正N边形的边长。
在我国,首先是由数学家刘徽得出较精确的圆周率。
公元263年前后,刘徽提出著名的割圆术,得出π=3.14,通常称为“徽率”,他指出这是不足近似值。
虽然他提出割圆术的时间比阿基米德晚一些,但其方法确有着较阿基米德方法更美妙之处。
割圆术仅用内接正多边形就确定出了圆周率的上、下界,比阿基米德用内接同时又用外切正多边形简捷得多。
另外,有人认为在割圆术中刘徽提供了一种绝妙的精加工办法,以致于他将割到192边形的几个粗糙的近似值通过简单的加权平均,竟然获得具有4位有效数字的圆周率π=3927/1250=3.1416。
而这一结果,正如刘徽本人指出的,如果通过割圆计算得出这个结果,需要割到3072边形。
这种精加工方法的效果是奇妙的。
这一神奇的精加工技术是割圆术中最为精彩的部分,令人遗憾的是,由于人们对它缺乏理解而被长期埋没了。
恐怕大家更加熟悉的是祖冲之所做出的贡献吧。
对此,《隋书·律历志》有如下记载:
“宋末,南徐州从事祖冲之更开密法。
以圆径一亿为丈,圆周盈数三丈一尺四寸一分五厘九毫二秒七忽,朒数三丈一尺四寸一分五厘九毫二秒六忽,正数在盈朒二限之间。
密率:
圆径一百一十三,圆周三百五十五。
约率,圆径七,周二十二。
”
这一记录指出,祖冲之关于圆周率的两大贡献。
其一是求得圆周率
3.1415926<π<3.1415927
其二是,得到π的两个近似分数即:
约率为22/7;密率为355/113。
他算出的π的8位可靠数字,不但在当时是最精密的圆周率,而且保持世界记录九百多年。
以致于有数学史家提议将这一结果命名为“祖率”。
这一结果是如何获得的呢?
追根溯源,正是基于对刘徽割圆术的继承与发展,祖冲之才能得到这一非凡的成果。
因而当我们称颂祖冲之的功绩时,不要忘记他的成就的取得是因为他站在数学伟人刘徽的肩膀上的缘故。
后人曾推算若要单纯地通过计算圆内接多边形边长的话,得到这一结果,需要算到圆内接正12288边形,才能得到这样精确度的值。
祖冲之是否还使用了其它的巧妙办法来简化计算呢?
这已经不得而知,因为记载其研究成果的著作《缀术》早已失传了。
这在中国数学发展史上是一件极令人痛惜的事。
割圆术的Mathmatica直观表示:
For[k=0,k5,k++,n=6*2^k;
v1=Graphics[{RGBColor[1,0,0],Circle[{0,0},1]}];
v2=Graphics[{RGBColor[0,1,0],Line[Table[{Cos[2Pi*i/n],Sin[2Pi*i/n]},{i,0,n}]]}];
v3=Graphics[{RGBColor[0,0,1],Line[Table[{Cos[2Pi*i/n]/Cos[pi/n],Sin[2Pi/n]/Cos[Pi/n]},{i,0,n}]]}];
Show[v3,v1,v2,AspectRatioAutomatic]]
图像:
下面我们用多边形割圆术计算
Print["a1","a2","r","n"];
For[k=0,k15,k++,n=6*2^k;a1=N[n/2*Sin[2Pi/n],20];a2=N[n*Tan[Pi/n],20];r=a2-a1;Print["",a1,"",a2,"",r,"",n]]
结果
a1a2rn
2.59807621135331594033.46410161513775458710.86602540378443864686
3.00000000000000000003.21539030917347247770.215390309173472477712
3.10582854123024914823.15965994209750048330.053831400867251335124
3.13262861328123819723.14608621513143497110.013457601850196773948
3.13935020304686720713.14271459964536829820.003364396598501091096
3.14103195089050963813.14187304997982387170.0008410990893142336192
3.14145247228546207553.14166274705684852620.0002102747713864508384
3.14155760791185764553.14161017660468953880.0000525686928318932768
3.14158389214831840873.14159703432152615200.00001314217320774331536
此种方法可以夹出Pi值
Pi=3.141592653
数值积分方法计算π:
由于计算数学分析方法很多我们只就一些方法讨论:
此种方法已作出VC程序。
(韦达给出的1593年)
数值积分方法:
梯形法
a=0;b=1;y[x_]:
=4/(1+x^2)
n=1000
pis1=N[(b-a)/n*(Sum[y[a+i*(b-a)/n],{i,1,n-1}]+(y[a]+y[b])/2),100]
输出:
3.141592486923126571797960843596962254687789892599763108108372731390288109790562585631933321397748830
两个端点和中点所成的二次曲线的面积和(辛普森公式):
a=0;b=1;y[x_]:
=4/(1+x^2)
n=1000;
pis2=N[(b-a)/6/n*((y[a]+y[b])+2*Sum[y[a+i*(b-a)/n],{i,1,n-1}]+4*Sum[y[a+(i-1/2)*(b-a)/n],{i,1,n}]),100]
输出:
3.141592653589793238462023343596963516081019055794419480210497134309960210824915446285805237414852023
幂级数展开:
当x=1时,
For[i=0,i5000,i=i+500;d=N[4Sum[(-1)^j/(2j+1),{j,0,i}],5];r=N[4/(2i+3),5];Print["i=",i,"Pi=",d,"ri=",r]]
输出
i=500Pi=3.1436ri=0.0039880
i=1000Pi=3.1426ri=0.0019970
i=1500Pi=3.1423ri=0.0013320
i=2000Pi=3.1421ri=0.00099925
i=2500Pi=3.1420ri=0.00079952
i=3000Pi=3.1419ri=0.00066633
i=3500Pi=3.1419ri=0.00057118
i=4000Pi=3.1418ri=0.00049981
i=4500Pi=3.1418ri=0.00044430
i=5000Pi=3.1418ri=0.00039988
i=5500Pi=3.1418ri=0.00036354
可以看出收敛的速度极慢,不适合计算值。
其他级数法:
其中级数法已做出了VC程序。
泰勒级数展开法
n=10000;
pimaqin=N[16*Sum[(-1)^(k-1)*(1/5)^(2k-1)/(2k-1),{k,1,n}]-4*Sum[(-1)^(k-1)*(1/239)^(2k-1)/(2k-1),{k,1,n}],1000]
输出:
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420199
另一种展开法:
n=100;
pimaqin=N[4*Sum[(-1)^(k-1)*(1/2)^(2k-1)/(2k-1),{k,1,n}]+4*Sum[(-1)^(k-1)*(1/5)^(2k-1)/(2k-1),{k,1,n}]+4*Sum[(-1)^(k-1)*(1/8)^(2k-1)/(2k-1),{k,1,n}],1000]
输出:
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420199
以上两种方法比第一个收敛得快得多。
这里还有一种更快的方法:
/4=12tan(1/38)+20tan(1/57)+7tan(1/239)+24tan(1/268)
程序:
n=1000;
pimaqin=N[48*Sum[(-1)^(k-1)*(1/38)^(2k-1)/(2k-1),{k,1,n}]+80*Sum[(-1)^(k-1)*(1/57)^(2k-1)/(2k-1),{k,1,n}]+28*Sum[(-1)^(k-1)*(1/239)^(2k-1)/(2k-1),{k,1,n}]+96*Sum[(-1)^(k-1)*(1/268)^(2k-1)/(2k-1),{k,1,n}],1000]
输出:
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420199
此种方法收敛性极好,当n=10时,输出
3.141592653589793238462643383279501358609956681887124392896760062050740928058384438167912417331072689
完全正确。
可以正确的计算出100位以上。
其实,级数法的展开式arctg法可以有很多表示方法。
即是每次用tan的二倍角公式解二元二次方程。
用左右两端夹逼出来。
π有非常美观的连分数表示方法:
其中以经选择了第二种方法做出了VC程序
蒙特卡罗法:
圆中投点法
n=1000;
pimontecario1=Block[{i,m=0},For[i=n,i>0,i--,m=m+If[Random[]^2+Random[]^21,1,0]];N[4*m/n,10]]
输出:
3.138232000
其实,不一定要圆中投点,任何和圆有关的都可以计算。
如立体的圆球投点法,球面投点法。
π的其它计算方法:
蒲丰投针法
在1777年出小版的《或然性算术实验》一书中,蒲丰提出了用实验方法计算π。
这个实验方法的操作很简单:
找一根粗细均匀,长度为d的细针,并在一张白纸上画上一组间距为l的平行线(方便起见,常取l=d/2),然后一次又一次地将针任意投掷在白纸上。
这样反复地投多次,数数针与任意平行线相交的次数。
于是就可以得到π的近