Introduction à Python et Programmation
Introduction à Python et Programmation
3/28/2020 2
Introduction
Programmation
Langage d’assemblage (ou assembleur) : très facilement traduisible pour être compris par
la machine.
Langage de programmation : doit être compilé ou interprété pour être compris par la
machine.
3/28/2020 3
Introduction
Programmation
Il existe deux méthodes pour effectuer la traduction du code source en langage machine :
Interprétation
Compilation
Code Résultat
Code Compilateur Exécuteur
objet
Source
(binaire)
3/28/2020 4
Introduction
Python est un langage de programmation interprété, c'est-à-dire que les instructions que
vous lui envoyez sont « transcrites » en langage machine au fur et à mesure de leur lecture.
D'autres langages (comme le C / C++) sont appelés « langages compilés » car, avant de
3/28/2020 5
Introduction
la simplicité : on ne passe pas par une étape de compilation avant d'exécuter son programme.
la portabilité : un langage tel que Python est censé fonctionner aussi bien sous Windows que sous Linux ou Mac OS, et
on ne devrait avoir à effectuer aucun changement dans le code pour le passer d'un système à l'autre. Cela ne veut pas
dire que les langages compilés ne sont pas portables, loin de là! Mais on doit utiliser des compilateurs différents et, d'un
système à l'autre, certaines instructions ne sont pas compatibles, voire se comportent différemment.
En contrepartie, un langage compilé se révélera bien plus rapide qu'un langage interprété : la traduction à la volée de votre
programme ralentit l'exécution bien que cette différence tende à se faire de moins en moins sentir au fil des améliorations.
De plus, il faudra installer Python sur le système d'exploitation que vous utilisez pour que l'ordinateur puisse comprendre
votre code.
3/28/2020 6
Introduction
En langage python on utilise la fonction print pour faire sortir ou afficher un texte :
« >>> » Ces trois chevrons signifient : « je suis prêt à recevoir les instructions ».
Les langages de programmation respectent une syntaxe claire. Si par exemple je doit afficher un message pour dire
qu’on va commencer à développer, sans utiliser la fonction print:
3/28/2020 7
Introduction
3/28/2020 8
Introduction
3/28/2020 9
Introduction
Float est utilisé en Python pour représenter les nombres qui ne sont pas des entiers.
Les ordinateurs ne peuvent pas stocker les types floats parfaitement, et on ne peut pas écrire un décimale complet (par
exemple 1/3 (0.3333333333333333...).
Pour déterminer le quotient et le reste d’une division, on utilise les opérateurs “floor division” (//) et “modulo” (%)
Float
Quotient
Reste
3/28/2020 10
Introduction
Exemple:
3/28/2020 11
Introduction
problème des guillemets ou apostrophes que peut contenir ladite chaîne. Par exemple, si vous tapez chaine = 'J ‘aime le
On insère ainsi un caractère antislash « \ » avant les apostrophes contenues dans le message.
3/28/2020 12
Introduction
Créer une chaine de caractère string en utilisant triples guillemets, et la nouvelle ligne sera crée en tapant « entrer »
3/28/2020 13
Introduction
3/28/2020 14
Introduction
3/28/2020 15
Introduction
3/28/2020 16
Introduction
3/28/2020 17
Introduction
Exemple:
3/28/2020 18
Introduction
3/28/2020 19
Introduction
3/28/2020 20
Introduction
Output
En Python, on utilise la fonction print pour obtenir la sortie. Cette fonction permet d’afficher une représentation textuelle
Input
Pour obtenir une entrée d’un utilisateur en Python, on utilise la fonction input
Les fonction print et input ne sont pas très utilisées dans la console de Python qui fait la sortie et l’entrée,
3/28/2020 21
Introduction
Comme pour les types entier et les types float, on peut associer des chaines de caractères (string) à l’aide d’une technique
appelée concatenation, qu’on peut l’appliquer sur n’importe qulles deux chaines de caractères.
On ne peut pas concaténer une chaine de caractères avec un nombre (entier, float…)
Même si une chaîne de caractères contient des nombres, ils sont quand même ajoutés sous forme de chaînes plutôt que d'entiers.
L'ajout d'une chaîne à un nombre produit une erreur, car même s’ils peuvent sembler similaires, il s'agit de deux types différents.
3/31/2020 22
Introduction
Les chaînes peuvent être également multipliées par des entiers. Cela produit
généralement en premier.
Les chaînes ne peuvent pas être multipliées par des flottants, même dans le
cas où les flottants sont des nombres entiers.
3/28/2020 23
Introduction
En Python, il est impossible d'effectuer certaines opérations en raison des types impliqués. Par exemple, on ne peut pas
ajouter deux chaînes contenant les nombres 2 et 3 ensemble pour produire le nombre entier 5, car l'opération sera effectuée
3/28/2020 24
Introduction
3/28/2020 25
Introduction
Les variables
Les variables jouent un rôle très important dans la plupart des langages de programmation, et Python ne fait pas
exception.
Une variable vous permet de stocker une valeur en lui attribuant un nom, qui peut être utilisé pour faire référence à la
Pour assigner une variable, utilisez un signe égal. Contrairement à la plupart des lignes de code que nous avons
3/28/2020 26
Introduction
Les variables
Les variables peuvent être réaffectées autant de fois que vous le souhaitez afin de modifier leur valeur.
En Python, les variables n'ont pas de types spécifiques. Vous pouvez donc affecter une chaîne à une variable, puis
Cependant, ce n'est pas une bonne pratique. Pour éviter les erreurs, Eviter l’affectation de la même variable avec
différents types de données.
3/28/2020 27
Introduction
Les variables
Essayer de référencer une variable qu’on n’a pas affecté provoque une erreur.
On peut utiliser l'instruction del pour supprimer une variable, ce qui signifie que la référence du nom à la valeur est
supprimée
3/28/2020 28
Introduction
Les variables
Certains mots-clés de Python sont réservés, c'est-à-dire que vous ne pouvez pas créer des variables portant ce nom.
Ces mots-clés sont utilisés par Python, vous ne pouvez pas construire de variables portant ces noms. Vous allez découvrir
3/28/2020 29
Les structures de controle
3/28/2020 30
Les structures de controle
3/31/2020 31
Les structures de controle
Python a également des opérateurs qui déterminent si un nombre (float ou entier) est supérieur ou inférieur à un autre.
3/28/2020 32
Les structures de contrôle
Dans cette partie, on va parler des structures conditionnelles, qui vont nous permettre de faire des tests et
d'aller plus loin dans la programmation.
Les conditions permettent d'exécuter une ou plusieurs instructions dans un cas, d'autres instructions dans un
autre cas.
3/28/2020 33
Les structures de contrôle
On peut utiliser les instructions if pour exécuter du code si une condition donnée est remplie.
Si une expression est évaluée à True, certaines instructions sont exécutées. Sinon, ils ne sont pas effectués.
Une déclaration if ressemble à ceci:
if condition:
instruction
Python utilise l'indentation (espace au début d'une ligne) pour délimiter des blocs de code. D'autres langages,
tels que le C, utilisent des accolades pour accomplir cela, mais l'indentation en Python est obligatoire; les
programmes ne fonctionneront pas sans cela.
3/28/2020 34
Les structures de contrôle
Exemple:
if a > 0:
print ("a est supérieur à 0 ")
if a < 0:
print ("a est inférieur à 0 ") print ("fin du programme")
3/28/2020 35
Les structures de contrôle
3/28/2020 37
Les structures de contrôle
3/28/2020 38
Les structures de contrôle
3/28/2020 39
Les structures de contrôle
3/28/2020 40
Les structures de contrôle
L'opérateur « or » prend également deux arguments. Il est évalué sur True si l'un de ses arguments (ou les
deux) est True et sur False si les deux arguments sont False.
Contrairement aux autres opérateurs que nous avons vus jusqu'à présent, « not » prend un seul argument, et
l'inverser. Le résultat de not True est False et not False devient True.
3/28/2020 41
Les structures de contrôle
3/28/2020 42
Les structures de contrôle
des opérations (la multiplication étant effectuée avant l'addition, etc.) pour inclure d'autres opérateurs, tels que ceux de la
logique booléenne.
3/28/2020 43
Les structures de contrôle
3/28/2020 44
Les structures de contrôle
Les boucles
Boucle while
Une instruction if est exécutée une fois si sa condition est évaluée à True et jamais si elle est évaluée à False.
Une instruction while est similaire, mais elle peut être exécutée plusieurs fois. Les instructions qu'il contient sont
exécutées à plusieurs reprises, tant que la condition est vraie. Une fois la valeur False évaluée, la section de code
Les boucles
Boucle while
Boucle infinie :
La boucle infinie est un type spécial de boucle while; elle ne s’arrête jamais de courir. Sa condition reste toujours
vraie.
while 2==2:
print(“Hello world!")
3/28/2020 46
Les structures de contrôle
Les boucles
Boucle while
break:
Pour terminer prématurément une boucle while, on peut utiliser l'instruction break.
Lorsqu'elle est rencontrée à l'intérieur d'une boucle, l'instruction break entraîne son
achèvement immédiat.
3/31/2020 47
Les structures de contrôle
Les boucles
Boucle while
Exécuter ce code sur votre machine
3/28/2020 48
Les structures de contrôle
Les boucles
Boucle while
continue:
Le mot-clé continue permet de
continuer une boucle, en repartant
directement à la ligne du while ou
for. Un petit exemple s'impose : continue est une declaration qui termine
l'itération en cours et continue avec la suivante
3/28/2020 49
Les structures de contrôle
Les boucles
Boucle while
Exécuter ce code sur votre machine
i=1
while i < 30: # Tant que i est inférieure à 30
if i % 3 == 0:
i += 4 # On ajoute 4 à i
print("On incrémente i de 4. i est maintenant égale à", i)
continue # On retourne au while sans exécuter les autres Lignes
print("la variable i = ", i)
i += 1
3/28/2020 50
Les structures de contrôle
Les listes
Les listes sont un autre type d'objet en Python. Ils sont utilisés pour stocker une liste indexée d'éléments.
Une liste est créée en utilisant des crochets avec des virgules séparant les éléments.
Vous pouvez accéder à certains éléments de la liste en utilisant son index entre crochets.
Exemple:
Liste vide
3/28/2020 51
Les structures de contrôle
Les listes
Les operations sur les listes
En règle générale, une liste contient des éléments d'un seul type, mais il est également possible d'inclure plusieurs types différents.
3/28/2020 52
Les structures de contrôle
Les listes
Les operations sur les listes
L'indexation en dehors de limite des valeurs possibles de liste provoque IndexError.
Certains types, tels que les chaînes, peuvent être indexés comme des listes. Les chaînes d'indexation
Pour d'autres types, tels que les entiers, leur indexation est impossible et provoque une erreur
TypeError.
3/28/2020 53
Les structures de contrôle
Les listes
Les operations sur les listes
L'élément à un certain index dans une liste peut être
réaffecté.
3/28/2020 54
Les structures de contrôle
Les listes
Les operations sur les listes
Pour vérifier si un élément est dans une liste, l'opérateur in peut être utilisé. Il renvoie True si l'élément apparaît une ou plusieurs fois
Pour vérifier si un élément ne se trouve pas dans une liste, on utiliser l'opérateur not
3/28/2020 55
Les structures de contrôle
Les listes
Les functions appliquées sur les listes
Une autre façon de modifier les listes consiste à utiliser la méthode append. Cela ajoute un élément à la fin
Pour obtenir le nombre d'éléments dans une liste, on peut utiliser la fonction len
La méthode insert est similaire à append, sauf qu'elle permet d'insérer un nouvel élément à n'importe quelle
La méthode index recherche la première occurrence d'un élément de liste et renvoie son index. Si l'élément
3/28/2020 56
Les structures de contrôle
Les listes
Les fonctions appliquées sur les listes
Il existe quelques fonctions et méthodes utiles pour les listes.
• list.count (obj) : Retourne le nombre de fois qu'un élément apparaît dans une liste
3/28/2020 57
Les structures de contrôle
Les listes
Les fonctions appliquées sur les listes
La fonction range crée une liste séquentielle de nombres.
Si range est appelé avec un argument, il produit un objet avec des valeurs allant de 0 jusqu’à cet argument.
S'il est appelé avec deux arguments, il produit des valeurs du premier au second.
La fonction range peut avoir un troisième argument, qui détermine l'intervalle de la séquence produite. Ce
3/28/2020 58
Les structures de contrôle
Les listes
Les fonctions appliquées sur les listes
all et any
3/28/2020 59
Les structures de contrôle
Les listes
Boucle for
Parfois, on doit exécuter du code sur chaque élément de la liste. C'est ce qu'on appelle l'itération, et cela peut
3/28/2020 60
Les listes
Boucle for
L’itération dans une liste à l'aide d'une boucle while nécessite pas mal de code. Python fournit donc la boucle
Le même code de l'exemple précédent peut être écrit avec une boucle for, comme suit:
3/28/2020 61
Les structures de contrôle
Les listes
Boucle for
La boucle for est couramment utilisée pour répéter du code un certain nombre de fois. Ceci est réalisé en
On n’a pas besoin d'appeler la liste pour la plage des objets (range) lorsqu'il est utilisé dans une boucle for,
car il n'est pas indexé. Par conséquent, une liste n'est pas obligatoire.
3/28/2020 62
Les structures de contrôle
Les dictionnaires
Les dictionnaires sont des structures de données utilisées pour mapper des clés arbitraires en valeurs.
Les listes peuvent être considérées comme des dictionnaires avec des clés de type entier dans une certaine plage.
Les dictionnaires peuvent être indexés de la même manière que les listes, en utilisant des crochets contenant des
clés.
Exemple:
Essayer d'indexer une clé qui ne fait pas partie du dictionnaire renvoie une erreur KeyError.
3/28/2020 63
Essayer d'indexer une clé qui ne fait pas partie du dictionnaire renvoie une erreur KeyError.
Les structures de contrôle
Les tuples
Les tuples ressemblent beaucoup aux listes, sauf qu'ils sont immuables (ils ne peuvent pas être changés).
3/28/2020 64
Les structures de contrôle
Les tuples
Les tuples peuvent être créés sans les parenthèses, en séparant simplement les valeurs par des virgules.
Exemple:
3/28/2020 65
La programmation Mudulaire
Fonctions & Modules
La programmation modulaire
3/28/2020 66
La programmation Mudulaire
La réutilisation du code est une partie très importante de la programmation dans toutes les langues.
Pour qu'un grand projet de programmation réussisse, il est essentiel de respecter le principe «Ne vous répétez
pas» (Don't Repeat Yourself, or DRY). Nous avons déjà examiné une façon d’appliquer ce principe : en
utilisant des boucles. Dans ce module, nous explorerons deux autres: les fonctions et les modules.
3/28/2020 67
La programmation Modulaire
Toute instruction consistant en un mot suivi d'informations entre parenthèses est un appel de fonction.
print("Hello world!")
range(2, 20) str(12)
range(10, 20, 3)
Les mots devant les parenthèses sont des noms de fonctions et les valeurs séparées par des virgules à l'intérieur des
parenthèses sont des arguments de fonction.
Les fonctions permettent de regrouper plusieurs instructions dans un bloc qui sera appelé grâce à un nom.
avec des parenthèses vides. Cependant, la plupart des fonctions prennent des arguments.
3/28/2020 69
La programmation Modulaire
peuvent pas être référencés en dehors de la définition de la fonction. Ceci s'applique également aux autres variables crées
def function(variable):
variable += 1
print(variable)
function(7)
print(variable)
3/28/2020 70
La programmation Modulaire
Une fois que vous retournez une valeur d'une fonction, celle-ci cesse immédiatement d'être exécutée. Tout code après la
3/28/2020 71
La programmation Modulaire
valeur. Elles peuvent être affectées et réaffectées à des variables, puis référencées par ces noms.
Les fonctions peuvent être également utilisées comme arguments d'autres fonctions.
def multiply(x, y): def add(x, y):
return x * y return x + y
print(do_twice(add, a, b))
3/28/2020 72
La programmation Modulaire
telles que générer des nombres aléatoires, effectuer des opérations mathématiques, etc.
haut de votre code, puis à utiliser nom_module.var pour accéder aux fonctions et aux
3/28/2020 73
La programmation Modulaire
La méthode import
Il existe un grand nombre de modules disponibles sous Python sans qu'il soit nécessaire d'installer des bibliothèques
supplémentaires. Pour cette partie, nous prendrons l'exemple du module math qui contient, comme son nom l'indique, des
fonctions mathématiques.
Lorsque on ouvre l'interpréteur Python, les fonctionnalités du module math ne sont pas incluses. Il s'agit en effet d'un
module, il vous appartient de l'importer si vous vous dites « tiens, mon programme risque d'avoir besoin de fonctions
accessibles. Pour appeler une fonction du module, il faut taper le nom du module suivi d'un point « . » puis du nom de la
fonction. C'est la même syntaxe pour appeler des variables du module. Voyons un exemple :
Un autre l'exemple utilise le module random pour générer des nombres aléatoires:
3/28/2020 75
La programmation Modulaire
Le code utilise la fonction randint définie dans le module random pour imprimer 5
nombres aléatoires allant de 1 à 11.
3/28/2020 76
La programmation Modulaire
3/28/2020 77
La programmation Modulaire
3/28/2020 78
La programmation Modulaire
Dans ce cas, nous n'allons importer que la fonction, au lieu d'importer tout le module.
Exemples:
3/28/2020 79
La programmation Modulaire
La plupart sont disponibles sur toutes les plateformes, mais certaines sont spécifiques à Windows ou Unix.
3/28/2020 80
Les exceptions
Les exceptions
3/28/2020 81
Les exceptions
Qu’est ce que les exceptions
Vous avez déjà vu des exceptions dans les parties précédentes. Ils se produisent lorsque quelque chose ne va
pas, à cause d'un code ou d'une saisie incorrecte.
3/28/2020 82
Les exceptions
Les types d’exceptions
Les différentes exceptions sont soulevées pour différentes raisons.
Exceptions communes:
ImportError: une importation échoue;
IndexError: une liste est indexée avec un numéro en dehors de la plage;
NameError: une variable inconnue est utilisée;
SyntaxError: le code ne peut pas être analysé correctement;
TypeError: une fonction est appelée sur une valeur d'un type inapproprié;
ValueError: une fonction est appelée sur une valeur du type correct, mais avec une valeur inappropriée.
Par exemple:
3/28/2020 84
Les exceptions
Gestion des exceptions
Une instruction try peut avoir plusieurs blocs différents pour gérer différentesexceptions.
Plusieurs exceptions peuvent également être placées dans un seul bloc à l'aide de parenthèses, pour que le bloc
gère toutes les exceptions.
3/28/2020 85
Les exceptions
Gestion des exceptions
Une instruction except sans aucune exception spécifiée va capturer toutes les erreurs. Celles-ci doivent être
utilisées avec modération, car elles peuvent capturer des erreurs inattendues et masquer des erreurs de
programmation.
Par exemple:
3/28/2020 86
Les exceptions
L’instruction finally
Pour assurer que le code est exécuté quelles que soient les erreurs, on peut utiliser une
instruction finally.
L'instruction finally est placée au bas d'une instruction try / except.
Le code dans une instruction finally s'exécute toujours après l'exécution du code dans les blocs
try et éventuellement dans les blocs except.
3/28/2020 87
Les exceptions
L’instruction finally
Le code dans une instruction finally est même exécuté même si une exception se produit dans l'un des blocs
précédents
3/28/2020 88
Les exceptions
Assertions
Une assertion est un contrôle d'intégrité qu’on peut activer ou désactiver lorsque on a terminé
de tester le programme.
Une expression est testée, et si le résultat est faux, une exception est générée.
L'assertion peut prendre un deuxième argument qui est transmis à AssertionError déclenchée
si l'assertion échoue.
3/28/2020 89
Les matrices
Les matrices
3/28/2020 90
Les matrices
Création d’une matrice
• On travaille avec les modules numpy et numpy.linalg.
3/28/2020 91
Les matrices
• L’attribut shape donne la taille d’une matrice : nombre de lignes,
nombre de colonnes. On peut redimensionner une matrice, sans
modifier ses termes, à l’aide de l’attribut reshape.
3/28/2020 92
Les matrices
L’accès à un terme de la matrice A se fait à l’aide de l’opération d’indexage A[i, j] où i désigne la ligne et j la ,colonne.
Attention, les indices commencent à zéro ! À l’aide d’intervalles, on peut également récupérer une partie d’une matrice
: ligne, colonne, sous-matrice.
3/28/2020 93
Les matrices
Les fonctions zeros et ones permettent de créer des matrices remplies de 0 ou de 1.
La fonction eye permet de créer une matrice du type In où n est un entier.
La fonction diag permet de créer une matrice diagonale.
3/28/2020 94
Les matrices
• La fonction concatenate permet de créer des matrices par blocs en
superposant (axis=0) ou en plaçant côte à côte (axis=1) plusieurs matrices.
•
3/28/2020 95
Les matrices
• Pour copier un tableau, il est recommandé d’utiliser la méthode copy.
3/28/2020 96
Les matrices
• Les fonctions amax, amin et mean du module numpy permettent
respectivement de calculer le maximum, le minimum et la moyenne des
éléments d’un tableau.
3/28/2020 97
Calcul matriciel
Calcul matriciel
3/28/2020 98
Le calcul matriciel
• Les opérations d’ajout et de multiplication par un scalaire se
font avec les opérateurs + et *.
3/28/2020 99
Le calcul matriciel
• Pour effectuer un produit matriciel (lorsque que cela est
possible), il faut employer la fonction dot.
3/28/2020 100
Le calcul matriciel
• On peut également utiliser la méthode dot qui est plus pratique pour calculer un
produit de plusieurs matrices.
• La fonction matrix_power du module numpy.linalg permet de calculer des
puissances de matrices.
3/28/2020 101
Le calcul matriciel
• La transposée d’une matrice B s’obtient avec la fonction np.transpose. L’expression B.T ou
B.transpose renvoie aussi la transposée de B.
3/28/2020 102
Le calcul matriciel
• Le déterminant, le rang et la trace d’une matrice s’obtiennent par les fonctions det, matrix_rank du
module numpy.linalg et trace du module numpy. Enfin la fonction inv du module numpy.linalg
renvoie l’inverse de la matrice si elle existe.
3/28/2020 103
Le calcul matriciel
• Pour résoudre le système linéaire AX=b lorsque la matrice est
inversible, on peut employer la fonction np.linalg.solve.
3/28/2020 104
Eléments propores d’une matrice
• La fonction poly du module numpy appliquée à une matrice carrée renvoie la liste des coefficients du
polynôme caractéristique par degré décroissant.
• La fonction eigvals du module numpy.linalg renvoie les valeurs propres d’une matrice.
• Pour obtenir en plus les vecteurs propres associés, il faut employer la fonction eig. Cette fonction
renvoie un tuple constitué de la liste des valeurs propres et d’une matrice carrée. La ième colonne de
cette matrice est un vecteur propre associé à la iième valeur propre de la liste des valeurs propres.
3/28/2020 105
Produit scalaire et produit vectoriel
• La fonction vdot permet de calculer le produit scalaire de deux vecteurs de l’espace.
• La fonction cross permet de calculer le produit vectoriel de deux vecteurs de l’espace. .
3/28/2020 106
Réalisation de tracés
Réalisation de tracés
3/28/2020 107
Réalisations de tracés
• Les fonctions présentées dans ce document permettent la réalisation de tracés. Elles nécessitent
l’import du module numpy et du module matplotlib.pyplot. De plus pour effectuer des tracés en
dimension 3, il convient d’importer la fonction Axes3d du module mpl_toolkits.mplot3d. Les
instructions nécessaires aux exemples qui suivent sont listés ci-dessous.
3/28/2020 108
Tracés de lignes brisées et options de tracés
• On donne la liste des abscisses et la liste des ordonnées puis on effectue le tracé. La
fonction axis permet de définir la fenêtre dans laquelle est contenue le graphique.
L’option equal permet d’obtenir les mêmes échelles sur les deux axes. Les tracés
relatifs à divers emplois de la fonction plot se superposent. La fonction plt.clf()
efface les tracés contenus dans la fenêtre graphique.
3/28/2020 109
Tracés de lignes brisées et options de tracés
• La fonction plot admet de nombreuses options de présentation. Le paramètre color
permet de choisir la couleur ('g' : vert, 'r' : rouge, 'b' : bleu, …). Pour définir le style
de la ligne, on utilise linestyle ('-' : ligne continue, '- -' : ligne discontinue, ' :' : ligne
pointillée, …). Si on veut marquer les points des listes, on utilise le paramètre
marker ('+', '.', 'o', 'v' donnent différents symboles).
3/28/2020 110
Exemple: tracés des fonctions
• On définit u↦ sin(u) où u appartient à [0, 3*pi ] puis on
construit la liste des ordonnées correspondantes.
3/28/2020 111
Tracés d’arcs paramétrés
• Dans le cas d’un arc paramétré du plan, on définit d’abord la liste des
valeurs données au paramètre puis on construit la liste des abscisses et
des ordonnées correspondantes. On effectue ensuite le tracé.
3/28/2020 112
Exemple 3d
• Pour tracer une surface d’équation 𝑧 = 𝑓(𝑥, 𝑦), on réalise d’abord une grille en (𝑥, 𝑦)
puis on calcule les valeurs de 𝑧 correspondant aux points de cette grille. On fait
ensuite le tracé avec la fonction plot_surface.
3/28/2020 113
Tracé de lignes de niveau
Pour tracer des courbes d’équation 𝑓(𝑥, 𝑦) = 𝑘, on fait une grille en 𝑥 et et 𝑦
sur laquelle on calcule les valeurs de 𝑓. On emploie ensuite la fonction
contour en mettant dans une liste les valeurs de 𝑘 pour lesquelles on veut
tracer la courbe d’équation 𝑓(𝑥, 𝑦) = 𝑘.
3/28/2020 114
Analyse numérique
Analyse numérique
3/28/2020 115
Analyse numérique
• La plupart des fonctions présentées dans cette section nécessitent
l’import du module numpy et de sous-modules du module scipy. Les
instructions nécessaires aux exemples suivants sont listés ci-dessous.
3/28/2020 116
Nombres complexes
• Python calcule avec les nombres complexes. Le nombre imaginaire pur 𝑖
se note 1j. Les attributs real et imag permettent d’obtenir la partie réelle
et la partie imaginaire. La fonction abs calcule le module d’un complexe.
3/28/2020 117
Résolution approchée d’équations
• Pour résoudre une équation du type 𝑓(𝑥) = 0 où 𝑓 est une fonction
d’une variable réelle, on peut utiliser la fonction fsolve du module
scipy.optimize. Il faut préciser la valeur initiale 𝑥0 de l’algorithme
employé par la fonction fsolve. Le résultat peut dépendre de cette
condition initiale.
3/28/2020 118
Résolution d’un système
• Dans le cas d’une fonction 𝑓 à valeurs vectorielles, on utilise la fonction
root. Par exemple, pour résoudre le système non linéaire.
3/28/2020 119
Calcul approché d’intégrales
• La fonction quad du module scipy.integrate permet de calculer des
valeurs approchées d’intégrales. Elle renvoie une valeur approchée de
l’intégrale ainsi qu’un majorant de l’erreur commise. Cette fonction peut
aussi s’employer avec des bornes d’intégration égales à +∞ ou −∞.
3/28/2020 120
Intégrale dépendante d’un paramètre
• La fonction integr.quad peut être employée pour la définition
d’intégrales à paramètres. Ainsi si on veut obtenir des valeurs
approchées de pour 𝑥 réel strictement positif on pourra procéder ainsi :
3/28/2020 121
Résolution approchées d’équations différentielles
• Pour résoudre une équation différentielle 𝑥′ = 𝑓(𝑥, 𝑡), on peut utiliser la fonction odeint du module
scipy.integrate. Cette fonction nécessite une liste de valeurs de 𝑡, commençant en 𝑡0, et une
condition initiale 𝑥0. La fonction renvoie des valeurs approchées (aux points contenus dans la liste
des valeurs de 𝑡 de la solution 𝑥 de l’équation différentielle qui vérifie 𝑥(𝑡0) = 𝑥0. Pour trouver des
valeurs approchées sur [0, 1] de la solution 𝑥′(𝑡) = 𝑡𝑥(𝑡) qui vérifie 𝑥(0) = 1, on peut employer le code
suivant.
3/28/2020 122
Système différentiel
• Si on veut résoudre, sur [0, 1], le système différentiel (S)
avec la condition initiale 𝑥(0) = 2, 𝑦(0) = 1 le code devient le suivant
3/28/2020 123
Polynômes
Polynômes
3/28/2020 124
Polynômes
La classe Polynomial du module numpy.polynomial.polynomial permet de travailler avec des polynômes.
• Pur créer un polynôme, il faut lister ses coefficients par ordre de degré croissant. Par exemple, pour
le polynôme 𝑋3 + 2𝑋 − 3. l’instruction à exécuter est p = Polynomial([-3, 2, 0, 1])
• On peut alors utiliser la variable p comme une fonction pour calculer, en un point quelconque, la
valeur de la fonction polynôme associée. Cette fonction peut agir également sur un tableau de
valeurs, elle calcule alors la valeur de la fonction polynôme en chacun des points indiqués.
3/28/2020 125
Polynômes
• L’attribut coef donne accès aux coefficients ordonnés par degré croissant ; ainsi
p.coef[i] correspond au coefficient du terme de degré i. La méthode degré renvoie le
degré du polynôme alors que roots calcule ses racines.
3/28/2020 126
Polynômes
• La méthode deriv renvoie un nouveau polynôme, dérivé du polynôme initial. Cette
méthode prend en argument facultatif un entier positif indiquant le nombre de
dérivations à effectuer. De la même manière la méthode integ intègre le polynôme,
elle prend un paramètre optionnel supplémentaire donnant la constante
d’intégration à utiliser, ce paramètres peut être une liste en cas d’intégration
multiple ; les constantes d’intégration non précisées sont prises égales à zéro.
3/28/2020 127
Polynômes
• Les opérateurs +, -, * permettent d’additionner, soustraire et multiplier des
polynômes. Ils fonctionnent également entre un polynôme et un scalaire.
L’opérateur ** permet d’élever un polynôme à une puissance entière positive. Enfin,
on peut composer deux polynômes (p(q) remplace l’indéterminée 𝑋 par le
polynôme q dans le polynôme p)
3/28/2020 128
Polynômes
L’opérateur / permet de diviser un polynôme par un scalaire. Pour diviser deux
polynômes il faut utiliser l’opérateur // qui renvoie le quotient ; l’opérateur % calcule
le reste.
3/28/2020 129
Probabilité
Probabilité
3/28/2020 130
Probabilité
• Les fonctions d’échantillonnage et de génération de valeurs pseudo-aléatoires sont
regroupées dans la bibliothèque numpy.random.
• L’expression randint(a, b) permet de choisir un entier au hasard dans l’intervalle ⟦𝑎, 𝑏⟦.
La fonction randint prend un troisième paramètre optionnel permettant d’effectuer
plusieurs tirages et de renvoyer les résultat sous forme de tableau ou de matrice.
3/28/2020 131
Probabilité
• La fonction random renvoie un réel compris dans l’intervalle [0, 1[. Si 𝑋 désigne la
variable aléatoire correspondant au résultat de la fonction random, alors pour tout 𝑎
et 𝑏 dans [0, 1] avec 𝑎 ⩽ 𝑏, on a 𝑃 (𝑎 ⩽ 𝑋 < 𝑏) = 𝑏 − 𝑎.
• Cette fonction accepte un paramètres optionnel permettant de réaliser plusieurs
tirages et de les renvoyer sous forme de tableau ou de matrice.
3/28/2020 132
Probabilité
• La fonction binomial permet de simuler une variable aléatoire suivant une loi
binomiale de paramètres n et p.
• Elle permet donc également de simuler une variable aléatoire suivant une loi de
Bernoulli de paramètres p en prenant simplement 𝑛 = 1. Cette fonction prend un
troisième paramètre optionnel qui correspond, comme pour les fonctions
précédentes, au nombre de valeurs à obtenir.
3/28/2020 133
Probabilité
• Les fonctions geometric et poisson fonctionnement de la
même manière pour les lois géométrique ou de Poisson.
3/28/2020 134