常数π和е的高精度算法实现
2023-07-24 08:46:22
论文总字数:7393字
摘 要
常数和e分别是世界上“三大数学常数”之一。在数学上,有很多公式来计算常数和e,这里主要基于C语言将其用另一种形式呈现出来,将已有的数学方法转化成编程语言,在已有的算法基础上,进行改进研究,分析方法的误差,对和e进行高精度的算法研究。关键词:常数,常数e,高精度,C语言
Abstract:Constant PI and E respectively is one of the ‘three mathematical constants’ in the world. In mathematics, there are many formulas to calculate the constant PI and E, here mainly based on the C language will use another kind of presenting it in the form, the existing mathematical methods into programming language, in existing algorithms, improved research, analysis method of error, of PI and E for research on the algorithm of high precision.
Keywords: constant PI, constant E, high-precision , C language
目 录
1 引言………………………………………………………………………… 4
2 圆周率π的算法…………………………………………………………… 5
2.1 利用级数来计算π……………………………………………………………6
2.2 利用数组来计算π……………………………………………………………8
2.3 结果误差比较…………………………………………………………………8
3 常数e的算法…………………………………………………………… 8
3.1 利用极限计算常数e…………………………………………………………9
3.2 利用幂级数计算常数e……………………………………………………10
3.3 结果误差比较…………………………………………………………………11
结论 ………………………………………………………………………………… 12
参考文献…………………………………………………………………………… 13
致谢 ………………………………………………………………………………… 14
1 引言
圆周率和e 的概念众所熟知,这两个常数具有非常大的魅力,一直吸引着许多的爱好者。国内外的许多数学家都对圆周率和e的各种问题进行了多方面的探讨。
常数就是圆周率。18世纪时,英国的威廉姆·琼斯(Jones,W.)在《新数学入门》中第一次用到了这个符号。实际上,这个符号真正在社会上被广泛应用的是从欧拉开始的。从此, 便成了圆周率的代名词。
圆周率是圆周长与直径的比(周长/直径)。生活在公元前的古人类就已经知道无论圆的半径有多大,圆周长与直径的比率是固定不变的。这个比率是3.1415926……,称为无理数。由于它的无限延伸,因此无法将它准确的完整的写出来,因为这个原因,从数值的角度看,圆的面积也就没有办法被算出个准确值,始终只是个近似值。
1946年2月15日,电子计算机“埃尼阿克”(ENLAC)在美国进行了首次成功表演并交付使用,由于计算机代替人工计算具有可靠,快速等优点,所以不久就被用作威力强大的算武器。于是,用公式和计算机算出来越来越多位数值的“发令枪”[1]。
e是自然对数的底,称为耐普拉数,有时称它为欧拉数(Euler number),以瑞士数学家欧拉命名,它就像圆周率和虚数单位i,e是数学中最重要的常数之一[2]。已知的第一次用到常数e,是莱布尼茨于1690年和1691年给惠更斯的通信,以b表示。1727年欧拉开始用e来表示这常数。e=2.718281828459045……,它是无理数,这点于1768年被德国的兰伯特(Lambert,J.H.)所证明。法国人埃尔米特(Hermite,C.)在1873年证明了系数是有理数的代数方程存在没有解的情况。
目前,在计算机方面对于常数和e的精度计算明显是要优于人的手工计算,不管是在速度还是在精确度方面,而C语言就是一种很好的用来求和e的工具,可以借助数学上对于和e的计算公式,利用计算机汇编成语言程序,加快对和e的求值。与汇编语言相比,C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。而与一般的高级计算机编程语言相比,C语言能够完成其他高级语言无法实现的某些功能,比如对内存地址的操作、位操作。总而言之,C语言是一种同时具有一般高级语言和低级语言优点的计算机编程语言。除此之外,C语言还有语言简洁、紧凑、灵活,运算符和数据类型丰富,能够进行模块化设计等其它优点。所以,可以利用C语言来计算常数和e。
之前已经有过不少利用数学方法在C语言的环境下来编写程序,进行一个对常数和e的算法,但是主要都是对其的近似值算法,在这里,我们主要来研究在C语言算法的基础下,研究常数π和e的高精度算法,使之计算对于数值方面更加精确。
2 圆周率π的算法
2.1 利用级数来计算π
我们知道[3],从而根据后来所学的知识,可以进一步的将这个等式转化为,即。用泰勒公式将其展开,就可以得到:
,
令=1,可得
,
即
,
也即
.
在C语言中,可以运用循环语句[4],C语言循环控制语句提供了 while语句、do-while语句和for语句来实现循环结构。在这里我们运用while语句。
一般形式如下:
while(表达式)
语句;
利用C语言中double作存放结果的变量,用n作循环变量,程序如下:
#includelt;stdio.hgt;
#includelt;math.hgt;
int main()
{
int sign=1;
double pi=0.0,n=1.0,term=1.0;
while (fabs(term)gt;=1e-6)
剩余内容已隐藏,请支付后下载全文,论文总字数:7393字