[PDF] livre-algorithmes EXo7.pdf Une fonction en informatique est





Previous PDF Next PDF



Programme de mathématiques de seconde générale et technologique

L'enseignement des mathématiques de la classe de seconde est conçu à partir des intentions suivantes : - permettre à chaque élève de consolider les acquis 



Livret dexercices de Mathématiques de la 3ème vers la 2nde

L'enseignement des mathématiques en classe de seconde est conçu à partir des intentions suivantes : Algorithme : notion de variable.



Cours dalgorithmique pour la classe de 2nde

8 Jul 2009 L'algorithme précédent calcule et affiche le carré des nombres de 1 `a 10 ... est accessible `a partir de l'éditeur de programme ( MENU PRGM ) ...



ALGORITHME SECONDE Exercice 5.1 Ecrire un algorithme qui

EXERCICES – ALGORITHME SECONDE. Exercice 5.1. Ecrire un algorithme qui demande à l'utilisateur un nombre compris entre 1 et 3 jusqu'à ce.



Programme de mathématiques de première générale

Comme en classe de seconde les algorithmes peuvent être écrits en langage naturel ou utiliser le langage Python. Les notions relatives aux types de variables 



Untitled

Mathématiques enseignement commun



Python au lycée - tome 1

Le but est de découvrir des algorithmes d'apprendre la programmation pas à pas à travers des activités (disponibles à partir du module math).



Aménagement du programme de Mathématiques de seconde 2017

de Mathématiques de seconde On considère l'algorithme ci-dessous écrit ... La fonction calc_long_segment() calcule le longueur d'un segment à partir des ...



livre-algorithmes EXo7.pdf

Une fonction en informatique est similaire à une fonction mathématique Écrire une fonction qui à partir de N calcule son écriture décimale [a0



algorithmique.pdf

A partir de la seconde. Voici l'algorithme qui correspond au programme de calcul. Variables : x a : réels ... Partie 1 : d'après le livre Math'x de 2de.

ALGORITHMES

COURS DE MATHÉMATIQUES

PREMIÈRE ANNÉEExo7

Algorithmes

Ce recueil regroupe différents chapitres sur les mathématiques en lien avec l"informatique.

Sommaire

1 Algorithmes et mathématiques

1

1 Premiers pas avec??????. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Écriture des entiers

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Calculs de sinus, cosinus, tangente

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4 Les réels

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5 Arithmétique - Algorithmes récursifs

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

6 Polynômes - Complexité d"un algorithme

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2 Zéros des fonctions29

1 La dichotomie

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2 La méthode de la sécante

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3 La méthode de Newton

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3 Cryptographie41

1 Le chiffrement de César

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

2 Le chiffrement de Vigenère

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3 La machine Enigma et les clés secrètes

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4 La cryptographie à clé publique

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5 L"arithmétique pour RSA

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

6 Le chiffrement RSA

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4 Calcul formel67

1 Premiers pas avec????. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

2 Structures de contrôle avec????. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

3 Suites récurrentes et preuves formelles

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

4 Suites récurrentes et visualisation

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5 Algèbre linéaire

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

6 Courbes et surfaces

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

7 Calculs d"intégrales

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

8 Polynômes

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

9 Équations différentielles

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

Algorithmes et mathématiquesChapitre

1

1. Premiers pas avec??????Dans cette partie on vérifie d"abord que??????fonctionne, puis on introduira les boucles (???et?????),

1.1. Hello world!

Pour commencer testons si tout fonctionne!Travaux pratiques 1. 1. Définir deux variables prenant les valeurs 3 et 6. 2. Calculer leur somme et leur produit. Voici à quoi cela ressemble :

Code 1(hello-world.py).

??On retient les choses suivantes : On affecte une valeur à une variable par le signe égal?. ALGORITHMES ET MATHÉMATIQUES1. PREMIERS PAS AVEC??????2

On affiche un message avec la fonction???????.

•Lorsque qu"une ligne contient un dièse?, tout ce qui suit est ignoré. Cela permet d"insérer des commen-

taires, ce qui est essentiel pour relire le code.

Dans la suite on omettra les symboles???. Voir plus de détails sur le fonctionnement en fin de section.

1.2. Somme des cubesTravaux pratiques 2.

1. P ourun entier nfixé, programmer le calcul de la sommeSn=13+23+33++n3. 2. Définir une fonction qui pour une valeur nrenvoie la sommen=1+2+3++n. 3. Définir une fonction qui pour une valeur nrenvoieSn. 4. V érifier,pour les premiers entiers, que Sn= (n)2.1.

Code 2(somme-cubes.py (1)).

On affecte d"abord la valeur 0 à la variable?????, cela correspond à l"initialisationS0=0. Nous avons défini uneboucleavec l"instruction???qui fait varierientre 1 etn. Nous calculons successivementS1,S2,...en utilisant la formule de récurrenceSi=Si1+i3. Comme nous n"avons pas besoin de conserver toutes les valeurs desSialors on garde le même nom pour toutes les sommes, à chaque étape on affecte à?????l"ancienne valeur de la somme plusi3: est l"ensemble des entiersf1,2,...,ng. C"est bien les entiersstrictement inférieurs 2.

Nous savons que n=1+2+3++n=n(n+1)2

donc nous n"avons pas besoin de faire une boucle :Code 3(somme-cubes.py (2)).

Unefonctionen informatique est similaire à une fonction mathématique, c"est un objet qui prend en

entrée des variables (dites variables formelles ou variables muettes, icin) et retourne une valeur (un

entier, une liste, une chaîne de caractères,... icin(n+1)2 3. V oicila fonction qui retourne la somme des cubes : Code 4(somme-cubes.py (3)). ?????4.Et enfin on vérifie que pour les premiers entiers Sn=€n(n+1)2

2, par exemple pourn=12 :Code 5(somme-cubes.py (4)).

Les puissances se calculent aussi avec??: 52s"écrit???ou????, 53s"écrit?????ou????,... ???exécute le premier bloc d"instructions si la condition est vraie; si la condition est fausse cela exécute l"autre bloc.

Exemple de conditions

-?????:aEnfin en??????(contrairement aux autres langages) c"est l"indentation (les espaces en début de chaque

ligne) qui détermine les blocs d"instructions.

1.3. Calcul deau hasard

Nous allons voir qu"il est possible de calculer les premières décimales depar la méthode de Monte-Carlo,

c"est à dire avec l"aide du hasard. On considère le carré de coté1, le cercle de rayon1centré à l"origine,

d"équationx2+y2=1, et la portion de disque dans le carré (voir la figure).(0,0)(1,0)(0,1)Travaux pratiques 3.

1. Calculer l"aire du carré et de la portion de disque. 2.

Pour un point(x,y)tiré au hasard dans le carré, quelle est la probabilité que le point soit en fait

dans la portion de disque? 3. T irerun grand nombre de points au hasard, compter ceux qui sont dans la portion de disque.

ALGORITHMES ET MATHÉMATIQUES1. PREMIERS PAS AVEC??????44.En déduire les premières décimales de .Voici le code :

Code 6(pi-hasard.py).

???????Commentaires :

•Un petit calcul prouve que l"aire de la portion de disque est4, l"aire du carré est1. Donc la probabilité

de tomber dans le disque est4

Cette fonction n"est pas connue par défaut de??????, il faut lui indiquer le nom dumoduleoù elle se

sont exécutées. Ici???est le compteur que l"on a initialisé à0. Ensuite on commence à exécuter la boucle.

Bien sûr la première chose que l"on fait dans la boucle est d"incrémenter le compteur???. On continue

jusqu"à ce que l"on atteigne999. Pour???=1000la condition n"est plus vraie et le bloc d"instructions

du?????n"est pas exécuté. On passe aux instructions suivantes pour afficher le résultat.

À chaque tir on teste si on est dans la portion de disque ou pas à l"aide de l"inégalitéx2+y261.

Cette méthode n"est pas très efficace, il faut beaucoup de tirs pour obtenir le deux premières décimales

de.

1.4. Un peu plus sur??????

Le plus surprenant avec??????c"est que c"estl"indentationqui détermine le début et la fin d"un bloc

d"instructions. Cela oblige à présenter très soigneusement le code.

Contrairement à d"autres langages on n"a pas besoin de déclarer le type de variable. Par exemple lorsque

l"on initialise une variable par???, on n"a pas besoin de préciser sixest un entier ou un réel.

Nous travaillerons avec la version 3 (ou plus) de??????, que l"on appelle par??????ou???????.

tout est ok. Par contre avec les versions 1 et 2 de??????la réponse est?(car il considérait que c"est

quotient de la division euclidienne de deux entiers). ALGORITHMES ET MATHÉMATIQUES2. ÉCRITURE DES ENTIERS5

•La première façon de lancer??????est en ligne de commande, on obtient alors l"invite???et on tape

les commandes. Mais le plus pratique est de sauvegarder ses commandes dans un fichier et de faire un appel par Vous trouverez sans problème de l"aide et des tutoriels sur internet!Mini-exercices.1. Soit le produitPn= (112)(113)(114) (11n). Calculer une valeur approchée dePnpour les premiers entiersn. 2. 3.

On considère le cube[0,1][0,1][0,1]et la portion de boule de rayon1centrée à l"origine incluse

dans ce cube. Faire les calculs de probabilité pour un point tiré au hasard dans le cube d"être en fait

dans la portion de boule. Faire une fonction pour le vérifier expérimentalement. 4.

On lance deux dés. Expérimenter quelle est la probabilité que la somme soit7, puis6, puis3? Quelle

du module??????retourne un entierkau hasard, vérifianta6k6b. 5.

On lance un dé jusqu"à ce que l"on obtienne un6. En moyenne au bout de combien de lancer s"arrête-

t-on?2. Écriture des entiers

Nous allons faire un peu d"arithmétique : le quotient de la division euclidienne??, le reste?(modulo) et

nous verrons l"écriture des entiers en base10et en base2. Nous utiliserons aussi la notion de listes et le

module????.

2.1. Division euclidienne et reste, calcul avec les modulo

La division euclidienne deaparb, aveca2Zetb2Zs"écrit : a=bq+ret 06r4 alors que??????(lire 14 modulo 3) retourne 2. On a bien 14=34+2.

Les calculs avec les modulos sont très pratiques. Par exemple si l"on souhaite tester si un entier est pair, ou

calculer cos(n2 )alors il faut discuter suivant les valeurs de???. Appliquons ceci au problème suivant :Travaux pratiques 4. Combien y-a-t-il d"occurrences du chiffre1dans les nombres de1à999? Par exemple le chiffre1 apparaît une fois dans 51 mais deux fois dans 131.Code 7(nb-un.py).

•Comment obtient-on le chiffre des unités d"un entierN? C"est le reste modulo10, d"où l"instruction

Comment obtient-on le chiffre des dizaines? C"est plus délicat, on commence par effectuer la division

euclidienne deNpar10(cela revient à supprimer le chiffre des unités, par exemple siN=251alors retourne le chiffre des dizaines 5. Pour le chiffre des centaines on divise d"abord par 100.

2.2. Écriture des nombres en base10

L"écriture décimale d"un nombre, c"est associer à un entierNla suite de ses chiffres[a0,a1,...,an]de sorte

queaisoit lei-ème chiffre deN. C"est-à-dire

N=an10n+an110n1++a2102+a110+a0etai2 f0,1,...,9g

a

0est le chiffre des unités,a1celui des dizaines,a2celui des centaines,...Travaux pratiques 5.

1. Écrire une fonction qui à partir d"une liste [a0,a1,...,an]calcule l"entierNcorrespondant. 2.

Pour un entierNfixé, combien a-t-il de chiffres? On pourra s"aider d"une inégalité du type10n6

N<10n+1.

3.

Écrire une fonction qui à partir de Ncalcule son écriture décimale[a0,a1,...,an].Voici le premier algorithme :

Code 8(decimale.py (1)).

La formule mathématique est simplementN=an10n+an110n1++a2102+a110+a0. Par exemple Expliquons les bases sur leslistes(qui s"appelle aussi destableaux) accède aux valeurs par??????:??????vaut 4,??????vaut 3,??????vaut 2,??????vaut 1. ALGORITHMES ET MATHÉMATIQUES2. ÉCRITURE DES ENTIERS7 vement 4, 3, 2, 1. utiliser??????, iciivariant ici de 0 à 3.

La liste vide est seulement notée avec deux crochets :??. Elle est utile pour initialiser une liste.

Pour ajouter un élément à une liste???existante on utilise la fonction??????. Par exemple définissons

notre liste a deux éléments :[4,3]. Voici l"écriture d"un entier en base 10 :Code 9(decimale.py (2)). dont nous avions besoin sur les listes au-dessus, expliquons les mathématiques. est du type[10n,10n+1[. PourN2Nil existe doncn2Ntel que10n6N<10n+1. Ce qui indique que le nombre de chiffres deNestn+1. Par exemple siN=1234alors1000=1036N<104=10000, ainsin=3et le nombre de chiffres est 4.

Comment calculernà partirdeN? Nous allons utiliserle logarithme décimallog10qui vérifielog10(10) =

1etlog10(10i) =i. Le logarithme est une fonction croissante, donc l"inégalité10n6N<10n+1

devientlog10(10n)6log10(N)2.3. Module????

Quelques commentaires informatiques sur un module important pour nous. Les fonctions mathématiques

ne sont pas définies par défaut dans??????(à partjxjetxn), il faut faire appel à une librairie spéciale : le

module????contient les fonctions mathématiques principales. ALGORITHMES ET MATHÉMATIQUES2. ÉCRITURE DES ENTIERS8??????jxj??????x n???????px

signifie que l"on importe toutes les fonctions de ce module et qu"en plus on n"a pas besoin de préciser

2.4. Écriture des nombres en base2

On dispose d"une rampe de lumière, chacune des8lampes pouvant être allumée (rouge) ou éteinte (gris).12345678

On numérote les lampes de0à7. On souhaite contrôler cette rampe : afficher toutes les combinaisons

possibles, faire défiler une combinaison de la gauche à droite (la "chenille"), inverser l"état de toutes les

lampes,... Voyons comment l"écriture binaire des nombres peut nous aider. L"écriture binaired"un nombre

c"est son écriture en base 2.

Comment calculer un nombre qui est écrit en binaire? Le chiffre des "dizaines" correspond à2(au lieu de

10), le chiffre des "centaines" à4=22(au lieu de100=102), le chiffres des "milliers" à8=23(au lieu de

1000=103),... Pour le chiffre des unités cela correspond à 20=1 (de même que 100=1).

Par exemple 10011

bvaut le nombre 19. Car 10011
b=124+023+022+121+120=16+2+1=19. De façon générale tout entierN2Ns"écrit de manière unique sous la forme

N=an2n+an12n1++a222+a12+a0etai2 f0,1g

On note alorsN=anan1...a1a0b(avec un indicebpour indiquer que c"est son écriture binaire).Travaux pratiques 6.

1.

Écrire une fonction qui à partir d"une liste[a0,a1,...,an]calcule l"entierNcorrespondant à l"écriture

binaireanan1...a1a0b. 2.

Écrire une fonction qui à partir de Ncalcule son écriture binaire sous la forme[a0,a1,...,an].La seule différence avec la base 10 c"est que l"on calcule avec des puissances de 2.

ALGORITHMES ET MATHÉMATIQUES2. ÉCRITURE DES ENTIERS9Code 10(binaire.py (1)). ?Idem pour le sens inverse où l"on a besoin du logarithme en base 2, qui vérifie log

2(2) =1 et log2(2i) =i.Code 11(binaire.py (2)).

???Maintenant appliquons ceci à notre problème de lampes. Si une lampe est allumée on lui attribut1, et si

elle est éteinte 0. Pour une rampe de 8 lampes on code[a0,a1,...,a7]l"état des lampes.

Par exemple la configuration suivante :2

12 22
32
42
52
62
72

8est codé[1,0,0,1,0,1,1,1]ce qui correspond au nombre binaire 11101001b=233.Travaux pratiques 7.

1. F aireune boucle qui affiche toutes les combinaisons possibles (pour une taille de rampe donnée). 2. Quelle opération mathématique élémentaire transforme un nombre binairean...a1a0ben an...a1a00b(décalage vers la gauche et ajout d"un 0 à la fin)? 3. SoitN0=anan1...a1a00b(une écriture avecn+2chiffres). Quelle est l"écriture binaire deN0 (mod 2n+1)? (C"est une écriture avecn+1 chiffres.) 4.

En déduire un algorithme qui pour une configuration donnée de la rampe, fait permuter cycliquement

(vers la droite) cette configuration. Par exemple[1,0,1,0,1,1,1,0]devient[0,1,0,1,0,1,1,1]. 5.

Quelle opération mathématique élémentaire permet de passer d"une configuration à son opposée (une

lampe éteinte s"allume, et réciproquement). Par exemple si la configuration était[1,0,1,0,1,1,1,0]

alors on veut[0,1,0,1,0,0,0,1]. (Indication : sur cet exemple calculer les deux nombres correspon- dants et trouver la relation qui les lie.)1.

Il s"agit d"abord d"afficher les configurations. Par exemple si l"on a4lampes alors les configurations

sont[0,0,0,0],[1,0,0,0],[0,1,0,0],[1,1,0,0],...,[1,1,1,1]. Pour chaque lampe nous avons deux

choix (allumé ou éteint), il y an+1lampes donc un total de2n+1configurations. Si l"on considère ces

configurations comme des nombres écrits en binaire alors l"énumération ci-dessus correspond à compter

0,1,2,3,...,2n+11.

D"où l"algorithme :

ALGORITHMES ET MATHÉMATIQUES2. ÉCRITURE DES ENTIERS10Code 12(binaire.py (3)).

aussi les zéros non significatifs, par exemple7en binaire s"écrit111b, mais codé sur8chiffres on ajoute

devant des 0 non significatifs : 00000111b. 2.

En écriture décimale, multiplier par10revient à décaler le nombre initial et rajouter un zéro. Par exemple

1019=190. C"est la même chose en binaire! Multiplier un nombre par2revient sur l"écriture à un

décalage vers la gauche et ajout d"un zéro sur le chiffre des unités. Exemple :19=10011bet219=38

donc 210011b=100110b. 3. Partant deN=anan1...a1a0b. NotonsN0=2N, son écriture estN0=anan1...a1a00b. AlorsN0 (mod 2n+1)s"écrit exactementan1an2...a1a00bet on ajouteanqui est le quotient deN0par 2n+1. Preuve :N0=an2n+1+an12n++a02. DoncN0(mod2n+1) =an12n++a02. DoncN0 (mod 2n+1)+an=an12n++a02+an. 4. Ainsi l"écriture en binaire deN0(mod2n+1)+ans"obtient comme permutation circulaire de celle deN.

D"où l"algorithme :Code 13(binaire.py (4)).

On remarque que si l"on a deux configurations opposées alors leur somme vaut2n+11: par exemple avec[1,0,0,1,0,1,1,1]et[0,1,1,0,1,0,0,0], les deux nombres associés sontN=11101001bet

N0=00010110b(il s"agit juste de les réécrire de droite à gauche). La somme estN+N0=11101001b+

00010110b=11111111b=281. L"addition en écriture binaire se fait de la même façon qu"en écriture

décimale et ici il n"y a pas de retenue. SiMest un nombre avecn+1fois le chiffres1alorsM+1=2n+1. Exemple siM=11111balorsM+1=100000b=25; ainsiM=251. Donc l"opposé deNest

N0=2n+11N(remarquez que dansZ=(2n+11)ZalorsN0 N).

Cela conduit à :Code 14(binaire.py (5)).

Pour un entiernfixé, combien y-a-t-il d"occurrences du chiffre1dans l"écriture des nombres de 1 àn? 2.

Écrire une fonction qui calcule l"écriture décimale d"un entier, sans recourir aulog(une boucle?????

est la bienvenue).

ALGORITHMES ET MATHÉMATIQUES3. CALCULS DE SINUS,COSINUS,TANGENTE113.Écrire un algorithme qui permute cycliquement une configuration de rampe vers la droite.

4.On dispose den+1lampes, chaque lampe peut s"éclairer de trois couleurs : vert, orange, rouge (dans

cet ordre). Trouver toutes les combinaisons possibles. Comment passer toutes les lampes à la couleur

suivante? 5. Générer toutes les matrices44n"ayant que des0et des1comme coefficients. On codera une matrice sous la forme de lignes[[1,1,0,1],[0,0,1,0],[1,1,1,1],[0,1,0,1]]. 6. On part du point(0,0)2Z2. A chaque pas on choisit au hasard un direction Nord, Sud, Est, Ouest. Si on va au Nord alors on ajoute(0,1)à sa position (pour Sud on ajoute(0,1); pour Est(1,0); pour Ouest(1,0)). Pour un chemin d"une longueur fixée denpas, coder tous les chemins possibles.

Caractériser les chemins qui repassent par l"origine. Calculer la probabilitépnde repasser par l"origine.

Que se passe-t-il lorsquen!+1?

7.

Écrire une fonction, qui pour un entierN, affiche son écriture en chiffres romains :M=1000,D=500,

C=100,X=10,V=5,I=1. Il ne peut y avoir plus de trois symboles identiques à suivre.3. Calculs de sinus, cosinus, tangente

Le but de cette section est le calcul des sinus, cosinus, et tangente d"un angle par nous même, avec une

précision de 8 chiffres après la virgule.

3.1. Calcul deArctanx

Nous aurons besoin de calculer une fois pour touteArctan(10i), pouri=0,...,8, c"est-à-dire que l"on

cherche les anglesi2]2 ,2 [tels que tani=10i. Nous allons utiliser la formule :

Arctanx=+1X

k=0(1)kx2k+12k+1=xx33 +x55 x77 +Travaux pratiques 8. 1.

Calculer Arctan 1.

2. Calculer i=Arctan10i(avec 8 chiffres après la virgule) pouri=1,...,8. 3.

P ourquelles valeurs de i, l"approximation Arctanx'xétait-elle suffisante?Code 15(tangente.py (1)).

La série qui permet de calculerArctanxest une somme infinie, mais sixest petit alors chacun des termes

(1)kx2k+12k+1est très très petit dès quekdevient grand. Par exemple si06x6110alorsx2k+16110

2k+1et

donc pourk>4nous aurons (1)kx2k+12k+1<

109. Chacun des termes suivants ne contribue pas aux8

ALGORITHMES ET MATHÉMATIQUES3. CALCULS DE SINUS,COSINUS,TANGENTE12premiers chiffres après la virgule. Attention : il se pourrait cependant que la somme de beaucoup de

termes finissent par y contribuer, mais ce n"est pas le cas ici (c"est un bon exercice de le prouver).

Dans la pratique on calcule la somme à un certain ordre2k+1jusqu"à ce que les8chiffres après la virgules

ne bougent plus. Et en fait on s"aperçoit que l"on a seulement besoin d"utiliserArctanx'xx33+x55 x77. •Pouri>4, Arctanx'xdonne déjà 8 chiffres exacts après la virgule! On remplit les valeurs des anglesiobtenus dans une liste nommée?????.

3.2. Calcul detanx

Le principe est le suivant : on connaît un certain nombre d"angles avec leur tangente : les anglesi(calculés

ci-dessus) avec par définitiontani=10i. Fixons un anglea2[0,2]. Partant du pointM0= (1,0),

nous allons construire des pointsM1,M2,...,Mnjusqu"à ce queMnsoit (à peu près) sur la demi-droite

correspondant à l"anglea. SiMna pour coordonnées(xn,yn)alorstana=ynx n. L"angle pour passer d"un pointMkàMk+1est l"un des anglesi.M 0OM 1 i1 i2M 2 inM n1M na

Rappelons que si l"on a un pointM(x,y)alors la rotation centrée à l"origine et d"angleenvoieM(x,y)

sur le pointN(x0,y0)avec x0 y 0 =cossin sincos x y c"est-à-direx0=xcosysin y

0=xsin+ycos

Pour un pointM, on noteM0le point de la demi-droite[ON)tel que les droites(OM)et(MM0)soient perpendiculaires enM.MONM 0 OM na x ny ntana'ynx n ALGORITHMES ET MATHÉMATIQUES3. CALCULS DE SINUS,COSINUS,TANGENTE13Travaux pratiques 9. 1. (a)

Calculer la longueur OM0.

(b)

En déduire les coordonnées de M0.

(c)

Exprimez-les uniquement en fonction de x,yet tan.

2.Faire une boucle qui décompose l"angleaen somme d"anglesi(à une précision de108; avec un

minimum d"angles, les angles pouvant se répéter). 3. P artantde M0= (1,0)calculer les coordonnées des différentsMk, jusqu"au pointMn(xn,yn)corres- pondant à l"approximation de l"anglea. Renvoyer la valeurynx ncomme approximation de tana.Voici les préliminaires mathématiques :

Dans le triangle rectangleOMM0on a cos=OMOM

0doncOM0=OMcos.

D"autre part comme la rotation d"angleconserve les distances alorsOM=ON. Si les coordonnées de

Ainsix00=1cosx0=1cosxcosysin=xytan

y

00=1cosy0=1cosxsin+ycos=xtan+y

Autrement dit :x00

y 00 =1tan tan1 x y

Voici une boucle simple pour décomposer l"angle: on commence par retirer le plus grand angle0autant

de fois que l"on peut, lorsque ce n"est plus possible on passe à l"angle1,...Code 16(tangente.py (2)).

anglesi.

Posonsx0=1,y0=0etM0=

x0 y 0 . Alors on définit par récurrenceMk+1=P(i)MkoùP() = 1tan tan1 . Lesisont ceux apparaissant dans la décomposition de l"angle en somme dei, donc on

connaît tani=10i. Ainsi si l"on passe d"un pointMkàMk+1par un angleion a simplement :xk+1=xkyk10i

y k+1=xk10i+yk

La valeur

ynx nest la tangente de la somme des anglesi, donc une approximation de tana. Le code est maintenant le suivant.Code 17(tangente.py (3)).

•En théorie il ne faut pas confondre "précision» et "nombre de chiffres exacts après la virgule». Par

exemple0.999est une valeur approchée de1à103près, mais aucun chiffre après la virgule n"est exact.

Dans la pratique c"est la précision qui importe plus que le nombre de chiffres exacts.

Notez à quel point les opérations du calcul detanxsont simples : il n"y a quasiment que des additions à

effectuer. Par exemple l"opérationxk+1=xkyk10ipeut être fait à la main : multiplier par10ic"est

juste décaler la virgule à droite deichiffres, puis on additionne. C"est cet algorithme "CORDIC» qui est

implémenté dans les calculatrices, car il nécessite très peu de ressources. Bien sûr, si les nombres sont

codés en binaire on remplace les 10ipar 2ipour n"avoir qu"à faire des décalages à droite.

3.3. Calcul desinxetcosxTravaux pratiques 10.

Pour06x62, calculersinxetcosxen fonction detanx. En déduire comment calculer les sinus et cosinus dex. Solution : On saitcos2+sin2x=1, donc en divisant parcos2xon trouve1+tan2x=1cos

2x. On en déduit

que pour 06x62 cosx=1p1+tan2x. On trouve de même sinx=tanxp1+tan2x.

Donc une fois que l"on a calculétanxon en déduitsinxetcosxpar un calcul de racine carrée. Attention

c"est valide carxest compris entre0et2. Pour unxquelconque il faut se ramener par les formules trigonométriques à l"intervalle[0,2 ].Mini-exercices.1. On dispose de billets de1,5,20et100euros. Trouvez la façon de payer une somme deneuros avec le minimum de billets. 2. F aireun programme qui pour n"importe quelx2R, calcule sinx, cosx, tanx. 3. Pourt=tanx2montrer quetanx=2t1t2. En déduire une fonction qui calculetanx. (Utiliser que pour xassez petit tanx'x). 4. Modifier l"algorithme de la tangente pour qu"il calcule aussi directement le sinus et le cosinus.

ALGORITHMES ET MATHÉMATIQUES4. LES RÉELS15

4. Les réelsDans cette partie nous allons voir différentes façons de calculer la constante

d"Euler. C"est un nombre assez mystérieux car personne ne sait si est un nombre rationnel ou irrationnel. Notre objectif est d"avoir

le plus de décimales possibles après la virgule en un minimum d"étapes. Nous verrons ensuite comment les

ordinateurs stockent les réels et les problèmes que cela engendre.

4.1. Constante

d"Eulerquotesdbs_dbs42.pdfusesText_42
[PDF] A partir d'un article en Anglais, Résumez EN FRANCAIS l’idée générale du texte Bac +3 Finance

[PDF] A partir dune boîte 3ème Arts plastiques

[PDF] A partir dune idée personnelle faire un dessin ressemblant au tableau de Renbrandt 4ème Arts plastiques

[PDF] a partir de combien de metre carré faut il un permis de construire PDF Cours,Exercices ,Examens

[PDF] a partir de donnés lues sur écran géogébra construire le losange ABCD sur feuille blanche et calculer son périmètre 6ème Mathématiques

[PDF] A partir de l'exemple de l'ile de france montrer que la région est devenu l'élément essentiel de l'organisation du territoire en f

[PDF] A partir de la lecture des trois extraits du roman l'Étranger d' Albert Camus,rédiger le portrait de Meursault,son personnage principal 3ème

[PDF] A partir de la lecture des trois extraits du roman l’Étranger d'Albert Camus, rédigez le portrait de Meursault , son personnage principal 3ème Fr

[PDF] A partir de la lettre de Victor Hugo destinée ? Léonie, écrire la lette quaurait pu recevoir Victor Hugo de Léonie 4ème Français

[PDF] A partir de la peau de chagrin : Imaginez la suite immédiate de lextrait en conservant le point de vue omniscient de Balzac 2nde Français

[PDF] a partir de quand a ton les premiers symptomes de grossesse PDF Cours,Exercices ,Examens

[PDF] a partir de quel siecle la nature morte devient un genre PDF Cours,Exercices ,Examens

[PDF] a partir de quel siecle la nature morte devient un genre a part entiere PDF Cours,Exercices ,Examens

[PDF] a partir de quelle profondeur doit on faire des paliers PDF Cours,Exercices ,Examens

[PDF] A partir de quelle valeur de x 3ème Mathématiques