• Aucun résultat trouvé

Environnement de simulation numérique Python - Numpy - Scipy - Matplotlib

N/A
N/A
Protected

Academic year: 2022

Partager "Environnement de simulation numérique Python - Numpy - Scipy - Matplotlib"

Copied!
10
0
0

Texte intégral

(1)

Environnement de simulation numérique Python - Numpy - Scipy - Matplotlib

A. MARTIN

Stanislas - PCSI1

Février 2016

1 / 10

(2)

Environnement de simulation numérique Python - Numpy - Scipy - Matplotlib

Deux catégories de langages de programmation

DÉFINITION : Compilerun programme c’est transformer...

unprogramme (suite d’instructions du langage dans un fichier texte) en un fichier exécutable(instructions en langagemachine : 0 et 1).

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 rapide de nouveaux programmes / applications. Exemples :PYTHON,PERL,SQL,PHP...

(3)

Environnement de simulation numérique Python - Numpy - Scipy - Matplotlib

Deux catégories de langages de programmation

DÉFINITION : Compilerun programme c’est transformer...

unprogramme (suite d’instructions du langage dans un fichier texte) en un fichier exécutable(instructions en langagemachine : 0 et 1).

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 rapide de nouveaux programmes / applications. Exemples :PYTHON,PERL,SQL,PHP...

3 / 10

(4)

Environnement de simulation numérique Python - Numpy - Scipy - Matplotlib

Deux catégories de langages de programmation

DÉFINITION : Compilerun programme c’est transformer...

unprogramme (suite d’instructions du langage dans un fichier texte) en un fichier exécutable(instructions en langagemachine : 0 et 1).

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).

(5)

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...).

5 / 10

(6)

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 ;

(7)

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) ...

7 / 10

(8)

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

(9)

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 !

9 / 10

(10)

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)pour t∈[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)

Références

Documents relatifs

type est appelable : la cr´ eation d’une classe appelle en fait la fonction type(nom, super classes, dictionnaire attributs) On cr´ ee une nouvelle m´ etaclasse en cr´ eant une

Ce logiciel permet d’écrire le programme dans la fenêtre de gauche (fenêtre d’édition) et de l’exécuter dans la fenêtre de droite (la console)... 2. Recopier, dans la

Si vous fermez la fenêtre alors la commande plt.xlabel("ce que vous voulez") se contentera de faire afficher une fenêtre graphique avec axe des abcisses, des or- données

Cr´eer puis tester une fonction nomm´ee pgcd de param`etres m et n permettant de calculer le plus grand diviseur commun des entiers m et n au moyen de l’algorithme d’Euclide..

Cet exercice est prévu pour le langage Python (et ses bibliothèques numpy, scipy, matplotlib). À chaque question, les instructions ou les fonctions écrites devront être testées.4.

En une vingtaine d’années, Python s’est imposé comme le langage de programmation le plus utilisé dans le monde grâce à sa syntaxe simple et ses nombreuses applications..

Internet est le média le plus utilisé quant il s’agit d’apprendre à programmer et un module Python est plus pratique pour s’assurer qu’un code Python reste valide lors du

De nombreux composants graphiques (ou widgets) sont disponibles : fenêtre (classe Tk), bouton (classe Button), case à cocher (classe Checkbutton), étiquette (classe Label), zone