Retour à Teachings

IS104 – Algorithmique Numérique

Cette page est consacrée au cours intégré d’Algorithmique Numérique intitulé IS104 réalisé en première année à l’ENSEIRB-MatMéca.

Intervenants pour 2020/2021

  • Groupe 1: Emmanuel Agullo (1,2,3), Martina Iannacito (4,5,6)
  • Groupe 2: Gilles Marait (1,2,3), Laurent Chancogne (4,5,6)
  • Groupe 3: Pierre Ramet (1,2,3), Marc Durufle (4,5,6)
  • Groupe 4: Marc Durufle (1,2,3), Mathieu Faverge (4,5,6)

Informations relatives au module

Liste des projets

  • Présentation de Numpy/Scipy
  • Projet 1 : Méthodes de calcul numérique / Limites de la machine
    Début : 3 Février, Fin : 10 Février, Remise : 21 Février
  • Projet 2 : Résolution de systèmes linéaires / Application à l’équation de la chaleur
    Début : 24 Février, Fin : 3 Mars, Remise : 7 Mars
  • Projet 3 : Compression d’image par l’algorithme de décomposition SVD
    Début : 10 Mars, Fin : 17 Mars, Remise : 21 Mars
  • Projet 4 : Non-linear systems of equations / Newton-Raphson Method
    Début : 24 Mars, Fin : 31 Mars, Remise : 6 Avril
    • Première version pour les enseignants informatique: 6 Avril (A soumettre sous le nom rapport.pdf)
    • Première version pour les enseignants d’anglais: 6 Avril
    • Discussion avec les enseignants d’anglais: 12 Avril (Déterminer avec le prof d’anglais)
    • Remise de la version finale aux enseignants anglais ET informatique: 16 Avril (A soumettre sous le nom rapport_final.pdf)
      Une semaine après le retour du prof d’anglais.
    • Attention: Pour ce projet, chaque étudiant doit rédiger une section du rapport et adosser son nom au titre de section qu’il a rédigé pour plus de clarté vis-à-vis du département de langue. Cela ne veut pas dire que les autres rapports sont rédigés et relus par une seule personne !!! 🙂
  • Projet 5 : Interpolation and integration methods / Cubic splines and surface interpolation
    Début : 7 Avril, Fin : 14 Avril, Remise : 25 Avril
  • Projet 6 : Résolution approchée d’équations différentielles / Modélisation de systèmes dynamiques
    Début : 28 Avril, Fin : 5 Mai, Remise : 9 Mai

Les dates de remises sont toutes en 2021 à 23:59:59 du jour donné. La remise des fichiers se fera sur Thor via la remise de devoir. Attention, il ne sera pas possible de déposer les fichiers après cette date. La non remise d’un projet vaut 0. Pensez donc à remettre éventuellement plusieurs versions du projet.

Quelques remarques sur les rendus.

  • Rapport:
    • Toutes figures/tables doivent être référencées. Toutes les figures et tables de vos rapports doivent non seulmeent posséder une légende claire, mais elles doivent être également référencées dans le texte. Toute figure ou table non référencée sera considérée comme absente du rapport.
    • Oubliez le souligné. Cela est réservé à l’écriture manuscrite où il est compliqué de faire des emphases. Privilégiez l’italique, le changement de fonte voire de couleur.
    • Pas de titre sans chapeau (même s’il est court). Les cascades de titres ne permettent pas de comprendre ce qui va être raconté dans la suite.
    • Les fautes d’orthographes sont des fautes professionnelles, donc inadmissible. Elles pourraient entraîner la non validation du rapport. L’utilisation des correcteurs orthographiques est un devoir.
    • La rédaction du rapport est l’oeuvre de tous, à chacun de relire ce qui est rendu si il souhaite être noté correctement.
  • Code:
    • Le code doit être clair et documenté
    • Chaque fonction doit être testée. Penser à utiliser
      if __name__ == '__main__':
      pour permettre le test de chacun de vos scripts python

Liens utiles

  • Aide-mémoire de fonctions Python, syntaxe du langage, liste des fonctions utiles, comment tracer une figure …), aide à la configuration de son environnement
  • Mini-lexique anglais-français sur le thème de l’algorithmique numérique et des mathématiques appliquées ( dico.pdf )
  • Le fichier python-mode.el permettant d’utiliser un mode python correct sour emacs. Le script utilisé pour décompresser les archives des projets et tester approximativement les fichiers de code.
  • Un fichier d’en-tête (format LaTeX) pouvant servir à rédiger les compte-rendus

  • D’autres documents de cours pour compléter l’enseignement peuvent être trouvés ici
L’ensemble des pages web d’IS104 est issu des pages web de David Renault.

Configuration de l’environnement

Utilisation de Python à travers Emacs Commande Bibl. Résultat C-c ! Lance l’interpréteur python dans un 2ème buffer Emacs C-c C-k Désigne le bloc de code autour du curseur comme la région courante C-c C-e Copie la région courante et l’exécute dans l’interpréteur C-x o Bascule entre plusieurs buffers Emacs affichés à l’écran

Fonctionnement des projets

Généralités Au cours du module d’IS 104, il sera demandé de réaliser un certain nombre de travaux en équipes appelés ici projets. Ces projets sont destinés à être réalisés en moins de deux semaines, par des équipes de 4 ou 5 personnes. Chacun de ces projet consiste en la réalisation de trois éléments distincts : …

Présentation de Numpy/Scipy

Il existe un certain nombre de versions de Python installées sur les machines de l’ENSEIRB. Les exercices de cette feuille sont basés sur la version 3. Avant de commencer cette feuille, se référer à la page de configuration pour mettre en place l’environnement de travail. Remarques : Toutes les zones de code sont copiables à …

Aide mémoire Numpy/Scipy

Cette partie comporte une liste de fonctions et commandes du langage Python (ainsi que de ses bibliothèques Numpy et Scipy) qui sont généralement utilisées lors de la composition d’algorithmes numériques. Pour mémoire, les documentations de référence de ces bibliothèques sont disponibles aux adresses suivantes : http://docs.scipy.org/doc/numpy/referencehttp://docs.scipy.org/doc/scipy/reference Manipulation globale Commande Bibl. Résultat import file   Importe le …

Syntaxe du langage Python

Import des bibliothèques Afin d’utiliser les bibliothèques mathématiques de python, il est nécessaire de les importer (de manière équivalente à la primitive include en langage C). La manière recommandée d’importer une bibliothèque comm0e numpy est la suivante : import numpy as np; Ici, np est un alias pour le nom de la bibliothèque numpy. Après …

Projet 1 : Méthodes de calcul numérique / Limites de la machine

Il est conseillé de lire entièrement chaque partie avant de s’atteler à la tâche. Le but de ce projet consiste à évaluer les problèmes qui peuvent apparaître lors de l’utilisation d’opérations élémentaires, voire d’algorithmes plus poussés, sur des nombres flottants. la première partie s’intéresse à trouver des exemples dans lesquels les opérations élémentaires sont insuffisamment …

Projet 2 : Méthode du gradient conjugué / Application à l’équation de la chaleur

Le but de ce projet consiste à implémenter des algorithmes derésolution de systèmes linéaires de grande taille, et à les appliquer à un problème de résolution d’équation aux dérivées partielles. Dans ce devoir, on considère uniquement des systèmes linéaires symétriques, définis positifs et creux (ne comportant que relativement peu d’éléments non nuls), et on exploite …

Projet 3 : Compression d’image à travers la factorisation SVD

Le but de ce projet consiste à programmer un algorithme permettant de faire de la compression d’images en utilisant des techniques matricielles basée sur la factorisation SVD. Ce type d’algorithme est à relier aux algorithmes de compression avec pertes, dont le plus connu est certainement l’algorithme de compression JPEG, lui-même basé usuellement sur la Discrete …

Projet 4 : Non-linear systems of equations / Newton-Raphson method

The goal of this project is to program algorithms dedicated to the research of roots of systems of non-linear equations. The method promoted here is the Newton-Raphson algorithm, and the goal is to evaluate the assets and liabilities of such a solution. This shall be done by testing the method in different settings. In the …

Projet 5 : Interpolation and integration methods / Cubic splines and surface interpolation

Due to the Coronavirus pandemia, I put here some supports for the project that you should study before starting the project. Any questions will be answered by your teacher on the Discord server. Chapter 7 and 8 of « Methodes Numeriques, Algorithmes, analyse et applications ». The book is available on my enseirb account in ~mfaverge/public_html/IS104/Methodes-Numeriques-Algorithmes-analyse-et-applications.pdf The …

Projet 6 : Résolution approchée d’équations différentielles / Modélisation de systèmes dynamiques

en raison de la pandémie de Coronavirus, vous trouverez ci-dessous les supports additionnels pour le projet. Le chapitre 10 de « Methodes Numeriques, Algorithmes, analyse et applications ». Le livre est disponible sur mon compte à l’enseirb ~mfaverge/public_html/IS104/Methodes-Numeriques-Algorithmes-analyse-et-applications.pdf Les slides de présentation de ce chapitre sont disponibles ici. Ils sont également disponibles sur mon compte à l’enseir …