En Delphi, les bibliothèques mathématiques fournissent déjà une fonction «Cos» permettant de calculer directement le cosinus d'un angle exprimé en radians. Cette fonction fait partie des outils trigonométriques fondamentaux utilisés quotidiennement dans de nombreux domaines scientifiques et techniques. Toutefois, même lorsqu'une solution toute prête est disponible, il peut être particulièrement intéressant de tenter d'en reproduire soi-même le fonctionnement. Cette démarche permet non seulement de mieux comprendre les principes mathématiques impliqués, mais également de découvrir certaines méthodes numériques utilisées dans la conception des bibliothèques mathématiques modernes.
Le cosinus est l'une des fonctions les plus importantes de la trigonométrie. On le retrouve dans l'étude des triangles, le calcul des mouvements périodiques, les phénomènes ondulatoires, l'analyse des signaux, la physique, l'astronomie et l'infographie. Son comportement régulier et périodique en fait un outil indispensable pour représenter des oscillations, des rotations ou encore des variations cycliques. Bien que son utilisation soit simple, son calcul précis nécessite généralement des algorithmes numériques sophistiqués lorsque l'on souhaite éviter l'utilisation directe des fonctions intégrées du système.
L'exemple présenté dans cette page démontre qu'il est possible d'obtenir une approximation très précise du cosinus à l'aide d'une formule mathématique spécialisée. Cette méthode repose sur une suite de calculs successifs permettant de converger rapidement vers la valeur recherchée. Grâce à cette approche, il devient possible de reproduire le comportement de la fonction Cos sans dépendre directement des routines fournies par le compilateur ou le système d'exploitation.
Au-delà de son intérêt pratique, cet exercice constitue une excellente occasion d'explorer les techniques de calcul numérique et les méthodes d'approximation utilisées par les logiciels scientifiques. Le programme Delphi présenté ci-dessous calcule ainsi les valeurs du cosinus pour différents angles compris entre 0 et π radians. Les résultats obtenus démontrent la grande précision de l'algorithme et illustrent parfaitement l'évolution progressive du cosinus, depuis la valeur 1 lorsque l'angle est nul jusqu'à une valeur proche de -1 lorsque l'angle s'approche de π radians :
- Program CosSource;
-
- {$APPTYPE CONSOLE}
-
- Uses SysUtils;
-
- Function Cosinus(X:Real):Real;
- Var
- R,S:Real;
- I:Byte;
- Begin
- R:=X*X;
- S:=42.0;
- For I:=10 downto 1 do S:=4.0*I-2.0+(-R)/S;
- S:=S*S;
- Cosinus:=(S-R)/(S+R);
- End;
-
- Var
- I:Real;
- BEGIN
- I:=0;
- While I<PI do Begin
- WriteLn('Cosinus ',I:0:1,' ',Cosinus(I):0:10);
- I:=I+0.1;
- End;
- END.
on obtiendra le résultat suivant :
Cosinus 0.0 1.0000000000Cosinus 0.1 0.9950041653
Cosinus 0.2 0.9800665778
Cosinus 0.3 0.9553364891
Cosinus 0.4 0.9210609940
Cosinus 0.5 0.8775825619
Cosinus 0.6 0.8253356149
Cosinus 0.7 0.7648421873
Cosinus 0.8 0.6967067093
Cosinus 0.9 0.6216099683
Cosinus 1.0 0.5403023059
Cosinus 1.1 0.4535961214
Cosinus 1.2 0.3623577545
Cosinus 1.3 0.2674988286
Cosinus 1.4 0.1699671429
Cosinus 1.5 0.0707372017
Cosinus 1.6 -0.0291995223
Cosinus 1.7 -0.1288444943
Cosinus 1.8 -0.2272020947
Cosinus 1.9 -0.3232895669
Cosinus 2.0 -0.4161468365
Cosinus 2.1 -0.5048461046
Cosinus 2.2 -0.5885011173
Cosinus 2.3 -0.6662760213
Cosinus 2.4 -0.7373937155
Cosinus 2.5 -0.8011436155
Cosinus 2.6 -0.8568887534
Cosinus 2.7 -0.9040721420
Cosinus 2.8 -0.9422223407
Cosinus 2.9 -0.9709581651
Cosinus 3.0 -0.9899924966
Cosinus 3.1 -0.9991351503