Formation Python du 14 Octobre 2010
|
|
- Arnaud Pépin
- il y a 8 ans
- Total affichages :
Transcription
1 Formation Python du 14 Octobre 2010 Version Dimitri Bonnet, François Cuenot, Alexandre Vaudrey 12 October 2010
2
3 Table des matières 1 Organisation Déroulement de la formation Préalables à la formation Outils à installer avant la formation (linux) Outils à installer avant la formation (windows) Introduction à Python Opérations de base Les variables Les blocs & sections de code Les types Définition de fonctions et passage de paramètres Exemple de structure de contrôle Numpy Introduction à numpy L indexing, le slicing et le broadcasting avec numpy Matplotlib Tracé de courbes Tracé d une fonction bidimensionnelle en courbes de niveaux Exemples Exemples de traitement d image Résolution approchée d équations non linéaires Optimisation Equations différentielles Quelques liens Index 45 i
4 ii
5 Auteurs : Dimitri Bonnet, François Cuenot, Alexandre Vaudrey. Table des matières 1
6 2 Table des matières
7 CHAPITRE 1 Organisation La séance de formation à Python aura lieu le jeudi 14 Octobre 2010 à partir de 14h, à la faculté des sciences de Belfort. Elle se tiendra dans une salle informatique (salles 204 et 205). Ainsi, ceux qui n ont pas d ordinateur portable pourront utiliser les ordinateurs de la fac. Pour ceux qui désirent venir avec leur propre ordinateur, nous vous demandons de préinstaller différents outils qui sont accessibles ici. 1.1 Déroulement de la formation heure formation lieu 14h - 14h45 Introduction à Python salles h45-15h45 Manipulation de tableaux avec Numpy salles h45-16h15 Pause 16h15-16h45 Tracés de graphiques avec Matplotlib salles h45-18h Exemples salles D autres informations à venir seront communiquées aux participants par mail. Mais vous pouvez aussi consulter ces pages. 3
8 4 Chapitre 1. Organisation
9 CHAPITRE 2 Préalables à la formation 2.1 Outils à installer avant la formation (linux) python 2.6 ou supérieur (Attention : ne pas installer une version 3) scipy numpy matplotlib PIL Ipython Warning : Ne pas installer la version 3 de Python!! 2.2 Outils à installer avant la formation (windows) Python(x, y) Note : Si vous avez un problème d installation, vous pouvez nous contacter ici 5
10 6 Chapitre 2. Préalables à la formation
11 CHAPITRE 3 Introduction à Python Python est un langage de programmation qui présente l avantage d être livré de base avec un interpréteur interactif. On peut ainsi facilement tester chaque commande avant de l inclure dans un programme. Ipython est l interpréteur que nous allons utiliser au cours de cette formation. Une fois l interpréteur lancé on peut saisir des commandes : In [0]: print("bonjour!") Bonjour! 3.1 Opérations de base In [1]: 1+1 Out[1]: 2 In [2]: 1-1 Out[2]: 0 In [3]: 2*3 Out[3]: 6 In [4]: 12%5 Out[4]: 2 In [5]: 2**8 Out[5]: Les variables In [6]: a = 1+1 le résultat de 1+1 est affecté à la variable a In [7]: a Out[7]: 2 7
12 3.2.1 Convention de nommage : les variables sont écrites en minuscule, les mots sont attachés et différentiés par des majuscules In [8]: unevariable = a #Copie de la valeur de "a" dans "unevariable" les constantes sont écrites en majuscule, les mots sont séparé par des _ In [9]: FARADAY_CONSTANT = 9.64e4 3.3 Les blocs & sections de code Lorsque l on programme on organise le code en blocs ou sections (class, fonctions, structures de contrôle... ). Python utilise l indentation pour repérer ces blocs, et les retours à la ligne pour détecter la fin d instruction. Ce code C de déclaration de fonction void disbonjour(){ print("bonjour"); //fin d instruction } //fin de bloc devient en python : def disbonjour() : print( Bonjour ) Attention : Attention à conserver le même nombre d espace pour l indentation (4) En enregistrant ce code dans un fichier texte salut.py, on peut l exécuter depuis IPython In [10]: %run salut.py In [11]: disbonjour() Out[11]: Bonjour Attention : Attention à l encodage, évitez les messages d erreur avec la ligne suivante à ajouter en début du fichier.py : # -*- coding: utf-8 -*- Pour empêcher un retour à la ligne d être considéré comme une fin d instruction on utilise \\ In [12]: resultat = \...: / \...: ** 2 Enfin la commande print associée au """ ou d afficher du texte sur plusieurs lignes sans recourir a \\ In [13]: print("""blabla blabla blabla blabla...: blabla blabla...: blabla blabla blabla bla""") blabla blabla blabla blabla blabla blabla blabla blabla blabla bla 8 Chapitre 3. Introduction à Python
13 3.4 Les types In [14]: entier = 1 In [15]: type(entier) Out[15]: <type int > In [16]: flotant = 1. In [17]: type(flotant) Out[17]: <type float > In [18]: complexe = 0+1j In [19]: complexe.real Out[19]: 0.0 In [20]: complexe.imag Out[20]: 1.0 In [21]: complexe**2 Out[21]: (-1+0j) In [22]: booleen = False In [23]: booleen == booleen Out[23]: True Attention : 3/2 = 1 alors que 3/2.= Les tuples & les listes In [24]: untuple = (1,2,3,4) In [25]: uneliste = [5,6,7,8] Pour accéder à un élément on précise entre [] le numéro de l élément voulu à partir de 0 In [26]: untuple[0] Out[26]: 1 In [27]: uneliste[2] Out[27]: 7 La différence entre les deux : une liste est modifiable un tuple ne l est pas In [28]: untuple[0] = 1 TypeError: tuple object does not support item assignment In [29]: uneliste[2] = 1 In [30]: uneliste Out[30]: [5, 6, 1, 8] À noter que les chaines sont accessibles comme les tuples In [31]: unechaine = "coucou" In [32]: unechaine[1] Out[32]: o 3.4. Les types 9
14 On peut accéder à des sections (on reverra le slicing en détail avec numpy) In [33]: unechaine[0:3] # Les 3 première lettres Out[33]: cou In [34]: unechaine[1:-1] # Du second à l avant dernier caractère Out[34]: ouco In [35]: unechaine[::2] # 1 caractère sur 2 Out[35]: cuo In [36]: unechaine[::-1] # La chaine à l envers Out[36]: uocuoc In [37]: unechaine[::-2] # 1 caractère sur 2 de la chaine à l envers Out[37]: uco On peut les concaténer : In [38]: unechaine+unechaine Out[38]: coucoucoucou In [39]: unechaine*2 Out[39]: coucoucoucou Les dictionnaires In [40]: dic = { list : [1,2,3],...: str : coucou } In [41]: dic[ str ] Out[41]: coucou In [42]: dic[ list ][0] Out[42]: Définition de fonctions et passage de paramètres In [43]: def somme(a,b,c) :...: return a + b + c...: In [44]: somme(2,3,3) Out[44]: 8 In [45]: somme(*[2,3,3]) Out[45]: Exemple de structure de contrôle if/elif/else In [46]: prenom = raw_input( Prénom : ) Prénom : François 10 Chapitre 3. Introduction à Python
15 In [47]: if prenom == Chef :...: print("bonjour Chef")...: elif prenom in ( Alex, Dimitri, François ) :...: print("bravo!")...: else :...: print("salut %s" %prenom)...: Bravo! for/range In [48]: for i in range(3) :...: print(i)...: In [49]: for organisateur in ( Alex, Dimitri, François ):...: print(organisateur)...: Alex Dimitri François In [50]: for index, organisateur in enumerate( Alex, Dimitri, François ):...: print index, organisateur 0 Alex 1 Dimitri 2 François while/break/continue In [51]: a = [1, 0, 2, 4] In [52]: for element in a :...: if element == 0 :...: continue...: print 1. / element...: In [53]: end = False In [54]: while not end :...: end = raw_input( Stop ou Encore? )...: if end == Stop :...: print("voilà c est fini!")...: end = True...: elif end == Encore :...: print("on continue!")...: end = False...: else :...: print("on sent la fatigue ; FIN!")...: break...: 3.6. Exemple de structure de contrôle 11
16 12 Chapitre 3. Introduction à Python
17 CHAPITRE 4 Numpy 4.1 Introduction à numpy Numpy est un module python qui permet de manipuler des tableaux (array) de différentes dimensions. Pour pouvoir utiliser numpy, on doit commencer par importer ce module : In [1]: import numpy La création d un tableau peut se faire de la manière suivante : In [2]: a = numpy.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) In [3]: a Out[3]: array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) Ensuite, on peut effectuer tous les calculs usuels. Attention, par défaut ce n est pas du calcul matriciel : In [4]: b = numpy.array([[1, 1, 1], [1, 1, 1], [1, 1, 1]]) In [5]: b Out[5]: array([[1, 1, 1], [1, 1, 1], [1, 1, 1]]) In [6]: a*b Out[6]: array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) Le produit matriciel existe tout de même dans numpy, mais ne ce note pas * : In [7]: numpy.dot(a, b) Out[7]: array([[ 6, 6, 6], [15, 15, 15], [24, 24, 24]]) numpy permet de faire des opérations sur les tableaux sans avoir à recourir à des boucles. En plus des opérations sur les tableaux, numpy a des méthodes de créations de tableau. Quelques exemples : 13
18 In [8]: numpy.zeros((3, 4)) Out[8]: array([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.]]) In [9]: numpy.ones((3, 4)) Out[9]: array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]) In [10]: numpy.diag((1, 2, 3, 4)) Out[10]: array([[1, 0, 0, 0], [0, 2, 0, 0], [0, 0, 3, 0], [0, 0, 0, 4]]) In [11]: numpy.random.random((3, 4)) Out[11]: array([[ , , , ], [ , , , ], [ , , , ]]) In [12]: numpy.arange(0, 10) Out[12]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) Il est aussi possible de créer des grilles : In [13]: x = numpy.arange(0, 10) In [14]: y = numpy.arange(0, 4) In [15]: x Out[15]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) In [16]: y Out[16]: array([0, 1, 2, 3]) In [17]: X, Y = numpy.meshgrid(x, y) In [18]: X Out[18]: array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]) In [19]: Y Out[19]: array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2, 2, 2, 2, 2], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3]]) Avec numpy, on peut aussi obtenir des informations sur les tableaux : In [20]: X.dtype Out[20]: dtype( int64 ) In [21]: X.shape Out[21]: (4, 10) 14 Chapitre 4. Numpy
19 On peut aussi redimensionner des tableaux : In [21]: a = numpy.ones((3, 4)) In [22]: a Out[22]: array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]) In [23]: a.reshape((4, 3)) Out[23]: array([[ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.]]) In [24]: a Out[24]: array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]) On remarque que la méthode reshape n assigne pas de valeur à a, mais elle crée un résultat indépendant de a. On peut utiliser autant de dimensions que désirées : In [25]: a = numpy.random.random((3, 4, 2)) In [26]: a Out[26]: array([[[ , ], [ , ], [ , ], [ , ]], [[ , ], [ , ], [ , ], [ , ]], [[ , ], [ , ], [ , ], [ , ]]]) In [27]: a.shape Out[27]: (3, 4, 2) 4.2 L indexing, le slicing et le broadcasting avec numpy L indexing L indexing permet d obtenir la valeur du tableau à un indice donné : In [1]: import numpy In [2]: a = numpy.random.random_integers(0, 10, (3, 4)) 4.2. L indexing, le slicing et le broadcasting avec numpy 15
20 In [3]: a Out[3]: array([[ 2, 10, 8, 2], [ 5, 5, 1, 2], [ 7, 0, 4, 3]]) In [4]: a[2, 1] Out[4]: 0 Le premier indice représente le premier axe, le deuxième indice représente le second axe... Warning : En python, le premier indice est 0. Avec l indexing, on obtient un vue de l élément du tableau, c est à dire qu on ne crée pas une nouvelle variable, mais qu on ne fait que visualiser l élément. Ainsi, si on modifie la valeur de cet élément, la nouvelle valeur sera affectée au tableau. Exemple : In [5]: a[0,1] = 999 In [6]: a Out[6]: array([[ 2, 999, 8, 2], [ 5, 5, 1, 2], [ 7, 0, 4, 3]]) On peut aussi utiliser plusieurs indices : In [7]: a[(0, 2), (0, 1)] Out[7]: array([2, 0]) Dans cet exemple, on obtient un tableau composé de la valeur de a[0,0] = 2 et de a[2,1] = 0. Il est également possible d obtenir les valeurs d un tableau en utilisant des booléens : In [8]: booleen = (a <= 2) In [9]: booleen Out[9]: array([[ True, False, False, True], [False, False, True, True], [False, True, False, False]], dtype=bool) In [10]: a[booleen] Out[10]: array([2, 2, 1, 2, 0]) In [11]: a[booleen] Out[11]: array([2, 2, 1, 2, 0]) In [12]: a[(a <= 2)] Out[12]: array([2, 2, 1, 2, 0]) On appelle ce booléen un masque. On peut aussi donner une valeur à ce masque : In [20]: a[booleen] = 3333 In [23]: a Out[23]: array([[3333, 999, 8, 3333], [ 5, 5, 3333, 3333], [ 7, 3333, 4, 3]]) 16 Chapitre 4. Numpy
21 4.2.2 Le slicing Le slicing est une méthode qui permet de découper un tableau. Pour chaque axe, on peut découper le tableau en indiquant le premier indice à partir du quel on va couper le tableau, puis le dernier indice et enfin le pas utilisé : In [1]: import numpy In [2]: a = numpy.arange(12) In [3]: a Out[3]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) In [4]: a[3:9:2] Out[4]: array([3, 5, 7]) a est coupé à partir de l indice 3 (on compte en slice, le slice 3 se situe avant l indice 3, entre l indice 2 et l indice 3) jusqu à l indice 8 (en compte en slice, le slice 9 se situe entre l indice 8 et l indice 9) en prenant un pas de 2 unités. Le pas est optionnel : In [5]: a[3:9] Out[5]: array([3, 4, 5, 6, 7, 8]) Si on n indique pas le premier slice, on commence du début : In [6]: a[:9] Out[6]: array([0, 1, 2, 3, 4, 5, 6, 7, 8]) Si on n indique pas le dernier slice, on termine au dernier : In [7]: a[3:] Out[7]: array([ 3, 4, 5, 6, 7, 8, 9, 10, 11]) Il est aussi possible de compter en indices négatifs, on commence alors depuis la fin : In [8]: a[-5:-2] Out[8]: array([7, 8, 9]) In [9]: a[3:-2] Out[9]: array([3, 4, 5, 6, 7, 8, 9]) Ces opérations peuvent se faire sur toutes les dimensions : In [19]: a = numpy.random.random_integers(0, 10, (4, 5)) In [20]: a Out[20]: array([[ 7, 6, 2, 8, 9], [ 8, 9, 1, 4, 4], [ 9, 4, 10, 7, 0], [ 9, 0, 6, 4, 6]]) In [21]: a[0:2, 2:5] Out[21]: array([[2, 8, 9], [1, 4, 4]]) Le slice sur la première dimension est indiqué en premier, puis on indique le slice sur la seconde dimension..., chaque dimension est séparée par une, L indexing, le slicing et le broadcasting avec numpy 17
22 4.2.3 Le broadcasting Le broadcasting est une fonctionnalité de numpy qui permet de réaliser des opérations entre des tableaux de dimensions différentes tant qu une consistence existe entre ces tableaux. Quelques exemples : In [1]: import numpy In [2]: a = numpy.arange(9).reshape((3,3)) In [3]: a = numpy.arange(9).reshape((3,3)) In [4]: a + 1 Out[4]: array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) In [5]: a = numpy.arange(0, 40, 10).reshape((4, 1)) In [6]: a Out[6]: array([[ 0], [10], [20], [30]]) In [7]: b = numpy.arange(4) In [8]: b Out[8]: array([0, 1, 2, 3]) In [9]: a + b Out[9]: array([[ 0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33]]) In [10]: a = numpy.zeros((4, 4)) In [11]: a Out[11]: array([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.]]) In [12]: b = numpy.arange(4) In [13]: b Out[13]: array([0, 1, 2, 3]) In [14]: a + b Out[14]: array([[ 0., 1., 2., 3.], [ 0., 1., 2., 3.], [ 0., 1., 2., 3.], [ 0., 1., 2., 3.]]) 18 Chapitre 4. Numpy
23 CHAPITRE 5 Matplotlib Matplotlib est un module qui permet de réaliser des graphes 2D (et quelques graphes 3D de base, pour la 3D il est préférable de se tourner vers Mayavi) 5.1 Tracé de courbes Pour tracer des courbes, il faut utiliser l outils plot. Détaillons un exemple : In [1]: import numpy In [2]: import matplotlib as mpl In [3]: import matplotlib.pyplot as plt In [4]: from matplotlib import rc Note : matplotlib et pyplot sont les outils pour les tracés, rc est utilisé ici pour avoir un rendu Latex des formules. In [6]: X = numpy.linspace(-2, 2, 20) In [7]: X Out[7]: array([-2., , , , , , , , , , , , , , , , , , , 2. ]) Note : Ici, nous avons créé un tableau qui nous servira d absices In [8]: Y1 = numpy.exp(x) In [9]: Y2 = X ** 2 In [10]: Y3 = 2 * numpy.sin(x) + 4. Note : Ici, nous avons créé 3 tableaux représentant les ordonnées relatives à X pour 3 fonctions. In [11]: plt.plot(x, Y1, b-, label = r $e^{x}$ ) Out[11]: [<matplotlib.lines.line2d object at 0x35b4f10>] 19
24 In [12]: plt.plot(x, Y2, r+, label = r $x^{2}$ ) Out[12]: [<matplotlib.lines.line2d object at 0x >] In [13]: plt.plot(x, Y3, ks--, linewidth = 2, label = r $2 \times sin(x) + 4$ )Out[13]: [<matplo In [14]: plt.xlabel( x ) Out[14]: <matplotlib.text.text object at 0x3db2f90> In [15]: plt.ylabel( y ) Out[15]: <matplotlib.text.text object at 0x3db5cd0> In [16]: plt.legend() Out[16]: <matplotlib.legend.legend object at 0x39769d0> In [17]: plt.grid( True ) In [17]: plt.show() Note : Enfin, les tracés sont réalisés en indiquant un tableau pour les abscisses et un pour les ordonnées. En option, on peut ajouter la couleur de la courbe b pour bleu, r pour rouge... La forme des points +, s... la forme de la ligne -,... peuvent compléter cette option. On peut choisir l épaisseur de la ligne linewidth et on peut ajouter un titre label. Pour avoir la légende affichée, il faut utiliser plt.legend(). Et pour avoir une grille on emploie plt.grid( True ). Le nom des axes sont donnés avec plt.xlabel et plt.ylabel Le résultat obtenu : 20 Chapitre 5. Matplotlib
25 5.2 Tracé d une fonction bidimensionnelle en courbes de niveaux La représentation graphique de l évolution d une fonction f de deux variables x et y n est pas une tâche facile, surtout si le graphique en question est destiné à être imprimé. Dans ce type de cas, un graphe faisant apparaître les lignes de niveaux de la fonction en question peut être une solution intéressante et lisible. Commençons donc par considérer l exemple simple d une fonction de Rosenbrock de la forme : f(x, y) = (1 x) 2 + ( y x 2) 2 (5.1) Que l on déclare en python de la façon suivante : In [1]: def f(x,y):...: """Fonction de Rosenbrock."""...: return (1-x)**2+(y-x**2)**2 Le tracé de cette fonction en courbes de niveaux va nécessiter la création d un maillage bidimensionnel permettant de stocker l intervalle de chacune des variables x et y. La fonction destinée à cela s appelle meshgrid (incluse dans NumPy ). On construit donc le maillage en question sur l intervalle (x, y) [ 1; 1] [ 1; 2] : In [2]: import numpy as np In [3]: x, y = np.meshgrid(np.linspace(-1,1,201),np.linspace(-1,2,201)) In [4]: z = f(x,y) La fonction meshgrid fait appel dans ce cas à deux fonctions linspace pour chacune des variables. z est ici un objet array qui contient les valeurs de la fonction f sur chaque noeud du maillage. Pour tracer l évolution de f en lignes de niveaux, de fonctions sont adaptées, appelées respectivement contour et contourf. La première ne trace que les lignes de niveaux alors que la seconde colore le graphe entre ces lignes de niveaux : In [5]: graphe = contour(x,y,z,20) Avec comme arguments, les variables x et y, les valeurs de z correspondantes ainsi que le nombre (ici 20) de lignes de niveaux choisit. Par défaut, ces courbes de niveaux sont colorées en fonction de leur altitude z correspondante. On peut par ailleurs imposer une couleur uniforme pour le graphe précédent : In [6]: graphe = contour(x,y,z,20,colors= grey ) Ce qui donne : Comme dit précédemment, la fonction contourf colore toute la surface représentant la fonction : In [7]: graphe = contourf(x,y,z,20) In [8]: colorbar() Out[8]: <matplotlib.colorbar.colorbar instance at 0x3cc5758> Ce qui donne : S il n est pas possible d utiliser de la couleur, comme dans un article ou un rapport imprimé en noir et blanc, on peut utiliser des labels sur les lignes de niveaux afin de repérer leurs altitudes. La fonction en question s appelle clabel et prend comme principal argument la variable graphe précédente. In [9]: graphe = contour(x,y,z,20,colors= grey ) In [10]: clabel(graphe,inline=1,fontsize=10,fmt= %3.2f ) Out[10]: <a list of 21 text.text objects> Qui donne : La première option inline=1 impose d écrire les valeurs sur les lignes de niveaux, les deux options suivantes gérant la taille de la police utilisée et le format d écriture des valeurs Tracé d une fonction bidimensionnelle en courbes de niveaux 21
26 22 Chapitre 5. Matplotlib
27 5.2. Tracé d une fonction bidimensionnelle en courbes de niveaux 23
28 24 Chapitre 5. Matplotlib
29 CHAPITRE 6 Exemples 6.1 Exemples de traitement d image Voici quelques exemples de traitement d image, basés sur une image de référence en traitement d image : Lena Seuillage Le seuillage est une opération qui affecte la valeur 0 à tous les pixels dont le niveau est inférieur à celui du seuil. Ici, sur une image 8 bits (les niveaux varient de 0 à 255), on réalise un seuillage avec un niveau de seuil à 100. La méthode numpy.where crée un masque et ici remplace par 0 toutes les valeurs du tableau lena inférieures à 100. import matplotlib as mpl import matplotlib.pyplot as plt import numpy import scipy lena = scipy.lena() # opération de seuillage lena_seuil = numpy.where(lena > 100, lena, 0) fig = plt.figure() ax1 = fig.add_subplot(1, 2, 1) plt.title( lena ) ax1.imshow(lena, cmap = mpl.cm.gray) ax2 = fig.add_subplot(1, 2, 2) plt.title( seuillage (100) ) ax2.imshow(lena_seuil, cmap = mpl.cm.gray) plt.show() Sélection d une partie de l image Pour sélectionner une partie de l image, on peut utiliser le slicing de Numpy. import matplotlib as mpl import matplotlib.pyplot as plt import numpy import scipy 25
30 lena = scipy.lena() # slicing lena_select = lena[200:400, 100:300] fig = plt.figure() ax1 = fig.add_subplot(1, 2, 1) plt.title( lena ) ax1.imshow(lena, cmap = mpl.cm.gray) ax2 = fig.add_subplot(1, 2, 2) plt.title( Selection [200:400, 100:300] ) ax2.imshow(lena_select, cmap = mpl.cm.gray) plt.show() Transformée de Fourier On peut réaliser une transformée de Fourier sur une image en utilisant la méthode de transformée de Fourier rapide de Numpy en dimension 2 : numpy.fft.fft2. Un exemple de transformée de Fourier et de transformée inverse sur le module et sur la phase : import matplotlib as mpl import matplotlib.pyplot as plt import numpy import scipy 26 Chapitre 6. Exemples
31 # fonction de normalisation def norma(mat): mat1 = mat.real mat1 -= mat1.min() mat1 *= 255. / mat1.max() return mat1 #fonction de normailsation sur une échelle logarithmique def normalog(mat): mat1 = norma(mat) mat1 = numpy.log(1 + mat1) mat1 *= 255. / mat1.max() return mat1 lena = scipy.lena() # transformée de Fourier de l image lena_fft = numpy.fft.fft2(lena) # module de la transformée de Fourier de l image lena_fft_abs = abs(lena_fft) # centré lena_fft_abs_centre = numpy.fft.fftshift(lena_fft_abs) # phase de la transformée de Fourier de l image lena_fft_phase = lena_fft / lena_fft_abs # centré lena_fft_phase_centre = numpy.fft.fftshift(lena_fft_phase) 6.1. Exemples de traitement d image 27
32 # transformée de Fourier inverse du module lena_abs = numpy.fft.ifft2(lena_fft_abs) # transformée de Fourier inverse de la phase lena_phase = numpy.fft.ifft2(lena_fft_phase) fig = plt.figure() ax1 = fig.add_subplot(2, 3, 1) plt.title( lena ) ax1.imshow(lena, cmap = mpl.cm.gray) ax2 = fig.add_subplot(2, 3, 2) plt.title( fft module ) ax2.imshow(normalog(lena_fft_abs_centre), cmap = mpl.cm.gray) ax3 = fig.add_subplot(2, 3, 3) plt.title( fft phase ) ax3.imshow(norma(lena_fft_phase_centre), cmap = mpl.cm.gray) ax5 = fig.add_subplot(2, 3, 5) plt.title( module ) ax5.imshow(normalog(lena_abs), cmap = mpl.cm.gray) ax6 = fig.add_subplot(2, 3, 6) plt.title( phase ) ax6.imshow(norma(lena_phase), cmap = mpl.cm.gray) plt.show() 28 Chapitre 6. Exemples
33 6.1.4 Filtrage Gradient Pour l opération gradient, on utilise ici une convolution selon chaque axe de l image entre l image et un filtre représentatif du gradient selon ces axes. import matplotlib as mpl import matplotlib.pyplot as plt import numpy import scipy import scipy.signal lena = scipy.lena() # définition des filtres fx = numpy.array([[-1, 0, 1]]) fy = numpy.transpose(fx) # convolutions lena_convol_x = scipy.signal.convolve2d(lena, fx, mode = same ) lena_convol_y = scipy.signal.convolve2d(lena, fy, mode = same ) lena_gradient = numpy.sqrt(lena_convol_x**2 + lena_convol_y**2) fig = plt.figure() ax1 = fig.add_subplot(1, 2, 1) plt.title( lena ) ax1.imshow(lena, cmap = mpl.cm.gray) ax2 = fig.add_subplot(1, 2, 2) plt.title( Gradient ) ax2.imshow(lena_gradient, cmap = mpl.cm.gray) plt.show() Transformations Rotation Dans scipy, il existe un module pour les images : scipy.ndimage. Dans ce module, on peut trouver différentes fonctions comme la rotation. La rotation est effectuée en utilisant une matrice de rotation et une interpolation en spline cubique est ensuite réaliser pour obtenir les valeurs des pixels de la nouvelle grille. import matplotlib as mpl import matplotlib.pyplot as plt import numpy import scipy import, lena = scipy.lena() # angle de rotation désiré angle = 30. # roations lena_30_degresf = scipy.ndimage.rotate(lena, angle, reshape = False) lena_30_degrest = scipy.ndimage.rotate(lena, angle, reshape = True) fig = plt.figure() 6.1. Exemples de traitement d image 29
34 ax1 = fig.add_subplot(1, 3, 1) plt.title( lena ) ax1.imshow(lena, cmap = mpl.cm.gray) ax2 = fig.add_subplot(1, 3, 2) plt.title( 30 degres\nnon redimensionne ) ax2.imshow(lena_30_degresf, cmap = mpl.cm.gray) ax3 = fig.add_subplot(1, 3, 3) plt.title( 30 degres\n redimensionne ) ax3.imshow(lena_30_degrest, cmap = mpl.cm.gray) plt.show() Transformation géométrique On peut créer ses propres déformation avec la fonction scipy.ndimage.geometric_transform, qui renvoie une image avec un système de coordonnées souhaité. Une interpolation en spline cubique est là aussi réaliser pour obtenir la valeur des pixels sur la nouvelle grille. import matplotlib as mpl import matplotlib.pyplot as plt import numpy import scipy import scipy.ndimage lena = scipy.lena() 30 Chapitre 6. Exemples
35 # définition du système de coordonnées def deformation(coordonnees): return (coordonnees[0], \ coordonnees[1] + (coordonnees[1] - lena.shape[1])/2.) # transformation géométrique lena_deform = scipy.ndimage.geometric_transform(lena, deformation) fig = plt.figure() ax1 = fig.add_subplot(1, 2, 1) plt.title( lena ) ax1.imshow(lena, cmap = mpl.cm.gray) ax2 = fig.add_subplot(1, 2, 2) plt.title( Deformation ) ax2.imshow(lena_deform, cmap = mpl.cm.gray) plt.show() 6.2 Résolution approchée d équations non linéaires Fonction scalaire Voyons comment approcher la solution d une équation du type f(x) = 0 avec f une fonction réelle quelconque. Considérons pour commencer la fonction scalaire f(x) = x exp( x) qui dispose d une racine comprise entre 0 et 1. La première étape consiste à déclarer cette fonction : 6.2. Résolution approchée d équations non linéaires 31
36 In [1]: import numpy as np In [2]: def f(x):...: """Fonction dont on cherche une racine."""...: return x-np.exp(-x) Pour se convaincre de l existence de cette racine, on peut par exemple tracer l allure de cette fonction entre 0 et 1 à l aide de matplotlib : In [3]: import pylab as plt In [4]: x = np.linspace(0,1,101) In [4]: plt.plot(x,f(x), b- ) In [5]: plt.grid(true) La fonction fsolve que nous allons utiliser pour résoudre notre problème est comprise dans le package SciPy/Optimisation : In [6]: import scipy.optimize as op L appel de cette fonction nécessite au minimum deux arguments, la fonction f précédemment déclarée et un point de départ x 0 de l algorithme, estimation initiale de la solution. En utilisant x 0 = 0.0 comme point de départ, la solution est ainsi : In [7]: op.fsolve(f,0.0) Out[7]: Chapitre 6. Exemples
37 6.2.2 Fonction vectorielle Une démarche strictement identique doit être suivie pour obtenir la solution à un système d équation non linéaires, à condition de n utiliser qu un seul argument (list ou tuple) pour stocker les différentes composantes du vecteur x = (x 1, x 2,..., x N ) considéré. En guise d exemple, considérons le système non-linéaire [1] formé par les fonctions f 1 (x 1, x 2 ) = x log 10 (x 1 ) x 2 2 et f 2 (x 1, x 2 ) = 2 x 2 1 x 1 x 2 5 x La déclaration de la fonction f est désormais classique : In [8]: def f(x):...: return [x[0]+3*log10(x[0])-x[1]**2,2*x[0]**2-x[0]*x[1]-5*x[0]+1] En considérant comme point de départ le vecteur x 0 = (5.0, 5.0), on obtient : In [9]: op.fsolve(f,(5.0,5.0)) Out[9]: array([ , ]) Références [1] B. Démidovitch et I. Maron, Eléments de calcul numérique, Editions MIR, Optimisation Un premier problème d optimisation Afin de tester les fonctionnalités des algorithmes d optimisation compris dans la bibliothèque SciPy, nous allons utiliser comme support une classique fonction de Rosenbrock bidimensionnelle : f(x 1, x 2 ) = (1 x 1 ) 2 + (x 2 x 2 1) 2 (6.1) Fonction de deux variables que nous étudierons sur l intervalle (x 1, x 2 ) [0; 2] [0; 2]. On commence donc par déclarer cette fonction comme n appelant qu un seul argument qui peut être une liste ou un tuple : In [1]: def f(x):...: """Fonction de Rosenbrock a deux variables"""...: return (1-x[0])**2+(x[1]-x[0]**2)**2 On définit ensuite l intervalle de variation de x 1 et x 2 à l aide de la fonction meshgrid de NumPy : In [2]: x1, x2 = np.meshgrid(np.linspace(0,2,201),np.linspace(0,2,201)) Le tracé en lignes de niveaux de cette fonction fait clairement apparaître l existence de cet optimum : In [3]: contourf(x1,x2,f([x1,x2]),linspace(0,1,21)) In [4]: colorbar() Ce qui donne : On peut alors chercher la coordonnée de cet optimum en utilisant la fonction fmin comprise dans la partie optimisation de la bibliothèque SciPy : In [5]: import scipy.optimize as op In [6]: %time op.fmin(f,(0.0,0.0)) Optimization terminated successfully. Current function value: Iterations: 67 Function evaluations: 129 CPU times: user 0.02 s, sys: 0.00 s, total: 0.02 s Wall time: 0.05 s Out[7]: array([ , ]) 6.3. Optimisation 33
38 La fonction fmin est basée sur l utilisation de l algorithme du simplexe, qui après 67 itérations et 129 évaluations de la fonction f a localisé un minimum au point (x 1, x 2 ) = (1.0, 1.0). Différents types de fonctions fmin existent dans SciPy, dont une qui utilise l algorithme du gradient conjugué, appelée fmin_cg : In [8]: op.fmin_cg(f,(0.0,0.0)) Optimization terminated successfully. Current function value: Iterations: 18 Function evaluations: 132 Gradient evaluations: 33 Out[8]: array([ , ]) Le résultat affiché précise par ailleurs le nombre d évaluations du gradient de la fonction f, calculé ici de manière approchée. Notons qu il est possible de fournir à la fonction fmin_cg l expression analytique du gradient de la fonction objectif, sous forme de fonction Python. Chacune des fonction fmin précédentes accepte certains arguments optionnels, comme par exemple le chemin parcouru par l algorithme. Dans le cas du simplexe, on peut ainsi afficher : In [9]: solsimplexe = op.fmin(f,(0.0,0.0),retall=1) Et le chemin suivit par l algorithme est stocké dans la variable solsimplexe[1]. Une fois ce chemin tracé, on obtient : Le même procédé peut être utilisé pour étudié le chemin suivi par le gradient conjugué, que l on peut superposer à celui suivi par le simplexe : 34 Chapitre 6. Exemples
39 6.3. Optimisation 35
40 6.3.2 Problème d optimisation de type moindres carrés Un problème très courant d optimisation est celui qui cherche à minimiser le résidu formé par la différence entre une fonction de structure donnée et un ensemble de points issus d expérimentations. Le critère le plus courant pour minimiser un tel résidu est celui dit, des moindres carrés, qui exprime cet écart sous la forme de la somme des carrés des écart en chaque point, soit par exemple : S(p) = N (y(x i, p) ỹ i ) 2 (6.2) i=1 avec S le critère servant de fonction objectif, y la fonction de structure connue (polynôme, spline, etc.) dépendante d un ensemble de paramètres p et ỹ les données expérimentales définies sur N points. Ce type très particulier de problème d optimisation bénéficie de méthodes numériques spécialement dédiées, dont celle de Levenberg-Marquardt [1,2] justement implémentée dans SciPy. Comprise dans la partie optimisation de SciPy, elle se nomme leastsq et prend comme argument la différence y(x i, p) ỹ i. Comme exemple pratique d application, on peut traiter les données expérimentales contenues dans le fichier donnees-moindrescarres.dat. On importe donc ces données à l aide de la fonction loadtxt de NumPy : In [1]: import numpy as np In [2]: donnees = np.loadtxt( donnees-moindrescarres.dat,skiprows=1) L option skiprows=1 sert ici à négliger la première ligne du fichier qui contient les entêtes. On extrait ensuite les informations, le temps t et la grandeur mesurée notée ỹ : In [3]: t, yb = donnees[:,0], donnees[:,1] L étape suivante consiste à tracé l évolution de y en fonction de t : In [4]: plot(t,yb, bo ) In [5]: grid(true) In [6]: xlabel(r $t$,size=20) In [7]: ylabel(r $\tilde{y}$,size=20) In [8]: title(r Donn\ {e}es exp\ {e}rimentales,size=18) Ce qui donne : L évolution des données ressemblant globalement à une exponentielle décroissante, la fonction utilisée pour les représenter sera de la forme : y(t, p) = p 1 exp( p 2 t) (6.3) Qui est fonction du temps et du vecteur des paramètres p = (p 1, p 2 ). On créé donc la fonction en question : In [9]: def y(t,p):...: """Exponentielle decroissante."""...: return p[0]*np.exp(-p[1]*t) Il faut ensuite créer la fonction résidu qui sera utilisée comme argument par leastsq et qui ne comprend comme argument que le vecteur des paramètres : In [10]: def residu(p):...: """Residu."""...: return y(t,p)-yb Et la fonction leastsq fonctionne directement sur la fonction residu, de la manière suivante : In [11]: LM = op.leastsq(residu,[1.0,1.0],full_output=1) L option full_output étant ici activée afin de tirer le maximum d informations du résultat, en premier lieux la valeur du vecteur des paramètres recherché : 36 Chapitre 6. Exemples
41 In [12]: LM[0] Out[12]: array([ , ]) Ce qui permet au passage de comparer la courbe d ajustement obtenue avec les données de départ : La seconde information contenue dans la variable LM est très importante puisqu il s agit de la matrice de covariance du résultat obtenu : In [13]: LM[1] Out[13]: array([[ , ],[ , ]]) D autres informations sont contenues dans la variable LM dont par exemple le nombre d appels de la fonction objectif : In [14]: LM[2][ nfev ] Out[14]: Références [1] Kenneth Levenberg (1944). A Method for the Solution of Certain Non-Linear Problems in Least Squares. The Quarterly of Applied Mathematics 2 : [2] Donald Marquardt (1963). An Algorithm for Least-Squares Estimation of Nonlinear Parameters. SIAM Journal on Applied Mathematics 11 : Optimisation 37
42 6.4 Equations différentielles Résolution approchée d une équation différentielle logistique La résolution approchée d équations ou de systèmes d équations différentielles peut être faite dans SciPy à l aide de la fonction odeint : In [1]: from scipy. import odeint Comme dans n importe quel autre logiciel de ce type (matlab,etc.), l équation différentielle ou le système différentiel doivent être écrits sous la forme d un système du premier du type : dy (x) = F (x, y) (6.4) dx avec y(x) = (y 1 (x),..., y N (x)) le vecteur des fonctions recherchées, dépendant de la variable x et F une fonction de forme quelconque. En guise d exemple, considérons une équation logistique simple de la forme : ( dy (t) = r y(t) 1 y(t) ) (6.5) dx K Pour les besoins de la résolution numérique, on considère que r = 1, 5 et K = 6. On créé alors la fonction F : In [2]: def F(y,t):...: """Equation logistique"""...: return 1.5*y*(1-y/6) Et la fonction odeint peut être appelée avec au minimum trois arguments, la fonction F, la condition initiale y 0 = y(t = 0) et le temps t comme variable principale : 38 Chapitre 6. Exemples
43 In [3]: y0 = 1.0 In [4]: t = linspace(0,5,201) In [5]: sol = odeint(f,y0,t) Et la fonction y recherchée peut alors être tirée du résultat : In [6]: y = sol[:,0] et tracée sur un graphique : Le système de Lotka-Volterra Proposées indépendamment par Alfred James Lotka en 1925 et Vito Volterra en 1926, les équations dites de Lotka- Volterra ou modèle proie-prédateur peuvent servir à reproduire les évolutions temporelles de deux populations animales, l une étant le prédateur de l autre. Si ces deux populations sont représentées par des variables contiunes x 1 et x 2, le système différentiel en question est alors : dx 1 dt (t) = x 1(t) (a b x 2 (t)) (6.6) Puis : dx 2 dt (t) = x 2(t) (c d x 1 (t)) (6.7) Pour les besoins de la résolution numérique, nous considérerons dans la suite que a = 2, b = 1, c = 1 et d = 0, 3. On déclare ainsi la fonction F sous forme vectorielle, en la faisant toujours dépendre de la variable temporelle même si ce n est pas le cas dans la formulation mathématique de départ : 6.4. Equations différentielles 39
44 In [1]: def F(x,t):...: """Systeme de Lotka-Volterra"""...: return [x[0]*(2-x[1]),-x[1]*(1-0.3*x[0])] En faisant varier le temps sur l intervalle t [0; 10] et en prenant comme condition initiale le vecteur x 0 = (2.0, 1.0) : In [2]: t = linspace(0,10,201) In [3]: x0 = [2.0,1.0] La résolution se fait alors de la même manière que précédemment : In [4]: lokvol = odeint(f,y0,t) In [5]: x1, x2 = lokvol[:,0], lokvol[:,1] Le tracé des évolutions de x 1 et x 2 en fonction du temps t donne : Ou encore sous forme paramétrique : 40 Chapitre 6. Exemples
45 6.4. Equations différentielles 41
46 42 Chapitre 6. Exemples
47 CHAPITRE 7 Quelques liens... Voici une liste de références pour les outils présentés lors de la formation. De cette manière, vous pourrez appronfondir les concepts vus pendant la formation. Vous pourrez y rencontrer un grand nombre d exemples libres d utilisation. Une excellente documentation python très détaillée et très didactique de Gérard Swinnen. La galerie matplotlib où de nombreux exemples sont détaillés. 43
48 44 Chapitre 7. Quelques liens...
49 Index broadcasting, 18 cmap, 25 contour, 21 contourf, 21 couleur, 20 courbes, 19 courbes de niveaux, 21 création de tableau, 13 date, 3 documentation, 43 dtype, 14 equation différentielle logistique, 38 equations différentielles, 38 equations non linéaires, 31 exemples, 25 filtrage, 29 fonction scalaire, 31 fonction vectorielle, 33 gradient, 29 gradient conjugué, 33 grille, 14 image, 25 indexing, 15 indice, 15 inline, 21 installation, 5 label, 20 latex, 19 Lena, 25 Levenberg, 36 Levenberg-Marquardt, 36 liens, 43 lieu, 3 ligne, 20 linewidth, 20 LM, 36 log, 26 Lotka, 39 Lotka-Volterra, 39 Marquardt, 36 masque, 15 Matplotlib, 19, 43 moindres carrés, 36 multiplication, 13 normalisation, 26 numpy, 13 numpy.arange, 13 numpy.array, 13 numpy.diag, 13 numpy.dot, 13 numpy.fft, 26 numpy.fft.fft2, 26 numpy.fft.fftshift, 26 numpy.fft.ifft2, 26 numpy.linspace, 19, 33 numpy.log, 26 numpy.meshgrid, 14, 21, 33 numpy.ones, 13 numpy.random.random, 13 numpy.random.random_integers, 15 numpy.transpose, 29 numpy.where, 25 numpy.zeros, 13 odeint, 38 op, 31, 33 op.fmin, 33 op.fsolve, 31 op.leastsq, 36 optimisation, 33 optimum, 33 organisation, 3 plot, 19 plt.grid, 20 plt.legend, 20 plt.xlabel, 20 45
50 plt.ylabel, 20 préalables, 5 préparation, 5 pyplot, 19 Python, 25 résidu, 36 résolution, 31, 38 redimensionner, 14 reshape, 14 Rosenbrock, 21, 33 rotation, 29 sélection, 25 scipy.integrat, 38 scipy.lena, 25 scipy.ndimage, 29 scipy.ndimage.geometric_transform, 30 scipy.ndimage.rotate, 29 scipy.optimize, 31, 33 scipy.signal, 29 scipy.signal.convolve2d, 29 seuillage, 25 shape, 14 simplexe, 33 slice, 17 slicing, 17, 25 tableau, 13 taille, 14 traitement d image, 25 transforamtions, 29 transformée de Fourier, 26 transformée de Fourier inverse, 26 transformation géométrique, 30 type, 14 Volterra, Index
Cours 7 : Utilisation de modules sous python
Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est
Plus en détailPython - introduction à la programmation et calcul scientifique
Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de
Plus en détailIntroduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
Plus en détailExercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT
Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,
Plus en détailChapitre 2 Le problème de l unicité des solutions
Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)
Plus en détailTP 1. Prise en main du langage Python
TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer
Plus en détailOptimisation, traitement d image et éclipse de Soleil
Kléber, PCSI1&3 014-015 I. Introduction 1/8 Optimisation, traitement d image et éclipse de Soleil Partie I Introduction Le 0 mars 015 a eu lieu en France une éclipse partielle de Soleil qu il était particulièrement
Plus en détailInitiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Plus en détailPrésentation du langage et premières fonctions
1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en
Plus en détailDécouverte de Python
Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détail3 Approximation de solutions d équations
3 Approximation de solutions d équations Une équation scalaire a la forme générale f(x) =0où f est une fonction de IR dans IR. Un système de n équations à n inconnues peut aussi se mettre sous une telle
Plus en détailAide - mémoire gnuplot 4.0
Aide - mémoire gnuplot 4.0 Nicolas Kielbasiewicz 20 juin 2008 L objet de cet aide-mémoire est de présenter les commandes de base pour faire rapidement de très jolis graphiques et courbes à l aide du logiciel
Plus en détailLES TYPES DE DONNÉES DU LANGAGE PASCAL
LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.
Plus en détailCours d Analyse. Fonctions de plusieurs variables
Cours d Analyse Fonctions de plusieurs variables Licence 1ère année 2007/2008 Nicolas Prioux Université de Marne-la-Vallée Table des matières 1 Notions de géométrie dans l espace et fonctions à deux variables........
Plus en détailPremiers pas avec Mathematica
Premiers pas avec Mathematica LP206 : Mathématiques pour physiciens I Année 2010/2011 1 Introduction Mathematica est un logiciel de calcul formel qui permet de manipuler des expressions mathématiques symboliques.
Plus en détailRappels sur les suites - Algorithme
DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................
Plus en détailSTAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailOM 1 Outils mathématiques : fonction de plusieurs variables
Outils mathématiques : fonction de plusieurs variables PCSI 2013 2014 Certaines partie de ce chapitre ne seront utiles qu à partir de l année prochaine, mais une grande partie nous servira dès cette année.
Plus en détailTP : Gestion d une image au format PGM
TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples
Plus en détailCours Informatique Master STEP
Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailMATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.
Page 1 de 9 MATLAB : COMMANDES DE BASE Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Aide help, help nom_de_commande Fenêtre de travail (Command Window) Ligne
Plus en détailSimulation de variables aléatoires
Chapter 1 Simulation de variables aléatoires Références: [F] Fishman, A first course in Monte Carlo, chap 3. [B] Bouleau, Probabilités de l ingénieur, chap 4. [R] Rubinstein, Simulation and Monte Carlo
Plus en détailSujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.
Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de
Plus en détailCalcul Formel et Numérique, Partie I
Calcul Formel et Numérique N.Vandenberghe nvdb@irphe.univ-mrs.fr Table des matières 1 Introduction à Matlab 2 1.1 Quelques généralités.......................... 2 2 Où trouver des informations 2 3 Opérations
Plus en détailGnuplot. Chapitre 3. 3.1 Lancer Gnuplot. 3.2 Options des graphes
Chapitre 3 Gnuplot Le langage C ne permet pas directement de dessiner des courbes et de tracer des plots. Il faut pour cela stocker résultats dans des fichier, et, dans un deuxième temps utiliser un autre
Plus en détailRésolution d équations non linéaires
Analyse Numérique Résolution d équations non linéaires Said EL HAJJI et Touria GHEMIRES Université Mohammed V - Agdal. Faculté des Sciences Département de Mathématiques. Laboratoire de Mathématiques, Informatique
Plus en détailExercices - Fonctions de plusieurs variables : corrigé. Pour commencer
Pour commencer Exercice 1 - Ensembles de définition - Première année - 1. Le logarithme est défini si x + y > 0. On trouve donc le demi-plan supérieur délimité par la droite d équation x + y = 0.. 1 xy
Plus en détailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailpyensae StockPrices September 1, 2015 1 Manipulation de séries financières avec la classe StockPrices
pyensae StockPrices September 1, 2015 1 Manipulation de séries financières avec la classe StockPrices La classe StockPrices facilite la récupération de données financières via le site Yahoo Finance ainsi
Plus en détailIntroduction à la présentation graphique avec xmgrace
Chapitre 6 Introduction à la présentation graphique avec xmgrace Contenu 6.1 Avant-propos....................... 71 6.2 Faire un simple graphe................. 72 6.3 Un graphe avec plusieurs courbes...........
Plus en détailTP 1 Introduction à Matlab Février 2009
1 Introduction TP 1 Introduction à Matlab Février 2009 Matlab pour «MATtrix LABoratory», est un logiciel qui a été conçu pour fournir un environnement de calcul numérique de haut niveau. Il est particulièrement
Plus en détailt 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :
Terminale STSS 2 012 2 013 Pourcentages Synthèse 1) Définition : Calculer t % d'un nombre, c'est multiplier ce nombre par t 100. 2) Exemples de calcul : a) Calcul d un pourcentage : Un article coûtant
Plus en détailPrécision d un résultat et calculs d incertitudes
Précision d un résultat et calculs d incertitudes PSI* 2012-2013 Lycée Chaptal 3 Table des matières Table des matières 1. Présentation d un résultat numérique................................ 4 1.1 Notations.........................................................
Plus en détailLes algorithmes de base du graphisme
Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............
Plus en détailCalcul Scientifique avec 3
ENSAM Bordeaux juin 2015 Calcul Scientifique avec 3 Installation - Prise en main Jean-Luc Charles - Éric Ducasse Arts & Métiers ParisTech, I2M "la programmation doit être un plaisir...", G. van Rossum
Plus en détailET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.
ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailBaccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé
Baccalauréat S ntilles-guyane 11 septembre 14 Corrigé EXERCICE 1 6 points Commun à tous les candidats Une entreprise de jouets en peluche souhaite commercialiser un nouveau produit et à cette fin, effectue
Plus en détailAnnexe commune aux séries ES, L et S : boîtes et quantiles
Annexe commune aux séries ES, L et S : boîtes et quantiles Quantiles En statistique, pour toute série numérique de données à valeurs dans un intervalle I, on définit la fonction quantile Q, de [,1] dans
Plus en détailTP 7 : oscillateur de torsion
TP 7 : oscillateur de torsion Objectif : étude des oscillations libres et forcées d un pendule de torsion 1 Principe général 1.1 Définition Un pendule de torsion est constitué par un fil large (métallique)
Plus en détailIMAGES NUMÉRIQUES MATRICIELLES EN SCILAB
IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB Ce document, écrit par des animateurs de l IREM de Besançon, a pour objectif de présenter quelques unes des fonctions du logiciel Scilab, celles qui sont spécifiques
Plus en détailSHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5
SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N
Plus en détailOptimisation et programmation mathématique. Professeur Michel de Mathelin. Cours intégré : 20 h
Télécom Physique Strasbourg Master IRIV Optimisation et programmation mathématique Professeur Michel de Mathelin Cours intégré : 20 h Programme du cours d optimisation Introduction Chapitre I: Rappels
Plus en détailÉquations non linéaires
Équations non linéaires Objectif : trouver les zéros de fonctions (ou systèmes) non linéaires, c-à-d les valeurs α R telles que f(α) = 0. y f(x) α 1 α 2 α 3 x Equations non lineaires p. 1/49 Exemples et
Plus en détailExercices Types Algorithmique et simulation numérique Oral Mathématiques et Algorithmique Banque PT Propositions de réponses
Exercices Types Algorithmique et simulation numérique Oral Mathématiques et Algorithmique Banque PT Propositions de réponses Exercice 0 print('\n ') n = 1234 q = 1234 // 10 # quotient de n par 10 r = 1234
Plus en détailNotes du cours MTH1101N Calcul I Partie II: fonctions de plusieurs variables
Notes du cours MTH1101N Calcul I Partie II: fonctions de plusieurs variables Fausto Errico Département de mathématiques et de génie industriel École Polytechnique de Montréal Automne 2012 Table des matières
Plus en détailINTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE
INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE Le schéma synoptique ci-dessous décrit les différentes étapes du traitement numérique
Plus en détailVision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007
Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................
Plus en détailhttp://cermics.enpc.fr/scilab
scilab à l École des Ponts ParisTech http://cermics.enpc.fr/scilab Introduction à Scilab Graphiques, fonctions Scilab, programmation, saisie de données Jean-Philippe Chancelier & Michel De Lara cermics,
Plus en détailReprésentation d un entier en base b
Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir
Plus en détailL informatique en BCPST
L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité
Plus en détailRésolution de systèmes linéaires par des méthodes directes
Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.
Plus en détailProgrammation linéaire
1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit
Plus en détailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Plus en détailNotes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables
Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables Guy Desaulniers Département de mathématiques et de génie industriel École Polytechnique de Montréal Automne 2014 Table des matières
Plus en détail8.1 Généralités sur les fonctions de plusieurs variables réelles. f : R 2 R (x, y) 1 x 2 y 2
Chapitre 8 Fonctions de plusieurs variables 8.1 Généralités sur les fonctions de plusieurs variables réelles Définition. Une fonction réelle de n variables réelles est une application d une partie de R
Plus en détailFormats d images. 1 Introduction
Formats d images 1 Introduction Lorsque nous utilisons un ordinateur ou un smartphone l écran constitue un élément principal de l interaction avec la machine. Les images sont donc au cœur de l utilisation
Plus en détailCours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Plus en détailCorrigé des TD 1 à 5
Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un
Plus en détailItems étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire
CHAPITRE N5 FONCTIONS LINEAIRES NOTION DE FONCTION FONCTIONS LINEAIRES NOTION DE FONCTION FONCTIONS LINEAIRES NOTION DE FONCTION Code item D0 D2 N30[S] Items étudiés dans le CHAPITRE N5 Déterminer l'image
Plus en détailFONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)
FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4) Bernard Le Stum Université de Rennes 1 Version du 13 mars 2009 Table des matières 1 Fonctions partielles, courbes de niveau 1 2 Limites et continuité
Plus en détailCalcul Formel et Numérique, Partie I
Calcul Formel et Numérique NicolasVandenberghe nvdb@irphe.univ-mrs.fr Table des matières 1 Introduction à Matlab 2 1.1 Quelques généralités.......................... 2 1.2 Où trouver des informations......................
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailTD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailFonctions de plusieurs variables
Maths MP Exercices Fonctions de plusieurs variables Les indications ne sont ici que pour être consultées après le T (pour les exercices non traités). Avant et pendant le T, tenez bon et n allez pas les
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Plus en détailCorrection de l examen de la première session
de l examen de la première session Julian Tugaut, Franck Licini, Didier Vincent Si vous trouvez des erreurs de Français ou de mathématiques ou bien si vous avez des questions et/ou des suggestions, envoyez-moi
Plus en détailContinuité et dérivabilité d une fonction
DERNIÈRE IMPRESSIN LE 7 novembre 014 à 10:3 Continuité et dérivabilité d une fonction Table des matières 1 Continuité d une fonction 1.1 Limite finie en un point.......................... 1. Continuité
Plus en détailExamen d informatique première session 2004
Examen d informatique première session 2004 Le chiffre à côté du titre de la question indique le nombre de points sur 40. I) Lentille électrostatique à fente (14) Le problème étudié est à deux dimensions.
Plus en détailCalculer avec Sage. Revision : 417 du 1 er juillet 2010
Calculer avec Sage Alexandre Casamayou Guillaume Connan Thierry Dumont Laurent Fousse François Maltey Matthias Meulien Marc Mezzarobba Clément Pernet Nicolas Thiéry Paul Zimmermann Revision : 417 du 1
Plus en détailComplément d information concernant la fiche de concordance
Sommaire SAMEDI 0 DÉCEMBRE 20 Vous trouverez dans ce dossier les documents correspondants à ce que nous allons travailler aujourd hui : La fiche de concordance pour le DAEU ; Page 2 Un rappel de cours
Plus en détailLa programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique
La programmation linéaire : une introduction Qu est-ce qu un programme linéaire? Qu est-ce qu un programme linéaire? Exemples : allocation de ressources problème de recouvrement Hypothèses de la programmation
Plus en détaila et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b
I Définition d une fonction affine Faire l activité 1 «une nouvelle fonction» 1. définition générale a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe
Plus en détailBac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)
Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures) Eercice 1 (5 points) pour les candidats n ayant pas choisi la spécialité MATH Le tableau suivant donne l évolution du chiffre
Plus en détailQuantification Scalaire et Prédictive
Quantification Scalaire et Prédictive Marco Cagnazzo Département Traitement du Signal et des Images TELECOM ParisTech 7 Décembre 2012 M. Cagnazzo Quantification Scalaire et Prédictive 1/64 Plan Introduction
Plus en détailFonctions de plusieurs variables
Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme
Plus en détailCours 9. Régimes du transistor MOS
Cours 9. Régimes du transistor MOS Par Dimitri galayko Unité d enseignement Élec-info pour master ACSI à l UPMC Octobre-décembre 005 Dans ce document le transistor MOS est traité comme un composant électronique.
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailSouad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/
Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation
Plus en détailTutoriel Mathematica Les graphiques
Tutoriel Mathematica Les graphiques Adaptation du tutoriel gratuit sur le Web par Éric Gaul, Dominic Boire et Issa Lizon (voir Médiagraphie). Modifié pour Mathematica 7 par Jean-Philippe Samson. Maintenant
Plus en détailCorrection du Baccalauréat S Amérique du Nord mai 2007
Correction du Baccalauréat S Amérique du Nord mai 7 EXERCICE points. Le plan (P) a une pour équation cartésienne : x+y z+ =. Les coordonnées de H vérifient cette équation donc H appartient à (P) et A n
Plus en détailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailDE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
Plus en détailBaccalauréat ES Pondichéry 7 avril 2014 Corrigé
Baccalauréat ES Pondichéry 7 avril 204 Corrigé EXERCICE 4 points Commun à tous les candidats. Proposition fausse. La tangente T, passant par les points A et B d abscisses distinctes, a pour coefficient
Plus en détailAnalyse de la vidéo. Chapitre 4.1 - La modélisation pour le suivi d objet. 10 mars 2015. Chapitre 4.1 - La modélisation d objet 1 / 57
Analyse de la vidéo Chapitre 4.1 - La modélisation pour le suivi d objet 10 mars 2015 Chapitre 4.1 - La modélisation d objet 1 / 57 La représentation d objets Plan de la présentation 1 La représentation
Plus en détailRecherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Plus en détailLes bases du langage Python
Laboratoire de mathématiques d'orsay 6 décembre 2010 Plan 1 Présentation de Python 2 Les types et les opérations de base 3 Les structures de contrôle 4 Les fonctions 5 Les chiers 6 Les classes 7 Les exceptions
Plus en détailC f tracée ci- contre est la représentation graphique d une
TLES1 DEVOIR A LA MAISON N 7 La courbe C f tracée ci- contre est la représentation graphique d une fonction f définie et dérivable sur R. On note f ' la fonction dérivée de f. La tangente T à la courbe
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailInitiation à l algorithmique
Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -
Plus en détailSOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique
SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique DOMAINE P3.C3.D1. Pratiquer une démarche scientifique et technologique, résoudre des
Plus en détail