数 学
实
实 验 验 报
告
姓名: 学号:
二
班级:数学与应用数学2班
一、实验名称:?的计算
?—圆周率,我们十分熟悉的常数,我们也许能写出?=3.141592653.用Mathematica容易求出?到几百位 ,
N[Pi,100]=3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068
二.实验目的
1. 在Mathematica环境中用多种方法计算圆周率?的值。 2. 通过实验来体会各种方法的区别,比较各种方法的优劣。
三.实验内容
方法一 利用幂级数表达式
利用幂级数表达式
1=1x2+x4?+(1)n1x2n2+?21+x 2n1x3x5xarctanx=x++?+(1)n1+?352n1又因为arctan1?π11=1+435?4,于是取x?1得
111+?+(1)n1+? 792n1因此使用到函数幂级数展开式 使用命令 Sum[f(n),{n,1,Infinity}] 表示求f(n)为通项的级数在收敛域内的和. 使用Mathematica命令求级数?(?1)n?1n?1?1在取不同项数时的值,级数和用S2n?1表示,并且用S1?4S来近似圆周率?的取值 用Mathematica计算 1.K=1000时: 程序:
k=1000;
S1=N[4*Sum[(-1)^(n-1)/(2n-1),{n,1,k}],18]
运行结果:
3.14059265383979293 2.K=10000时: 程序:
k=10000;
S1=N[4*Sum[(-1)^(n-1)/(2n-1),{n,1,k}],18]
运行结果:
3.14149265359004324
3.K=50000时: 程序:
k=50000;
S1=N[4*Sum[(-1)^(n-1)/(2n-1),{n,1,k}],18]
运行结果:
3.14157265358979524
4.为了加快计算速度提高计算的精确度可以使用公式:
1113115(?1)n?112n?1??4(?()?()???()??232522n?12 n?11113115(?1)1?()?()??()2n?1??]333532n?1311?Machin公式4arctan?arctan?
52394(1)级数项数k=10时: 程序:
Clear[k,n,S] k=10;
S2=N[4*Sum[(-1)^(n-1)*(1/2)^(2n-1)/(2n-1)+(-1)^(n-1)*(1/3)^(2n-1)/(2n-1),{n,1,k}],20]
运行结果:
3.1415925796063512110
(2)级数项数k=20时: 程序:
Clear[k,n,S] k=20;
S2=N[4*Sum[(-1)^(n-1)*(1/2)^(2n-1)/(2n-1)+(-1)^(n-1)*(1/3)^(2n-1)/(2n-1),{n,1,k}],20]
运行结果:
3.1415926535897574098 (3)级数项数k=50时: 程序:
Clear[k,n,S] k=50;
S2=N[4*Sum[(-1)^(n-1)*(1/2)^(2n-1)/(2n-1)+(-1)^(n-1)*(1/3)^(2n-1)/(2n-1),{n,1,k}],20]
运行结果:
3.1415926535897932385
在Mathematica中的实验:
相关推荐: