Environnement de simulation numérique Python - Numpy - Scipy - Matplotlib
Quésaco ? Pour quoi faire ?
Deux catégories de langages de programmation
Langage compilé(à compiler, ou langage de « bas niveau ») rustique (rédaction complète, puis compilation, puis exécution), contraignant (typage statique, ordre des fonctions et modules...) ; performant (rapide), fiable (types déclarés).
−→ calcul intensif.
Exemples : FORTRAN,TURBO PASCAL,C,C++...
Langage interprété
Dans un interpréteur (qui compile et exécute immédiatement).
Lent mais d’abord simple (intuitif, direct), souple d’utilisation (typage dynamique...).
−→ développement rapidede nouveaux programmes / applications.
Exemples : PYTHON,PERL,SQL,PHP...
1 / 4
Environnement de simulation numérique Python - Numpy - Scipy - Matplotlib
Quésaco ? Pour quoi faire ?
Définition- environnement de programmation pour le calcul numérique Outil intermédiaire associant
ergonomie(langage de programmation interprété, typage dynamique, graphiques...) et
efficacitépour des fonctions/algorithmes pré-compilés et optimisés (calcul « vectorisé », bibliothèques).
En bref : une calculatrice graphique programmable très sophistiquée.
Exemples
Python avec les modules Numpy, Scipy et Matplotlib ; Scilab (ou Matlab, Octave, R...).
2 / 4
Environnement de simulation numérique Python - Numpy - Scipy - Matplotlib
NUMPY ou l’utilisation des vecteurs (ndarray)
Créer des vecteurs -l’objet « array », la brique de base
import numpy as np # import avec alias (facultatif) L = np.array([0,2,np.pi,5]) # crée un vecteur
L[1] # renvoie 2
np.zeros((n,m)) # crée un tableau de 0 np.ones((n,m)) # crée un tableau de 1 M = np.array([[0,2],[np.pi,5]])
M[1,1] # renvoie 5
M[0,:] # renvoie la 1ere ligne (0,2)
T = np.linspace(0,1,11) # renvoie [0,0.1,0.2,..., 1.0]
S = np.arange(2,5) # renvoie [2,3,4]
Opérations
Opérations élément par élément (vecteurs-matrices conformes) boucle implicite) : addition (A+B), produit (A*B), puissance (A**B) ;
Produit matriciel :dot(A,B);
Concaténation :concatenate(A,B) ...
3 / 4
Environnement de simulation numérique Python - Numpy - Scipy - Matplotlib
NUMPY ou l’utilisation des vecteurs (darray)
Attention : passage par référence ! A = np.array([0,2,np.pi,5])
B = A # B et A pointent sur la même zone mémoire B[3] = 0
A # renvoie [0,2,0,5]
C = np.copy(A)
Vectorisation⇒ puissance - exemple : sin(t) pourt∈[0,999999]
Calcul LONG (mode interprété) Calcul RAPIDE (mode compilé)
resu = [] t = np.arange(1000000)
for t in range(1000000): resu = np.sin(t) resu += [np.sin(t)]
Le gain en temps de calcul est ici de plus de 50 !
4 / 4