0% ont trouvé ce document utile (0 vote)
456 vues21 pages

Cours - Simulation Numérique

Ce document décrit diverses méthodes de simulation numérique comme la recherche de zéro, l'intégration numérique et la résolution de systèmes linéaires. Il présente des algorithmes comme la dichotomie, la méthode de Newton, les rectangles, les trapèzes et Simpson pour la résolution numérique de problèmes.

Transféré par

Chérif Kagni
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
456 vues21 pages

Cours - Simulation Numérique

Ce document décrit diverses méthodes de simulation numérique comme la recherche de zéro, l'intégration numérique et la résolution de systèmes linéaires. Il présente des algorithmes comme la dichotomie, la méthode de Newton, les rectangles, les trapèzes et Simpson pour la résolution numérique de problèmes.

Transféré par

Chérif Kagni
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Simulation Numérique

Ingéniérié numériqué ét simulation

Dans cette partie, nous nous intéressons à des méthodes numériques pour la résolution
d’équations sur les réels, de systèmes linéaires et d’équations différentielles. D’une part,
nous rappelons les méthodes du cours de mathématiques, qui sont faciles à programmer, et
dont la validité peut être démontrée formellement et sans grande difficulté. D’autre part,
nous expliquons comment utiliser les fonctions « clés en main » fournies par Python et ses
bibliothèques adaptées, avec des exemples rencontrés en mathématiques, sciences
physiques ou chimie.

L’idée pénible à garder à l’esprit est que, en calcul numérique, tout est faux !
En effet, les données prises en entrée sont des approximations des données
« réelles » (parce qu’issues d’autres calculs ou de mesures physiques).

De plus, on résout des équations qui sont une approximation de la vie réelle
(linéarisation d’un phénomène en physique...) et on applique pour cela des schémas qui
introduisent une erreur dans le résultat. Enfin, le moindre calcul en arithmétique flottante
induit des erreurs d’arrondis, on note le résultat final sur un morceau de papier, et on se
trompe en copiant la deuxième décimale.

Nous montrons sous quelles conditions on peut contrôler ces erreurs, et comment choisir les
paramètres des méthodes utilisées pour obtenir un résultat satisfaisant.

I - RECHERCHE DE ZERO

Dans les problèmes d’ingénierie, il faut souvent rechercher les solutions d’une équation de la
forme f(x)=0, où f est une fonction à valeurs réelles. Le but est donc de trouver une solution
approchée en minimisant le temps d’exécution, mais en obtenant quand même une bonne
approximation. Trois méthodes classiques de recherche de zéro sont expliquées dans ce
cours :
 La recherche par dichotomie
 La méthode de Newton
 La méthode de Lagrange

On considérera par la suite une fonction f continue sur un intervalle [a,b] à valeurs réelles,
telle que f(a).f(b)<0. D’après le théorème des valeurs intermédiaires, la fonction f s’annule
au moins une fois sur l’intervalle [a,b].

1
Simulation Numérique

I.1. Méthode de dichotomie

Soit f est une fonction continue et admet au moins une solution sur un intervalle [a, b].

Problème :

Rechercher α  [a, b] tel que f(α) = 0

Algorithme :

Initialisation : on prend pour x0 le milieu de [a, b].


La racine se trouve alors dans l’un des deux intervalles] a, x0 [ ou ] x0, b [ ou bien elle est
égale à x0.
• si f(a).f(x0) < 0, alors α ∈] a, x0[. On pose a1 = a, b1 = x0.
• si f(a).f(x0) = 0, alors α = x0.
• si f(a).f(x0) > 0, alors α ∈]x0, b[. On pose a1 = x0, b1 = b.

On prend alors pour x1 le milieu de [a1, b1].

On construit ainsi une suite :


x0 = (a+b)/2, x1 = (a1 + b1)/2, . . ., xn = (an + bn)/2
telle que :
|α − xn| ≤ (b − a)/2n+1.

Etant donné une précision ε, cette méthode permet d’approcher α en un nombre


prévisible d’itérations.

Exemple : On cherche une solution de f : x  x2 -2 dans l’intervalle [1, 2]

2
Simulation Numérique

 f(1)= -1 < 0 et f(2)= 2 >0, donc l’équation f(x)=0 possède une solution dans [1 ,2].
La valeur médiane de cet intervalle est 1.5.
 f(1.5)= 0.25 >0 et f(1) = -1 <0, donc l’équation f(x)=0 possède une solution dans [1.25,
1.5].
 ...
 f(1.41430664062) ≃ 0.000263273715973 > 0 et f(1.4140625) < 0, donc l’équation f(x)
= 0 possède une solution dans [1.4140625, 1.41430664062].

On peut représenter ceci, en notant [an, bn] le segment [c, d] après la n-ième étape.

On arrête le processus lorsque d − c a atteint une valeur correspondant à la précision


𝑑−𝑐
demandée  et on renvoie comme résultat
2

Travail à faire :

Ecrire la fonction dicho(f,a,b,epsilon) qui recherche et renvoie un zéro par dichotomie.


f : une fonction
a et b : des réels qui délimitent l’intervalle [a,b]
epsilon : un réel indiquant la précision demandées

I.2. Méthode de Lagrange

Dans la méthode de Lagrange, on approxime le graphe d’une fonction f entre les points
d’abscisses a et b par sa corde, c’est-à-dire par le segment de droite reliant les points de
coordonnées (a, f(a)) et (b, f(b)). L’abscisse x0 du point d’intersection entre la corde et l’axe
des x donne une approximation d’un zéro de la fonction.

La corde a pour fonction :

La valeur de x0 est :

Il suffit ensuite de réitérer le procédé, en considérant l’intervalle [x0, b] si f(x0) est du même
signe que f(a), et l’intervalle [a,x0] si non. La suite ainsi construite converge vers un zéro de f
dans l’intervalle [a,b].

3
Simulation Numérique

Cette méthode est aussi appelée méthode des sécantes et est illustrée par la figure suivante :

Travail à faire :

Ecrire la fonction lagrange(f,a,b,epsilon) qui recherche et renvoie un zéro par la méthode de


Lagrange.
f : une fonction
a et b : des réels qui délimitent l’intervalle [a,b]
epsilon : un réel indiquant la précision demandées

I.3. Méthode de Newton

On l’appelle aussi méthode de la tangente, la méthode de Newton est une méthode de


résolution de l'équation f (x) = 0. Si x0 est proche de la racine r on peut faire un
développement de Taylor à l'ordre 1 de la fonction f en x0 :

f (x) = f (x0) + (x - x0)f'(x0) + O((x - x0)2)

Pour trouver une valeur approchée de r, on ne garde que la partie linéaire du


développement, on résout :
f (r) = 0  f (x0) + (r - x0)f'(x0)
donc (si f'(x0) ≠ 0) :

𝑓(x0)
r  x0 - 𝑓′(x0)

Graphiquement, cela revient à tracer la tangente à la courbe représentative de f et à


chercher où elle coupe l'axe des x. On considère donc la suite récurrente définie par une
valeur u0 proche de la racine et par la relation :

𝑓(𝑈𝑛)
Un+1 = Un - 𝑓′(𝑈𝑛)

4
Simulation Numérique

Il y a deux théorèmes importants, l'un d'eux prouve que si u0 est "assez proche'' de r alors la
suite un converge vers r, malheureusement il est difficile de savoir en pratique si on est
``assez proche'' de u0 pour que ce théorème s'applique. Le second théorème donne un
critère pratique facile à vérifier qui assure la convergence, il utilise les propriétés de
convexité de la fonction.

Théorème : Soit f une fonction de classe C2 (2 fois continument dérivable) sur un intervalle
fermé I. Soit r une racine simple de f située à l'intérieur de I (telle que f (r) = 0 et f '(r) ≠ 0).
Alors il existe > 0 tel que la suite définie par :
𝑓(𝑈𝑛)
un+1 = un - 𝑓′(𝑈𝑛), | un - r| ≤
converge vers r.

Définition : (convexité)
Une fonction f continument dérivable sur un intervalle I de est dite convexe si son graphe
est au-dessus de la tangente en tout point de I.

Il existe un critère simple permettant de savoir si une fonction de classe C2 est convexe :
Théorème : Si f est C2 et f'' ≥ 0 sur I alors f est convexe.

Travail à faire :

Ecrire la fonction newton(f, fp, x0,epsilon) qui recherche et renvoie un zéro par la méthode
de Newton.
f : une fonction
fp : la dérivé de la fonction f
x0 : le point de départ
epsilon : un réel indiquant la précision demandées

5
Simulation Numérique

II -INTEGRATION NUMERIQUE

Soit f une fonction à valeurs réelles, continue par morceaux sur un intervalle [a, b].
𝑏
On souhaite calculer une valeur approchée de l’intégrale ∫𝑎 𝑓(𝑡)𝑑𝑡

II.1. Méthode des rectangles

Travail à faire :
𝑏
Ecrire la fonction rectangles(f, a, b, n) qui calcule et renvoie ∫𝑎 𝑓(𝑡)𝑑𝑡 par la subdivision de
l’intervalle [a,b] en n intervalles.
f : une fonction
a et b : Les bornes de l’intervalle
n : le nombre de subdivision

6
Simulation Numérique

II.2. Méthode des trapèzes

Travail à faire :
𝑏
Ecrire la fonction trapezes(f, a, b, n) qui calcule et renvoie ∫𝑎 𝑓(𝑡)𝑑𝑡 par la méthode des
trapèzes.
f : une fonction
a et b : Les bornes de l’intervalle
n : le nombre de subdivision

7
Simulation Numérique

II.3. Méthode de Simpson

Travail à faire :
𝑏
Ecrire la fonction simpson(f, a, b, n) qui calcule et renvoie ∫𝑎 𝑓(𝑡)𝑑𝑡 la méthode de Simpson.
f : une fonction
a et b : Les bornes de l’intervalle
n : le nombre de subdivision

8
Simulation Numérique

III - PIVOT DE GAUSS ET RESOLUTION DES SYSTEMES

III.1. Définition

La méthode du « pivot de Gauss », ou « élimination de Gauss-Jordan », est un


algorithme efficace permettant de résoudre — lorsque c'est possible — un système
d'équations linéaires.

L’algorithme du pivot de Gauss sait résoudre des systèmes à n équations et p


inconnues. Pour simplifier, on se placera pour l’essentiel de l’exposé dans le cas où
n=p avec l’hypothèse supplémentaire de l’existence d’une et une seule solution. On
parle de système de Cramer.

Numériquement, l'implémentation sur ordinateur de cet algorithme donne


généralement de mauvais résultats (même s'il est rapide) : les erreurs d'arrondi se
cumulent et faussent généralement la solution. Néanmoins, il n'utilise que des
additions et multiplications, ce qui en fait le meilleur du point de vue du rapport
simplicité/efficacité disponible en calcul manuel.

1. Principe de la méthode

L'objectif du pivot de Gauss est de ramener le système d'équations linéaires à un


système étagé (dont on sait qu'il est soluble), c'est-à-dire de la forme « triangulaire »
suivante :

Il suffit en effet d'en déduire z avec la dernière ligne, de le remplacer par sa valeur
dans la ligne au-dessus, d'en déduire y, de le remplacer par sa valeur dans la ligne
au-dessus, d'en déduire x... et c'est fini ! La résolution est
complètement machinale une fois que le système est mis sous cette forme.

Voyons maintenant comment s'y prendre :


Pour décrire l'algorithme, nous allons prendre un exemple, plutôt qu'une définition
formelle :

9
Simulation Numérique

 Étape 1 : choix du pivot : on choisit un « pivot », c'est-à-dire l'un des monômes


du système. Le premier pivot est le premier monôme de la première ligne, le
second est le second monôme de la seconde ligne, etc. On commence donc
avec « x » pour pivot.

 Étape 2 : élimination : on soustrait aux lignes suivantes la ligne du pivot un


nombre suffisant de fois pour que tous les termes en « x » (1er pivot), en « y »
(2e pivot) etc. s'annulent. Dans notre exemple, la première étape :

Il faut soustraire 3 fois la première ligne (ligne du pivot) à la seconde, et 2 fois la


première ligne à la troisième. Cela donne :

Retour à l'étape 1 avec le pivot suivant.

 Fin de l'algorithme : l'algorithme se termine :


 lorsqu'il a atteint le n-ième coefficient de la n-ième ligne (le système admet
une unique solution), ou
 lorsqu'il atteint un pivot nul. (Le système n'admet pas une unique solution.)

Dans les cas moins favorables, on peut rencontrer en cours de résolution d’un
système ces trois problèmes :

 Le pivot n’est pas là où on veut : si, à la première étape, le coefficient en x de


la première ligne est nul, on peut échanger la première équation avec la
deuxième ou la troisième. De même, si à la seconde étape, le coefficient en y
(futur pivot) est nul, on peut échanger la deuxième équation avec la troisième,
mais pas la première (se souvenir qu’on veut arriver à un système triangulaire,
il ne faut pas faire réapparaître x dans les deux dernières équations).
 Il n’y a plus de pivot en une variable : si tous les coefficients en x sont nuls
(c’est rare : cela revient à dire que x n’apparaît pas dans le système...), on
peut prendre y ou z comme première variable. De même, si après la première
étape, y n’apparaît ni dans la deuxième ni dans la troisième équation, on peut
prendre z comme deuxième inconnue.

10
Simulation Numérique

 Il n’y a plus de pivot : cela signifie que les membres de gauche des équations
restantes sont nuls. Selon que les membres de droite correspondants sont
nuls ou pas, ces équations vont disparaître ou bien rendre le système
incompatible.

Les deux dernières situations ne se produiront pas sur un système de Cramer.

2. Le formalisme matriciel

Pour simplifier l’implémentation de l’algorithme du pivot de Gauss, on va décrire


rapidement le pivot de Gauss dans le cadre matriciel.

Un système linéaire peut être vu comme une équation matricielle : le système de


l’exemple précédent se traduit par AX = Y, avec :

1 −1 2 𝑥 5
A = (3 2 1 ) , X =(𝑦) et Y = ( 10 )
2 −3 −2 𝑧 −10

Il est équivalent au système UX = Y’, avec :

1 −1 2 5
U = (0 5 −5 ) et Y’ = ( −5 )
0 0 −35 −105

Maintenant il suffit de calculer z et remonter pour calculer la valeur de y puis de x.

3. Algorithme

On commence par réfléchir aux bons outils, à savoir les fonctions et programmes
auxiliaires à l’aide desquels l’écriture du programme principal sera quasiment une
traduction en anglais de l’algorithme ! Il faudra déléguer les opérations suivantes :

 La recherche d’un pivot :

On commence par écrire une fonction « def chercher_pivot (M, i) » qui prend en
paramètre une matrice M et l’indice d’une ligne de la matrice M et renvoie un indice
de ligne j>=i tel que | Mji | soit maximal.

 Les échanges de lignes :

On écrit maintenant une fonction « def echange_lignes(M, i, j) » qui permet


d’échanger la ième et la jème ligne de la matrice M.

11
Simulation Numérique

 Les transvections

On écrit une fonction « def transvection_ligne(M, i, j, mu) » qui permet d’appliquer


une transvection de la j ème ligne à la i ème ligne avec le scalaire mu.
Lj = Li + mu*Lj

 Copie d’une matrice :

On écrit une fonction « def copie_matrice(M)» qui renvoie une copie de la matrice
M.

 Recoller les morceaux :

Grâce à tous ces fonctions, l’écriture du programme Python qui fait la résolution d’un
système linéaire devient comme prévu un simple exercice de traduction. On
commence par faire une copie de la matrice fournie en entrée puis on applique
l’algorithme décrit en dessus.

On écrit une fonction « def resolution(A0, Y0)» qui prend en paramètre la matrice
A0 et la matrice Y0 et retourne le vecteur X contenant la solution du système.

12
Simulation Numérique

IV - Résolution numériques des systèmes différentielles (Méthode


d’Euler)

Hormis quelques cas d’école simples, on ne sait pas déterminer d’expressions


analytiques pour les solutions d’équations différentielles. Le but de ce chapitre est de
présenter la méthode d’Euler, qui sert à en calculer des approximations.

De nombreux phénomènes physiques se modélisent à l’aide d’équations


différentielles pour lesquelles on ne dispose pas de solutions analytiques : un
pendule amorti nous amène à étudier l’équation , les
problèmes de cinétique chimique conduisent à des systèmes différentiels non
linéaires décrivant les évolutions de différents réactifs au cours du temps, et les
phénomènes qu’on observe en mécanique des fluides sont en partie décrits par les
équations aux dérivées partielles non linéaires de type Navier-Stokes.
En mathématiques, ces équations ont leur intérêt propre et étudier le comportement
qualitatif de solutions est nettement plus aisé si on peut visualiser une approximation
raisonnable de celles-ci.

1. Principe de la méthode d’Euler

Le théorème de Cauchy-Lipschitz assure que sous des conditions raisonnables, il


existe une unique application y de classe C1 sur [a, b] dont la valeur est imposée en
a et qui vérifie une équation de la forme y’(t) = F(t, y(t)) pour tout t de [a, b]. L’objet
des schémas numériques est d’obtenir des approximations de ces solutions dont la
théorie donne l’existence de façon non constructive. En pratique, on tente en général
d’approcher y en un certain nombre de points répartis sur l’intervalle [a, b].

Il s’agit de calculer une approximation yk des y(tk), avec tk = a + kh, où h = (b – a)/n


est un pas qu’il conviendra d’ajuster. De façon très simple, si on écrit :

alors on obtient la méthode d’Euler : les approximations sont calculées de proche en


proche via la formule suivante : yk+1 = yk + hF(tk, yk). On initialise bien entendu avec
y0 = y(a), qui sera la seule valeur « exacte » calculée.

Graphiquement, cela revient à faire des approximations successives de courbes par


des tangentes.

2. Choix du pas

Le choix du pas est une étape obligée lors de la mise en place d’une méthode
numérique de résolution.
 Si on choisit ce pas trop petit, le temps de calcul sera élevé.

13
Simulation Numérique

 Si au contraire h est trop grand, l’erreur de consistance sera trop importante.


Il s’agit donc, comme toujours en calcul scientifique, de faire un compromis entre le
temps de calcul et la qualité de l’approximation, et ce n’est pas toujours simple.

3. Implémentation de la méthode

On demande d’écrire la fonction « def euler(F, a, b, y0, h) » va prendre en entrée


une fonction F, les bornes a et b de l’intervalle d’étude, la condition initiale y0 et le
pas h. Plus précisément : avec ces données, la fonction va déterminer les
approximations de la solution de y’(t) = F(t, y(t)) avec la condition initiale y(a) = y0, en
rendant un tableau de temps et un tableau de valeurs approchées par la méthode
d’Euler. Les temps sont les a + kh majorés par b. Ces tableaux sont construits à
l’aide de listes auxquelles on adjoint les nouveaux termes calculés.

14
Simulation Numérique

V - Présentation des bibliothèques

1. Notion des modules

Un module est un fichier ayant pour extension .py contenant des définitions de
classes, constantes et fonctions. Tout programmeur python peut réaliser un module.
Exemple de modules : math, random, time, numpy, scypi, mathplotlib ...

2. Importation des modules dans un programme

Pour importer un module dans un programme il y a deux méthodes :

Méthode 1 : Permet d’importer tous les éléments du module

import nom_module

Exemple :

import math
a = math.sqrt(2) # Pour calculer la racine carrée de 2

Méthode 2 : Permet d’importer une fonction du module

from nom_module import fonction


# pour plusieurs fonctions
from nom_module import fonction1, fonction2
Exemple :

from math import sqrt


a = sqrt(2)

3. Modules de simulation numérique

Dans cette troisième partie du cours on va étudier trois nouveaux modules dans cette
partie :
numpy , scipy , matplotlib

NumPy :

Pour le calcul scientifique, on est souvent amené à manipuler de grands ensembles


de nombres. Les listes Python sont des conteneurs hétérogènes ne sont pas adaptées
pour cela car :
 les opérations arithmétiques (addition, multiplication) ne sont pas réalisable
facilement (car le + pour les listes est une concaténation)

15
Simulation Numérique

 une liste Python ne stocke pas son contenu de façon efficace (i.e. contiguë) en
mémoire.
Pour manipuler des tableaux ou les matrices de nombres, il y a le module numpy.

SciPy :

Le module scipy regroupe un certain nombre de sous modules qui sont autant de
boîtes à outils de routines courantes de calcul numérique, regroupées par fonction :
fonctions spéciales, interpolation, intégration, optimisation, traitement d’images.

MatPlotLib :

Matplotlib est une bibliothèque en Python très utilisée pour tracer des graphiques en
deux et trois dimensions.
En combinaison avec les bibliothèques scientifiques NumPy ou SciPy , nous obtenons
un outil de prototypage très pratique.

4. Utilisation du module numpy

Fonction Description
array(L) crée un tableau à partir d'une liste L.
arange(a,b,k) crée un vecteur dont les coefficients
sont les a+k. entre a (inclu) et b
(exclu).
linspace(a,b,n) crée un vecteur de n valeurs
régulièrement espacées entre a et b
(inclus).

zeros(p) crée un tableau de taille p rempli de


zéros.

zeros((p,q)) crée une matrice de taille (p,q) rempli


de zéros

ones(p) crée un tableau de taille p rempli de


uns

ones((p,q)) crée une matrice de taille (p,q) rempli


de uns

shape(M) pour obtenir la taille d'un tableau (=


type d'une matrice)

reshape(M, (dimensions)) pour redimensionner un tableau

16
Simulation Numérique

dot(M, N) pour effectuer un produit matriciel de 2


matrices

vdot(v1, v2) pour effectuer un produit scalaire de 2


"vecteurs"

transpose(M) pour transposer une matrice

rank(M) rang d'une matrice

mean(T) valeur moyenne d'un tableau

sum(T) La somme des valeurs d’un tableau


linalg.inv(M) inversion d'une matrice

linalg.det(M) déterminant d'une matrice

linalg.solve(A,b) résolution du système linéaire A:X = b

roots([a,b,c,d]) détermine les racines d’un polynôme


donné par la liste de ses coefficients
aX3 +bX2+cX+d=0.
Elle fournit même les racines
complexes, le nombre imaginaire i
étant noté j.

5. Utilisation du module scipy

optimize.bisect(f,a,b) Cherche un zéro d’une fonction dans


un intervalle [a,b] par la méthode de
dochotomie.

optimize.newton(f,x0 ,fp=None) La méthode de Newton est


programmée dans
scipy.optimize.newton. Il est à noter
que si on ne donne pas la dérivée,
c’est en fait la méthode de la sécante
qui est appliquée. Dans le cas opposé
où on lui fournit f’ et f’’, c’est la
méthode de Halley qui sera en fait
mise en oeuvre.

integrate.quad(f, a, b) Intégrer une fonction f sur un intervalle


[a,b]

17
Simulation Numérique

integrate.odeint(f,y0, t ) Résolution numérique des équations


différentielles.
t : liste de valeur de t pour lesquelles
on calcule y(t) y’(t)= f(t, y(t))

y(0)=y0

6. Quelques fonctions de matplotlib

Pour le simple tracé de courbes nous n'utiliserons que le sous-module pyplot,


importé, avec alias, à l'aide de l’instruction:
import matplotlib.pyplot as pp

Pour plus de documentation : http://www.matplotlib.org.

Les fonctions essentielles de pyplot sont :


1. plot() pour le tracé de points, de courbes, et
2. show() pour afficher le graphique créé.

Utiliser plot() avec :


1. en 1er argument la liste des abscisses,
2. en 2eme argument la liste des ordonnées,
3. en 3eme argument (optionnel) le motif des points :
 '.' pour un petit point,
 'o' pour un gros point,
 '+' pour une croix,
 '*' pour une étoile,
 '-' points reliés par des segments
 '--' points reliés par des segments en pointillés
 '-o' gros points reliés par des segments (on peut combiner les
options)
 'b', 'r', 'g', 'y' pour de la couleur (bleu, rouge, vert, jaune, etc...)
 consulter
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot
pour plus d’options.

Exemples :

 Exemple pour le tracé d’un nuage de points :

>>> import matplotlib.pyplot as pp


>>> abs = [0, 1, 2, 3, 4, 5]
>>> ord = [0, 1, 1.5, 1, 2.5, 2]
>>> pp.plot(abs, ord, 'o')
[<matplotlib.lines.Line2D object at 0x10c6610d0>]
>>> pp.show()

18
Simulation Numérique

produit un graphique (au format .png) :

 Exemple pour le tracé d’une ligne brisée :

import matplotlib.pyplot as pp
abs = [n/2. for n in range(10)]
ord = [n % 2 for n in range(10)]
pp.plot(abs,ord,'-b')
pp.show()

19
Simulation Numérique

 Exemple pour le tracé de courbes représentatives des fonctions réelles:

import matplotlib.pyplot as pp
import numpy as np # pour linspace() et les fonctions mathématiques
X = np.linspace(0, 2*np.pi, 256) # X = 256 pts régulièrement espacées
Ycos = np.cos(X) # image directe de X par cos
Ysin = np.sin(X) # image directe de X par sin
pp.plot(X,Ycos,'b') # trace de la courbe de cos en bleu
pp.plot(X,Ysin,'r') # trace de la courbe de sin en rouge
pp.show()

 On améliore le tracé en remplissant quelques options :

import matplotlib.pyplot as pp
import numpy as np # pour linspace() et les fonctions mathématiques
pp.plot(X, Ycos, 'b', X, Ysin, 'r') # Tracée simultanée des 2 courbes
pp.grid(True) # Affiche la grille
pp.legend(('cos','sin'), 'upper right', shadow = True) # Légende
pp.xlabel('axe des x') # Label de l'axe des abscisses
pp.ylabel('axe des y') # Label de l'axe des ordonnées
pp.title('Fonctions cosinus et sinus') # Titre
pp.show()

20
Simulation Numérique

21

Vous aimerez peut-être aussi