0% ont trouvé ce document utile (0 vote)
7 vues75 pages

Lecture 04 A

Transféré par

sia538848
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues75 pages

Lecture 04 A

Transféré par

sia538848
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd

OUTILS DE

SIMULATION EN
PHYSIQUE
Python, modules pour le calcul
scientifique
Python, modules pour le calcul
scientifique
LA DISTRIBUTION ANACONDA DE PYTHON :
• Toutau long de « lecture-04 », nous utiliserons l’IDE Spyder de la
distribution Anaconda 4.3.1 (compatible Python 3.6.0) ou plus récente.
• Spyder : Scientific python development environment, est un environnement
intégré de développement (IDE) pour le calcul scientifique en Python.
• Spyder est intégré à plusieurs distributions (anaconda, Python(x,y),
WinPython, …) de Python supportant les modules les plus connus pour le
calcul scientifique (numpy, scipy, matplotlib, sympy, …)
• Spyder est fourni avec un éditeur de code source, une console
d’execution, un explorateur de variables pour voir quelles variables ont
été définies pendant l’exécution, et plusieurs autres facilités pour aider à
developper efficacement des programmes scientifiques.
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
INTRODUCTION À NUMPY :
• Labibliothèque NumPy ([Link] permet
d’effectuer des calculs numériques avec Python.

• NumPy introduit une gestion facilitée des tableaux de


nombres.

• Pour
utiliser les fonctions de NumPy, il faut d’abord
importer le package numpy (par exemple comme suit) :
>>> import numpy as np
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
INTRODUCTION À NUMPY : variables prédéfinies

• Variable pi : NumPy définit par défaut la valeur de pi.

>>> print(pi) # avant importation du package numpy. Des erreurs


sont signalées
Traceback (most recent call last): File "<stdin>", line 1, in
<module> NameError: name 'pi' is not defined
>>> import numpy as np # importation de numpy
>>> print([Link]) # après importation de numpy
3.141592653589793
>>> Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
INTRODUCTION À NUMPY : Tableaux - [Link]()
• Création :
Les tableaux (en anglais, array) peuvent être créés avec [Link](). On
utilise des crochets pour délimiter les listes d’éléments dans les tableaux.

>>> a = [Link]([[1,2,3],[4,5,6]])

• Affichage :
>>> a
array([[1, 2, 3],
[4, 5, 6]])

>>> type(a)
<class '[Link]'> # On voit que l’on a obtenu un objet de type [Link]
>>>

Dr Pasteur Poda, MC, --- 2023-2024


Python, modules pour le calcul
scientifique
INTRODUCTION À NUMPY : Tableaux - [Link]()
• Accès aux éléments d’un tableau

>>> a[0,1] # élément du tableau à l’intersection de la 1re ligne et de la 2è


colonne
2
>>> a[1,2] # élément du tableau positioné 2è ligne et 3è colonne
6
>>> a[1,1] # élément du tableau à 2è ligne et 2è colonne
5
>>> a[1,0]
4
>>> a[0,0]
1
>>>
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
INTRODUCTION À NUMPY : fonction [Link]()
>>> m = [Link](3,15,2) # arguments entiers
>>> m
array([ 3, 5, 7, 9, 11, 13])
>>> type(m)
<class '[Link]'> # [Link]() retourne un objet de type [Link].
>>>

# Avec des arguments non entiers


>>> [Link](0, 11*[Link], [Link])
array([ 0. , 3.14159265, 6.28318531, ..., 25.13274123,
28.27433388, 31.41592654])
>>>
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
INTRODUCTION À NUMPY : fonction
[Link]()
Attention : difference avec range()
>>> n = range(3, 15, 2)
>>> n
range(3, 15, 2) # un objet de type range
>>> type(n)
<class 'range'> # plutôt de type range
>>>
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
INTRODUCTION À NUMPY : fonction [Link]()
Remarque: Syntaxes de la function range()
La syntaxe générale est range(valeur_initiale, borne_de_fin, pas)
où le pas pas peut être positif ou négatif, la valeur de la borne de fin (maximale ou minimale)
borne_de_fin n’est jamais atteinte.

>>> list(range(0, 10, 3)) # valeur_initiale = 0, borne_de_fin = 10 et pas = 3


[0, 3, 6, 9]
>>> list(range(-10,-100,-30)) # valeur_initiale = -10, borne_de_fin = -100 et pas = -30
[-10, -40, -70]
>>> list(range(5,10)) # valeur_initiale = 5, borne_de_fin = 10 et pas = pas par défaut = 1
[5, 6, 7, 8, 9]
>>> list(range(10)) # valeur_initiale = valeur par défaut = 0, borne_de_fin = 10 et pas par défaut
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Exercice : Créer une liste contenant les entiers pairs allant de 10 à 20
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
INTRODUCTION À NUMPY : fonction [Link]()
Attention : difference avec les listes
>>> l = [1, 2, 3] # définition d’une liste à trois éléments
>>> type(l )
<class 'list'> # de type liste

# Combinaison list et range() pour donner une liste


>>> la = list(range(3,15,2))
>>> la
[3, 5, 7, 9, 11, 13]
>>> type(la)
<class 'list'>
>>>
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
INTRODUCTION À NUMPY : fonction
[Link]()
• [Link]() permet d’obtenir un tableau 1D allant
d’une valeur de départ à une valeur de fin avec un
nombre donné d’éléments.

>>> [Link](3, 9, 10) # valeur depart = 3, valeur de


fin = 9 et # nombre d’éléments = 10
array([ 3. , 3.66666667, 4.33333333, 5. , 5.66666667,
6.33333333, 7. , 7.66666667, 8.33333333, 9. ])
>>>
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
INTRODUCTION À NUMPY : Action d’une fonction
mathématique sur un tableau
• NumPydispose d’un grand nombre de fonctions mathématiques qui
peuvent être appliquées directement à un tableau (vecteur).
• Dans ce cas, la fonction est appliquée à chacun des éléments du tableau.

>>> x = [Link](-[Link]/2,[Link]/2,3)
>>> x
array([-1.57079633, 0. , 1.57079633]) # x est un tableau 1D (un vecteur)
>>> y = [Link](x)
>>> y
array([-1., 0., 1.])
>>>
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
FONCTIONS MATHÉMATIQUES AVEC NUMPY : fonctions
trigonométriques
On importe la package numpy : >>> import numpy

Signification
Appel en Python
mathématique
[Link](x) Calcul le sinus du nombre x
[Link](x) Calcul le cosinus du nombre x
[Link](x) Calcul la tangente de x
[Link](x) Calcul l’arcsinus de x
[Link](x) Calcul l’arccosinus de x
[Link](x) Calcul l’arctangente de x
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
FONCTIONS MATHÉMATIQUES AVEC NUMPY : fonctions hyperboliques
On importe la package numpy : >>> import numpy

Appel en
Signification mathématique
Python
Calcul le sinus hyperbolique du
[Link](x)
nombre x
Calcul le cosinus hyperbolique du
[Link](x)
nombre x
[Link](x) Calcul la tangente hyperbolique de x
[Link](x) Calcul l’arcsinus hyperbolique de x
Dr Pasteur Poda, MC, --- 2023-2024
[Link](x) Calcul l’arccosinus hyperbolique de x
Python, modules pour le calcul
scientifique
FONCTIONS MATHÉMATIQUES AVEC NUMPY : fonctions diverses
On importe la package numpy : >>> import numpy

Appel en
Signification mathématique
Python
[Link](x,n) Calcule x à la puissance n
[Link](x) Calcule la racine carrée du nombre x
[Link](x) Calcule l’exponentiel de x
[Link](x) Calcule le logarithme népérien de x
numpy.log10(x) Calcule le logarithme à base 10 de x
[Link](x) Calcule la valeur absolue de x
[Link](x) Calcule leMC,signe
Dr Pasteur Poda, de x
--- 2023-2024
Python, modules pour le calcul
scientifique
FONCTIONS MATHÉMATIQUES AVEC NUMPY : fonctions pour nombres
complexes
On importe la package numpy : >>> import numpy
Appel en
Signification mathématique
Python
Retourne la partie réelle du nombre
[Link](x)
complexe x
Retourne la partie imaginaire du nombre
[Link](x)
complexe x
[Link](x) Calcule le module du nombre complexe x
Retourne l’argument en radians du
[Link](x)
nombre complexe
Dr Pasteur x
Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
FONCTIONS MATHÉMATIQUES AVEC NUMPY : fonctions
pour nombres complexes
# Programme illustratif
import numpy as np
x = [Link]([2 + 3j, 1j, 1])
print("Vecteur à 3 composantes x : ", x)
print("Partie réelle de chaque composante de x : ", [Link](x))
print("Partie imaginaire de chaque composante de x : ", [Link](x))
print("Module de chaque composante de x : ", [Link](x))
print("Argument de chaque composante de x : ", [Link](x))
print("Conjugué de chaque composante de x : ", [Link](x))
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
FONCTIONS MATHÉMATIQUES AVEC NUMPY : fonctions
pour nombres complexes
# Résultat de l’exécution
Vecteur à 3 composantes x : [ 2.+3.j 0.+1.j 1.+0.j]
Partie réelle de chaque composante de x : [ 2. 0. 1.]
Partie imaginaire de chaque composante de x : [ 3. 1. 0.]
Module de chaque composante de x : [ 3.60555128 1. 1. ]
Argument de chaque composante de x : [ 0.98279372 1.57079633 0. ]
Conjugué de chaque composante de x : [ 2.-3.j 0.-1.j 1.-0.j]
>>>

Dr Pasteur Poda, MC, --- 2023-2024


Python, modules pour le calcul
scientifique
FONCTIONS MATHÉMATIQUES AVEC NUMPY : arrondis
On importe le package numpy : >>> import numpy
• [Link](x,n) : arrondit à n décimales
• [Link](x) : retourne la partie entière de x (i.e., x est tronqué)
>>> y = [Link]([3.73637, 5.4374345])
>>> z = [Link](y,2) # arrondi à 2 décimales
>>> z
array([ 3.74, 5.44]) # résultat de l’arrondi à 2 décimales
>>> w = [Link](y,0) # arrondi à 0 décimale = arrondi à l’entier le plus
proche
>>> w
array([ 4., 5.]) # résultat de l’arrondi à l’entier le plus proche
>>>

Dr Pasteur Poda, MC, --- 2023-2024


Python, modules pour le calcul
scientifique
FONCTIONS MATHÉMATIQUES AVEC NUMPY :
nombres aléatoires
• La
fonction [Link]() permet d’obtenir des nombres
compris entre 0 et 1 par tirage aléatoire avec une loi uniforme.

• Remarque : Les nombres aléatoires sont générés par un algorithme et ils


ne sont donc pas vraiment “aléatoires” mais pseudo-aléatoires. Cela peut
poser problème quand on a besoin de produire un grand nombre de
valeurs ou pour de la cryptographie car les tirages ne sont pas vraiment
indépendants, il faut alors étudier plus en détail les algorithmes utilisés.

• Lafonction [Link]() peut être utilisée avec des


arguments pour obtenir des tableaux.
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
FONCTIONS MATHÉMATIQUES AVEC NUMPY : nombres
aléatoires
On importe la package numpy : >>> import numpy as np

>>> [Link]()
0.781840752930086

>>> [Link](3)
array([ 0.07872937, 0.7956434 , 0.69671747]) # un vecteur à 3 composantes

>>> [Link]((2,3))
array([[ 0.66418244, 0.68716176, 0.38423434],
[ 0.29149969, 0.38966644, 0.5309953 ]]) # un tableau (matrice) 2x3
>>>
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES :
• Pour
tracer des courbes, nous utilisons les bibliothèques NumPy et
matplotlib.
• Deuxsyntaxes : la syntaxe “PyLab” (proche de celle de Matlab) et la
syntaxe “standard” (recommandée dans les versions récentes
de matplotlib).
• Syntaxe “PyLab” : from pylab import *
Il est alors possible d’accéder directement aux fonctions de NumPy et
matplotlib.
• Syntaxe“standard”: importer le package numpy et le module
pyplot de matplotlib.
On doit alors préciser les bibliothèques lors des appels des fonctions.
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Création d’une courbe
Syntaxe pylab Syntaxe standard
(exemple 1) import numpy as np
import [Link] as plt
from pylab import *
x = array([1, 3, 4, 6])
x = array([1, 3, 4, 6])
y = array([2, 3, 5, 1])
y = array([2, 3, 5, 1])
[Link](x,y)
plot(x,y)

show() [Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Création d’une courbe
Syntaxe pylab Syntaxe standard
(exemple 2) import numpy as np
import [Link] as plt
from pylab import *

x = linspace(0,2*[Link],30) x = [Link](0,2*[Link],30)
y = cos(x) y = [Link](x)
[Link](x,y)
plot(x,y)

show() [Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Définition du domaine des axes –
xlim() et ylim()

Il est possible de fixer indépendamment les domaines


des abscisses et des ordonnées en utilisant les
fonctions xlim() et ylim().

•xlim(xmin, xmax)

•ylim(ymin, ymax)
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Définition du domaine des axes
– xlim() et ylim()
Syntaxe pylab (exemple Syntaxe standard
1) import numpy as np
from pylab import * import [Link] as plt

x = linspace(0, 2*pi, 30) x = [Link](0, 2*[Link], 30)


y = cos(x) y = [Link](x)
plot(x, y) [Link](x, y)
[Link](-1, 5)
xlim(-1, 5)

show() [Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Définition du domaine des axes
– xlim() et ylim()
Syntaxe pylab (exemple Syntaxe standard
2) import numpy as np
import [Link] as plt
from pylab import *

x = linspace(0, 2*pi, 30) x = [Link](0, 2*[Link], 30)


y = cos(x) y = [Link](x)
plot(x, y) [Link](x, y)
ylim(-2, 2) [Link](-2, 2)

show() [Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Définition du domaine des axes
– xlim() et ylim()
Syntaxe pylab (exemple Syntaxe standard
3) import numpy as np
import [Link] as plt
from pylab import *

x = linspace(0, 2*pi, 30) x = [Link](0, 2*[Link], 30)


y = [Link](x)
y = cos(x)
[Link](x, y)
plot(x, y)
[Link](0, 2*[Link])
xlim(0, 2*pi) [Link](-2, 2)
ylim(-2, 2)

show() [Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Ajout d’un titre - title()

Syntaxe pylab Syntaxe standard


import numpy as np
from pylab import *
import [Link] as plt
x = linspace(0, 2*pi, 30)
y = cos(x) x = [Link](0, 2*[Link], 30)
plot(x, y) y = [Link](x)
title("Fonction cosinus") [Link](x, y)
[Link]("Fonction cosinus")
show()
[Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Ajout d’une légende - legend()

Syntaxe pylab Syntaxe standard


import numpy as np
from pylab import *
import [Link] as plt
x = linspace(0, 2*pi, 30)
y = cos(x) x = [Link](0, 2*[Link], 30)
plot(x, y, label="cos(x)") y = [Link](x)
legend() [Link](x, y, label="cos(x)")
[Link]()
show()
[Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Labels sur les axes - xlabel() et
ylabel()
Syntaxe pylab Syntaxe standard
import numpy as np
from pylab import * import [Link] as plt
x = [Link](0, 2*[Link], 30)
x = linspace(0, 2*pi, 30)
y = cos(x) y = [Link](x)
plot(x, y) [Link](x, y)
xlabel("abscisses") [Link]("abscisses")
ylabel("ordonnees") [Link]("ordonnees")

show() [Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Affichage de plusieurs courbes
Syntaxe pylab Syntaxe standard
from pylab import * import numpy as np
import [Link] as plt
x = linspace(0, 2*pi, 30)
y1 = cos(x) x = [Link](0, 2*[Link], 30)
y2 = sin(x) y1 = [Link](x)
plot(x, y1) y2 = [Link](x)
plot(x, y2) [Link](x, y1)
[Link](x, y2)
show()
[Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Affichage de plusieurs courbes
Syntaxe pylab Syntaxe standard

from pylab import * import numpy as np


import [Link] as plt
x = linspace(0, 2*pi, 30)
x = [Link](0, 2*[Link], 30)
y1 = cos(x) y1 = [Link](x)
y2 = sin(x) y2 = [Link](x)
plot(x, y1, label="cos(x)") [Link](x, y1, label="cos(x)")
plot(x, y2, label="sin(x)") [Link](x, y2, label="sin(x)")
legend() [Link]()

show() [Link]()

Dr Pasteur Poda, MC, --- 2023-2024


Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : formats des courbes
Syntaxe pylab Syntaxe standard
import numpy as np
from pylab import * import [Link] as plt

x = linspace(0, 2*pi, 30) x = [Link](0, 2*[Link], 30)


y1 = cos(x) y1 = [Link](x)
y2 = sin(x) y2 = [Link](x)
plot(x, y1, "r--", label="cos(x)") [Link](x, y1, "r--", label="cos(x)")
plot(x, y2, "b:o", label="sin(x)") [Link](x, y2, "b:o", label="sin(x)")
legend()
[Link]()
show() [Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
• TRACÉ DE COURBES : styles des lignes
Chaîne Effet
_ Ligne continue (solid)

-- Tirets (dashed)

: Ligne en pointillés

-. Tirets points

Dr Pasteur Poda, MC, --- 2023-2024


Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : styles des lignes
Syntaxe pylab Syntaxe standard
import numpy as np
from pylab import * import [Link] as plt

x = linspace(0, 2*pi, 20) x = [Link](0, 2*[Link], 20)


y = sin(x) y = [Link](x)
plot(x, y, "o-", label="ligne -") [Link](x, y, "o-", label="ligne -")
plot(x, y-0.5, "o--", label="ligne --") [Link](x, y-0.5, "o--", label="ligne --")
plot(x, y-1, "o:", label="ligne :") [Link](x, y-1, "o:", label="ligne :")
plot(x, y-1.5, "o-.", label="ligne -.") [Link](x, y-1.5, "o-.", label="ligne -.")
plot(x, y-2, "o", label="pas de ligne") [Link](x, y-2, "o", label="pas de ligne")
legend() [Link]()

[Link]()
show()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Symbole (marker)
Chaine Effet

. point marker
, pixel marker
O circle marker
v triangle_down marker
^ triangle_up marker
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Symbole (marker)
Chaine Effet
< triangle_left marker
> triangle_right marker
1 tri_down marker
2 tri_up marker
3 tri_left marker
4 tri_right marker
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Symbole (marker)
Chaine Effet
s square marker
p pentagon marker
* star marker
h hexagon1 marker
H hexagon2 marker
+ plus marker
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : Symbole (marker)
Chaine Effet
x x x marker
D D diamond marker
d d thin_diamond marker
| vline marker
_ hline marker
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique

TRACÉ DE COURBES : couleur


Chaine Effet
b blue (bleu)
g Green (vert)
r Red (rouge)
c Cyan
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : couleur
Chaine Effet
m magenta
y Yellow (jaune)
k Black ( noir)
w White (blanc)
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : largeur de ligne
Syntaxe pylab Syntaxe standard

from pylab import * import numpy as np


import [Link] as plt
x = linspace(0, 2*pi, 30)
x = [Link](0, 2*[Link], 30)
y1 = cos(x)
y1 = [Link](x)
y2 = sin(x)
plot(x, y1, label="cos(x)") y2 = [Link](x)
plot(x, y2, label="sin(x)", [Link](x, y1, label="cos(x)")
linewidth=4) [Link](x, y2, label="sin(x)", linewidth=4)
legend() [Link]()

show() [Link]()

Dr Pasteur Poda, MC, --- 2023-2024


Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : tracé de formes
Syntaxe pylab Syntaxe standard

import numpy as np
from pylab import *
import [Link] as plt
x = array([0, 1, 1, 0, 0]) x = [Link]([0, 1, 1, 0, 0])
y = array([0, 0, 1, 1, 0]) y = [Link]([0, 0, 1, 1, 0])
plot(x, y) [Link](x, y)
xlim(-1, 2) [Link](-1, 2)
ylim(-1, 2) [Link](-1, 2)
show() [Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : L’instruction axis("equal")
permet d’avoir la même échelle sur l’axe des abscisses et l’axe
des ordonnées afin de préserver la forme lors de l’affichage.
Syntaxe pylab Syntaxe standard

from pylab import * import numpy as np


import [Link] as plt
x = array([0, 1, 1, 0, 0])
y = array([0, 0, 1, 1, 0]) x = [Link]([0, 1, 1, 0, 0])
plot(x, y) y = [Link]([0, 0, 1, 1, 0])
axis("equal") [Link](x, y)
[Link]("equal")
show()
[Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : fixer domaine des abscisses - xlim()

Syntaxe pylab Syntaxe standard

from pylab import * import numpy as np


import [Link] as plt
x = array([0, 1, 1, 0, 0])
y = array([0, 0, 1, 1, 0]) x = [Link]([0, 1, 1, 0, 0])
plot(x, y) y = [Link]([0, 0, 1, 1, 0])
axis("equal") [Link](x, y)
xlim(-1, 2) [Link]("equal")
[Link](-1, 2)
show()
[Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : tracé d’un cercle (sans
axis(“equal”) )
Syntaxe pylab Syntaxe standard

from pylab import * import numpy as np


import [Link] as plt
theta = linspace(0, 2*pi, 40)
theta = [Link](0, 2*[Link], 40)
x = cos(theta)
x = [Link](theta)
y = sin(theta) y = [Link](theta)
plot(x, y) [Link](x, y)
show() [Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TRACÉ DE COURBES : tracé d’un cercle (avec
axis(“equal”) )
Syntaxe pylab Syntaxe standard

from pylab import * import numpy as np


import [Link] as plt
theta = linspace(0, 2*pi, 40)
theta = [Link](0, 2*[Link], 40)
x = cos(theta)
x = [Link](theta)
y = sin(theta)
y = [Link](theta)
plot(x, y) [Link](x, y)
axis("equal") [Link]("equal")

show() [Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TP INTÉGRATION NUMÉRIQUE : Méthode des
rectangles
• Laméthode des rectangles calcule l’intégrale
numérique en réalisant une somme de surfaces de
rectangles. Le domaine d’intégration est découpé en
intervalles et on fait comme si la fonction restait
constante sur chaque intervalle.

• Surchaque intervalle, on réalise ainsi


l’approximation suivante : où
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TP INTÉGRATION NUMÉRIQUE : Méthode des rectangles
• Programme de calcul d’intégrale avec
# integration numerique par la methode des rectangles avec alpha = a

import numpy as np
import [Link] as plt

xmin = 0
xmax = 3*[Link]/2
nbx = 20
nbi = nbx - 1 # nombre d'intervalles

x = [Link](xmin, xmax, nbx)


y = [Link](x)
[Link](x,y,"bo-")
…/…
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TP INTÉGRATION NUMÉRIQUE : Méthode des rectangles
• Programme de calcul d’intégrale avec
# integration numerique par la methode des rectangles avec alpha = a

…/…

integrale = 0
for i in range(nbi):
integrale = integrale + y[i]*(x[i+1]-x[i])
# dessin du rectangle
x_rect = [x[i], x[i], x[i+1], x[i+1], x[i]] # abscisses des sommets
y_rect = [0 , y[i], y[i] , 0 , 0 ] # ordonnees des sommets
[Link](x_rect, y_rect,"r")
print("integrale =", integrale)

[Link]()
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TP INTÉGRATION NUMÉRIQUE : Méthode des
rectangles

• Exécuter ce programme

• Faire de même pour

Dr Pasteur Poda, MC, --- 2023-2024


Python, modules pour le calcul
scientifique
TP INTÉGRATION NUMÉRIQUE : Méthode des trapèzes
• Laméthode des trapèzes procède par une sommation de
surfaces de trapèzes.

• Surchaque intervalle, on réalise alors l’approximation


suivante :

• Demême que pour la méthode des rectangles, faire un


programme en utilisant les mêmes valeurs numériques
pour la fonction. Réaliser de même la visualisation des
trapèzes.
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
• Création de tableaux avec la fonction [Link]() de NumPy.

• Utilisation des tableaux comme des vecteurs ou des matrices

• Fonctionsde NumPy ([Link](), [Link](),


[Link](), [Link](), etc.) pour faire des
calculs matriciels.

• On
suppose que le module numpy est importée : import
numpy as np

Dr Pasteur Poda, MC, --- 2023-2024


Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
Tableaux - [Link]()

• Pour créer des tableaux, on utilise [Link]().

• Tableaux monodimensionnels (1D) : on en crée en


passant une liste de nombres en argument de
[Link]().

>>> a = [Link]([4,7,9])
>>> a
array([4, 7, 9])
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
Tableaux - [Link]()

• Tableaux bidimensionnels (2D) : on en crée en


passant à [Link]() une liste de listes.

Exemple :
>>> a = [Link]([[1, 2, 3], [4, 5, 6]])
>>> a
array([[1, 2, 3],
[4, 5, 6]])

Dr Pasteur Poda, MC, --- 2023-2024


Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
Tableaux - [Link]()

• Lafonction [Link]() : renvoie le nombre d’éléments


du tableau.

>>> a = [Link]([2,5,6,8])
>>> [Link](a)
4
>>> b = [Link]([[1, 2, 3],
[4, 5, 6]])
>>> [Link](b)
6
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY : Tableaux -
[Link]()

• La fonction [Link]() : renvoie la taille du tableau.

>>> a = [Link]([2,5,6,8])
>>> [Link](a)
(4,)
>>> b = [Link]([[1, 2, 3],
[4, 5, 6]])
>>> [Link](b)
(2, 3)

• Ondistingue bien ici que a et b correspondent à des tableaux 1D et 2D,


respectivement.
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
Tableaux - [Link]()

• Produitterme à terme : se fait grâce à l’opérateur ‘*’ à condition que les


deux tableaux aient la même taille.

>>> a = [Link]([[1, 2, 3],


[4, 5, 6]])
>>> b = [Link]([[2, 1, 3],
[3, 2, 1]])
>>> a*b
array([[ 2, 2, 9],
[12, 10, 6]])
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY : Tableaux - [Link]()
• Produit matriciel - [Link]() : un tableau peut jouer le rôle d’une matrice si on lui
applique une opération de calcul matriciel. Par exemple, la fonction [Link]() permet
de réaliser le produit matriciel.

>>> a = [Link]([[1, 2, 3],


[4, 5, 6]])

>>> b = [Link]([[4],
[2],
[1]])

>>> [Link](a,b)
array([[11],
[32]])

• Le produit d’une matrice de taille n x m par une matrice m x p donne une matrice n x
p.
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
Tableaux - [Link]()

• Transposé :

>>> a = [Link]([[1, 2, 3],


[4, 5, 6]])

>>> a.T
array([[1, 4],
[2, 5],
[3, 6]])
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY : Tableaux -
[Link]()

• Complexe conjugué - [Link]() :

>>> u = [Link]([[ 2j, 4+3j],


[2+5j, 5 ],
[ 3, 6+2j]])
>>> [Link](u)
array([[ 0.-2.j, 4.-3.j],
[ 2.-5.j, 5.+0.j],
[ 3.+0.j, 6.-2.j]])

• Transposé complexe conjugué :

>>> [Link](u).T
array([[ 0.-2.j, 2.-5.j, 3.+0.j],
[ 4.-3.j, 5.+0.j, 6.-2.j]])
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY : Tableaux et
slicing

• Pythonpermet d’extraire des tranches (slices) d’un tableau grâce une


technique appelée slicing.

• Leslicing consiste à indiquer entre crochets des indices pour définir le


début et la fin de la tranche et à les séparer par deux-points « : ».

>>> a = [Link]([12, 25, 34, 56, 87])


>>> a[1:3]
array([25, 34])

• Remarque : dans la tranche [n:m], l’élément d’indice n est inclus, mais


pas celui d’indice m.
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
Tableaux et slicing
• Il est aussi possible de ne pas mettre de début ou de fin.

>>> a[1:]
array([25, 34, 56, 87])

>>> a[:3]
array([12, 25, 34])

>>> a[:]
array([12, 25, 34, 56, 87])
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
Tableaux et slicing
• Slicing des tableaux 2D >>> a[:,1]
>>> a = [Link]([[1, 2, 3], array([2, 5])
[4, 5, 6]])
>>> a[0,1]
2 >>> a[0,:]
array([1, 2, 3])
>>> a[:,1:3]
array([[2, 3],
[5, 6]])
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY : Tableaux
de zéros - [Link]()

• zeros(n) renvoie un tableau 1D de n zéros.

>>> [Link](3)
array([ 0., 0., 0.])

• zeros((m,n)) renvoie tableau 2D de taille m x n, c’est-à-dire de


shape (m,n).

>>> [Link]((2,3))
array([[ 0., 0., 0.],
[ 0., 0., 0.]])
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
Tableaux de 1 - [Link]()

>>> [Link](3)
array([ 1., 1., 1.])

>>> [Link]((2,3))
array([[ 1., 1., 1.],
[ 1., 1., 1.]])

Dr Pasteur Poda, MC, --- 2023-2024


Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
Matrice identité - [Link]()

• eye(n) renvoie tableau 2D carré de taille n x n, avec


des uns (‘1’) sur la diagonale et des zéros (‘0’) partout
ailleurs.

>>> [Link](3)
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])

Dr Pasteur Poda, MC, --- 2023-2024


Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
Exercice

1) Effectuer le produit suivant :

2) Produire un tableau de taille 7 x 8 ne contenant que des 3.

Dr Pasteur Poda, MC, --- 2023-2024


Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
Algèbre linéaire
Déterminant - Inverse - [Link]()
[Link]() >>> from [Link] import inv
>>> from [Link] >>> a = [Link]([[1, 3, 3],
import det [1, 4, 3],
[1, 3, 4]])
>>> a = [Link]([[1, 2], >>> inv(a)
[3, 4]]) array([[ 7., -3., -3.],
[-1., 1., 0.],
>>> det(a)
[-1., 0., 1.]])
-2.0
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY : Résolution d’un
système d’équations linéaires - [Link]()

• Pourrésoudre le système d’équations linéaires 3 * x0 + x1 = 9 et x0 + 2 * x1 = 8 :


>>> a = [Link]([[3,1], [1,2]])
>>> b = [Link]([9,8])
>>> x = [Link](a, b)
>>> x
array([ 2., 3.])

• Pour vérifier que la solution est correcte :


>>> [Link]([Link](a, x), b)
True
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY : Valeurs
propres et vecteurs propres - [Link]()
>>> from [Link] import eig >>> V
array([[ 3.01511345e-01, -8.01783726e-01,
>>> A = [Link]([[ 1, 1, -2 ], [-1, 2, 7.07106781e-01],
1], [0, 1, -1]])
[ 9.04534034e-01, -5.34522484e-01, -
>>> A 3.52543159e-16],
array([[ 1, 1, -2],
[-1, 2, 1],
[ 3.01511345e-01, -2.67261242e-01,
[ 0, 1, -1]]) 7.07106781e-01]])

>>> D, V = eig(A)
• Les colonnes de V sont les vecteurs
propres de A associés aux valeurs
>>> D propres qui apparaissent dans D.
array([ 2., 1., -1.])
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
Changement taille tableau
Il est possible de changer la taille d’un tableau
en utilisant l’attribut shape de ce tableau.
>>> u
>>> u = [Link](1, 16)
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
>>> u
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, [11, 12, 13, 14, 15]])
13, 14, 15])

>>> [Link](u)
(15,)
>>> [Link](u)
>>> [Link] = (3, 5)
(3, 5)
Dr Pasteur Poda, MC, --- 2023-2024
Python, modules pour le calcul
scientifique
TABLEAUX ET CALCUL MATRICIEL AVEC NUMPY :
Obtention d’un tableau 2D ligne ou colonne
>>> a = [Link](1, 6) >>> a
>>> a array([[1],
array([1, 2, 3, 4, 5])
[2],
>>> [Link] = (1,
[Link](a)) [3],
>>> a [4],
array([[1, 2, 3, 4, 5]])
[5]])
>>> [Link] =
([Link](a), 1)
Dr Pasteur Poda, MC, --- 2023-2024
Références bibliographiques
•[Link]

Dr Pasteur Poda, MC, --- 2023-2024

Vous aimerez peut-être aussi