Vous êtes sur la page 1sur 18

Python pour les

mathmatiques
numriques

Everybody in this country should


learn to program a computer,
because it teaches you how to think
Steve Jobs

PREMIERS PAS
Python cest :
Un langage cr entre 1991 et 1995 par Guido Van Rossum.
Un langage de script de haut niveau, orient objet, libre de
droits mme pour des applications commerciales.
Langage interprt donc pas de compilation, code valable
sur tous les systmes (avec ventuellement des
adaptations mineures).
Deux versions en parallle : les branches 2.x et 3.x. Nous
utiliserons la branche 2.x qui est la plus stable et la plus
dveloppe.
Un trs grand nombre de bibliothques vises
scientifiques : numpy, scipy, sympy, matplotlib, PIL,
IPython, Fenics, fipy, sfepy, . . .

Comment excuter Python et interprter un script python?

1. Installer le moteur python accompagn de ses


bibliothques de base :

Sur Windows, plusieurs possibilits :

Tlcharger la version officielle (ne contient pas les


bibliothques scientifiques additionnelles) :
http://www.python.org/download/
Tlcharger une distribution gratuite vises scientifiques :
http://code.google.com/p/pythonxy/ ou de prfrence
Anaconda https://www.continuum.io/
Tlcharger la version gratuite mais assez complte de
enthought python :

Sur MAC/Linux:

Utiliser la version minimale installe dorigine sur les


MAC/Linux. Version assez limite qui ncessite dinstaller
les bibliothques scientifiques une une.
Installer (peu recommande) une nouvelle version de
python (en parallle) avec Macport ou Fink. Utiliser ces
mmes outils pour installer les bibliothques scientifiques
(au bon endroit !).
Installer Anaconda Python.
Installer les versions MAC de enthought python ou
ActivePython.

2. crire puis interprter le code python. Plusieurs approches


possibles :

En mode interprteur/calculatrice :
2.1 Dmarrer le moteur python dans une console ou un
terminal.
On peut aussi lancer linterprteur amlior IPython si il est
install.
2.2 Taper les lignes de code et valider chaque ligne par

En mode ligne de commande/script :


2.1 Dmarrer un diteur quelconque et rdiger le script
Python qui sera enregistr au format xxxx.py
2.2 Excuter le fichier script dans une console : python
xxxx.py (console ouverte dans le rpertoire) python
cheminn\(ou)/xxxx.py (console ouverte hors rpertoire)

En mode dition interactive :


1.1 Utiliser un diteur de script possdant la coloration
syntaxique Python et capable de lancer le moteur Python
en fond de tche comme : Idle lditeur interactif natif de
Python ; Scite (Windows) et Aquamacs (MAC).
1.2 Utiliser des environnements de travail ddis Python
comme PyCharm de JetBrain
https://www.jetbrains.com/pycharm/ ; ou encore Eclipse
avec le plug-in Pydev (http://www.pydev.org/).
1.3 Utiliser lenvironnement graphique " la matlab "
Spyder (install par dfaut avec Anaconda)

VARIABLES
Il ny a pas de restriction sur le type dune variable (typage
dynamique).
Les variables nont pas tre dclares et peuvent changer de
type de manire dynamique.
Les noms de variables doivent commencer par une lettre,
peuvent comporter des chiffres et le symbole (_). Attention
Python est sensible la casse (minuscule-majuscule).
Les noms de variable ne doivent jamais concider avec les mots
clef du langage (Table 1).

Table 1

Affectation de plusieurs variables en une seule ligne :


x = 23; y = 34:6

Ou : x,y=23,34.6

limination des variables : del(x; y)

Utilisation de Python comme


calculatrice
Par exemple, vous pouvez utiliser l'intrpreteur comme une simple calculatrice
de bureau.
>>> 1+1
2
>>> 1.5 2
-0.5
>>> 2-9 #Les espaces sont optionnels
-7
>>> (7+3)*4
40
>>> 1 / 2 Surprise!!
0
>>> 1/ 2.0
0.5
>>> 12+1j #les nombres complexes sont reprsentes avec l'unit imaginaire j
(12+1j)
>>> 1j*1j
(-1+0j)

Signalons au passage la disponibilit de l'oprateur modulo,


reprsent par le symbole%. Cet oprateur fournit le reste de la
division entire d'un nombre par un autre. Essayez par exemple:
>>> 5%3
2
>>> 3.5%2.8 #Modulo
0.7000000000000002
>>> 7/3 #Les divisions entires retournent des entiers
2
>>> 7.0/3 #Ca donne des divisions non entires en manipulant
des rels
2.3333333333333335
>>> x=4 #affectation des variables avec le signe "="
>>> x*2
8
>>> x**2 # x au carr
16

Opration mathmatiques
supplmentaires
Pour effectuer des oprations mathmatique plus complexes, nous devons utiliser
quelques fonctions supplmentaires : pour cela, nous commenons par
charger/importer la bibliothque avec les fonctions scientifiques appele NumPy :
>>> import numpy as np
>>> np.sin(3)
0.14.
>>> np.pi
3.14
>>> np.deg2rad(180)
3.14
>>> np.rad2deg(np.pi)
180
>>> np.ceil(6.03) #arrondi au plus petit entier superieur
7.0
>>> np.floor(4.99) #arrondi au plus grand entier inferieur
4.0
>>> np.round(2.49) #arrondi au plus proche
2.0
>>> np.round(2.50) #arrondi au plus proche
2.0

>>> np.conj(5) #la valeur conjugue d'un nombre complexe


5
>>> np.conj(5+1j)
5-1j
>>> dir() #affiche la liste avec toutes les variables
actuellement dfinies
>>> dir(np) #affiche la liste avec toutes les fonctions
dfinies par np
>>> np.abs(23)
23
>>> np.abs(-23)
23
>>> np.abs(1+1j)
1.41
>>>

Le module SciPy contient de nombreux


algorithmes trs utiliss par les numriciens :
mthodes itratives ou directes pour
rsoudre des systmes linaires, intgration
numrique...
Dans toute la suite, nous utiliserons :
Pour voir les diffrences (Numpy SciPy)
essayez par exemple :
>>> np.sqrt(-1.)
Nan
>>> sp.sqrt(-1.)
(1j)

Tableaux, vecteurs et matrices


Toutes les oprations prcdentes peuvent tre appliques a plusieurs
nombres a la fois. Ceci est possible avec l'utilisation des tableaux. EN
Python il existe deux faons de dclarer des tableaux (array en anglais) :
Listes en Python
>>> x = [123, 1+2j, 13, -5, 0, 900.2]
>>> len(x) #taille d'un tableau
6
>>> x[0] #contenu de la case 0 : le premier indice tant 0
123
Qu'est-ce qui se passe quand vous essayez de lire le contenu d'une case
qui n'existe pas ?
>>> x[100]
ERROR
>>> x[0] = -2 #modification de la case
>>> x
[-2, 1+2j, 13, -5, 0, 900.2]

>>> x.append(1) #ajouter un element


>>> x
[123, 1+2j, 13, -5, 0, 900.2,1]
>>> x.remove(0) #on supprime un lment
[123, 1+2j, 13, -5, 900.2,1]
>>> y = ["un", "deux", 1,2,3] #Une liste
peut mlanger plusieurs types de donnes
>>> y
["un", "deux", 1,2,3]
>>> z = x+y #concatnation de deux listes

Tableaux NumPy
>>> np.zeros(10) #Crer un vecteur
contenant 10 zros

Tableaux NumPy
multidimensionnels
Pour definir des matrices nous avons
besoin de tableaux a deux
dimensions. Par exemple:

Vous aimerez peut-être aussi