64 votes

Pourquoi définir PI = 4*ATAN(1)

Quelle est la motivation pour la définition de PI

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

au sein d'une Fortran 77 du code? Je comprends comment ça fonctionne, mais, qu'est-ce que le raisonnement?

68voto

John Gietzen Points 23645

Ce style s'assure que le maximum de précision disponibles sur TOUTE l'architecture est utilisé lors de l'affectation d'une valeur à la PI.

17voto

Jason Points 125291

Car Fortran n'est pas une constante intégrée pour PI. Mais plutôt que de les taper manuellement le numéro et éventuellement faire une erreur ou ne pas obtenir le maximum de précision possible sur la mise en œuvre, laissant la bibliothèque de calculer le résultat pour vous garantit qu'aucun de ces inconvénients se produisent.

Ce sont l'équivalent, et vous allez voir parfois trop:

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

14voto

Justin Points 41

Je crois que c'est parce que c'est le plus court de la série sur la pi. Cela signifie également que c'est le PLUS PRÉCIS.

L'Grégoire-Leibniz série (4/1 - 4/3 + 4/5 - 4/7...) est égale à pi.

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

Donc, 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...

Qui est égale à la Gregory-Leibniz de la série, et est donc égal à pi, environ 3.1415926535 8979323846 2643383279 5028841971 69399373510.

Une autre façon d'utiliser atan et trouver pi est:

pi = 16*atan(1/5) - 4*atan(1/239), mais je pense que c'est plus compliqué.

J'espère que cela aide!

(Pour être honnête, je pense que le Gregory-Leibniz série était basée sur atan, et non pas de 4*atan(1) basé sur l'Grégoire-de Leibniz de la série. En d'autres termes, la VÉRITABLE preuve en est:

sin^2 x + cos^2 x = 1 [, le Théorème] Si x = pi/4 radians, sin^2 x = cos^2 x, ou sin^2 x = cos^2 x = 1/2.

Ensuite, sin x = cos x = 1/(racine de 2). tan x (sin x / cos x) = 1, atan x (1 / tan x) = 1.

Donc, si atan(x) = 1, x = pi/4, et atan(1) = pi/4. Enfin, 4*atan(1) = pi.)

Merci de ne pas charger moi avec commentaires-je suis toujours un pré-ado.

9voto

John Feminella Points 116878

C'est parce que c'est une manière de calculer pi en précision arbitraire. Vous pouvez simplement continuer l'exécution de la fonction pour obtenir une plus grande et une plus grande précision et d'arrêter à tout moment pour avoir une approximation.

En revanche, en précisant pi comme une constante, vous fournit avec exactement autant de précision que a été donné à l'origine, ce qui peut ne pas être approprié pour les très scientifique ou mathématique applications (comme le Fortran est souvent utilisé avec des).

-8voto

Andrew McGregor Points 7641

Cela sonne beaucoup comme un travail autour d'un bogue du compilateur. Ou peut-être que ce programme dépend de l'identité, qui est exact, et le programmeur fait de la garantie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X