南京师范大学泰州学院本科毕业论文
16
南京师范大学泰州学院本科毕业论文
3.2泰勒级数法
3.2.1 算法原理
利用反正切函数的泰勒级数
arctanx?x?x352k?13?x5?????1?k?1x2k?1 ?? (3-1)
将x?1代入(3-1)式得到:
?4?arctan1?1?13?15???(?1)13?15?????1?12n?1)。nn?112n?1(3-2) .
即 ??4(1?n?1越大越精确。利用Mathematica软件编程(程
序见附录3-3)计算发现花费的时间很长,所得到的结果的准确度却很差。分析其原因
是由于当x?1时得到的arctan1的展开式(3-2)收敛得太慢。
为使泰勒级数(3-1)收敛得快,应当使x的绝对值小于1,最好是远比1小,这样,随着指数的增加,x的幂快速接近于0,泰勒级数就会快速收敛。比如,取x?arctan1212得到的
就收敛的快。例如:
132n?11?1?1?1?n?1aratan?????????1???223?2?2n?1?2?1中取2n?1?63得到的arctan12的近似值
的误差就小于
1265,准确度已经非常非常高。
12 令??arctan,???4??,则
tan????42?1. tan??tan??????13?4?1?tan?tan?1?1?421?11因此??arctan,即?arctan?arctan,从而得到
3423?11 ?arctan?arctan. (3-3)
4231111arctan比arctan收敛的更快。利用泰勒级数计算出arctan与arctan的近似值再
3223?tan?1?1相加,然后再乘以4,就得到?的近似值。
还可以考虑用??arctan15来计算?。由tan??15易算出
17
南京师范大学泰州学院本科毕业论文
tan2??512,tan4??120119,?1??1?4?119tan?4?????.
?1204239??1?tan4?tan1?41194??tan4??tan?120?4?arctan1239.从而得到
??16arctan15?4arctan151239 (3-4)
1239利用arctanx的泰勒展开式求出arctan可以求出?的近似值。
,arctan的近似值,再代入公式(3-4)就
3.2.2 计算结果及误差分析
我们利用Mathematica软件,可以完成相应的程序编写(见附录3-3)。计算结果如
下表3-2和表3-3:
表3-2 利用泰勒级数法计算圆周率结果及误差(4(arctan(1/2)+arctan(1/3))
展开项数 计算结果 误差
展开项数 计算结果 误差 展开项数 计算结果 误差
1
3.333333333 0.191740680 4
3.140850562 -0.000742092 7
3.141599341 6.687×10-6
2
3.117283951 -0.024308703 5
3.141741197 0.000148544 8
3.141591184 -1.469×10-6
3
3.145576132 0.003983478 6
3.141561588 -0.000031066 9
3.141592981 3.28×10-7
表3-3利用泰勒级数法计算圆周率结果及误差(16arctan(1/5)-4arctan(1/239))
展开项数 计算结果 误差 展开项数 计算结果 误差 展开项数 计算结果 误差
1
3.171223022 0.029630368 4
3.129551594 -0.012041059 7
3.129552476 -0.012040178
2
3.128556851 -0.013035802 5
3.129552504 -0.012040149 8
3.129552476 -0.012040178
3
3.129580851 -0.012011802 6
3.129552475 -0.012040179 9
3.129552476 -0.012040178
利用Matlab软件根据表3-2和3-3中的数据进行绘图(程序见附录3-4),可得图
18
南京师范大学泰州学院本科毕业论文
3-6、3-7、3-8和3-9。观察发现利用公式
?4?arctan12?arctan13.计算圆周率的收敛速
度很快,并且当开展项数为8项时,计算精度可达7位数,精度较高。
19