Dans QuickBASIC, la fonction COS est directement intégrée au langage et permet de calculer le cosinus d'un angle exprimé en radians avec une grande précision. Cette fonction fait partie des outils mathématiques fondamentaux disponibles pour les programmeurs et intervient dans une multitude de domaines tels que la géométrie, la trigonométrie, la physique, le traitement du signal, la simulation scientifique et l'infographie. Bien que la présence de cette fonction rende inutile, dans la plupart des cas, l'écriture d'une version personnalisée, il demeure particulièrement intéressant d'en comprendre le fonctionnement interne. En effet, derrière la simplicité apparente d'un appel à COS se cachent des algorithmes numériques sophistiqués conçus pour produire des résultats précis tout en minimisant le temps de calcul. Reproduire soi-même une fonction trigonométrique constitue donc un excellent exercice de programmation mathématique et permet de mieux saisir les techniques utilisées dans les bibliothèques scientifiques modernes. Cette démarche est également enrichissante pour ceux qui souhaitent approfondir leurs connaissances en analyse numérique et découvrir comment les ordinateurs calculent réellement les fonctions transcendantes.
Le programme QuickBASIC présenté ci-dessous propose justement une implémentation alternative de la fonction cosinus. Plutôt que d'utiliser directement la fonction intégrée du langage, cette version repose sur une méthode numérique fondée sur des approximations successives permettant d'obtenir un résultat extrêmement proche de la valeur théorique. L'algorithme effectue une série de calculs intermédiaires impliquant des fractions continues et des opérations répétitives afin d'améliorer progressivement la précision de l'approximation. Le résultat obtenu est ensuite comparé à celui retourné par la fonction COS native de QuickBASIC. Les exemples affichés montrent les valeurs du cosinus pour différents angles compris entre 0 et π radians, permettant de constater que les deux méthodes produisent pratiquement les mêmes résultats. Cette comparaison met en évidence la qualité de l'algorithme utilisé et démontre qu'il est possible de recréer une fonction trigonométrique complexe à l'aide d'un nombre relativement limité d'instructions. Au-delà de l'aspect pratique, cet exemple constitue une excellente introduction aux méthodes numériques employées dans les calculatrices et les bibliothèques mathématiques. Il illustre parfaitement comment des concepts avancés peuvent être transformés en code exécutable et offre un aperçu fascinant du fonctionnement interne des fonctions mathématiques que les programmeurs utilisent quotidiennement sans toujours connaître les mécanismes qui les rendent possibles.
Voici le programme QuickBASIC :
- DECLARE FUNCTION Cosinus! (X!)
-
- CONST PI = 3.141592653589793#
- I! = 0
- WHILE I! < PI
- PRINT USING "Cosinus #.# "; I!;
- PRINT USING "#.########## "; COS(I!);
- PRINT USING "#.##########"; Cosinus(I!)
- I! = I! + .1
- WEND
-
- FUNCTION Cosinus (X)
- DIM R AS DOUBLE, S AS DOUBLE
- DIM I AS INTEGER
- R = X * X
- S = 42!
- FOR I = 11 TO 1 STEP -1
- S = 4! * I - 2! + (-R) / S
- NEXT
- S = S * S
- Cosinus = (S - R) / (S + R)
- END FUNCTION
on obtiendra le résultat suivant :
Cosinus 0.0 1.0000000000 1.0000000000Cosinus 0.1 0.9950041653 0.9950041653
Cosinus 0.2 0.9800665778 0.9800665778
Cosinus 0.3 0.9553364891 0.9553364891
Cosinus 0.4 0.9210609940 0.9210609940
Cosinus 0.5 0.8775825619 0.8775825619
Cosinus 0.6 0.8253356149 0.8253356149
Cosinus 0.7 0.7648421873 0.7648421873
Cosinus 0.8 0.6967067093 0.6967067093
Cosinus 0.9 0.6216099683 0.6216099683
Cosinus 1.0 0.5403023059 0.5403023059
Cosinus 1.1 0.4535961214 0.4535961214
Cosinus 1.2 0.3623577545 0.3623577545
Cosinus 1.3 0.2674988286 0.2674988286
Cosinus 1.4 0.1699671429 0.1699671429
Cosinus 1.5 0.0707372017 0.0707372017
Cosinus 1.6 -0.0291995223 -0.0291995223
Cosinus 1.7 -0.1288444943 -0.1288444943
Cosinus 1.8 -0.2272020947 -0.2272020947
Cosinus 1.9 -0.3232895669 -0.3232895669