CAHIER d’ALGO
Algorithmique
et programmation en Python
VERSION CORRIGÉE POUR L’ENSEIGNANT E X E R C I C E S E T T P
AVEC
UN MÉMENTO DÉTACHABLE
PROGRAMME 2019
C O L L E C T I O N B A R B A Z O
SPÉCIALITÉ
Site collection Cahier
numérique
Cahier numérique élève OFFERT
avec le papier (voir au dos)
SPÉCIAL RÉFORME LYCÉE 2019
PRIX PUBLIC 2019 :
6,50 €
Cahier numérique enseignant gratuit : N jeteste.fr/5547576
La multiplication et la division sont prioritaires sur l’addition et la soustraction.
Syntaxe Opération
a + b Addition de a et b. (Si les variables a et b sont des chaînes de caractères, on parle de concaténation.) a * b Multiplication de a et b. (Si la variable a ou b est une chaîne de caractères, on parle de répétition.) a / b Division de a par b.
a ** b Élévation de a à la puissance b.
sqrt(a) Racine carrée de a. (Il faut importer sqrt() depuis la bibliothèque math.) a // b Quotient de la division euclidienne de a par b.
a % b Reste de la division euclidienne de a par b.
Affecter des valeurs aux variables
Syntaxe Rôle
x,y = 1.4,3.65 Affecte (stocke) simultanément la valeur 1.4 dans la variable x et la valeur 3.65 dans la variable y (équivaut aux instructions x =1.4 et y = 3.65).
x,y = 3 *x+y, 4 *x-2 *y Affecte aux variables x et y les valeurs 3x+y et 4x-2y simultanément.
x = x + 1 Incrémente la variable x de 1.
Tests, conditions et opérateurs de comparaison en langage Python
Syntaxe Rôle
if condition :
instruction(s) Teste la condition. Si la condition est vérifiée, exécute la (ou les) instruction(s) indentées.
if condition : instruction(s) 1 else :
instruction(s) 2
Teste la condition. Si la condition est vérifiée, exécute la (ou les) instruction(s) 1, sinon, exécute la (ou les) instruction(s) 2.
if condition 1 : instruction(s) 1 elif condition 2 :
instruction(s) 2 else :
instruction(s) 3
Teste la condition 1. Si la condition 1 est vérifiée, exécute la (ou les)
instruction(s) 1, sinon, teste la condition 2. Si la condition 2 est vérifiée, exécute la (ou les) instruction(s) 2, sinon exécute la (ou les) instruction(s) 3.
a == b Teste si a est égal à b. a != b Teste si a est différent de b.
a < b (ou a > b) Compare si a est strictement inférieur à b (ou si a est strictement supérieur à b).
a <= b (ou a >= b) Compare si a est inférieur ou égal à b (ou si a est supérieur ou égal à b).
condition 1 and condition 2 Teste si la condition 1 ET la condition 2 sont vérifiées.
condition 1 or condition 2 Teste si la condition 1 OU la condition 2 est vérifiée.
Les boucles en langage Python
Syntaxe Rôle
while condition :
instruction(s) Exécute en boucle la (ou les) instruction(s) tant que la condition est vérifiée.
for variable in range(n) :
instruction(s) Exécute en boucle la (ou les) instruction(s) pour une variable allant de 0 à n–1.
for variable in range(n,m) :
instruction(s) Exécute en boucle la (ou les) instruction(s) pour une variable allant de n à m–1.
for variable in range(n,m,k) :
instruction(s) Exécute en boucle la (ou les) instruction(s) pour une variable allant de n à m–1 avec un pas de k.
for caractere in chaine :
instruction(s) Exécute en boucle la (ou les) instruction(s) pour chaque caractere de la chaîne de caractères chaine.
Créer une fonction en langage Python
Syntaxe Commentaires
def nom(p1,p2) : instruction(s) return resultat
Une fonction est un programme qui porte un nom et qui peut utiliser plusieurs paramètres (p1,p2,...) ou aucun paramètre.
Le mot-clé return est obligatoire à la fin d’une fonction. Le resultat renvoyé par une fonction peut être réutilisé dans un autre programme ou une autre fonction.
CAHIER d’ALGO
Algorithmique
et programmation en Python
Éric Barbazo
PROGRAMME 2019
C O L L E C T I O N B A R B A Z O
SPÉCIALITÉ
Sommaire
2 › Sommaire
Introduction
Découvrir l’algorithmique et la programmation ... 4PARTIE 1 Démarrage
Variables, fonctions et instruction conditionnelle ... 8Boucles bornées et non bornées... 10
Listes ... 12
Graphiques ... 14
PARTIE 2 Entraînement et TP
Fonctions ... 16Fonctions associées TP Approximation par des polynômes ... 18
Trinômes, équations et inéquations ... 20
Polynômes du second degré TP Trajectoire d’un projectile ... 22
Nombre dérivé et tangente ... 24
Application de la dérivation TP Étude d’une demi-ellipse ... 26
Défi nition et génération des suites ... 28
Suites et notion de limite ... 30
Suites numériques TP Évolution d’une situation au cours du temps ... 32
Trigonométrie ... 34
Fonction exponentielle TP Approcher le nombre e ... 36
Produit scalaire, parallélisme, orthogonalité et colinéarité ... 38
Variable aléatoire ... 40
Variables aléatoires TP Jeu du loto ... 42 1
2 3 4
1
2
3
4 5
6
7 8
450 g éq. CO2
© Hachette Livre 2019,
58 rue Jean Bleuzen, CS 700007, 92178 Vanves Cedex.
www.hachette-education.com ISBN 978-2-01-786608-4
Tous droits de traduction, de reproduction et d’adaptation réservés pour tous pays.
PARTIE 3 Vers l’épreuve
D’après Polynésie juin 2012 ... 44
• Variables et instructions élémentaires • Boucle bornée
D’après Asie juin 2012 ... 44
• Boucle non bornée • Recherche de racine
D’après Antilles-Guyane juin 2012 ... 44
• Boucle non bornée • Instruction conditionnelle • Algèbre
D’après Pondichéry avril 2012 ... 45
• Notion de fonction • Génération de nombres aléatoires • Probabilités
D’après Pondichéry avril 2013 ... 45
• Notion de fonction • Suites
D’après Pondichéry mai 2018 ... 46
• Boucles bornée et non bornée • Suites
D’après Antilles-Guyane juin 2016 ... 46
• Liste • Boucle bornée • Résolution d’équation
D’après Métropole septembre 2016 ... 47
• Instruction conditionnelle • Simulation d’une expérience aléatoire • Probabilités
D’après Métropole-La Réunion juin 2018 ... 48
• Variables et aff ectation • Boucle non bornée • Fonction exponentielle
1
2
3
4
5
6
7
8
9
Les fi chiers des scripts sont disponibles dans le manuel numérique et sur le site www.lycee.hachette-education.com/barbazo/cahier-1re
Fabrication : Miren Zapirain Mise en pages & schémas : STDI Couverture : Guylaine Moi
Maquette intérieure : Anne-Danielle Naname
Nous remercions Mme Katia Odiot pour ses précieux conseils et suggestions.
Introduction
Découvrir l’algorithmique et la programmation
1 Les notions de base en algorithmique et en programmation
▶Un algorithme est un ensemble d’instructions qui s’enchainent les unes après les autres, dans un ordre logique et bien déterminé.
▶Une instruction est une série d’actions contenant des mots clés et des connecteurs logiques. Les instructions font également intervenir des variables.
▶Un algorithme peut s’écrire en langage naturel (structure logique écrite en français) ou en
langage informatique (structure logique écrite dans un langage spécifi que que les ordinateurs peuvent interpréter).
▶La programmation est la mise au point d’un programme (aussi appelé script) dans un langage informatique pouvant être compris et utilisé par un ordinateur. Il existe plusieurs langages de programmation : Python, Scilab, C++, etc.
2 Les principales structures algorithmiques en langage naturel
L’aff ectation de variable
▶Pour aff ecter une valeur à une variable, c’est-à-dire donner une valeur à une variable, on utilise, en langage naturel, la syntaxe variable ← valeur.
Exemple : base ← 10 signifi e que la variable base reçoit la valeur 10.
Les instructions conditionnelles
▶Pour aiguiller dans diff érentes directions l’exécution d’un algo- rithme, on peut avoir recours à des instructions conditionnelles qui permettent de déterminer si les ins- tructions qui suivent doivent être, ou non, exécutées.
La syntaxe d’une instruction
conditionnelle en langage naturel Exemple :
Si prix > 200 alors prix ← prix × 0,8 Sinon
prix ← prix × 0,9 Fin Si
Si condition alors instruction(s) 1 Sinon
instruction(s) 2 Fin Si
La boucle bornée
▶Lorsqu’on doit répéter une ou plusieurs instructions un nombre défi ni de fois connu à l’avance, on utilise une boucle bornée.
La syntaxe d’une boucle bornée en langage naturel Exemple :
Pour 𝑖 allant de 3 à 100 somme = somme + i Fin Pour
Pour variable allant de valeur minimale à valeur maximale instruction(s)
Fin Pour
La boucle non bornée
▶Lorsqu’on doit répéter une ou plusieurs instructions un nombre inconnu de fois, on utilise une boucle non bornée qui est parcourue jusqu’à ce qu’une certaine condition ne soit plus vraie.
La syntaxe d’une boucle non bornée en langage naturel Exemple :
Tant que M > 0 faire M ← M – 1 Fin Tant que Tant que condition faire
instruction(s) Fin Tant que
4 › Découvrir l’algorithmique et la programmation
3 Le logiciel EduPython et le langage Python
▶Python est un langage de programmation qui peut être utilisé dans plusieurs environnements : EduPython, Pyso, Spyder, etc.
▶Dans ce cahier, l’environnement utilisé est celui d’EduPython, un logiciel gratuit et téléchargeable en ligne à l’adresse :
https://edupython.tuxfamily.org/
L’interface du logiciel EduPython
▶L’éditeur permet d’écrire des programmes. Après l’écriture d’un programme ou d’une fonction, on l’exécute avec l’icône
permet d’écrire des programmes. Après l’écriture d’un programme ou d’une fonction, on l’exécute avec l’icône . Après l’exécution d’un programme, on peut utiliser la console pour connaître le contenu des variables calculées.
▶La console permet de dialoguer directement avec le programme à l’aide du clavier. L’utilisateur saisit des instructions dans la console, tape sur la touche entrée et le programme affi che une donnée à l’écran en réponse.
La console est ainsi le lieu où s’affi chent les données des programmes écrits dans l’éditeur.
Exemple :
Programme saisi dans l’éditeur et exécuté Instruction saisie dans la console et affi chage
La console peut aussi être utilisée comme une puissante calculatrice.
Exemple : calcul de 2450
Bouton permettant d’exécuter le script
Console : zone où le programme s’exécute Éditeur : zone d’écriture des programmes et des fonctions
Introduction
4 Les principales structures algorithmiques en Python
▶Un langage informatique utilise une syntaxe qui lui est propre. Certains mots utilisés en langage naturel se traduisent en langage informatique par des mots clés, uniquement employés par ce langage.
▶Python est un langage dont la base linguistique est anglo-saxonne. Sa syntaxe est donc constituée de mots anglais.
L’instruction conditionnelle if
▶Le mot français Si du langage naturel se traduit par le mot anglais if en langage Python.
▶Le mot français Alors du langage naturel ne se traduit pas par un mot en anglais en langage Python, mais par un retour à la ligne, appelé indentation.
▶Le mot français Sinon du langage naturel se traduit par le mot anglais else en langage Python.
▶Une instruction conditionnelle peut exécuter une, deux ou plusieurs instructions selon la situation étudiée.
•
L’instruction conditionnelle en langage Python ci-dessous n’a qu’une seule condition. Si la condition n’est pas réalisée, le script n’eff ectue pas l’instruction .Exemple :
Le programme aff ecte à la variable y une valeur égale à quatre fois celle de la variable x lorsque cette variable x est inférieure ou égale à 3. Rien ne se produit si la variable x est strictement supérieure à 3.
•
L’instruction conditionnelle en langage Python ci-dessous a une condition et une alternative. Si la condition est réalisée, le script eff ectue l’instruction 1 ; si la condition n’est pas réalisée, il eff ectue l’instruction 2.Exemple :
Le programme aff ecte à la variable y une valeur égale à quatre fois celle de la variable x lorsque cette variable x est inférieure ou égale à 3. Sinon, il aff ecte à y la valeur 3x + 6. Dans cette instruction conditionnelle, tous les cas sur x sont étudiés.
La boucle bornée for
▶Le mot français Pour du langage naturel se traduit par le mot anglais for en langage Python.
▶La fonction range() permet d’énumérer le nombre de passages dans la boucle.
La boucle non bornée while
▶Le mot français Tant que en langage naturel se traduit par le mot anglais while en langage Python.
6 › Découvrir l’algorithmique et la programmation
5 Les bibliothèques de Python
▶Certaines fonctions spécifi ques au langage Python sont rangées dans des bibliothèques. Pour pouvoir les utiliser, on peut importer entièrement la bibliothèque ou seulement la ou les fonction(s) souhaitée(s).
•
L’étoile *permet d’importer toutes les fonctions d’une bibliothèque.Exemple : from math import* importe toutes les fonctions de la bibliothèque math.
•
On peut importer d’une bibliothèque seulement les fonctions dont on a besoin.Exemple : from math import sqrt importe la fonction racine carrée de la bibliothèque math.
▶Lorsque le nom de la bibliothèque est très long, on peut lui défi nir un alias en ajoutant as suivi de quelques lettres formant l’alias. On peut ensuite utiliser toutes les fonctions de la bibliothèque en faisant précéder leur nom de l’alias.
Exemple : import matplotlib.pyplot as plt
L’instruction plt.plot(x,y) permet d’importer la fonction plot de la bibliothèque matplotlib.pyplot en utilisant l’alias plt.
Type de bibliothèque Nom de la bibliothèque Syntaxe d’importation
Principales fonctions mathématiques math from math import*
Fonctions des probabilités random from random import*
Fonctions graphiques matplotlib.pyplot
pylab numpy
import matplotlib.pyplot as plt
import pylab as pb import numpy as np
6 Les graphiques
▶Le langage Python est un langage informatique qui permet de réaliser des calculs qui sont trop longs et compliqués à faire manuellement, mais c’est également un traceur de courbes. Les graphiques permettent en général de conjecturer des solutions d’équations ou d’inéquations, de déterminer des coordonnées de points ou de faire de la géométrie.
▶Pour réaliser des graphiques avec le langage Python, il faut utiliser plusieurs bibliothèques : matplotlib.pyplot, ou pylab et numpy.
▶Lorsqu’on exécute un script de tracé de graphique, l’affi chage se réalise dans une fenêtre qui s’ouvre indépendamment de l’environnement EduPython. Il faut fermer cette fenêtre après l’avoir visualisée.
Démarrage
débranché8 › Variables, fonctions et instruction conditionnelle MÉMO
1. Variables, fonctions et instruction conditionnelle
On considère la fonction f défi nie par le programme ci-contre.
1. Compléter l’expression de f x( ) ci-dessous.
f x( )= sisixx∈∈ six∈
⎧⎨
⎪
⎩⎪
2. Modifi er la fonction ci-dessus pour qu’elle retourne l’image d’un réel x par la fonction f défi nie pour tout réel x par f x( )= x2−1six∈ −1;
[
+ ∞[
3x+3 six∈ −∞
]
;−1[
{
.2
Quand on programme en Python, on utilise des variables, des fonctions et des instructions. Les variables peuvent être de types diff érents : numériques entières, numériques fl ottantes (rationnelles ou réelles), listes, chaînes de caractères ou booléennes.
Ne pas oublier l’indentation, c’est-à-dire le décalage du texte vers la droite, qui indique le début et la fi n des instructions conditionnelles, des boucles et des instructions de la fonction.
Langage naturel Python
Variable
De type numérique
De type chaîne de caractères De type booléen
rayon ← 2 jour ← "lundi"
resultat ← vrai Instruction conditionnelle
Si condition1 Faire ……..
Sinon Si condition2 Faire ……..
Sinon Faire ………
Fin Si Fonction informatique
Chaque fonction possède un nom, renvoie un résultat et peut avoir aucun, un ou plusieurs arguments.
Une fondation attribue des bourses à des étudiants selon leur revenu imposable. Si ce revenu est supérieur ou égal à 30 000 € par an, l’étudiant n’a pas de bourse. Si le revenu est supérieur ou égal à 15 000 € et strictement inférieur à 30 000 € par an, le montant annuel de la bourse est égal à 1 500 € auquel on retranche 5 % du revenu. Si le revenu imposable est strictement inférieur à 15 000 €, le montant est égal à 1 200 € auquel on retranche 3 % du revenu.
Compléter la fonction bourse ci-dessous, qui détermine le montant annuel de la bourse en fonction du revenu de l’étudiant.
1 def bourse(revenu):
2 if : 3 montant=
4 elif :
5 6 else : 7
8 return
1
revenu>=30000
15000<=revenu<30000 montant=1500-0.05*revenu montant=1200-0.03*revenu
montant 0
3x−4
[
2;+ ∞[
−x+4
]
−1;2[
2x+7
]
−∞;−1]
1. On considère la fonction ci-dessous.
Recopier le script et écrire le résultat ci-dessous.
a.
a.
b.
b.
c. Que teste cette fonction ?
2. On a modifi é la fonction précédente comme ci-dessous.
Recopier le script et écrire le résultat ci-dessous.
a.
a.
b.
b.
3. Expliquer ce que renvoie la fonction test2.
On considère le programme ci-dessous écrit avec deux fonctions.
1. Combien la fonction signe possède-t-elle d’arguments ? Lesquels ?
3
4
2. Quel est le résultat renvoyé par l’instruction 2. Quel est le résultat renvoyé par l’instruction
?
3. Que réalise la fonction signe ?
4. On écrit dans la console l’expression suivante.On écrit dans la console l’expression suivante.
Que permet l’instruction lambda ?
5. Écrire le script d’une fonction que l’on appellera racine qui renvoie comme résultat la valeur f x( ) pour une fonction f donnée calculée en un réel x donné lorsque le calcul est possible et renvoie comme résultat le mot ‘non défi ni’ sinon. On n’oubliera pas d’importer la fonction sqrt de la bibliothèque math.
6. On donne f défi nie pour tout réel x par : f x( )= −3x+4.
Utiliser la fonction racine pour déterminer les valeurs de f x( ) avec les valeurs de x données.
a. x= −5
b. x=10 False
False True
True
Elle teste si un nombre est divisible par 3 ou non.
Le test d’égalité n%3==0 renvoie directement un booléen. Ainsi, il n’est pas nécessaire d’utiliser une instruction conditionnelle.
‘positif’
Elle renvoie le signe de f x( ) avec la fonction f donnée et le réel x donné.
Elle permet de défi nir ponctuellement une fonction au lieu de la redéfi nir dans l’éditeur.
La fonction signe possède deux arguments : une fonction f et un nombre x.
Démarrage
débranché10 › Boucles bornées et non bornées MÉMO
2. Boucles bornées et non bornées
On considère la fonction ci-dessous.
Expliquer ce que fait la boucle non bornée while. 3
Pour écrire certains programmes, il est parfois utile de répéter une ou plusieurs instructions un nombre défi ni de fois. Lorsque le nombre de répétitions est connu à l’avance, on utilise une boucle bornée for.
Pour d’autres programmes, il est parfois nécessaire de répéter une ou plusieurs instructions un nombre inconnu de fois. Lorsque le nombre de répétitions n’est pas connu à l’avance, on utilise une boucle non bornée qui est parcourue jusqu’à ce qu’une certaine condition ne soit plus vérifi ée. Tant que cette condition est vérifi ée, la boucle continue.
Langage naturel Python
Boucle bornée
Boucle avec des valeurs numériques
Boucle dans une chaîne de caractères
Pour variable allant de … à … Faire Instructions
Fin Pour
Pour caractere dans chaine Faire Instructions
Fin Pour Boucle non bornée
Tant que condition Faire …
Fin Tant que
On veut calculer une valeur approchée de la somme 1+1
3+ 1
⎛3
⎝ ⎞
⎠
2+…+ 1
⎛3
⎝ ⎞
⎠
20
. Compléter la fonction pour qu’elle renvoie cette somme.
1 def somme():
2 S=1
3 for i in range( , ):
4 5 return S
Compléter la fonction suivante qui compte le nombre d’espaces dans une phrase écrite par l’utilisateur.
1 def compte_espace(phrase):
2 nbre=0
3 for in : 4 if caractere=="":
5 nbre=
6 return nbre
1
2
S=S+(1/3)**i 1 21
nbre+1 caractere phrase
Tant que la variable Pile est diff érente de 1, on choisit un nombre aléatoire parmi 0 et 1. La variable nbre augmente tant que la variable Pile est diff érente de 1.
On veut calculer, pour tout entier naturel n>0, la somme S égale à :
S=1−1 2+1
3−1
4+…+ −1( )n+1×1n. Compléter la fonction somme ci-dessous.
1 def somme(n):
2 S=
3 for k in range( , ):
4 5 return
Dans une culture bactérienne constituée de N bactéries, on suppose qu’à chaque seconde, 2 % des bactéries meurent.
© Pornsuda Thaisa/Shutterstock
1. Écrire une fonction bacteries qui renvoie le nombre de bactéries encore vivantes après n secondes, n entier naturel.
2. Une culture contient 1 million de bactéries.
Combien de bactéries sont encore vivantes après 10 secondes ? Arrondir le résultat à l’unité.
3. En écrivant une fonction appelée moitie, déterminer le nombre de secondes qu’il faut au minimum pour que le nombre de bactéries soit strictement inférieur à la moitié de la population initiale.
4
5
La conjecture de Syracuse est non encore démontrée à ce jour. Elle s’énonce comme suit : Soit n un entier naturel. Si n est pair, on le divise par 2, sinon on le multiplie par 3 et on ajoute 1. On recommence ce processus avec le résultat obtenu.
La conjecture de Syracuse affi rme que l’on obtient toujours 1 au bout d’un nombre fi ni d’itérations.
1. Compléter la fonction Syracuse qui répond à la conjecture et la tester pour plusieurs valeurs de n.
1 def Syracuse(n):
2 resultat=n
3 while resultat!= : 4 if resultat%2== : 5 resultat=resultat//2 6 else:
7 8 return resultat
2. Modifi er la fonction Syracuse en une fonction Syracuse2 afi n de compter le nombre d’itérations nécessaires jusqu’à l’obtention de 1. Ce nombre d’itérations s’appelle le temps de vol de n.
3. Soit N un entier donné.
Écrire une fonction Maximum qui renvoie l’entier n entre 1 et N pour lequel le temps de vol est le plus grand et le temps de vol correspondant.
6
0
S=S+(-1)**(k+1)*1/k S
1 n+1
1
resultat=3*resultat+1 0
817 072 sont encore vivantes après 10 s.
Démarrage
débranché12 › Listes MÉMO
3. Listes
On considère la fonction ci-dessous.
1. Que retourne l’instruction mystere(4) écrite dans la console ? et l’instruction mystere(9) ?
2. Que réalise cette fonction ? 3
Lorsqu’on a besoin de garder et d’utiliser plusieurs variables au cours d’un programme, on utilise des listes pour les stocker. Une liste est une collection d’objets de diff érents types (variables numériques, chaînes de caractères, booléens, listes, etc.). Une liste est une variable que l’on peut nommer comme on le souhaite. Dans les exemples ci-dessous, la variable liste est nommée L.
Python Listes
Liste vide
Liste contenant des objets de types diff érents
Premier objet de la liste ou objet de rang 0 k+1-ième objet de la liste ou objet de rang k Dernier objet de la liste
Longueur ou nombre d’objets d’une liste Ajouter un objet en fi n de liste
Insérer un objet au rang k
Concaténer (rassembler) deux listes Remarques :
•
Les listes contiennent des objets de types diff érents, contrairement aux chaînes de caractères qui ne contiennent que des objets de type chaîne.•
La boucle bornée for element in liste possède la même syntaxe que pour la chaîne de caractères. La variable element va prendre les valeurs successives des objets de la liste.On considère la liste suivante, écrite dans la console.
On considère la liste suivante, écrite dans la console.
1. Qu’affi chent les instructions suivantes lorsqu’elles sont écrites dans la console ?
a.
a. b. b.
2. Que faut-il écrire dans la console pour que la liste soit la suivante lorsqu’on l’affi che ?
liste soit la suivante lorsqu’on l’affi che ?
On considère les deux listes suivantes.
Qu’affi che l’instruction
Qu’affi che l’instruction ? 1
2
L’instruction mystere(4) retourne 3 L’instruction mystere(9) retourne 0.
Elle retourne le nombre d’occurences de la valeur dans la liste.
‘nuit’ 4
1. a. Écrire dans l’éditeur l’instruction : b. Quel est le contenu de la liste L ?
c. Expliquer cette instruction.
2. Créer la liste appelée carres, des carrés des huit premiers entiers non nuls.
1. Compléter la fonction somme ci-dessous pour qu’elle calcule la somme des éléments d’une liste de nombres.
1 def somme(liste):
2 S=0
3 for i in range( ):
4 S=
5 return
2. Compléter la fonction moyenne ci-dessous qui calcule la moyenne d’une liste L1 de valeurs dont les eff ectifs sont dans une liste L2.
1 def moyenne(liste,effectifs):
2 m=0
3 for i in range( ):
4 m=m+
5 m=m/
6 return
1. On considère la fonction suivante.
Que renvoie cette fonction lorsqu’on écrit, dans la console, l’instruction
Que renvoie cette fonction lorsqu’on écrit, dans la
console, l’instruction ?
2. Que réalise cette fonction ? 4
5
6
3. On lance n fois une pièce de monnaie équilibrée, où n est un entier naturel. On note 1 l’obtention de « Pile » et 0 l’obtention de « Face » au cours des n lancés.
Compléter la fonction ci-dessous qui renvoie la liste des résultats des n lancés et le nombre de « Pile » obtenus. On utilisera la fonction echantillon de la question 1.
1 def nombre_PILE(n):
2 L=
3 nbre_PILE=0
4 for i in range( ):
5 nbre_PILE=
6 return ,
1. On a écrit en langage naturel l’aff ectation de la liste suivante à une variable L de type liste :
L←[4,2, 8,5,1, 0, 45,12, 4,1, 32,17]
Que faut-il écrire dans la console pour créer la variable L et lui aff ecter la liste ci-dessus ?
2. Écrire dans la console l’instruction Écrire dans la console l’instruction
et recopier ci-dessous le résultat obtenu. Que fait l’instruction sorted ?
3. La liste L a-t-elle été modifi ée ?
4. Écrire l’instruction dans la console. Que s’affi che-t-il ?
5. Rappeler la variable L dans la console. L est-elle identique à la liste initiale ?
6. Expliquer la diff érence entre les deux instructions sorted(L) et L.sort().
7 Cette instruction crée la liste des cubes des
entiers de 0 à 9, soit des dix premiers entiers.
S+liste[i]
S
len(liste)
somme(eff ectifs) m
liste[i]*eff ectifs[i]
len(liste)
Elle crée un échantillon aléatoire de 0 et de 1 de taille n.
echantillon(n)
L nbre_PILE len(L)
nbre_PILE+L[i]
Elle affi che la liste classée dans l’ordre croissant.
On appelle L dans la console et on voit que la liste initiale n’est pas modifi ée.
Rien ne s’affi che.
La liste initiale est modifi ée. L est la liste triée.
sorted(L) classe la liste dans l’ordre croissant mais ne modifi e pas la liste initiale.
L.sort() classe la liste dans l’ordre croissant mais modifi e la liste qui devient cette nouvelle liste classée.
Démarrage
débranché14 › Graphiques MÉMO
4. Graphiques
Compléter le script pour qu’il affi che le nuage de 500 points défi nis par : en abscisses, des nombres aléatoires x compris entre 1 et 10 ; en ordonnée, le carré des nombres x.
1 import matplotlib.pyplot as plt 2 from random import randint
3 x=[randint( , ) for i in range( )]
4 y=[ for i in range( )]
5 plt.plot( , ) 6 plt.grid() 7 plt.show()
2
Le langage Python permet de faire des graphiques de natures diff érentes : nuages de points, courbe représen- tative d’une fonction, diagramme en boîtes, etc. Il est nécessaire pour ça d’importer les bibliothèques suivantes.
Python Graphique obtenu
Avec la bibliothèque pylab
Python Graphique obtenu
Avec les bibliothèques matplotlib.pyplot et numpy
Utilisation de listes et de matplotlib.pyplot.
Compléter le script ci-dessous pour qu’il affi che le graphe de la fonction f défi nie par f x( )=3x +1 sur l’intervalle
[ [
1;10] ]
.1 import matplotlib.pyplot as plt 2 import numpy as np
3 x=np.linspace( , ,100) 4 y=
5 6 7
1
1 10 500
x[i]**2 500
x y
1 10
3/x + 1 plt.grid() plt.plot(x,y) plt.show
On considère la fonction f défi nie sur ℝ par : f x( )= x21+4.
1. Compléter le script suivant et déterminer une valeur approchée au dixième des solutions de l’équation f x( )=0,1.
1 import pylab as pb
2 pb.axis([ , ,-0.3,0.3]) 3 pb.grid()
4 x=pb.linspace( , ,100) 5 y=
6 pb.plot( , ) 7 pb.hlines(0.1,-4,4) 8 pb.show()
2. À quoi sert l’instruction de la ligne 7 ?
On veut tracer un nuage de 1 000 points dont les coordonnées sont des valeurs réelles aléatoires appartenant à l’intervalle
[ ]
0;1.1. Recopier le script suivant et le lancer.Recopier le script suivant et le lancer.
Qu’obtient-on ?
2. On modifi e le script précédent comme ci-dessous.
Qu’obtient-on en le lançant ? Qu’obtient-on en le lançant ? 3
4
Les méthodes dites de Monte-Carlo permettent de calculer des valeurs approchées d’aires ou des fréquences de points appartenant à des domaines plans, en utilisant des tirages aléatoires de points.
On considère la fonction montecarlo ci-dessous.
1. Recopier cette fonction et la tester en écrivant l’instruction montecarlo(0.5). Quels résultats renvoie-t-elle ?
2. Expliquer les instructions des lignes 6 et 7.
3. Expliquer l’instruction conditionnelle des lignes 10 à 12.
4. Quel est le rôle de la variable nbre ?
5. Calculer l’aire du quart de cercle de rayon 0,5.
Que renvoie l’instruction de la ligne 14 ? 5
On trouve x1≈ −2,4 et x2≈2,4.
Elle permet de tracer la droite d’équation y=0,1.
On obtient un nuage de points qui sont reliés entre eux par des segments.
Elle renvoie un nuage de points à l’intérieur d’un cercle de rayon 0,5. Et elle renvoie un nombre.
On crée deux listes de 10 000 coordonnées aléatoires comprises entre 0 et 1.
On teste si les points de coordonnées
(
x;y)
sontdans le cercle de rayon R. Si oui, on trace le point et on incrémente de 1 la variable nbre.
On obtient un nuage de points qui ne sont plus reliés.
-3 3
-3 3 1/(x**2+4)
x y
Elle compte le nombre de points dans le quart de disque.
L’aire vaut environ 0,196.
Elle renvoie la fréquence des points qui sont à l’intérieur du cercle de centre O et de rayon R.
Cette fréquence est proche de l’aire du disque pour R=0,5.
débranch é
Entraînement
16 › Fonctions
1. Fonctions
On considère la fonction inverse_f suivante.
5
1. Expliquer l’instruction de la ligne 3.2. Que renvoie l’instruction suivante écrite dans la console ? On considère la fonction suivante.
1
1. Quels résultats sont retournés lorsqu’on écrit les instructionssuivantes dans la console ?
2. Quelle est l’expression mathématique de la fonction f défi nie par la fonction précédente ?
On considère la fonction g défi nie pour tout réel x par g x( )=x2−2x−3 et l’algorithme ci-dessous d’une fonction mystere en langage naturel.
Défi nir mystere( )x Si −1≤x≤3 alors y= −g x( ) Sinon
y=g x( ) Fin Si
Retourner y
4
1. Que retourne cette fonction mystere lorsque x=4 ?2. Que retourne cette fonction mystere lorsque x=1 ? 3. Écrire l’expression mathématique de la fonction défi nie par la fonction mystere.
4. Écrire la fonction mystere en langage Python sans utiliser d’instruction conditionnelle.
On considère la fonction f définie par f x( )= 2x+4. Écrire en langage naturel l’algorithme d’une fonction qui retourne les valeurs de
f x( ) lorsque c’est possible.
3
On considère la fonction g définie pour tout réel x≠3 par g x( )= x1−3.
Compléter la fonction ci-contre pour qu’elle retourne l’image d’un réel x par la fonction g.
2
1 def g(x):2 if x== :
3 resultat=False 4 else:
5 resultat=
6 return resultat 3
1/(x-3)
Défi nir f x( )
Si x< −2 alors
Affi cher non défi ni Sinon faire
Retourner 2x+4
Fin Si
5 4
x! x2−2x−3
−6
−1
f x( )= 3x−1six≤2
−2x+4 six>2
{
Elle renvoie False car – 1 est une valeur interdite pour 1 f.
Comme on ne peut pas utiliser de comparaison de fl ottants, on utilise isclose pour déterminer si x n’est pas une valeur interdite pour f.
1. En utilisant la console Python, comparer les nombres 2 et 99
70. Quel est l’écart entre ces deux valeurs ?
2. En utilisant la console Python, comparer les nombres 99
70− 2 et 140
99 − 2. Que peut-on en déduire ?
3. On cherche les fractions N
D, où N et D sont deux entiers naturels non nuls à deux chiff res, qui soient de meilleures approximations de 2 que 99
70.
On a écrit l’algorithme ci-contre en langage naturel.
a. Quelles valeurs prennent les variables N et D dans cet algorithme ? À quelles fractions correspondent ces valeurs ?
b. Traduire cet algorithme en Python. Quels résultats donne-t-il ? Qu’en déduit-on ?
c. Quelle modifi cation doit-on apporter à l’algorithme pour qu’il cherche s’il existe des meilleures approxima- tions par des fractions dont le numérateur et le dénominateur aient trois chiff res ? Quels résultats a-t-on ?
4. Modifi er l’algorithme pour qu’il détermine la meilleure approximation parmi toutes les fractions dont le numérateur et le dénominateur sont des nombres entiers à trois chiff res.
5. Quelle est la fraction obtenue ?
6
n←100
Pour N allant de 1 à n−1 faire Pour D allant de 1 à n−1 faire
Si N
D− 2 < 99
70− 2 faire Afficher N et D
Fin Si
Fin Pour Fin Pour On trouve 2<99
70. L’écart vaut environ 7.215191261922271×10−5.
On en déduit que 140
99 est une meilleure approximation de 2 que 99 70.
N et D prennent toutes les valeurs comprises entre 1 et 99. Elles correspondent aux fractions formées par deux entiers compris entre 1 et 99.
L’algorithme ne donne aucune solution. Il n’y a pas de meilleures approximations que 99
70 par des fractions dont le numérateur et le dénominateur ont deux chiff res.
Il suffi t de prendre n=1000. On trouve 140-99 ; 239-169 ; 280-198 ; 338-239 ; 379-268 ; 420-297 ; 437-309 ; 478-338 ; 519-367 ; 536-379 ; 560-396 ; 577-408 ; 618-437 ; 635-449 ; 659-466 ; 676-478 ; 700-495 ; 717- 507 ; 734-519 ; 758-536 ; 775-548 ; 799-565 ; 816-577 ; 833-589 ; 840-594 ; 857-606 ; 874-618 ; 898-635 ; 915-647 ; 932-659 ; 939-664 ; 956-676 ; 973-688 ; 980-693 ; 997-705.
816 577
Travaux pratiques
18 › Approximation par des polynômes
Approximation par des polynômes
Dans tout ce TP, on considère la fonction f défi nie pour tout réel x≥ −1 par : f x( )= 1+x.
Une approximation par des polynômes de degré 1 et 2 Écrire une fonction Python qui renvoie les valeurs de la fonction f.
On considère les deux fonctions défi nies par les scripts ci-dessous.
On considère les deux fonctions défi nies par les scripts ci-dessous.
Quelles sont les expressions mathématiques et la nature de ces deux fonctions ? On notera g la fonction défi nie par poly1 et h la fonction défi nie par poly2.
a. Compléter les résultats obtenus en utilisant les trois fonctions.
f(0,01)≈ g(0,01)= h(0,01)= b. Que peut-on dire des résultats trouvés avec les deux fonctions polynômes par rapport à l’image de 0,01 par la fonction f ?
On donne la fonction ci-dessous.
a. Que faut-il écrire dans la console pour déterminer l’écart entre les valeurs de f x( ) et g x( ) pour x=0,01 ?
Quel est cet écart ?
b. Que faut-il écrire dans la console pour déterminer l’écart entre les valeurs de f x( ) et h x( ) pour x=0,01 ?
Quel est cet écart ? Fonctions associées
PARTIE 1
1
2
3
4
• Utiliser les fonctions mathématiques de référence et les fonctions associées
• Utiliser les boucles bornées et les fonc- tions informatiques
g x( )=1+2x ; h x( )=1+2x−x82
g est une fonction affi ne et h une fonction polynôme du second degré.
1.004987562112089. 1.005. 1.0049875
Les résultats trouvés sont très proches du résultat obtenu avec la fonction f.
avec une précision encore plus grande.
On peut démontrer que, lorsque x est voisin de 0, on a : 1+x ≈1+x
2−x2
8 +…+ −1( )n−1(1×3×5×…×(2n−3)) 2×4×6×…×2n xn Dans cette partie, on prend x=0,01.
Recopier la fonction produit_impair ci-contre qui calcule le produit des i−1 premiers entiers impairs et compléter.
produit_impair(2)= produit_impair(5)=
Compléter la fonction produit_pair ci-dessous qui calcule le produit des i premiers entiers pairs.
1 def produit_pair(i):
2 P=
3 for k in range(1, ):
4 P=P*
5 return P
Compléter la fonction poly ci-dessous qui calcule la valeur du polynôme de degré n qui ap- proxime 1+x en un réel x.
1 def poly(x,n):
2 S=1
3 for k in range(1, ):
4 S=S+(-1)**( )*produit_impair( )/produit_pair( )*x**
5 return S
Que saisir dans la console pour retrouver la valeur de poly1(0.01) avec la fonction poly ?
Que saisir dans la console pour retrouver la valeur de poly2(0.01) avec la fonction poly ?
Quelle instruction saisir dans la console pour déterminer une valeur approchée de f(0,01) en utilisant un polynôme de degré 4 ? Combien trouve-t-on ?
Modifi er la fonction ecart en une fonction ecart2, d’arguments deux fonctions, un réel x et un entier n, pour qu’elle donne la diff érence entre les deux valeurs de la question 5. Ces valeurs sont-elles proches ?
1
2
3
4
5
6
7
1 105
1
2*k
i+1
k-1 k k k
n+1
Il faut saisir
Il faut saisir
Il faut saisir
En utilisant la fonction ecart2, on trouve : Les valeurs diff èrent d’environ 10−12.
débranch é
Entraînement
20 › Trinômes, équations et inéquations
Écrire en Python la fonction discriminant dont on déterminera les arguments et qui permet de calculer le discriminant du trinôme P x( )=ax2+bx+c.
1
On considère la fonction signesigne suivante.
1. Que renvoie la fonction avec l’instruction suivante écrite dans la console ?
2. Que renvoie la fonction avec l’instruction suivante écrite dans la console ?
3. Quel est le rôle de cette fonction ?
4. Quelle inéquation est défi nie par les instructions des questions 1 et 2 ?
5. Résoudre cette inéquation et retrouver la cohé- rence des résultats des questions 1 et 2.
4
On considère la fonction mysteremystere suivante.
1. Que renvoie la fonction après avoir écrit dans la console l’instruction suivante ?
2. Que renvoie la fonction après avoir écrit dans la console l’instruction suivante ?
3. Que fait cette fonction mystere ?
3
Compléter l’algorithme ci-contre écrit en langage naturel d’une fonction racine qui permet d’affi cher les racines d’un polynôme du second degré lorsqu’elles existent.
2
Défi nir racine(a,b,c)delta=b2−4ac Si delta<0 faire
retourner « » Sinon Si faire
retourner Sinon
retourner ,
Fin Si
2. Trinômes, équations et inéquations
Elle teste si le quatrième argument x est solution de l’équation ax2+bx+c=0.
Elle renvoie True.
Elle renvoie False.
pas de racine delta=0
− b 2a
−b− Δ 2a
−b+ Δ 2a
C’est l’inéquation 3x2+5x−1>0.
Elle teste si le nombre x est solution de l’inéquation ax2+bx+c>0.
Elle renvoie False.
Elle renvoie True.
Δ =37. Δ est positif, donc le trinôme 3x2+5x−1 possède deux racines :
x1= −5− 37
6 ≈ −1,85 et x2= −5+ 37 6 ≈0,18.
Le trinôme est du signe de a=3, donc strictement positif sur l’intervalle :
−∞;x1
] [
∪]
x2;+ ∞[
.On retrouve bien que 4 est solution de l’inéquation (pour la question 1) et 0 n’est pas solution de l’inéquation (pour la question 2).
On considère l’équation du second degré : ( )E : ax2+bx+c=0,
où a, b et c sont des nombres entiers naturels.
1. Écrire une fonction nommée crible qui compte le nombre d’équations ( )E qui ont deux solutions dis- tinctes pour tous les entiers possibles a, b et c com- pris entre 0 et 50 inclus.
2. Modifi er crible en une fonction crible2 qui calcule la fréquence des équations de type ( )E ayant deux solutions distinctes pour tous les entiers possibles a, b et c compris entre 0 et un entier donné N inclus.
3. Pour N=100, quel résultat trouve-t-on ? Combien de boucles fait-on avec les instructions des lignes 3 à 5 ?
6
On considère le trinôme du second degré P x( )=ax2+bx+c.
On suppose que Δ >0. On note x1 et x2 les deux racines de P x( ).
1. Rappeler l’expression de x1 et x2 en fonction de a, b et Δ.
2. Montrer que x1+x2= −b
a et x1x2= c a.
5
3. On considère la fonction signe_racinessigne_racines ci-dessous.Quel est le message retourné par l’instruction suivante ? Quel est le message retourné par l’instruction suivante ?
4. De quelle équation s’agissait-il dans la question précédente ?
5. Modifi er la fonction ci-dessus en une fonction signe_racines2 pour qu’elle affi che le signe des racines lorsqu’elles sont de même signe et toujours le message « les racines sont de signe contraire » lorsque c’est le cas.
x1+x2= −b− Δ
2a + −b+ Δ 2a = −2b
2a= −b a x1x2= −b− Δ
2a × −b+ Δ
2a = −( )b 2− Δ2 4a2
=b2− Δ
4a2 =b2−b2+4ac
4a2 car Δ =b2−4ac On trouve donc x1x2=4ac
4a2 =c
a après simplifi cation.
x1= −b− Δ
2a et x2= −b+ Δ
2a « les racines sont de même signe »
L’équation 4x2+2x+3=0.
On trouve une fréquence d’environ 26 %.
On fait 1 030 301 boucles.
Travaux pratiques
22 › Trajectoire d’un projectile
• Déterminer les coeffi cients de poly- nômes du second degré
• Utiliser les propriétés d’une parabole
Trajectoire d’un projectile
Un projectile est lancé avec une vitesse initiale V!"!0
d’intensité V0 (en m·s–1), à une hauteur h (en mètre) et avec un angle α (en degré) comme indiqué sur le schéma.
On suppose que V0=10 m⋅s−1, α =30° et h=2m.
L’équation de la trajectoire du projectile est donnée par :
y= − g
2V02cos2( )α x2+tan( )α x+h, où x est l’abscisse du projectile, y son or- donnée et g l’intensité de la pesanteur.
On prend g=9,8 m⋅s−2.
Mise en place des calculs de trajectoire
Écrire une fonction image qui retourne l’image d’un nombre x par la fonction polynôme du second degré, défi nie pour tout réel x par f x( )=ax2+bx+c.
Cette fonction image doit avoir comme arguments les coeffi cients de f et la valeur de x.
À quelle fonction polynôme du second degré correspond l’instruction image(2,3,1,6) ? Quel résultat est retourné ? Pour quelle valeur de x ?
La trajectoire du projectile est une parabole. Compléter la fonction suivante pour qu’elle retourne la hauteur du projectile lorsqu’il a une abscisse x. La fonction image est celle de la question 1.
1 from math import cos,tan,pi 2 def hauteur( ,alpha,h,x):
3 a=
4 b=tan(alpha*pi/180) 5 c=
6 return image( , , , )
Expliquer le calcul Expliquer le calcul Polynômes du second degré
1 1,2 1,4 1,6 1,8 2 2,2 2,4 2,6
0,8 0,6 0,4 0,2 0
α V0 y
x
PARTIE 1
1
2
3
4
L’instruction correspond à la fonction f défi nie par f x( )=2x2+3x+1. Le résultat retourné est 91. C’est l’image du réel 6.
V0
-4.9/(V0**2*(cos(alpha*pi/180))**2)
h
a b c x
Il convertit l’angle α en radian pour pouvoir calculer cos( )α .
tance x où le projectile touche le sol. où le projectile touche le sol.
On veut calculer une valeur approchée de cette distance x. Pour cela, on a commencé à écrire la fonction impact ci-dessous.
Compléter le script de la fonction.
1 def impact(V0,alpha,h):
2 x=0 3 y=2
4 while y>0.01:
5 x=x+0.1
6 y=hauteur( , , , ) 7 return
En utilisant la fonction impact, déterminer une valeur approchée de l’abscisse du projectile lorsqu’il touche le sol.
Écrire l’équation à résoudre et donner les valeurs approchées des deux solutions puis la valeur approchée de l’abscisse de l’impact.
2
3
4
On trouve
On doit résoudre − g
2V02cos2( )α x2+tan( )α x+h=0, soit − 0,049
cos2( )30 x2+tan 30( )x+2=0.
Δ =tan 30( )2+cos0,3922( )30 = 13
⎛⎝ ⎞
⎠
2+ 0,392 3 2
⎛
⎝⎜
⎞
⎠⎟
2 =1 3+2
3×0,392=0,856.
Le discriminant est positif, donc il y a deux solutions : x1= −tan 30( )− 0,856
− 0,098 cos2( )30
qui est négative ce qui est impossible ici ;
x2= −tan 30( )− 0,856
− 0,098 cos2( )30
≈11,499.
On lit x≈11,5. Le projectile touche le sol à environ 11,5 m.
V0 alpha h x
x
débranch é
Entraînement
24 › Nombre dérivé et tangente
On considère la fonction f définie, pour tout réel x, par f x( )=x2+3.
1. On a écrit l’algorithme suivant en langage naturel.
h←1
Pour i allant de 1 à 4 Faire d← f(2+h)−f( )2
h h← h Fin Pour10
1
Compléter le tableau d’état suivant, en exécutant pas àpas cet algorithme.
i d h
2. Quelle conjecture peut-on faire pour f′(2) ?
1. En économie, on considère une fonction f, défi nie et dérivable sur ℝ, représentant le coût (en euro) de fabrication de x objets par mois. On suppose que f x( )=0,01x2+0,02x+4.
On appelle coût marginal, le coût de fabrication d’un objet supplémentaire. On note fm la fonction coût marginal.
Que vaut fm( )x ?
2. Écrire, en langage naturel, une fonction cout_marginal, d’arguments f et x, qui renvoie le coût marginal de x objets fabriqués.
3. Calculer le coût marginal pour x=10 000 et le comparer avec f′
(
10 000)
.3
3. Nombre dérivé et tangente
On considère la fonction suivante.
2
1. On écrit dans la console l’instruction.Compléter le tableau d’état ci-dessous avec les résultats que l’on obtiendrait dans la console. On arrondira les valeurs au millième.
i h y image
2. Que peut-on conjecturer ?
1 5 0,1 1
2 4,1 0,01
3 4,01 0,001
4 4,001 0,0001
′ f ( )2 =4
1 0.1 6.1 [ ]6.1
2 0.01 6.01 6.1, 6.01
[ ]
3 0.001 6.001 6.1, 6.01, 6.001
[ ]
On conjecture que f′( )1 =6, où f est la fonction défi nie par f x( )=x2+4x−1.
fm( )x = f x( +1)− f x( )
Défi nir cout_marginal(f, x) Retourner f(x+1) – f(x)
fm
(
10 000)
= f(
10 001)
− f(
10 000)
=200,03.Par ailleurs, f x′( )=0,02x+0,02 donc f′
(
10 000)
=200,02. On a : fm(
10 000)
≈ ′f(
10 000)
.On considère la fonction f définie pour tout réel x par :
f x( )=x2+x−2.
On a écrit la fonction Python suivante.
On a écrit la fonction Python suivante.
1. Quel résultat s’affi che dans la console en écrivant l’instruction ci-dessous ?
2. Tester cette fonction avec a=1 et h=0,01 et enfi n avec a=1 et h=0,001. Quels résultats trouve-t-on ? Quelle conjecture peut-on faire ?
3. Comparer avec la valeur exacte de f′( )1.
4
On considère la fonction f dérivable sur ℝ telle que le nombre dérivé en tout réel x vaut f x′( )=2x.
L’équation de la tangente au point A a
(
;f a( ))
est :y= ′f a( )(x−a)+ f a( ),
soit y= ′f a( )h+ f a( ) en posant h=x−a ou encore x=a+h.
On a alors, pour tout réel x et pour tout h assez petit :
f a( +h)≈ f a( )+hf a′( ) On se place sur l’intervalle
[ ]
0;2 que l’on divise en 100 parties égales. On pose h=0,02.On a écrit le script ci-contre.
1. Recopier ce script et le lancer. Qu’obtient-on ?
2. Compléter le tableau ci-dessous avec les premières valeurs de x et y calculées par le script.
i 1 2 3
x 0
y 0
3. À quoi servent les instructions des lignes 16 et 17 ?
4. À quelle courbe représentative appartiennent les points défi nis lignes 18 et 19 ?
5
hf'(a) + f(a) f(a + h)
y = f'(a)(x – a) + f(a) 𝒞f
f(a)
a + h a A
0 x
y
On obtient 3.0100000000000016 puis
3.0009999999993653. On conjecture que f′( )1 =3.
3.100000000000005
On calcule : f(1+h)− f( )1
h =1+2h+h2+1+h−2
h =h+3.
On fait tendre h vers 0 et on trouve f′( )1 =3. On trouve avec Python une valeur très proche de la valeur exacte.
On obtient deux courbes proches l’une de l’autre.
0.02 0.04 0.06
0.06 0.14 0.26
Elles créent la liste des abscisses et la liste des ordonnées.
La fonction carré.
Travaux pratiques
26 › Étude d’une demi-ellipse
• Déterminer un maximum
• Déterminer le coeffi cient directeur d’une tangente
Étude d’une demi-ellipse
On considère la fonction f défi nie sur
[
−3;3]
par f x( )=35 9−x2. Tracé de la courbe représentative de fExpliquer pourquoi la fonction f est bien défi nie sur
[
−3;3]
.Compléter le script ci-contre pour tracer la courbe représentative de la fonction f.
La courbe obtenue est une moitié d’ellipse.
Conjecturer les variations de la fonction f sur
[
−3;3]
, la valeur du maximum de f et la valeur en laquelle il est atteint.Écrire une fonction Python, nommée f qui renvoie les valeurs de f x( ).
Compléter la fonction maximum ci-contre pour qu’elle renvoie, avec un pas h donné, une va- leur approchée du maximum de la fonction f et de la valeur en laquelle est atteint ce maximum.
1 def maximum(h):
2 a=-3 3 m=
4 while a<0:
5 a=a+
6 if f(a)>m:
7 m=
8 return a,m
En utilisant la fonction précédente, retrouver le résultat de la question 3 qui concerne le maximum. On prendra h=0,1.
Application de la dérivation
PARTIE 1
1
2 3
4
5
6
1 import matplotlib.pyplot as plt 2 import numpy as np
3 plt.axis([-3,3,0,2]) 4 plt.grid()
5 x=np.linspace( , ,100) 6 y=
7 plt.plot( , ) 8 plt.show()
Le polynôme 9−x2 a pour racines −3 et 3. Il est du signe du coeffi cient de x2, soit du signe de 1, donc positif, sur l’intervalle
[
−3;3]
. La fonction est bien défi nie sur cet intervalle.f semble croissante sur
[
−3;0]
et décroissante sur
[ ]
0;3. f a un maximum environ égal à 1,8, atteint en 0.x y
3/5*np.sqrt(9-x**2) -3 3
f(a) h f(a)
Le maximum est environ 1,8. Il est atteint en 0.