Recherche algorithmique d`antécédents par la fonction cosinus

publicité
Première S
Mars 2016
Recherche algorithmique d’antécédents par la fonction cosinus.
Comparaison de deux méthodes : balayage & dichotomie.
Thème : Angles orientés & Trigonométrie.
On s’intéresse à la fonction f : x ∈ [ 0 ; π ] 7→ cos x.
1. L’étude de la dérivée de la fonction cosinus n’est pas au programme de cette année (elle est vue en
TS).
À l’aide du cercle trigonométrique et par des considérations géométriques simples, dresser le tableau
de variation de f .
2. Préciser alors l’ensemble des réels possédant un antécédent par f .
Étant donné un réel y, on cherche à savoir s’il existe un antécédent α de y par f et, le cas échéant,
on souhaite en obtenir un encadrement d’amplitude aussi petite qu’on veut.
Pour cela, on propose l’algorithme Algo 1 (cf page 2) écrit dans le langage AlgoBox.
3. a)
b)
c)
4. a)
Que signifie floor(n), abs(y), Math.PI et pow(10,-n) (cf lignes 9, 15, 22 et 24) ?
Justifier les lignes 15, 16 et 17.
Recopier et compléter les pointillés (cf page 2) du texte qui explique le rôle de Algo 1.
Dans cette question, on suppose que l’utilisateur a choisi n = 1. Donner un majorant C1 du
nombre de passages dans la structure itérative « tant que ».
b) Pour un entier n quelconque, généraliser la question précédente et déterminer, en fonction de n,
un majorant Cn du nombre de passages dans la structure itérative « tant que ».
5. On considère l’algorithme Algo 2 (cf page 2). Il s’agit d’une modification d’Algo 1.
a) Préciser les modifications effectuées. Quel renseignement supplémentaire retourne cet algorithme ?
b) Exécuter cet algorithme afin de compléter le tableau suivant :
y
n
a
b
compteur
−1
3
−0,8
5
−0,1
4
0,5
6
6. La question précédente souligne le fait que plus l’entier n choisi est grand (c-à-d plus la précision
exigée de l’encadrement de l’antécédent α de y par f est forte), plus le nombre de passages dans la
boucle « tant que » devient très grand. . .
Afin d’optimiser l’efficacité de l’algorithme (et ainsi, de demander moins de calculs à la machine), on
envisage l’algorithme Algo 3 (cf page 3).
a) Exécuter cet algorithme afin de compléter le tableau suivant :
y
n
a
b
compteur
−1
3
−0,8
5
−0,1
4
0,5
6
b) Dans Algo 1, on « avance » pas à pas de 0 vers π, avec un pas de 10−n . Dans Algo 3, le principe
est tout autre. Nous avons déjà rencontré un tel procédé. Comment s’appelle une telle méthode ?
c) Comparer alors Algo 2 et Algo 3 (on pourra comparer leur précision, leur efficacité. . .).
Corrigé disponible sur http://tivomaths.free.fr/
- 1/3 -
LATEX 2ε
Le logiiel AlgoBox est gratuitement téléhargeable à ette adresse : http://www.xm1math.net/algobox/index.html.
Toute la doumentation sur le langage
AlgoBox
se trouve sur e site (utile pour la question 3.a).
Algo 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Algo 2
VARIABLES
y EST_DU_TYPE NOMBRE
n EST_DU_TYPE NOMBRE
x EST_DU_TYPE NOMBRE
a EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE y
LIRE n
SI (floor(n)!=n) ALORS
DEBUT_SI
AFFICHER "n doit ^
etre un entier !"
FIN_SI
SINON
DEBUT_SINON
SI (abs(y)>1) ALORS
DEBUT_SI
AFFICHER "pas de solution"
FIN_SI
SINON
DEBUT_SINON
x PREND_LA_VALEUR 0
TANT_QUE (cos(x)>=y ET x<=Math.PI) FAIRE
DEBUT_TANT_QUE
x PREND_LA_VALEUR x+pow(10,-n)
FIN_TANT_QUE
a PREND_LA_VALEUR x-pow(10,-n)
AFFICHER "a="
AFFICHER a
AFFICHER "b="
AFFICHER x
FIN_SINON
FIN_SINON
FIN_ALGORITHME
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
VARIABLES
y EST_DU_TYPE NOMBRE
n EST_DU_TYPE NOMBRE
x EST_DU_TYPE NOMBRE
a EST_DU_TYPE NOMBRE
compteur EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE y
LIRE n
SI (floor(n)!=n) ALORS
DEBUT_SI
AFFICHER "n doit ^
etre un entier !"
FIN_SI
SINON
DEBUT_SINON
SI (abs(y)>1) ALORS
DEBUT_SI
AFFICHER "pas de solution"
FIN_SI
SINON
DEBUT_SINON
x PREND_LA_VALEUR 0
compteur PREND_LA_VALEUR 0
TANT_QUE (cos(x)>=y ET x<=Math.PI) FAIRE
DEBUT_TANT_QUE
x PREND_LA_VALEUR x+pow(10,-n)
compteur PREND_LA_VALEUR compteur+1
FIN_TANT_QUE
a PREND_LA_VALEUR x-pow(10,-n)
AFFICHER "a="
AFFICHER a
AFFICHER "b="
AFFICHER x
AFFICHER "Nombre de passages : "
AFFICHER compteur
FIN_SINON
FIN_SINON
FIN_ALGORITHME
Question 3.c) Compléter les phrases suivantes qui expliquent le rôle de l’algorithme Algo 1.
À partir de la donnée d’un réel y et d’un entier naturel n, Algo 1 précise s’il existe un . . . . . . . . . . . . . .
......................................................................................................
Si un tel . . . . . . . . . . . . . . . . existe (notons-le α), Algo 1 retourne alors deux réels a et b (a < b) tels que :
®
...........................
b − a = ................
Corrigé disponible sur http://tivomaths.free.fr/
- 2/3 -
LATEX 2ε
Algo 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
VARIABLES
y EST_DU_TYPE NOMBRE
n EST_DU_TYPE NOMBRE
x EST_DU_TYPE NOMBRE
a EST_DU_TYPE NOMBRE
b EST_DU_TYPE NOMBRE
m EST_DU_TYPE NOMBRE
compteur EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE y
LIRE n
SI (floor(n)!=n) ALORS
DEBUT_SI
AFFICHER "n doit ^
etre un entier !"
FIN_SI
SINON
DEBUT_SINON
SI (abs(y)>1) ALORS
DEBUT_SI
AFFICHER "pas de solution"
FIN_SI
SINON
DEBUT_SINON
a PREND_LA_VALEUR 0
b PREND_LA_VALEUR Math.PI
compteur PREND_LA_VALEUR 0
TANT_QUE (b-a>pow(10,-n)) FAIRE
DEBUT_TANT_QUE
m PREND_LA_VALEUR (a+b)/2
SI (cos(m)>y) ALORS
DEBUT_SI
a PREND_LA_VALEUR m
FIN_SI
SINON
DEBUT_SINON
b PREND_LA_VALEUR m
FIN_SINON
compteur PREND_LA_VALEUR compteur+1
FIN_TANT_QUE
AFFICHER "a="
AFFICHER a
AFFICHER "b="
AFFICHER b
AFFICHER "Nombre de passages : "
AFFICHER compteur
FIN_SINON
FIN_SINON
FIN_ALGORITHME
Corrigé disponible sur http://tivomaths.free.fr/
- 3/3 -
LATEX 2ε
Téléchargement