为什么定义PI = 4 * ATAN(1)

将PI定义为什么的动机是什么?

PI = 4.D0 * DATAN(1.D0)

在Fortran 77代码中? 我明白它是如何工作的,但是,推理是什么?

这种风格确保在为PI分配值时使用在任何体系结构上可用的最大精度。

因为Fortran没有PI的内置常量。 但是,不要手动input数字,也不可能在给定的实现中获得最大可能的精度,让图书馆为你计算结果,保证这些不利因素都不会发生。

这些是相同的,你有时也会看到它们:

 PI=DACOS(-1.D0) PI=2.D0*DASIN(1.D0) 

我相信这是因为这是pi上最短的一个系列。 这也意味着这是最准确的。

格雷戈里 – 莱布尼兹系列(4/1 – 4/3 + 4/5 – 4/7 …)等于pi。

atan(x)= x ^ 1/1 – x ^ 3/3 + x ^ 5/5 – x ^ 7/7 …

所以,atan(1)= 1/1 – 1/3 + 1/5 – 1/7 + 1/9 … 4 * atan(1)= 4/1 – 4/3 + 4/5 – 7 + 4/9 …

这等于格雷戈里 – 莱布尼兹系列,因此等于pi,约为3.1415926535 8979323846 2643383279 5028841971 69399373510。

另一种使用atan并findpi的方法是:

pi = 16 * atan(1/5) – 4 * atan(1/239),但我认为这更复杂。

我希望这有帮助!

(说实话,我认为Gregory-Leibniz系列是基于atan而不是基于Gregory-Leibniz系列的4 * atan(1),换句话说,REALcertificate是:

如果x =π/ 4弧度,sin ^ 2 x = cos ^ 2 x或sin ^ 2 x = cos ^ 2 x = 1/2。

那么,sin x = cos x = 1 /(root 2)。 tan x(sin x / cos x)= 1,atan x(1 / tan x)= 1。

所以如果atan(x)= 1,x = pi / 4,atan(1)= pi / 4。 最后,4 * atan(1)= pi。)

请不要给我评论 – 我还是一个青less年。

这是因为这是精确计算pi的精确方法。 你可以简单地继续执行该函数来获得更大和更高的精度,并在任何点停止近似。

相比之下,将pi指定为一个常数,可以提供与原来一样精确的精度,这对于高度科学或math应用(Fortran经常使用)来说可能并不合适。

这听起来像是一个编译器错误的解决方法。 或者可能是这个特定的程序依赖于该身份是确切的,所以程序员保证。