fortran advance Por qué definir PI=4*ATAN(1.d0)




advance fortran (5)

Eso suena bastante como una solución para un error de compilación. O podría ser que este programa en particular dependa de que la identidad sea exacta, por lo que el programador lo garantizó.

¿Cuál es la motivación para definir PI como

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

dentro del código Fortran 77? Entiendo cómo funciona, pero, ¿cuál es el razonamiento?


Answer #1

Creo que es porque esta es la serie más corta en pi. Eso también significa que es el MÁS EXACTO.

La serie Gregory-Leibniz (4/1 - 4/3 + 4/5 - 4/7 ...) es igual a pi.

atan (x) = x ^ 1/1 - x ^ 3/3 + x ^ 5/5 - x ^ 7/7 ...

Entonces, atan (1) = 1/1 - 1/3 + 1/5 - 1/7 + 1/9 ... 4 * atan (1) = 4/1 - 4/3 + 4/5 - 4 / 7 + 4/9 ...

Eso equivale a la serie Gregory-Leibniz, y por lo tanto es igual a pi, aproximadamente 3.1415926535 8979323846 2643383279 5028841971 69399373510.

Otra forma de usar atan y encontrar pi es:

pi = 16 * atan (1/5) - 4 * atan (1/239), pero creo que eso es más complicado.

¡Espero que esto ayude!

(Para ser honesto, creo que la serie de Gregory-Leibniz se basó en atan, no en 4 * atan (1) basada en la serie de Gregory-Leibniz. En otras palabras, la prueba REAL es:

sin ^ 2 x + cos ^ 2 x = 1 [Teorema] Si x = pi / 4 radianes, sin ^ 2 x = cos ^ 2 x, o sin ^ 2 x = cos ^ 2 x = 1/2.

Entonces, sen x = cos x = 1 / (raíz 2). tan x (sin x / cos x) = 1, atan x (1 / tan x) = 1.

Entonces, si atan (x) = 1, x = pi / 4 y atan (1) = pi / 4. Finalmente, 4 * atan (1) = pi)

Por favor, no me cargue con comentarios, todavía soy un preadolescente.


Answer #2

Este estilo garantiza que la precisión máxima disponible en CUALQUIER arquitectura se utilice al asignar un valor a PI.


Answer #3

Porque Fortran no tiene una constante incorporada para PI . Pero en lugar de ingresar el número manualmente y cometer un error potencial o no obtener la máxima precisión posible en la implementación dada, dejar que la biblioteca calcule el resultado garantiza que ninguno de esos inconvenientes ocurra.

Estos son equivalentes y a veces los verás también:

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

Answer #4

Es porque esta es una forma exacta de calcular pi con precisión arbitraria. Simplemente puede continuar ejecutando la función para obtener mayor precisión y detenerse en cualquier punto para tener una aproximación.

Por el contrario, especificar pi como constante le proporciona exactamente tanta precisión como se le dio originalmente, lo que puede no ser apropiado para aplicaciones altamente científicas o matemáticas (como se usa con frecuencia Fortran).