Section courante

A propos

Section administrative du site

Dans QuickBASIC, la fonction SIN fait partie des fonctions mathématiques intégrées et permet de calculer directement le sinus d'un angle exprimé en radians. Cette fonction est utilisée dans une multitude de domaines scientifiques et techniques, notamment en géométrie, en trigonométrie, en physique, en électronique, en traitement du signal et en modélisation graphique. Grâce à elle, il est possible de représenter des mouvements périodiques, de résoudre des problèmes liés aux triangles ou encore de simuler des phénomènes naturels tels que les ondes et les vibrations. Toutefois, même si la fonction est déjà disponible dans le langage, il peut être particulièrement intéressant de chercher à en reproduire le comportement par ses propres moyens. Une telle démarche permet non seulement de mieux comprendre les fondements mathématiques du sinus, mais aussi de découvrir les techniques numériques utilisées dans les bibliothèques mathématiques des langages de programmation. Derrière une simple instruction comme SIN(X) se cachent en effet des algorithmes sophistiqués capables de fournir des résultats précis en un temps extrêmement court.

Le programme QuickBASIC présenté ci-dessous propose une implémentation personnalisée de la fonction sinus à l'aide d'une méthode d'approximation numérique. Plutôt que de s'appuyer sur la fonction intégrée du langage, cette version effectue une série de calculs intermédiaires permettant de reconstruire progressivement la valeur recherchée. L'algorithme utilise des fractions continues et des opérations récursives qui convergent rapidement vers le résultat exact. Cette approche est particulièrement intéressante puisqu'elle démontre comment une fonction trigonométrique fondamentale peut être obtenue à partir d'opérations mathématiques élémentaires. Afin de vérifier la précision de la méthode, le programme affiche côte à côte les résultats retournés par la fonction SIN native de QuickBASIC et ceux calculés par la fonction personnalisée Sinus. Les valeurs sont générées pour différents angles compris entre 0 et π radians, permettant une comparaison directe des deux méthodes. Comme le montrent les résultats obtenus, les valeurs calculées sont pratiquement identiques à celles fournies par la fonction intégrée, ce qui témoigne de l'efficacité de l'algorithme employé. Cet exemple constitue une excellente introduction aux techniques de calcul numérique appliquées aux fonctions trigonométriques et illustre parfaitement comment les ordinateurs peuvent reproduire avec une grande précision des fonctions mathématiques complexes à partir de simples opérations arithmétiques. Il offre également un aperçu fascinant du fonctionnement interne des bibliothèques mathématiques que les programmeurs utilisent quotidiennement dans leurs applications scientifiques et techniques.

Voici le programme QuickBASIC :

  1. DECLARE FUNCTION Sinus! (X!)
  2.  
  3. CONST PI = 3.141592653589793#
  4. I = 0
  5. WHILE I < PI
  6.  PRINT USING "Sinus #.# "; I;
  7.  PRINT USING "#.########## "; SIN(I);
  8.  PRINT USING "#.##########"; Sinus(I)
  9.  I = I + .1
  10. WEND
  11.  
  12. FUNCTION Sinus (X)
  13.  DIM R AS DOUBLE
  14.  DIM S AS DOUBLE
  15.  DIM I AS INTEGER
  16.  R = X * X
  17.  S = 42!
  18.  FOR I = 10 TO 1 STEP -1
  19.   S = 4! * I - 2! + (-R) / S
  20.  NEXT
  21.  Sinus = 2! * X * S / (R + S * S)
  22. END FUNCTION

on obtiendra le résultat suivant :

Sinus 0.0 0.0000000000 0.0000000000
Sinus 0.1 0.0998334166 0.0998334166
Sinus 0.2 0.1986693308 0.1986693308
Sinus 0.3 0.2955202067 0.2955202067
Sinus 0.4 0.3894183423 0.3894183423
Sinus 0.5 0.4794255386 0.4794255386
Sinus 0.6 0.5646424734 0.5646424734
Sinus 0.7 0.6442176872 0.6442176872
Sinus 0.8 0.7173560909 0.7173560909
Sinus 0.9 0.7833269096 0.7833269096
Sinus 1.0 0.8414709848 0.8414709848
Sinus 1.1 0.8912073601 0.8912073601
Sinus 1.2 0.9320390860 0.9320390860
Sinus 1.3 0.9635581854 0.9635581854
Sinus 1.4 0.9854497300 0.9854497300
Sinus 1.5 0.9974949866 0.9974949866
Sinus 1.6 0.9995736030 0.9995736030
Sinus 1.7 0.9916648105 0.9916648105
Sinus 1.8 0.9738476309 0.9738476309
Sinus 1.9 0.9463000877 0.9463000877
Sinus 2.0 0.9092974268 0.9092974268
Sinus 2.1 0.8632093666 0.8632093666
Sinus 2.2 0.8084964038 0.8084964038
Sinus 2.3 0.7457052122 0.7457052122
Sinus 2.4 0.6754631806 0.6754631806
Sinus 2.5 0.5984721441 0.5984721441
Sinus 2.6 0.5155013718 0.5155013718
Sinus 2.7 0.4273798802 0.4273798802
Sinus 2.8 0.3349881502 0.3349881502
Sinus 2.9 0.2392493292 0.2392493292
Sinus 3.0 0.1411200081 0.1411200081
Sinus 3.1 0.0415806624 0.0415806624


Dernière mise à jour : Mercredi, le 14 septembre 2016