Université Moulay Ismail Faculté des Sciences Département de Physique Meknès Co

Université Moulay Ismail Faculté des Sciences Département de Physique Meknès Cours d’Initiation à Maple et à la Simulation Numérique en Physique Filière SMP Semestre 6 Année Universitaire 2020-2021 I. Essaoudi / M. Sabbane, Département de Physique Initiation à Maple et à la Simulation Numérique en Physique 2 10 10 14 23 28 35 48 53 53 57 61 Chapitre Introductif : Rappel sur l'algorithmique Partie I : Initiation à Maple Chapitre I : Initiation à Maple Chapitre II : Utiliser Maple Chapitre III : calcul différentiel CHAPITRE IV : CALCUL ALGEBRIQUE CHAPITRE V : LE GRAPHISME SOUS MAPLE Chapitre VI : Eléments du langage de programmation Partie II : Simulation Numérique Chapitre VII : Simulation numérique et calcul scientifique Chapitre VIII : La simulation par la méthode de Monte-Carlo Chapitre IX : Méthodes de Monte-Carlo en Physique Statistique Chapitre X : Dynamique moléculaire 69 2 Chapitre Introductif : Rappel sur l'algorithmique I. Présentation générale Un algorithme est une succession d'étapes qui interviennent dans la résolution d'un problème quelconque en utilisant un programme informatique. La mise en pratique de l'algorithme passe par l'écriture d'un programme, un fichier texte, en utilisant un langage de programmation. Le programme est compilé pour donner une commande exécutable par le système d'exploitation de l'ordinateur. En calcul scientifique, ces notions sont très répandues et l'exploitation de l'ordinateur exige une bonne maîtrise de ces techniques. Généralement, les algorithmes sont conçus par des spécialistes. Pour les exploiter, il suffit de les faire implémenter en des programmes exécutables par la machine. Dans la vie courante, un algorithme peut par exemple prendre des formes très variées comme :  d'une recette,  d'un mode d'emploi,  d'une fiche technique de montage,  d'une composition musicale,  d'un texte de loi,  d'un itinéraire routier. N.B : un algorithme est le plan d’un programme informatique ! II. Structure d’un algorithme L’algorithme est une succession d’instruction élémentaire organisée et ordonnée. Il s’écrit sous forme d’un texte contenant des lettres et des symboles. Le texte final forme un plan préliminaire pour écrire un programme informatique. Algorithme NomAlgorithme Début ... action_1 ... action_2 ... action_n Fin La première ligne donne le nom de l'algorithme. Le corps de l’algorithme est délimité par les mots clés « Début » et « Fin ». Les lignes désignés par « … action_i » sont des instructions, elles désignent des lignes de traitement. Les données d’entrée de l’action « … action_i » sont toutes les données qui la précèdent. Alors que son résultat sera considéré comme entrée aux actions suivantes. 3 En général, une ligne d’action peut s’écrire sur plusieurs lignes de texte. Ainsi, pour délimiter les instructions, il est très utile d’utiliser un symbole convenable à la fin de chaque instruction. Pour la majorité des langages de programmation, ce symbole est « ; ». Donc, il serait très commode de l’utiliser comme fin d’instruction en algorithmique. Le vocabulaire utilisé pour élaborer un algorithme n’est pas nécessairement standard. Toutefois, l’enchaînement des instructions est indispensable. Par exemple, on peut utiliser les mots suivant selon leur usage : : saisir des données : afficher des données : renvoyer un résultat : les sélections : un traitement itératif : un traitement répété  Lire  Ecrire  Renvoyer  Si / Si Non  Pour  Tant que  Répète : un traitement répété Éventuellement, les noms des fonctions mathématiques usuelles sont utilisés alors que les noms des variables sont laissés au libre choix de l’auteur de l’algorithme. Néanmoins, il est très utile de se limiter à des noms de variables claires et faciles à retenir pour ne pas se perdre au moment de l’implémentation de l’algorithme. Les instructions sont une combinaison de mots clés et d’opérateurs. Les opérateurs sont les opérateurs arithmétiques (+, -, *, / ), logiques ( AND, OR, NOT) (ET, OU, NON), les opérateurs relationnels (<, <=, >, >=, =, <>) plus l’opérateur d’affection. L’opérateur d’affectation est souvent différent de celui de la comparaison, il est noté en algorithmique par le symbole «  » Exemple : Elaborer un algorithme pour calculer la somme de deux nombres réels. Algorithme SommeRelle Début Somme, X, Y sont des réels ; Lire X ; Lire Y ; Somme  X + Y ; Ecrire(Somme) ; Fin III. Les Variables Une variable est constituée d'un nom et d'un type de contenu. Les variables peuvent être simples ou composées. Les différents types de variables simples, utilisées en informatique, sont : booléens, caractères, chaînes de caractères, nombres entiers, nombres réels à précision simple, nombres réels à haute précision, etc. Les variables composées sont de deux sortes : 4  Les structures qui regroupent des données simples de types différents ;  Les tableaux qui regroupent des données simples de même type. Les langages actuels de programmation acceptent la déclaration des variables au fur et mesure du développement du programme. Pour souci de clarté, il est très intéressant de déclarer les variables utilisées au début de l’algorithme. Quand l'algorithme sera traduit en programme cette déclaration aura d'autres avantages : réservation de l'espace mémoire correspondant au type, possibilité de vérifier le programme du point de vue de la cohérence des types, etc. Les variables utilisées par un algorithme sont de deux types : Les variables intrinsèques, internes à l’algorithme, ou les variables extrinsèques, externes à l’algorithme. Les variables internes sont déclarées dans le corps de l’algorithme et ne sont utilisées qu’en local. Les variables externes sont des données d’entrée pour l’algorithme. Elles sont passées comme paramètres à l’algorithme si non elles sont d’ordre général et sont communes à tous les algorithmes. Pour illustrer cette description, voyons l’exemple suivant : Algorithme Factoriel( n est entier) I, F sont des entiers, Début F  1 ; Pour I  1 à n F  F * I ; Fin Pour Renvoyer (F) ; Fin L’algorithme ci-dessus calcul le factoriel d’un nombre entier « n ». Nous distinguons la variable externe « n » passée comme paramètre d’entrée. Les variables internes, I et F, sont déclarées et utilisées dans le corps de l’algorithme. Le résultat, la valeur de la variable F, est renvoyée comme sortie de l’algorithme. IV. Traitement sélectif et Instructions conditionnelles L'instruction de la sélection est une structure très importante dans le traitement algorithmique. Elle permet d'orienter le développement de l'algorithme selon les conditions prédéfinies ou obtenues comme résultats. Les suites d'instructions, « Si »... « Alors » … « Sinon » … « Fin Si », permettent de conditionner l'exécution de certaines instructions. L'implémentation de ces instructions se fait selon le besoin IV.1. Sélection simple Si condition alors instruction; // Exécuter dans le seul cas où la condition est vrai Fin Si 5 Exemple : Algorithme Inverse x, y sont des réels ; Début Lire x ; Si x<>0 alors y  1/x ; Fin si ; Ecrire(y) ; Fin // l'instruction à exécuter si la condition est vrai // l'instruction à exécuter si la condition est fausse. IV.2. Sélection double Si condition alors instruction 1; Sinon instruction 2; FinSi Exemple : Algorithme Inverse x, y sont des réels ; Début Lire x ; Si x<>0 alors y  1/x ; Ecrire(y) ; Sinon Ecrire(" Nombre nom inversible ") ; Finsi ; Fin IV.3. Sélection multiple Si condition_1 alors instruction 1; // l'instruction à exécuter si la condition_1 est vrai Sinon Si condition_2 instruction 2; // l'instruction à exécuter si la condition_2 est vrai. Sinon Si condition_3 instruction 3; // l'instruction à exécuter la condition_3 est vrai. . . . Sinon condition_n instruction n; // l'instruction à exécuter lors du dernier cas. Fin Si Exemple : 6 Algorithme EtatPhysiqueEau Temperature est un réel Début Si Temperature <0 Ecrire("Etat solide") ; Sinon Si Temperature = 0 Ecrire("Transition de phase solide ­ liquide") ; Sinon Si Temperature > 0 ET Temperature <100 Ecrire("Etat liquide ") ; Sinon Si Temperature = 100 Ecrire("Transition de phase liquide ­ gaz") ; Si Non Ecrire("Etat gazeux") ; FIN SI Fin V. Traitement répétitif et les boucles Le rôle des boucles est de répéter l’exécution d'un bloc d'instructions plusieurs fois. Le nombre de répétition peut être défini comme un nombre entier ou laissé indéfini lorsque l'arrêt de la répétition est conditionné par la réalisation d'un événement. Reprenons l'exemple de la section (III) pour calculer le factoriel d'un nombre entier. La boucle « Pour … Fin Pour » définie comme suit : Pour I  1 à n Faire F  F * I ; Fin Pour exécute l'instruction « F  F*I » pour toutes les valeurs de I = 1, 2, …, n. En général, il existe trois types de boucles V.1. La boucle « Pour … Fin Pour » Cette boucle itérative utilise un compteur qui parcourt une intervalle de nombre Borne_1, Borne_2 selon le pas d’avancement choisi. Normalement il y a pas d’ordre précis entre les deux bornes seulement il faut les harmoniser avec le pas d’avancement pour que la boucle s’arrête si non elle continuera à l’infini. Exemple Pour i1 à 10 par 1 Faire Ecrire(i) ; Fin Pour Pour uploads/Sante/ smp-s6-phys-num-essaoudi.pdf

  • 29
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Nov 16, 2022
  • Catégorie Health / Santé
  • Langue French
  • Taille du fichier 1.9370MB