Graphiques trigonométriques
GW-Basic, utilisé par PC-Basic
Programme avec Graphique et Texte
La trigonométrie du triangle rectangle, que vous avez probablement rencontrée pour la première fois à l'école primaire, nous dit que les définitions du sinus et du cosinus sont:
sinθ = Côté opposé / hypoténuse
cosθ = Côté adjacent / hypoténuse
Les termes opposé et adjacent désignent respectivement les côtés opposé et adjacent (autrement dit, proches) de l'angle étudié d'un triangle rectangle.
En utilisant ces définitions et la notion de cercle unité (un cercle de rayon unitaire), nous pouvons évaluer le sinus et le cosinus de n'importe quelle mesure d'angle.
Chaque paire de coordonnées aux extrémités du cercle unité peut non seulement être représentée par un (x, y) ; chaque paire de coordonnées peut également être exprimée par un (cosθ, sinθ), où la lettre grecque θ (prononcée « thêta ») représente l'angle de rotation en radians (rappelons que 2π équivaut à 360 degrés, soit une rotation complète dans le sens inverse des aiguilles d'une montre sur le plan de coordonnées).
En inscrivant des triangles spéciaux 30-60-90 et 45-45-90 à l'intérieur du cercle unité, ainsi que d'autres manipulations mathématiques astucieuses, nous comprenons que pour tout point (x, y) du cercle unité,
(x, y) = (cosθ, sinθ)
qui relie soigneusement toutes les paires de coordonnées à des rapports trigonométriques.
En pratique, cependant, les ordinateurs ne calculent généralement pas le sinus et le cosinus des angles par trigonométrie, mais par approximation (rappelons notre précédent programme PI.BAS comme exemple d'une telle méthode pour arriver à π).
Voir Approximation de PI Version 1 Approximation de PI Version 2
Le sinus et le cosinus peuvent être trouvés en sommant les termes d'une série de Taylor (qui contient une infinité de termes).
Cette série de Taylor – plus précisément appelée série de Maclaurin, puisqu'il faut l'évaluer en X = 0 , est obtenue en additionnant successivement les dérivées d'ordre supérieur évaluées en un point précis.
Ainsi, par exemple, la fonction sinus en X = 0 est donnée par:
sin x = x³ / 3! + x5 / 5! + x7 / 7! + ...
La série infinie de la fonction cosinus est très similaire à la fonction sinus. Une liste de TAYLOR.BAS, un programme permettant d'évaluer les séries de Taylor pour le sinus et le cosinus, est donnée vers la fin de cette section.
Utilisons l'instruction PSET pour tracer les fonctions sinus et cosinus.
Cependant, comme les coordonnées d'un écran d'ordinateur ne correspondent pas à l'axe traditionnel des quatre quadrants (par exemple, lorsque vous vous déplacez vers le bas sur votre écran, les valeurs y augmentent au lieu de diminuer.
De plus, l'écran n'accepte pas les coordonnées négatives), nous inverserons le signe des fonctions cosinus et sinus lors de leur représentation graphique, afin de mieux reproduire ce que vous obtiendriez en traçant ces fonctions trigonométriques sur le plan cartésien.
De plus, comme les fonctions sinus et cosinus GW-BASIC acceptent des arguments en radians et non en degrés, nous devons nous assurer de convertir correctement les mesures d'angle.
Pour convertir un angle en degrés en radians, utilisez la formule suivante :
rad = deg x (π / 180)
Par exemple, 60 degrés correspondent à 1,0472 radians.
Enfin, nous souhaitons permettre à l'utilisateur de contrôler l'affichage. En plus de lui demander quelle fonction trigonométrique représenter graphiquement, nous lui demanderons également de transmettre l'amplitude, ou la différence entre les valeurs maximale et minimale, de la fonction.
Le programme TRIG.BAS prend en compte l'amplitude et convertit les degrés en radians directement dans les instructions PSET (voir lignes 45 et 50). Notez également que certains chiffres de la valeur de n sont stockés dans une variable double précision appelée PI#.
Le programme de séries de Taylor ci-dessous, TAYLOR.BAS, utilise plusieurs boucles pour calculer les factorielles et les quotients.
Après avoir exécuté TRIG.BAS, votre première pensée pourrait être : pourquoi ne pas utiliser de graphique pour la tangente ?
La tangente est plus complexe à gérer en raison de ses asymptotes verticales, qui bloquent le programme à cause de la division par zéro. Une sous-routine traçant la tangente graphiquement devrait prendre soigneusement en compte les asymptotes, puis ignorer les mesures d'angle qui ne peuvent pas être évaluées en toute sécurité.
Vous pourriez également envisager d'ajouter une option de fonction tangente à TAYLOR.BAS, ainsi que de nombreuses autres fonctions mathématiques pouvant être approximées par des séries.
TRIG.BAS
10 KEY OFF
20 SCREEN 9:COLOR
15,0:CLS
25 PRINT"--- OUTPUT OF TRIGONOMETRIC CURVE ---"
26 PRINT"Control
amplitude by entering a number: close to 1, small amplitude;"
27 PRINT"more
than 100, large amplitude"
28 INPUT"Your amplitude is";AMP
29 INPUT"Would
you like to see SINE or COSINE (type S or C)";GRAPH$
30 IF GRAPH$<>"S" AND
GRAPH$<>"C" THEN 29
33 CLS
34 PI#=3.14159265#
35 DEG=0
40 WHILE
X<640
42 RAD=DEG*PI#/180
45 IF GRAPH$="S" THEN
PSET(X,-SIN(RAD)*AMP+200),15
56 IF GRAPH$="C" THEN
PSET(X,-COS(RAD)*AMP+200),15
65 X=X+.5
66 DEG=DEG+1
76 WEND
TAYLOR.BAS
10 KEY OFF:CLS:Y=0:SUM=0
15
PRINT"--- TAYLOR SERIES —"
16 INPUT"Evaluate for cosine or sine (type 0 for
COS or 1 for SIN)";TYPE
18 IF TYPE <> 0 AND TYPE <> 1 THEN 10
20
INPUT"What is your x value";X
25 INPUT"How many iterations (max - 10)";ITER
28 If ITER <0 OR ITER > 10 THEN 25
39 FACT=1
40 FOR G=TYPE TO ITER*2 STEP
2:Y=Y+1
41 FOR H=1 TO G
42 FACT=FACT*H
43 NEXT H
50 IF Y MOD 2=0
THEN SUM=SUH-(X^G)/FACT
55 IF Y MOD 2=1 THEN SUM=SUM+(X^G)/FACT
56 PRINT
X^G;'/";FACT;"=";(X^G)/FACT
60 FACT=1
70 NEXT G
80 IF TYPE=1 THEN
PRINT "The SIN(";
85 IF TYPE=0 THEN PRINT "The COS(";
90 PRINT X;") using
Taylor Series is about ";SUM