Initiation à la programmation en Python

Slides:



Advertisements
Présentations similaires
Eléments d'algèbre linéaire
Advertisements

La Méthode de Simplexe Standardisation
Portée des variables VBA & Excel
VII) Formalisme Quantique
Unité #1 Analyse numérique matricielle Giansalvo EXIN Cirrincione.
Unité #3 Analyse numérique matricielle Giansalvo EXIN Cirrincione.
Calcul numérique (avec Maple)
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Programmation sous Matlab
MATLAB Initiation à Matlab.
Cours du 20 septembre Exceptionnellement, le cours prévu pour le mercredi 20 septembre se donnera Mardi le 19 septembre de 13h30 à 15h20 à la salle 1112.
Produit vectoriel Montage préparé par : André Ross
Lycée Louis Vincent SEANCE 6 Python Les listes Lundi 25 novembre 2013.
CALCUL PARALLELE PRODUIT : MATRICE – VECTEUR 10 pages Exposé par :
INTRODUCTION A MATLAB ENVIRONNEMENT MATLAB.
3. Systèmes L.I.T Systèmes LIT, introduction
OCaml - Les listes L3 MI.
4. Energie dinteraction, application à la reconnaissance de forme (texte, parole, radar …) Energie dun signal, analogie avec lélectrocinétique Par analogie.
Rappel... Sous-espaces de Rn: Définition;
Cours DÉTERMINANT. Au dernier cours nous avons vus Linverse dune matrice. Quelques théorèmes qui encadrent son existence. Les matrices élémentaires.
Mise en situation... m g l = 1 m l2 = 1 Positions: Vitesses:
ASI 3 Méthodes numériques pour l’ingénieur
Python La structure itérative
Optimisation linéaire
Aujourdhui: Vérification des devoirs. Retour. Titre de la leçon et contextualisation. Lacquisition des connaissances déclaratives, procédurale et conditionnelles.
O UTILS DE P ROGRAMMATION Mr. BENDIB. I MAA, LAMIS Laboratory, Université de Tébessa.
Systèmes d’équations linéaires
Chapitre 3bis Applications linéaires et Matrices
Examen partiel #2 Mercredi le 15 novembre de 13h30 à 15h20
Rappel... Solution itérative de systèmes linéaires (suite et fin).
Python La programmation objet
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Introduction aux matrices : exemples en dynamique de population
Examen partiel #3 Mercredi le 15 décembre de 15h30 à 17h20
Rappel... Caractérisation des matrices inversibles: Matrices bloc.
Rappel... Formes échelon et échelon réduit Pivots Span
Modèles d’implantation
Algèbre linéaire (GCI –100)
1 PROTOTYPE PGC++ Vecteur_3D DÉFINITION. 2 class Vecteur_3D { private : float vx, vy, vz, vw; // Représentation en coordonnées homogènes. public : Vecteur_3D();
6.1 LE LANGAGE MATRICIEL Cours 16. Aujourdhui, nous allons voir La définition dune matrice Plusieurs définitions de matrice particulière La somme de matrices.
Programmation dynamique
Messages Pas de dépannage mardi le 26 à 11h30. Achat de groupe de Matlab version étudiante?
Tutorat en bio-informatique Le 21 novembre Exercices 2 et 3 (MAT1400) - solutions Chapitre 11.7, Analyse - concepts et contextes vol. 2 27) Cherchez.
Rappel... Matrices bloc. Décomposition des matrices:
Structures de données IFT Abder Alikacem Linéarisation des matrices Département dinformatique et de génie logiciel Édition septembre 2009.
Modules et packages Modules, fichiers, chemin d’accès à un module, espaces de noms, importation de modules ou d’attributs de modules, packages, exemples.
Cours du 25 octobre Mardi le 24 octobre
Rappel... Diagonalisation. Transformations linéaires.
Python Fonction et procédure
MatLab: Notions de Programmation Applications en Finance
ASI 3 Méthodes numériques pour l’ingénieur
- énergie bornée (tend vers 0 lorsque
Cours de mathématiques économiques
La Boucle Repeat Cours LCS N°1 Présenté par Mr: LALLALI.
Introduction.
Boucles et Tests For( in ) { } While( ) { } Les exécutions conditionnelles (if.. else) peuvent être évitées avec des indexations logiques. Exemples: y=numeric(length(x));
8.1 LES NOMBRES COMPLEXES cours 26. Avec la venue de: Doigts Dettes Tartes Distances.
Méthodes de tri.
Résolution d’un problème de diffusion 3D
CHAPITRE III Calcul vectoriel
Matlab (Matrix Laboratory)
Contenu du cours : Principe de la commande par retour d'état
ALGEBRE LINEAIRE Chapitre 3 Les Matrices.
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Pierre Joli Cours de Mathématique Pierre Joli
PhP 2. Tableaux et structures de contrôle. Les tableaux Définition –Rassemblement d’un ensemble de valeurs portant le même nom de variable –Types de tableaux.
MATHÉMATIQUES L1 Second Semestre Armand Taranco. BIBLIOGRAPHIE Dupont : Algèbre pour les sciences économiques, Flash U, A. Colin. Bernard Guerrien, Isabelle.
Matlab (Matrix Laboratory) Langage de programmation évolué. Traitement direct d’opérations matricielles, dont l’inversion et l’analyse d’opérateurs ou.
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Calculer l’inverse d’une matrice Louis Mullenbach Housseim Yacoub.
Transcription de la présentation:

Initiation à la programmation en Python Romain Brette 11 mars 2009

Calcul scientifique: SciPy et Pylab SciPy = bibliothèque scientifique Pylab = bibliothèque graphique Utilisation:  Matlab from scipy import * from pylab import * Documentation: http://docs.scipy.org/doc/ http://matplotlib.sourceforge.net/ (voir la gallerie d’exemples) http://mathesaurus.sourceforge.net/matlab-numpy.html

SciPy

Vecteurs et matrices Type de base défini par SciPy: array (= vecteur ou matrice) from scipy import * x=array([1,2,3]) M=array([[1,2,3],[4,5,6]]) M=ones((3,2)) z=2*x+1 y=dot(M,x) vecteur (1,2,3) 1 2 3 4 5 6 matrice 1 1 matrice On initialise avec des listes produit matriciel

Opérations x+y x-y x*y x/y x**2 exp(x) élément par élément sqrt(x) dot(x,y) dot(M,x) M.T M.max() M.sum() size(x) M.shape élément par élément x² produit scalaire produit matriciel transposition maximum somme nombre total d’éléments

Indexation Indexation des vecteurs  listes (premier élément = 0) x[i] M[i,j] x[i:j] M[i,:] M[:,i] x[[1,3]] x[1:3]=[0,1] M[1,:]+=x (i+1)e élement tranche de x[i] à x[j-1] (i+1)e ligne (i+1)e colonne éléments x[1] et x[3] x[1]=0, x[3]=1 ajouter le vecteur x à la 2e ligne de M M[i,:] est une « vue » sur la matrice M  copie ( référence) y=M[0,:] y[2]=5 x=z x[1]=3 M[0,2] vaut 5 copie: z[1] vaut 3 x=z.copy()

Construction x=array([1,2,3]) M=array([[1,2,3],[4,5,6]]) x=ones(5) M=zeros((3,2)) M=eye(3) M=diag([1,3,7]) x=rand(5) x=randn(5) x=arange(10) x=linspace(0,1,100) à partir de listes vecteur de 1 matrice nulle matrice identité matrice diagonale vecteur aléatoire dans [0,1] vecteur aléatoire gaussien 0,1,2,...,9 100 nombres entre 0 et 1

Vecteurs booléens x=array([1,2,3,4]) x>2.5 A(B) x[x>2.5]+=1 M=rand(3,3) i,j=where(M>.5) i=where(x>2.5)[0] [False, False, True, True] = tous les aij tels que bij est True ajoute 1 à chaque élément > 2.5 indices (ligne, colonne) des éléments > .5 indices des éléments > 2.5

Algèbre linéaire from scipy import linalg help(linalg) d=linalg.det(M) liste des fonctions Quelques fonctions: det norm lstsq solve eigvals lu ...

Bibliothèque scientifique import scipy help(scipy) liste des modules de SciPy Exemple: optimisation (scipy.optimize) from scipy import optimize def f(x): return (x-1)*(x-3) print optimize.fsolve(f,0) résout f(x)=0 point initial optimisation etc

Vectorisation Comment écrire des programmes efficaces? Remplacer les boucles par des opérations vectorielles for i in range(1000000): X[i]=1 X=ones(1000000) for i in range(1000000): X[i]=X[i]*2 X=X*2 for i in range(999999): Y[i]=X[i+1]-X[i] Y=X[1:]-X[:-1] for i in range(1000000): if X[i]>0.5: Y[i]=1 Y[X>.5]=1 chaque opération Python doit être interprétée

Pylab

Pylab import pylab help(pylab) from pylab import * plus d’exemples: http://matplotlib.sourceforge.net/gallery.html import pylab help(pylab) from pylab import * plot([1,2,3],[4,5,6]) show() plot(x,y,’r’) plot(x,y,’.’) xlabel(’Temps (ms)’) figure() subplot(211) plot(x,y) subplot(212) plot(u,v) x y affiche la figure en rouge avec des points (pas de lignes) légende pour l’axe horizontal 1 colonne nouvelle figure sous-figure 211 2 lignes 212

Exercices

Exercice 1 – Analyse de notes Ecrire une fonction qui analyse une liste de notes (entre 0 et 20) en affichant: Le nombre de notes La moyenne Le nombre de notes au-dessus de 10 Le nombre de notes au-dessous de 10 La meilleure note La plus mauvaise note L’histogramme des notes (pylab.hist) Essayer avec des notes aléatoires from scipy import * -> fonction random.randint

Exercice 2 - Triangle de Pascal 1 2 3 4 6 Ci,j=Ci-1,j-1+Ci-1,j Ecrire une fonction qui affiche les n premières lignes du triangle de Pascal. Ecrire le calcul de manière vectorielle (ligne = vecteur).

Exercice 3 – Dessiner un cercle Un cercle (x(t),y(t)) est solution d’un système différentiel: Ecrire un programme qui dessine un cercle en intégrant les équations différentielles (x(t+dt)=x(t)+dt*(-y(t))) La même chose en l’écrivant sous forme vectorielle: dx/dt = -y dy/dt = x t = angle en radian X=(x,y) dX/dt=MX 0 -1 1 0 M=

Exercice 4 – Carrés presques magiques [[ 3. 4. 2. 5. 1.] [ 1. 2. 5. 3. 4.] [ 4. 5. 3. 1. 2.] [ 2. 3. 1. 4. 5.] [ 5. 1. 4. 2. 3.]] Somme identique sur les lignes et les colonnes Ecrire une fonction qui détermine si un carré (= matrice) est presque magique. Ecrire une fonction qui renvoie un carré presque magique dit « élémentaire »: Ecrire une fonction qui calcule un carré presque magique en échangeant un grand nombre de fois des lignes et des colonnes aléatoirement à partir d’un carré élémentaire. [[ 1. 2. 3. 4. 5.] [ 2. 3. 4. 5. 1.] [ 3. 4. 5. 1. 2.] [ 4. 5. 1. 2. 3.] [ 5. 1. 2. 3. 4.]]