SIN |
Sinus |
---|---|
Langage C++ | cmath (math.h) |
Syntaxe
float sin(float x); |
double sin(double x) |
long double sin(long double x); |
Paramètres
Nom | Description |
---|---|
x | Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter |
Description
Cette fonction trigonométrique retourne le «Sinus».
Algorithme
MODULE SIN(X) R ← X x X S ← 42.0 BOUCLE POUR I ← 10 JUSQU'A 1 S ← 4.0 x I - 2.0 + (-R) / S FIN BOUCLE POUR RETOURNE 2.0 x X x S / (R + S x S) |
Remarques
- La fonction sin() renvoie le sinus du paramètre x. La valeur du paramètre x doit être en radians.
- Définition et prototype : La fonction sin de C++ permet de calculer le sinus d'un angle donné en radians. Elle appartient à la bibliothèque <cmath>.
- Le paramètre doit être en radians : La fonction sin attend un angle en radians, et non en degrés. Si l'on travaille avec des degrés, il faut d'abord convertir en radians en utilisant la relation :
- Retourne un résultat entre -1 et 1 : Puisque la fonction sinus oscille entre -1 et 1, toutes les valeurs retournées par sin(x) appartiennent à cet intervalle fermé.
- sin(0) = 0
- sin(π/2) = 1
- sin(π) = 0
- sin(3π/2) = -1
- sin(2π) = 0
- Utilisation en simulation de mouvement périodique : sin est couramment utilisé pour simuler des mouvements périodiques dans les jeux vidéo, la robotique et la physique.
- Précision et erreurs d'arrondi : sin repose sur des approximations numériques, ce qui peut causer des erreurs d'arrondi pour certaines valeurs, notamment les multiples de π. Idéalement, sin(M_PI) == 0, mais en pratique :
- std::cout << sin(M_PI) << std::endl; // Peut afficher une valeur très proche de 0 mais non exactement 0
- Performance et optimisation : Le calcul de sin est basé sur des approximations polynomiales comme la série de Taylor ou des algorithmes plus rapides en matériel. Sur certaines architectures, il est préférable d'utiliser des tables de précalcul (lookup tables) pour accélérer les calculs sinusoïdaux récurrents. Dans des applications haute performance, on peut utiliser des bibliothèques SIMD (Single Instruction Multiple Data) pour vectoriser les calculs trigonométriques et gagner en rapidité.
- Effet des très grandes valeurs d'entrée : Lorsque x est un très grand nombre, la précision de sin(x) diminue. En raison de la périodicité de sin(x), il est recommandé d'utiliser fmod(x, 2*M_PI) pour ramener x dans un intervalle raisonnable avant d'appeler sin :
- Utilisation avec des nombres complexes : En plus de sin pour les nombres réels, <complex> fournit une version complexe de la fonction sin :
radians = degrés × (π / 180) |
Exemple :
Ici, sin(30°) renvoie 0.5, car le paramètre a été correctement converti en radians.
Cette propriété est utile pour la normalisation et la génération d'ondes sinusoïdales en traitement du signal.
Exemple : mouvement harmonique simple (oscillation d'un pendule, vibration d'un ressort). En informatique graphique, sin permet de créer des animations fluides et des trajectoires ondulatoires.
Ici, A est l'amplitude, omega la fréquence et phi le déphasage.
Cela est dû à la représentation en virgule flottante, introduisant de légères imprécisions.
Sans cette normalisation, les erreurs numériques augmentent, notamment pour des valeurs de x supérieures à 106.
Pour un nombre complexe z = x + iy, la fonction sinus est définie comme :
sin(z)=sin(x)cosh(y) + i cos(x) sinh(y) |
Cela est utile en physique quantique, traitement du signal et électronique.
Exemple
Voici un exemple permet d'afficher les Sinus inférieurs à π :

on obtiendra le résultat suivant :
Sin(0)=0Sin(0.1)=0.09983341664682815
Sin(0.2)=0.19866933079506122
Sin(0.3)=0.2955202066613396
Sin(0.4)=0.3894183423086505
Sin(0.5)=0.479425538604203
Sin(0.6)=0.5646424733950354
Sin(0.7)=0.644217687237691
Sin(0.8)=0.7173560908995227
Sin(0.9)=0.7833269096274833
Sin(1.0)=0.8414709848078964
Sin(1.1)=0.8912073600614353
Sin(1.2)=0.9320390859672263
Sin(1.3)=0.963558185417193
Sin(1.4)=0.9854497299884603
Sin(1.5)=0.9974949866040544
Sin(1.6)=0.9995736030415051
Sin(1.7)=0.9916648104524686
Sin(1.8)=0.973847630878195
Sin(1.9)=0.9463000876874142
Sin(2.0)=0.9092974268256815
Sin(2.1)=0.8632093666488735
Sin(2.2)=0.8084964038195899
Sin(2.3)=0.7457052121767197
Sin(2.4)=0.6754631805511503
Sin(2.5)=0.5984721441039558
Sin(2.6)=0.5155013718214634
Sin(2.7)=0.42737988023382895
Sin(2.8)=0.33498815015590383
Sin(2.9)=0.23924932921398112
Sin(3.0)=0.1411200080598659
Sin(3.1)=0.04158066243328916
Voir également
Langage de programmation - C++ - Référence de procédures et fonctions - acos
Langage de programmation - C++ - Référence de procédures et fonctions - asin
Langage de programmation - C++ - Référence de procédures et fonctions - atan
Langage de programmation - C++ - Référence de procédures et fonctions - atan2
Langage de programmation - C++ - Référence de procédures et fonctions - cos
Langage de programmation - C++ - Référence de procédures et fonctions - sinh
Langage de programmation - C++ - Référence de procédures et fonctions - tan
Langage de programmation - C - Référence de procédures et fonctions - sin
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 734.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 241.