Actuellement, il existe plusieurs outils de calculs mathématiques dans les différents systèmes d’exploitation comme Windows, Linux et même Android. Ces outils intègrent des implémentations algorithmes mathématiques dans différents domaines. Ils permettent d’exécuter les différents calculs numériques du simple au complexe par des commandes avec des syntaxes simples et interprétables. En effet, l’évolution des capacités de calculs soit en local ou même on cloud a encouragé l’utilisation de ces outils pour la résolution des problèmes de modélisation mathématiques complexes. Cependant, nous trouvons que ces outils de calculs mathématiques ce varie entre gratuites et payantes, locales, partagées ou on ligne autrement dit sous cloud.
L’objectif de ce cours est de familiariser les étudiants des filières de Mathématiques et Informatique avec quelques outils de programmation pour les mathématiques tels que : MATLAB, SCILAB et Wolfram Mathematica. Dans ce contexte, nous détaillons dans ce cours les différents aspects et fonctionnalités
du MATLAB en se focalisons sur les bibliothèques de mathématiques les plus populaires. Ensuite nous citons les grandes différences entre les outils Scilab et MATLAB ainsi que les modalités de passage vers l’outil Scilab. En fin, nous présentons l’outil Mathematica qui permet le calcul formel par l’utilisation des expressions mathématiques sous forme symbolique ainsi que le calcul numérique. Dans la deuxième partie, nous présentons des exemples d’applications et techniques de solution de quelques problèmes en mathématiques comme le calcul algébrique, les polynômes et les fonctions. On note aussi que les solutions proposées dans ce support de cours sont développées sous MATLAB avec quelques exemples sous Mathematica. Entre autres, nous avons ignoré les solutions sous Scilab vu la grande vraisemblance avec celles en MATLAB.
Introduction
Actuellement, il existe plusieurs outils de calculs mathématiques dans les différents systèmes d’exploitation comme Windows, Linux et même Android. Ces outils intègrent des implémentations algorithmes mathématiques dans différents domaines. Ils permettent d’exécuter les différents calculs numériques du simple au complexe par des commandes avec des syntaxes simples et interprétables. En effet, l’évolution des capacités de calculs soit en local ou même on cloud a encouragé l’utilisation de ces outils pour la résolution des problèmes de modélisation mathématiques complexes. Cependant, nous trouvons que ces outils de calculs mathématiques ce varie entre gratuites et payantes, locales, partagées ou on ligne autrement dit sous cloud.
L’objectif de ce cours est de familiariser les étudiants du 1ére Années Mathématiques et Informatique avec quelques outils de programmation pour les mathématiques tels que : MATLAB, SCILAB et Wolfram Mathematica. Dans ce contexte, nous détaillons dans ce cours les différents aspects et fonctionnalités du MATLAB en se focalisons sur les bibliothèques de mathématiques les plus populaires. Ensuite nous citons les grandes différences entre les outils Scilab et MATLAB ainsi que les modalités de passage vers l’outil Scilab. En fin, nous présentons l’outil Mathematica qui permet le calcul formel par l’utilisation des expressions mathématiques sous forme symbolique ainsi que le calcul numérique.
Dans la deuxième partie, nous présentons des exemples d’applications et techniques de solution de quelques problèmes en mathématiques comme le calcul algébrique, les polynômes et les fonctions. On note aussi que les solutions proposées dans ce support de cours sont développées sous MATLAB avec quelques exemples sous Mathematica. Entre autres, nous avons ignoré les solutions sous Scilab vu la grande vraisemblance avec celles en MATLAB.
Partie I
MAITRISE des Logiciels : Matlab, Scilab et Mathematica
Chapitre I : L’outil Matlab (MAT rix LAB oratory)
1. Introduction
La première apparition de l’outil de programmation « MATLAB » se date dans à la fin des années 1970 par le mathématicien informaticien américain Cleve Barry Moler. Son nom a étai adopté par la combinaison des termes « Mat rix Lab oratory », ce qui signifie un atelier de calculs à base matricielle.
L’outil de programmation MATLAB se base sur un langage de script hébergé dans son environnement de développement. En effet, le terme MATLAB est utilisé pour décrire le langage de script utilisé ainsi que l’environnement utilisé. En pratique, il est utilisé à des fins de calcul numérique, il permet de manipuler des matrices, d'afficher des courbes et des données, de mettre en œuvre des algorithmes, de créer des interfaces utilisateurs, et peut s’interfacer avec d’autres langages de programmation tels que : C, C++, Java, et Fortran. De point systèmes d’exploitation, il est disponible sur la plupart des noyaux comme Linux, Windows et même sur Android avec une variété d’offres et de fonctionnalités selon la version et la licence acquise. Dans ce support, nous avons utilisé la version 2014b(:8.4.0.x) sur Windows 64bits pour l’exécution des exemples et les interfaces d’illustrations.
2. Description du MATLAB
2.1. Philosophie du MATLAB
Actuellement MATLAB est largement utilisé dans la communauté de recherche en tant qu’un environnement de calculs et de simulation pour les systèmes complexes et aussi comme un langage de programmation et de développements des interfaces informatiques. Cependant, malgré qu’il ait était conçu initialement pour le calcul intensif dans ces premières versions sa philosophie à lui permettre de bien adapter et cohabiter avec les exigences de développement accrues dans le domaine informatique et traitement de données. Il se repose sur les principes suivants :
- L’unité élémentaire de traitement c’est la matrice pour n’importe quelle donnée. Il gère les tableaux d’éléments de différents types comme les tableaux d’entiers, de réels, de texte, de variables logiques …etc.
- Il est un environnement de calcul et de visualisation à la fois et même il permet l’élaboration des applications informatiques et des modèles de simulation.
- Il est un langage interprété, il propose des facilités de programmation et de visualisation, ainsi qu’un grand nombre de fonctions réalisant diverses méthodes numériques.
2.2. IDE du MATLAB
L’interface de l’environnement MATLAB est très conviviale et elle s’évolue avec la progression des systèmes d’exploitation dans les deux contextes d’interfaces : Utilités et utilisabilités. Elles contiennent cinq espaces ou interfaces munis d’une barre de tâches multi onglets comme la présente la Figure1. Nous présentons une brève description de chaque interface dans les sections suivantes.
Abbildung in dieser Leseprobe nicht enthalten
Figure 1. Interface de l’environnement MATLAB V.R2014b
2.2.1. Le Répertoire de Travail « Current Folder »
Cette interface permet la visualisation du répertoire de travail en cours. Le Répertoire de travail par défaut pour MATLAB sur Windows est « C:\Users\xxxx\Documents\MATLAB ». Cependant, nous trouvons aussi dans cette interface une barre de taches qui permet d’ouvrir, de créer, d’accéder et de modifier les fichiers et les répertoires. Entre autres, nous pouvons aussi exécuter toutes ces fonctionnalités en mode ligne de commande. Le Tableau 1 présente quelques commandes qui permettent la gestion du contenu de Répertoire de travail.
Abbildung in dieser Leseprobe nicht enthalten
Tableau 1. Quelques Commandes pour la gestion du « Répertoire de Travail »
2.2.2. L’espace de Travail « Workspace »
Cette interface permette l’affichage du contenu de la mémoire ou simplement les variables de la session en cours. Elle permet aussi, la visualisation du contenu de chaque variable en mode graphique. Entre autres, l’environnement permet aussi d’afficher la liste des variables avec leurs descriptions en mode ligne de commandes. Le Tableau 2 présente quelques commandes qui permettent l’affichage et la gestion du contenu du mémoire « Workspace ».
Abbildung in dieser Leseprobe nicht enthalten
Tableau 2. Quelques Commandes pour la gestion du mémoire « Workspace »
2.2.3. Ligne de commande « Commande Window »
C’est l’interface la plus utilisée dans la MATLAB. Elle assure efficacement l’utilité et l’utilisabilité de l’environnement par sa simplicité de fonctionnement ainsi que l’efficacité d’affichage et de visualisation dans le mode ligne de commande. Toutes les commandes MATLAB sont écrites en « minuscule » avec un système d’autocorrection très pratique (nous notons que le système d’autocorrection est intégré seulement dans les versions récentes du MATALB). Le Tableau 3 présente quelques commandes qui permettent la gestion de l’espace « Commande Window ».
Parmi les points forts du l’environnement MATLAB est la possibilité de la sauvegarde permanente du contenu des variables d’une session données dans des fichiers binaires appelés « mat-files » sur disque. Cette particularité est très pratique surtout pour les matrices de grandes dimensions.
Entre autres, l’environnement MATLAB intègre un module d’aide « Help » très performant qui fonctionne en mode graphique et mode ligne de commande
Abbildung in dieser Leseprobe nicht enthalten
Tableau 3. Quelques commandes pour la gestion de l’espace ligne de commande
2.2.4. L’éditeur MATLAB
Cette interface présente l’éditeur textuel fourni dans l’environnement MATLAB. Il offre l’espace est les outils nécessaires pour l’écriture des scripts et des fonctions MATLAB. La figure 2 présente les différentes fonctionnalités offertes par cet éditeur de texte. Notons aussi que l’exécution et l’interprétation des commandes ou les lignes de scripts sont effectuées ligne par ligne. Avec l’extension des scripts et fonctions MATLAB est « .m » avec la possibilité d’exécution de ces derniers en mode ligne de commande.
Abbildung in dieser Leseprobe nicht enthalten
Figure 2. Les fonctionnalités de l’éditeur MATLAB V.R2014b
2.2.5. L’historique « Command history »
C’est l’interface permet de garder toutes les commandes saisies dans l’espace ligne de commande. Ces sauvegardes sont organisées par session. Ces sauvegardes sont très utiles pour les commandes complexes et les données volumineuses. En plus cette interface offre des fonctionnalités en mode graphique qui permette la recherche et la gestion du contenu archivé.
3. Mode d’exécution du MATLAB
3.1. Syntaxe d’une ligne d’instruction
La syntaxe de MATLAB est simple, elle est fondée sur la langue Anglaise avec des caractères minuscule et sensible à la casse. Une instruction MATLAB est constituée soit : d’un appel d’une fonction avec ou sans paramètres, exécution d’un script, une structure de programmation ou évaluation des expressions mathématiques avec des variables et des constantes. Les instructions sont exécutées dans l’espace « ligne de commandes baptisée par le sigle « >> » qui signifie que l’interpréteur est prêt pour exécution. Cependant, dans la saisie des instructions, nous trouvons :
- Plusieurs instructions MATLAB peuvent figurer sur une même ligne. Il faut les séparer par une virgule ou par un point-virgule.
- Si une instruction est précédée du symbole % l’instruction est ignorée par MATLAB, il considère comme commentaire.
- Si une commande est trop longue pour tenir sur une ligne, il est possible de poursuivre sur la ligne suivante en terminant la ligne par 3 points (. . .).
Exemple :
Abbildung in dieser Leseprobe nicht enthalten
3.2. Les Variables sous MATLAB
Le langage MATLAB ne requiert aucune déclaration préalable de type de variable. Lorsque Matlab rencontre un nouveau nom de variable, il crée la variable correspondante et y associe l'espace de stockage approprié dans l’espace de travail « Workspace ». Si la variable existe déjà, MATLAB change son contenu, et lui alloue un nouvel espace de stockage en cas de redimensionnement. Aussi, les variables sont définies à l'aide d'expressions ou des fonctions.
Cependant, nous trouvons des variables prédéfinies dans MATLAB ; le tableau 4 présente quelques exemples de ces variables ; dans le cas de conflits entre une variable locale et prédéfinie, la variable locale masque la variable prédéfinie. En fin, Matlab utilise une variable prédéfinie appelée « ans » pour toutes les évaluations non affectées.
Abbildung in dieser Leseprobe nicht enthalten
Tableau 4. Quelques variables prédéfinies en MATLAB
Chapitre II : La Programmation sous MATLAB
1. Introduction
Les programmes sous MATLAB s’appellent souvent des « scripts », car ils n’ont pas la structure type standard d’un programme. En effet, le script MATLAB ne contient pas une partie déclarative et même un entête du programme. Réellement, le script MATLAB est beaucoup plus un ensemble d’instructions ordonnées qu’un programme structuré. La programmation en MATLAB est beaucoup plus simple, elle n’a pas des syntaxes et des règles sémantiques très rigoureuses. En effet, parmi les points forts de la programmation sous MATLAB, nous trouvons le principe de la déclaration automatique des variables. Cette fonctionnalité est très pratique pour le calcul intensif, car il permet de surmonter le problème d’espace occupé par les structures statiques telles que les tableaux et les matrices dans les langages de programmation traditionnelles. Cependant, cette solution peut engendrer des erreurs dans l’évaluation des expressions de calculs dans le cas échéant.
2. Le Typage de Données
2.1. Les Types de données standards sous MATLAB
Comme nous avons présenté auparavant, l’unité de base utilisée est les matrices. En effet, nous n’avons pas une variable élémentaire dans MATLAB, mais nous avons une de matrice X[1,1] qui représente la variable X. Cependant, pour les types de données, MATLAB utilise trois types standards :
- Le type « double » : qui représente les nombres en général : réel et entier et même complexe avec deux valeurs : partie réelle et partie imaginaire. Ce type est codé en 8 octets sous la norme IEEE 754 (virgule flottante sur 64 bits) même pour les valeurs entières.
- Le type « char » : qui représente les caractères et les chaines de caractères. En effet, une chaine de caractères sous MATLAB est tout simplement un tableau de caractères. Ce type est codé sur 02 octets pour chaque caractère en utilisons la codification Unicode.
- Le type « logical » : qui représente les deux valeurs logiques « vrai » et « faux » qui sont représentées par 1 et 0 respectivement. Ce type est codé sur un seul octet.
La figure 3 représente une capture d’écran sur les types et l’espace alloué pour les variables crées avec les instructions MATLAB suivantes :
Abbildung in dieser Leseprobe nicht enthalten
Figure 3. Exemple des types de données de MATLAB
2.2. Le typage de données
MATLAB effectue ce que l'on appelle du typage dynamique. Il adapte le type des opérateurs de manière à permettre aux opérations de s'effectuer. Cette pratique a des avantages comme des inconvénients.
- Le programmeur n’est pas obligé de définir à l'avance le type de chaque variable et d'être coincé tout au long de l’exécution par ce type.
- MATLAB effectue des conversions de type implicites sans le signaler, ce qui peut augmenter le temps d'exécution et parfois mener à des résultats surprenants.
Cependant, il est possible de forcer Matlab d'exécuter des conversions explicites afin de minimiser l’espace alloué aux variables ou de limiter l’espace de représentativité des variables. Le Tableau 5 présente les fonctions de typage de données.
Abbildung in dieser Leseprobe nicht enthalten
Tableau 5. Les fonctions de typage de données
Exemple :
Abbildung in dieser Leseprobe nicht enthalten
Cependant, nous notons aussi que l’utilisation de typage de donnée doit être effectué avec prudence, car nous avons limité l’espace de représentativités des variables. L’exemple suivant présente l’impact du typage de données sur les résultats des expressions mathématiques
Exemple :
Abbildung in dieser Leseprobe nicht enthalten
3. Les Entrées/Sorties sous MATLAB
3.1. Les Masques d’affichage
Bien que les valeurs numériques sont codées sur 64bits, l’environnement MATLAB permet de paramétrer l’affichage des résultats numériques à l’aide d’une fonction de formatage. Cette fonction nous permet de contrôler le format de sortie des valeurs numériques affichées dans l’interface de la ligne de commande. Nous notons aussi que la fonction de formatage affecte uniquement la façon dont les nombres sont affichés, pas la façon dont MATLAB les calculent où les enregistrent.
Syntaxe :
Abbildung in dieser Leseprobe nicht enthalten
Le Tableau 6 présente les différentes possibilités d’affichage avec la commande ou la fonction « format ».
Abbildung in dieser Leseprobe nicht enthalten
Tableau 6. Les différentes options de la commande « format"
3.2. Lecture de données
Généralement l’affectation des valeurs aux variables s’effectue soit par des expressions mathématiques, par lecture sur clavier ou par chargement à partir des fichiers de sauvegarde binaires « .mat ». En MATLAB, la fonction qui permet d’affecter les valeurs d’une variable par lecture sur clavier est appeler « input ». Elle permet la lecture des valeurs saisies par utilisateurs soit en mode standard avec typage dynamique ou en imposant un mode de typage. En plus, elle permet aussi d’insérer un message de lecture.
Syntaxe :
Abbildung in dieser Leseprobe nicht enthalten
Exemples :
Abbildung in dieser Leseprobe nicht enthalten
3.3. Affichage de données
MATLAB offre plusieurs variantes pour l’affichage des résultats. En addition de la commande « format » qui permet de paramétrer le mode d’affichage, nous utilisons plusieurs moyens dans les scripts MATLAB pour visualiser les résultats selon le format choisi.
La possibilité la plus simple pour l’affichage des valeurs des variables dans les scripts MATLAB est d’enlever « ; » après la fin de l’expression mathématique. Cependant, pour l’affichage de messages textuels ou même le contenu des variables, nous trouvons la fonction « disp ». Cette fonction est assez limitée et elle accepte uniquement un seul paramètre, entres autres elle ne permet pas l’affichage de plusieurs variables.
Pour surmonter les problèmes de la fonction « disp », nous trouvons l’alternative dans une fonction inspirée du langage C qui s’appelle « fprintf ». Cette dernière permet l‘affichage de plusieurs paramètres (variables ou messages) en tenant compte du format défini dans l’appel de la fonction. En fin, pour l’affichage du contenu des variables, il faut définir le masque d’affichage pour chaque variable.
- Le masque de saisie est défini par %format ou format représente le format d’affichage du contenu de variable.
- Les valeurs de format peuvent être : e, E, f, g, G, o, s, u, x, X
- Pour l’affichage du contenu de plusieurs variables, il faut définir un masque d’affichage pour chaque variable.
Syntaxe :
Abbildung in dieser Leseprobe nicht enthalten
Exemple :
Abbildung in dieser Leseprobe nicht enthalten
4. Les structures de programmations
4.1. Les opérateurs de base
MATLAB utilise la codification des opérateurs de base utilisée dans la plupart des langages de programmation évolués avec des petits changements. Cependant, nous trouvons que MATLAB exécute le calcul matriciel, pour cela nous trouvons sa particularité d’avoir des opérateurs spécifiques aux calculs matriciels. En plus, comme MATLAB utilise la philosophie de typage dynamique, il exécutera la bonne opération en fonction du type des termes de l'opérateur. Par exemple, si on utilise l’opérateur « + » pour deux valeurs de type « char », MATLAB remplace les caractères par leurs valeurs numériques ; codage Unicode ; pour effectuer l’opération, car l’opération de la somme est définie dans l’espace des nombres.
Les Tableaux 7, 8 présentent les opérateurs arithmétiques et logiques largement utilisés dans le langage MATLAB.
Abbildung in dieser Leseprobe nicht enthalten
Tableau 7. Les opérateurs arithmétiques sous MATLAB
Abbildung in dieser Leseprobe nicht enthalten
Tableau 8. Les opérateurs logiques sous MATLAB
4.2. L’instruction conditionnelle « IF »
L’instruction conditionnelle possède une syntaxe très simplifiée en MATLAB et permet un codage très pratique dans les cas des tests imbriqués avec l’utilisation de la clause « elseif » qui permet de minimiser le nombre de structures. Nous notons aussi, que dans MALAB, pour chaque structure doit avoir obligatoirement un « end ».
Syntaxe :
Abbildung in dieser Leseprobe nicht enthalten
Exemple :
Abbildung in dieser Leseprobe nicht enthalten
4.3. L’instruction conditionnelle de choix « switch »
L'instruction conditionnelle « switch » est une instruction de choix comme l’instruction « if », mais avec la particularité de pouvoir effectuer plus de branchements que « if ». L’instruction « switch » doit être utilisée dans le cas de plusieurs possibilités d’imbrications. Par exemple, en fonction de la valeur d'une variable, on effectue différentes opérations. Nous notons aussi que le nombre de valeurs possibles de cette variable doit être restreint pour conserver une certaine lisibilité du code. Cette structure utilise la clause « case » pour la condition de chaque imbrication, la clause « otherwise » pour traiter les cas hors conditions et la clause « break » pour interrompre et quitter la structure avec le mot clé « end » en fin de la structure.
Syntaxe :
Abbildung in dieser Leseprobe nicht enthalten
Exemple :
Abbildung in dieser Leseprobe nicht enthalten
4.4. L’instruction répétitive « while »
Les boucles ou les structures répétitives sont indispensables dans le calcul matriciel et intensif. La boucle « while » répète un bloc d’instructions tant qu’une condition donnée est vraie. C’est une structure répétitive classique et complète qui assure ces calculs et qui permet d’avoir plus d’une condition d’arrêt. Son implémentation sur MATLAB est simplifiée.
Syntaxe :
Abbildung in dieser Leseprobe nicht enthalten
Exemple :
Abbildung in dieser Leseprobe nicht enthalten
4.5. L’instruction répétitive « for »
L'avantage de la boucle « for » sur la boucle « while » est sa simplicité d’écriture dans le cas d'un nombre d’itérations défini et bien connu à l'avance. Elle est utilisée généralement dans le parcours et l’accès aux matrices. Lors de l’exécution de la boucle « for », la variable qui représente le compteur d’incrémentation est accessible en lecture et en écriture. Il est donc possible de réduire ou d'augmenter le nombre d‘itérations au cours de l‘exécution de la boucle.
Syntaxe :
Abbildung in dieser Leseprobe nicht enthalten
Exemples :
Abbildung in dieser Leseprobe nicht enthalten
[...]
-
-
-
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen.