0% ont trouvé ce document utile (0 vote)
115 vues72 pages

Cours Matlab et Calcul Numérique ENSA Safi

Transféré par

oufikmaroua40
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
115 vues72 pages

Cours Matlab et Calcul Numérique ENSA Safi

Transféré par

oufikmaroua40
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Cadi Ayyad de Marrakech

Ecole Nationale des Sciences Appliquée - Safi

Première Année du Cycle Préparatoire

Cours: Outils informatiques

1
Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022
2
Objectifs du cours

❑Apprentissage de la programmation avec Matlab

❑Connaitre et savoir programmer les méthodes numériques classiques utilisées dans le


métier d’ingénieur

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


3
Plan du cours

❑Chapitre 1: Introduction au calcul scientifique

❑Chapitre 2: Présentation du Matlab

❑Chapitre 3: Programmation sous Matlab

❑Chapitre 4: Initiation au calcul Scientifique

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


4
Plan du cours

❑Chapitre 1: Introduction au calcul scientifique

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


5
Chapitre 1: Introduction au calcul scientifique
❑ Introduction
Les sciences font régulièrement appel aux mathématiques afin de modéliser les problématiques. Si les
mathématiques offrent un cadre formel, riche et puissant, l’ingénieur a la possibilité d’utiliser des
logiciels afin de l’aider à résoudre les problèmes. On rencontre, pour résumer, deux types de logiciel
scientifique :
❑Les logiciels de calcul formel (les plus connus étant Maple, Maxima et Mathematica) ;
❑Les logiciels de calcul numérique (Matlab est le plus utilisé, mais il existe aussi Scilab, Python,
Octave, R ……).

Ces deux types de logiciel répondent à deux besoins différents (parfois complémentaires).
➢ Les premiers vont permettre de calculer symboliquement une dérivée, une intégrale (si elle est
calculable) et plus généralement de manipuler des valeurs exactes.
➢ Les secondes vont permettre de calculer rapidement de manière numérique (et donc approchée)

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


6
Chapitre 1: Introduction au calcul scientifique
❑ Introduction

Remarques
Il n’y a pas de logiciel meilleur qu’un autre, les deux catégories sont complémentaires et
dépendent de l’application visée.

Les logiciels de calculs numériques sont très répandus dans l’industrie et la recherche, car ils
permettent de faire du prototypage rapide, c’est à dire de pouvoir développer une
application très rapidement afin de l’évaluer, avant de lancer un processus industriel.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


7
Chapitre 1: Introduction au calcul scientifique
❑ Calcul numérique approché

❑ L'objet de cette section est de mettre en évidence les principales difficultés liées à la
pratique des calculs numériques sur ordinateur.

Tout calcul numérique devrait s’accompagner d’une estimation des


erreurs d’approximation commises.

Exemple introductif : On cherche à évaluer de manière numérique l’exponentielle


𝒛 = 𝐞𝐱𝐩(𝒙)

✓ Solution Trouver 𝑧ǁ approchant numériquement 𝒛

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


8
Chapitre 1: Introduction au calcul scientifique
❑ Calcul numérique approché

➔ Une méthode consiste à utiliser les séries de Taylor


+∞
𝒙𝒌
∀𝒙∈𝑹 𝐞𝐱𝐩 𝒙 = ෍
𝒌!
𝒌=𝟎

En considérant des ressources de calcul limitées, on en est réduit à déterminer

𝑲𝒎𝒂𝒙
𝒙𝒌
∀𝒙∈𝑹 𝐞𝐱𝐩 𝒙 = ෍
𝒌!
𝒌=𝟎
❑ Pour le calcul de l’exponentielle, on commet donc une erreur

Exercice: Calcul approché de π

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


9
Chapitre 1: Introduction au calcul scientifique
❑ Sources d’erreur du calcul numérique
1. Erreurs relatives aux données d’entrée

❑ Erreur de mesure générée par la différence entre la valeur exacte x et la valeur mesurée
𝑥.
෤ Elle vaut :

∆𝒙 = 𝒙 − 𝒙

❑ Erreur d’arrondi générée par la différence entre la valeur exacte x et la valeur


ෝ. Elle vaut :
arrondie 𝒇𝒍(𝒙) = 𝒙


∆𝒙 = 𝒙 − 𝒙

Exemple : soit un objet valant 100 DH, son vrai prix en dollars est donc de
𝟏𝟎𝟎
𝒙 = 𝟗,𝟑𝟏𝟓𝟓 ≈ 𝟏𝟎. 𝟕𝟑𝟒𝟕𝟗𝟔𝟖𝟒𝟑𝟗𝟔𝟗𝟕𝟐𝟕𝒅𝒐𝒍𝒍𝒂𝒓𝒔
Mais on le trouvera uniquement au prix de 𝑥=10,73
෤ dollars, l’erreur commise est
donc de : ∆𝒙 = 𝟒, 𝟕𝟗𝟔𝟖𝟒𝟑𝟗𝟔𝟗𝟕𝟐𝟕 × 𝟏𝟎−𝟑 𝒅𝒐𝒍𝒍𝒂𝒓𝒔

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


10
Chapitre 1: Introduction au calcul scientifique
❑ Sources d’erreur du calcul numérique
2. Erreurs résultantes d’un calcul

❑ Erreur de troncature
Exemple: dans le calcul numérique de l’exponentiel, l’erreur de troncature vaut
+∞
𝒙𝒌
𝑻 = 𝒛 − 𝒛෤ = ෍ 𝒌!
𝒌=𝑲+𝟏

❑ Erreur d’arrondi dans les étapes d’un calcul (algorithme, programme)

Exemple : on veut calculer avec une calculatrice la somme entre

𝒙𝟏 = 𝟔, 𝟐𝟑𝟏𝟕 × 𝟏𝟎𝟕 𝒙𝟐 = 𝟐, 𝟏𝟕𝟗 × 𝟏𝟎𝟐

La valeur exacte du calcul est 𝒙 = 𝟔, 𝟐𝟑𝟏𝟕𝟐𝟏𝟕𝟗 × 𝟏𝟎𝟕 et la valeur


calculée est 𝑥ො = 𝟔, 𝟐𝟑𝟏𝟕 × 𝟏𝟎𝟕 .

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


11
Chapitre 1: Introduction au calcul scientifique
❑ Sources d’erreur du calcul numérique
3. Erreurs

Soit 𝒙 un résultat exact et 𝑥෤ un résultat approché. On définit alors

❑ Erreur absolue


∆𝒙 = 𝒙 − 𝒙

❑ Erreur relative
Si 𝒙 ≠ 𝟎, l’erreur relative est

𝒙−𝒙෥
𝜹𝒙 =
𝒙

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


12
Plan du cours

❑Chapitre 2: Présentation du Matlab

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


13
Chapitre 2: Présentation du Matlab
❑ Introduction : qu’est ce que Matlab ?

MAT (Matrix) LAB (Laboratory) est un logiciel puissant doté à la fois d'un langage de
programmation haut niveau et d'outils dédiés au calcul numérique et à la visualisation
numérique. Développé en C par la société Mathworks, Matlab était initialement destiné à faire
simplement du calcul matriciel. Actuellement, Matlab recouvre d'autres domaines d'applications
de l'informatique scientifique :
➢ visualisation graphique 2D et 3D
➢ optimisation
➢ traitement du signal
➢ traitement de l'image
➢ etc …
Matlab est un outil puissant qui permet la résolution de nombreux problèmes en beaucoup moins
de temps qu'il n'en faudrait pour les formuler en C ou en Pascal.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


14
Chapitre 2: Présentation du Matlab
❑ Introduction : qu’est ce que Matlab ?

C'est un langage interprété, c'est-à-dire que les instructions sont exécutées immédiatement après
avoir été introduites. Il n'est pas nécessaire de compiler un programme avant de l'exécuter et toute
commande introduite dans la fenêtre de commande est immédiatement exécutée. C'est dans cette
fenêtre que l'on peut écrire les instructions Matlab (à la suite des chevrons >>).
La réponse est affichée et stockée dans la variable ans (answer en anglais est la réponse).

La plupart des fonctions mathématiques usuelles sont définies dans Matlab, et ceci sous une forme
naturelle (sin, cos, exp, ...). de même que certaines constantes (pi ...).

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


15
Chapitre 2: Présentation du Matlab
❑ Introduction : qu’est ce que Matlab ?
MATLAB est un langage de calcul scientifique de haut niveau et un environnement interactif pour développer
des algorithmes, visualiser et analyser des données ou effectuer des calculs numériques.

Lorsque vous démarrez Matlab, vous vous retrouvez par défaut avec une console, un espace de travail et un
historique des commandes. Un éditeur est également disponible à l'aide d'une simple commande d'édition.

Créer un
nouveau fichier Accédez au
dossier souhaité

Espace de travail
Répertoire (Mémoire)
courant Fenêtre de
commande

Historique des
commandes

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


16
Chapitre 2: Présentation du Matlab
❑ Introduction : MATLAB comme calculatrice
Le tableau suivant montre la syntaxe de certaines opérations mathématiques MATLAB fréquemment
utilisées.
Opération symbole Exemple Mathématiques Sortir
Addition + 78+11 𝟕𝟖 + 𝟏𝟏 𝟖𝟗
Soustraction - 12-6 𝟏𝟐 − 𝟔 𝟔
Multiplication * 12.5*5 𝟏𝟐. 𝟓 × 𝟓 𝟔𝟐. 𝟓𝟎
𝟓
Division / 5/56.2 𝟎. 𝟎𝟖𝟗
𝟓𝟔. 𝟐
Puissance ^ 2^5.1 𝟐𝟓.𝟏 𝟑𝟒. 𝟐𝟗𝟔𝟖
Racine carrée sqrt() sqrt(17) 𝟏𝟕 𝟒. 𝟏𝟐𝟑𝟏
Logarithme log() log(2.56) 𝒍𝒏(𝟐. 𝟓𝟔) 𝟎. 𝟗𝟒
Exponentiel exp() exp(-2.5) 𝒆−𝟐.𝟓 𝟎. 𝟎𝟖𝟐𝟏
Sinus sin() sin(0.9) 𝐬𝐢𝐧(𝟎. 𝟗) 𝟎. 𝟕𝟖𝟑𝟑
Cosinus cos() cos(-4) 𝐜𝐨𝐬(−𝟒) −𝟎. 𝟔𝟓𝟑𝟔

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


17
Chapitre 2: Présentation du Matlab
❑ Introduction : MATLAB comme calculatrice
Vous pouvez taper des expressions numériques directement à l'invite de la fenêtre de commande et
recevoir la réponse après avoir appuyé sur Entrée. Par exemple, tapez l'expression ci-dessous à
l'invite de la fenêtre de commande, suivie de la touche Entrée. La réponse sera affichée dans la
fenêtre de commande, ainsi que stockée dans une variable ans.

(Remarque : ans est remplacé par le résultat de chaque expression qui n'est pas déjà affectée à une
variable.)

La précision d'affichage par défaut de MATLAB est de 4 décimales mais les nombres sont stockés en
mémoire avec une précision bien supérieure (double précision, 64 bits/17 chiffres significatifs).

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


18
Chapitre 2: Présentation du Matlab
❑ Introduction : MATLAB comme calculatrice Exemple d'application

❑ En utilisant uniquement la fenêtre de commande MATLAB, découvrez ce que fait la commande


imagesc.
❑ Démontrez en utilisant plusieurs valeurs d'angle 𝜽 que : 𝒄𝒐𝒔𝟐 𝜽 + 𝒔𝒊𝒏𝟐 𝜽 = 𝟏

❑ Utilisez une ligne MATLAB pour évaluer l'expression ci-dessous :


𝟒. 𝟏𝟕𝟐 + 𝟗. 𝟏𝟑𝟏𝟖𝟒𝟒 𝟑 − 𝟏𝟖
−𝟑. 𝟓 + (𝟏𝟏. 𝟐 − 𝟒. 𝟔)(𝟕 − 𝟐. 𝟗𝟏𝟔𝟖𝟑)
𝒏
❑ Le calcul simplifié pour le coefficient binomial est :
𝒌
𝒏 𝒏!
𝓒𝒌𝒏 = =
𝒌 𝒌! 𝒏 − 𝒌 !
𝟏𝟑 𝟏𝟎
En utilisant le calcul simplifié, évaluez , et vérifiez votre réponse à l'aide de la commande
𝟒 𝟓
MATLAB nchoosek

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


19
Chapitre 2: Présentation du Matlab
❑ Variables
On peut indiquer le nom de la variable dans laquelle le résultat doit être stocké (commence par une
lettre, moins de 19 caractères).

Le nom de cette
variable ainsi que le
résultat sont affichés

Un point virgule à la fin de la ligne permet de ne pas afficher ce résultat. On peut taper plusieurs
commandes par ligne, séparées par un point virgule.

Il existe un certain nombre de variables prédéfinies : pi | inf | i | realmin | realmax | eps | ans

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


20
Chapitre 2: Présentation du Matlab
❑ Variables complexes
Matlab travaille indifféremment avec des nombres réels et complexes. Par défaut les variables i et j
sont initialisées à la valeur complexe.

Naturellement si vous redéfinissez la variable i ou j avec une autre valeur elle n'aura plus la même
signification.

Les fonctions usuelles de manipulation des nombres complexes sont prédéfinies dans Matlab :
real | imag | abs | angle (en radian) | conj.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


21
Chapitre 2: Présentation du Matlab
❑ Vecteurs, matrices et leur manipulation
En fait, toute variable de Matlab est une matrice (scalaire : matrice 1x1, vecteur : matrice 1xN ou
Nx1). On peut spécifier directement une matrice sous la forme d'un tableau, l'espace ou la virgule
sépare deux éléments d'une même ligne, les points virgules séparent les éléments de lignes distinctes.

❑ Les éléments d'une matrice peuvent être n'importe quelle expression de Matlab :

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


22
Chapitre 2: Présentation du Matlab
❑ Vecteurs, matrices et leur manipulation
❑ Les éléments d'une matrice peuvent être référencés par leurs indices :

❑ On peut aussi créer des matrices avec les fonctions zeros, ones, rand et eye, ces fonctions créent des
matrices de la taille précisée, respectivement remplies de zéros, de un, et de un sur la diagonale et
des zéros ailleurs (eye = prononciation anglaise de I comme identité).

❑ On peut avoir des informations sur la taille d'une matrice avec les fonction size et lenght

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


23
Chapitre 2: Présentation du Matlab
❑ Vecteurs, matrices et leur manipulation Concaténation

❑ On peut ajouter des lignes et des colonnes à des matrices déjà existantes.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


24
Chapitre 2: Présentation du Matlab
❑ Vecteurs, matrices et leur manipulation Transformations de Matrice

❑ On peut avoir le transposé ou le transposé conjugué d'une matrice :

❑ mais aussi des retournements horizontaux (flipud : Up/Down), verticaux (fliplr : Left/Right), ou des
rotations de matrices :

❑ On peut également remettre en forme des matrices et vecteurs sur un nombre de lignes et de
colonnes donnés (à condition que le nombre total d'éléments corresponde) :

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


25
Chapitre 2: Présentation du Matlab
❑ Vecteurs, matrices et leur manipulation L'opérateur " : "

❑ L'opérateur " : ", sous Matlab, peut être considéré comme l'opérateur d'énumération.
Sa syntaxe usuelle est : deb:pas:fin.
Il construit un vecteur dont le premier élément est deb puis deb+pas, deb+2*pas... jusqu'à deb+n*pas tel
que deb+n*pas < fin < deb+(n+1)*pas.

❑ On peut aussi utiliser le " : " pour sélectionner des éléments d'une matrice :

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


26
Chapitre 2: Présentation du Matlab
❑ Vecteurs, matrices et leur manipulation Opérations avec des matrices

Le tableau suivant montre quelques opérations MATLAB souvent utilisées sur les matrices.

Opération symbole Exemple Sortie


Addition / Soustraction +/- A+/-B Somme/Différence des deux matrices
Ajout d'un scalaire +/- A-9 Soustraire 9 de chaque élément de A
Multiplication par un scalaire * 4*A Multiplie chaque élément de A par 4
Produit matriciel * A*B Produit matriciel
Produit Hadamard .* A.*B Multiplication élément par élément de A et B

❑ Les opérations numériques suivantes sont effectuées sur chaque élément de la matrice : puissance
(.^), racine carrée, logarithme, exposant, sinus, cosinus.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


27
Chapitre 2: Présentation du Matlab
❑ Vecteurs, matrices et leur manipulation Opérations avec des matrices

Le tableau suivant contient une liste de fonctions MATLAB qui opèrent sur des matrices.
Commander Retourner Commander Retourner
A’ Transposée de A Une matrice où la matrice A est répétée
repmat(A,m,n)
find(A) Indices de tous les éléments non nuls de A. en m lignes et n colonnes
Matrice a reformée en m lignes et n
fliplr(A) Matrice A, retournée horizontalement reshape(A,m,n)
colonnes.
flipud(A) Matrice A, retournée verticalement.
size(A) La taille de A (#lignes, #colonnes, ...)
inv(A) Inverse de A
sort(A) Vecteur A trié par ordre croissant. †
min(A) Élément de valeur minimale de A. †
sum(A) Somme des éléments de A. †
max(A) Élément de valeur maximale de A. †
La liste des éléments uniques de A dans
numel(A) Le nombre d'éléments de A unique(A)
l'ordre croissant.

† Pour une matrice, l'opération sera effectuée séparément sur chaque colonne.
Pour un vecteur (ligne ou colonne), l'opération sera effectuée sur le vecteur.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


28
Chapitre 2: Présentation du Matlab
❑ Vecteurs, matrices et leur manipulation Exemple d'application

❑ Créez un vecteur colonne 4 × 1, qui contient toutes les valeurs de votre choix.
❑ Utilisez une commande MATLAB pour évaluer le sinus de 𝟑𝟎° ; 𝟒𝟓° ; 𝟔𝟎° et 𝟏𝟐𝟎°. Ensuite, évaluez
le cosinus, la tangente et la cotangente des mêmes angles.
❑ Trouver la somme des nombres entiers de 1 à 100
❑ Créez un exemple pour démontrer que la multiplication matricielle n'est pas commutative.
𝑻
❑ Créez un exemple pour démontrer que l'équation suivante est valable : 𝑨𝑩𝑪 = 𝑪𝑻 𝑩𝑻 𝑨𝑻 , où 𝑨, 𝑩
et 𝑪 sont des matrices de tailles différentes, et le produit 𝑨𝑩𝑪 est réalisable.
❑ Créez un vecteur V (1 × 6) contenant les valeurs entières de 20 à 25. Ensuite, créez un vecteur (1 ×
6) dont les valeurs sont égales à 5 fois les valeurs de V.
❑ Créez un vecteur qui va à pas égaux de -2 à +2 contenant 50 composants.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


29
Chapitre 2: Présentation du Matlab
❑ Vecteurs, matrices et leur manipulation Exemple d'application

❑ Vecteur de saisie q = [-1 , 5 , 3 , 22 , 9 , 1]T dans la mémoire de MATLAB.


▪ Transformer q en un vecteur unitaire en utilisant uniquement les opérations matricielles
présentées dans les tableaux précédents.
▪ Transformer q linéairement, de sorte que le minimum soit 0 et le maximum soit 1 ( en utilisant
uniquement les opérations matricielles présentées dans ce chapitre).
▪ Transformer q linéairement, de sorte que le minimum soit -3,6 et le maximum soit 105 (en
utilisant les mêmes fonctions/opérations).
❑ En utilisant une équation matricielle, trouvez le point d'intersection des droites définies par les
équations suivantes :
𝟕𝒙 − 𝟏𝟐𝒚 + 𝟒 = 𝟎

𝟏𝟐𝒙 − 𝟒𝟓𝒚 + 𝟐𝟔 = 𝟎

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


30
Chapitre 2: Présentation du Matlab
❑ Affichages graphiques Courbes à deux dimensions

Pour tout logiciel de tracée de courbes, une courbe 2D est représenté par une série d'abscisses et une
série d'ordonnées. Ensuite, le logiciel trace généralement des segments entre ces points. MATLAB
n'échappe pas à la règle. La fonction s'appelle plot. L'utilisation la plus simple de l'instruction plot est
la suivante :
plot ( vecteur d'abscisses, vecteur d'ordonnées )
❑ Les vecteurs peuvent être ligne ou colonne, pourvu qu'ils soient tous deux de même type.

Exemple: si on veut tracer sin(x) sur l'intervalle [0; 2], on commence par définir une série de valeurs
équidistantes sur cet intervalle :

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


31
Chapitre 2: Présentation du Matlab
❑ Affichages graphiques Courbes à deux dimensions

Pour tout logiciel de tracée de courbes, une courbe 2D est représenté par une série d'abscisses et une
série d'ordonnées. Ensuite, le logiciel trace généralement des segments entre ces points. MATLAB
n'échappe pas à la règle. La fonction s'appelle plot. L'utilisation la plus simple de l'instruction plot est
la suivante :
plot ( vecteur d'abscisses, vecteur d'ordonnées )
❑ Les vecteurs peuvent être ligne ou colonne, pourvu qu'ils soient tous deux de même type.
❑ Les abscisses peuvent donc être une fonction de x plutôt que x lui même. En d'autres termes, il est
donc possible de tracer des courbes paramétrées
Exemple:

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


32
Chapitre 2: Présentation du Matlab
❑ Affichages graphiques Superposer plusieurs courbes

Il suffit de spécifier autant de couples (abscisses,


ordonnées) qu'il y a de courbes à tracer.
Par exemple pour superposer sin et cos :

Les deux courbes étant en réalité dans des couleurs différentes. Cette
méthode fonctionne même si les abscisses des deux courbes ne sont pas
les mêmes.
Dans le cas plus fréquent où les abscisses sont les mêmes, il existe un autre moyen de superposer les
courbes. On a toujours le vecteur des abscisses, commun aux deux courbes, et on a autant de vecteurs
d'ordonnées qu'il y a de courbes. Tous ces vecteurs d'ordonnées sont regroupés dans un même
tableau, chaque ligne du tableau représentant un vecteur d'ordonnées :
plot ( vecteur d'abscisses, tableau d'ordonnées )

Lorsque l'on écrit une expression arithmétique dans les arguments de plot, il faut utiliser systématiquement les
opérateurs terme à terme .* ./ et .^ au lieu de * / et ^

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


33
Chapitre 2: Présentation du Matlab
❑ Affichages graphiques Attributs de courbes

Vous aurez remarqué que MATLAB attribue des couleurs par défaut aux courbes. Il est possible de
modifier la couleur, le style du trait et celui des points, en spécifiant après chaque couple (abscisse,
ordonnée) une chaîne de caractères pouvant contenir les codes suivants (obtenus par help plot) :

Exemple:

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


34
Chapitre 2: Présentation du Matlab
❑ Affichages graphiques Exemple d'application

❑ Reproduisez les formes et les tracés de la figure

(1) Haltère (2) Zigzag (3) Flash (4) Arbre de Christmas (5) visage de l'ours

La commande fill permet de remplir une région donnée avec une couleur donnée. La syntaxe
est la suivante :
fill ( vecteur d'abscisses, tableau d'ordonnées, couleur )

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


35
Plan du cours

❑Chapitre 3: Programmation sous Matlab

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


36
Chapitre 3: Programmation sous Matlab
❑ Environnement de travail, scripts et fonctions Répertoire de travail

❑ Il est indispensable de travailler dans votre propre répertoire et non dans le répertoire de Matlab.
Ainsi dans votre répertoire, vous pouvez organiser vos fichiers dans des sous répertoires.

❑ Pour que vos fonctions et scripts soient accessibles à partir de la ligne de commande Matlab il faut
s’assurer que vos répertoires de travail soient déclarés. Ceci se fait à l'aide de la commande editpath
qui permet de rajouter aux chemins déjà existants le chemin des répertoires contenant vos
programmes. Sinon, il faut aussi se placer dans votre répertoire de travail.

❑ En fait lorsqu'on travaille souvent sous Matlab avec des fichiers de fonctions et des scripts
organisés dans une arborescence sur le disque de travail, il est possible et préférable de réaliser un
fichier startup.m qui sera exécuté immédiatement en lançant Matlab. Dans ce fichier on peut définir
le path (addpath), charger d'éventuelles variables, se placer dans le répertoire désiré

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


37
Chapitre 3: Programmation sous Matlab
❑ Environnement de travail, scripts et fonctions Sauvegarde et chargement de
variables
❑ Il peut être utile, lors d'une session de travail, de sauvegarder des variables dans des fichiers du
répertoire de travail. Cela peut être réalisé à l'aide de la fonction save dont la syntaxe est :
save nom_fichier nom_variables
Exemple:

❑ Si le nom des variables est omis, tous l'espace de travail est sauvé; si l'extension du fichier est omise
elle sera automatiquement .mat, si de plus, le nom du fichier est omis, la sauvegarde se fera dans le
fichier matlab.mat.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


38
Chapitre 3: Programmation sous Matlab
❑ Environnement de travail, scripts et fonctions Sauvegarde et chargement de
variables
❑ Il peut être utile, lors d'une session de travail, de sauvegarder des variables dans des fichiers du
répertoire de travail. Cela peut être réalisé à l'aide de la fonction save dont la syntaxe est :
save nom_fichier nom_variables
❑ Si le nom des variables est omis, tous l'espace de travail est sauvé; si l'extension du fichier est omise
elle sera automatiquement .mat, si de plus, le nom du fichier est omis, la sauvegarde se fera dans le
fichier matlab.mat.

❑ Pour recharger des variables sauvées dans un fichier, il suffit de taper :


load nom-fichier
❑ Il est parfois utile de sauvegarder les commandes tapées et les résultats obtenus lors d’une séance
de travail dans un fichier. Pour cela on utilise la commande diary :
diary nomfichier
Pour désactiver, taper diary off.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


39
Chapitre 3: Programmation sous Matlab
❑ Environnement de travail, scripts et fonctions Importer des tableaux

❑ MATLAB est souvent utilisé comme logiciel d'exploitation de résultats. Exemple classique : on a un
programme FORTRAN qui calcule des séries de valeurs, et on souhaite tracer une série en fonction
de l'autre. Le moyen le plus simple est que votre programme écrive un fichier texte organisé sous
forme de m colonnes, séparées par des blancs, contenant chacune n lignes :

Cette structure est obligatoire pour que la méthode simple exposée ici
fonctionne correctement. Ce fichier doit porter une extension, qui peut être
quelconque, mais différente de .m ou .mat.
Admettons qu'il s'appelle data.txt, tapez dans MATLAB :
Ce faisant, vous créez un nouveau tableau MATLAB, qui porte le nom du fichier sans
extension, soit data. Vous pouvez maintenant extraire les colonnes de ce tableau, et les
mettre dans des vecteurs, par exemple :

et vous n'avez plus qu'à tracer l'un de ces vecteurs en fonction d'un autre.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


40
Chapitre 3: Programmation sous Matlab
❑ Environnement de travail, scripts et fonctions Scripts

❑ Il est parfois (souvent) souhaitable, pour ne pas avoir à taper plusieurs fois une même séquence
d'instructions, de la stocker dans un fichier. Ainsi on pourra réutiliser cette séquence dans une
autre session de travail. Un tel fichier est dénommé script.

❑ Il suffit d'ouvrir un fichier avec le menu HOME, New Script, de taper la séquence de commande et
de sauver le fichier avec une extension " .m " (nom-fich.m). En tapant le nom du fichier sous
Matlab, la suite d'instructions s'exécute.

❑ Les variables définies dans l'espace de travail sont accessibles pour le script. De même les variables
définies (ou modifiées) dans le script sont accessibles dans l'espace de travail.

❑ On peut (doit) mettre des commentaires à l'aide du caractère pour-cent " % ". Toute commande
située après " % " n'est pas prise en compte par Matlab, jusqu'à la ligne suivante. De plus Matlab
ne voit pas les espaces blancs (lorsqu'il n'y a pas d'ambiguïté), ce qui permet de bien indenter ses
fichiers.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


41
Chapitre 3: Programmation sous Matlab
❑ Environnement de travail, scripts et fonctions Fonctions
Fonctions définies dans un fichier
❑ On a parfois besoin de fonctions qui ne sont pas fournies par Matlab. On peut alors créer de telles
fonctions dans un fichier séparé et les appeler de la même façon que les fonctions préexistantes.
❑ La première ligne (hormis les lignes de commentaires) d'une fonction doit impérativement avoir la
syntaxe suivante :
variable de sortie, ..., ... variable d'entrée, ... , ...

bloc d'instruction …

❑ Le nom de la fonction doit impérativement être le même que le nom du fichier dans lequel elle est
stockée (sinon Matlab ne prendra pas en compte ce nom mais uniquement celui du fichier).
❑ Les nombres d'arguments en entrée et en sortie ne sont pas fixes et peuvent être récupérés par
nargin et nargout. Cela nous permet donc de faire des fonctions Matlab pouvant dépendre d'un
nombre variable de paramètres.
❑ Les variables de l'espace de travail ne sont pas accessibles à la fonction sauf si elles sont entrées
comme variable d'entrée. De même les variables définies dans une fonction ne sont pas accessibles
dans l'espace de travail.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


42
Chapitre 3: Programmation sous Matlab
❑ Environnement de travail, scripts et fonctions Fonctions
Fonctions inline / Fonctions
Handles
❑ Une fonction inline est définie comme dans l'exemple suivant :

À partir de ce point, vous pouvez utiliser fu(arg), où l'argument peut être un nombre unique ou un
tableau. (Les opérations sur les tableaux sont prises en compte en utilisant '.*' au lieu de '*', et '.^'
au lieu de '^').

❑ Dans la définition de la fonction, au lieu d'un seul x, nous pouvons utiliser une liste d'arguments
après le signe @ (@(liste_des_arguments)). Par exemple,

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


43
Chapitre 3: Programmation sous Matlab
❑ Opérateurs de comparaison et logiques Fonctions logiques

Le tableau suivant contient les détails de certaines fonctions logiques couramment utilisées dans
MATLAB
Commander Retourner
all(A) Vrai si tous les éléments de A sont vrais/non nuls.
any(A) Vrai si un élément de A est vrai/non nul.
Vrai si A existe dans le chemin d'accès ou l'espace de travail
exist(A)
MATLAB comme un fichier, une fonction ou une variable.
isempty(A) Vrai si A ne contient pas d'éléments.
ismember(A,B) Vrai si B peut être trouvé dans A.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


44
Chapitre 3: Programmation sous Matlab
❑ Opérateurs de comparaison et logiques Logical Expressions

❑ Une expression logique est une expression dont la valeur est soit vraie, soit fausse.

❑ Certains langages de programmation utilisent des types de données spéciaux, ils sont généralement
appelés types de données booléens. D'autres langages, tels que MATLAB, autorisent des types de
données généraux pour représenter les réponses logiques.

❑ Les expressions logiques peuvent contenir des opérations numériques, logiques et relationnelles.
Les opérations numériques impliquent des nombres et leur résultat est un nombre.
Les opérateurs relationnels comparent deux nombres et leur résultat est vrai ou faux.
Les opérations logiques relient deux variables logiques. Le résultat est à nouveau vrai ou faux.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


45
Chapitre 3: Programmation sous Matlab
❑ Opérateurs de comparaison et logiques Logical Expressions

Le Tableau suivant présente les opérations relationnelles et logiques les plus souvent utilisées ainsi que
leur syntaxe MATLAB.
Opérations relationnelles Opérations logiques
A == B # qui sont égales les unes aux autres. A & B # qui sont toutes deux vraies (non nulles).
A ~= B # qui ne sont pas égales les unes aux autres. Valable uniquement pour les scalaires. Vrai
A && B
A <= B # où A(i) est inférieur ou égal à B(i). si les deux sont vrais.

A < B # où A(i) est strictement inférieur à B(i). # où l'un ou l'autre ou les deux éléments
A|B
A(i) et B(i) sont vrais (non nuls)
A >= B # où A(i) est supérieur ou égal à B(i).
Valable uniquement pour les scalaires. Vrai
A > B # où A(i) est strictement supérieur à B(i). A || B
si l'un ou les deux sont vrais.
# où l'un de A(i), B(i) est vrai et l'autre est
xor(A, B)
faux.
~A Vrai si A est faux. On dit aussi "pas" A.
# : Vrai pour tous les éléments correspondants de A et B ...

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


46
Chapitre 3: Programmation sous Matlab
❑ Opérateurs de comparaison et logiques Logical Expressions

Le Tableau suivant présente les opérations relationnelles et logiques les plus souvent utilisées ainsi que
leur syntaxe MATLAB.

Exemple:

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


47
Chapitre 3: Programmation sous Matlab
❑ Opérateurs de comparaison et logiques Logical Expressions

Le Tableau suivant présente les opérations relationnelles et logiques les plus souvent utilisées ainsi que
leur syntaxe MATLAB.

❑ Notez que les opérateurs logiques joignent deux variables booléennes alors que les opérateurs
relationnels joignent deux expressions numériques. Dans une expression logique, les opérations
numériques sont effectuées en premier, puis les opérations relationnelles, et enfin les opérations
logiques.
Valeurs Numériques

Expression Numérique

Relationnelle Relationnelle

Logique
Donc c contient la valeur vrai

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


48
Chapitre 3: Programmation sous Matlab
❑ Opérateurs de comparaison et logiques Instructions conditionnelles

❑ Les instructions conditionnelles agissent comme des interrupteurs de programme qui répondent à
certaines conditions dans le programme. Les constructions de base if et switch sont présentées
comme suit

Exemple:

❑ À l'aide de la commande rand de MATLAB, générez un nombre aléatoire compris entre 0 et 1.


supérieur à 0,5, affichez le mot " Lucky ", sinon affichez " Unlucky ".
❑ Demandez à l'utilisateur de saisir un nombre entier entre 1 et 4, puis affichez le nombre sous forme
de mot.
Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022
49
Chapitre 3: Programmation sous Matlab
❑ Opérateurs de comparaison et logiques Boucles dans MATLAB

❑ Contrairement à d'autres langages, MATLAB ne dispose que de deux types de boucles, for et while.
Les boucles for doivent être utilisées lorsque le nombre d'itérations est connu à l'avance, comme
dans "Bouclez sur ces instructions cinq fois". Lorsque le nombre d'itérations requis est inconnu, ou
peut être différent pour chaque exécution du programme, utilisez une boucle while.
❑ La syntaxe de base d'une boucle 'for' et 'while' est la suivante :

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


50
Chapitre 3: Programmation sous Matlab
❑ Les polynômes

❑ Matlab est un outil très puissant également pour faire des opérations sur des fonctions
polynomiales. Par défaut, Matlab utilise un vecteur pour représenter un polynôme. Ainsi le vecteur
suivant
p = [2 4 8]; → représente le polynôme suivant: 𝒑 = 𝟐𝒙𝟐 + 𝟒𝒙 + 𝟖
❑ Comment différencier alors un vecteur normal d'un polynôme ? En fait c'est simplement par le
genre d'opérations qu'on effectuer sur la variable p.
▪ Si on fait l'opération suivante:
Matlab interprète p, comme un vecteur et effectue le produit de la transposée de p fois le
vecteur p.
▪ Si par contre on utilise la fonction suivante:
On effectue l'intégrale du polynôme p, car la fonction polyfun interprète p comme un
polynôme.
❑ Pour plus de détails sur les fonctions appliquées aux polynômes tapez :

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


51
Chapitre 3: Programmation sous Matlab
❑ Fonction de récursion

❑ Comme de nombreux autres langages de programmation, MATLAB autorise la récursion, ce qui


signifie qu'une fonction peut s'appeler elle-même. La récursion donne généralement lieu à un code
très élégant, mais qui n'offre pas d'avantage en termes de calcul.
❑ Seul un petit nombre d'algorithmes itératifs peuvent être résolus par récursion. Par exemple,
l'algorithme de bissection qui permet de trouver le zéro d'une fonction dans un intervalle donné.
Considérons la fonction suivante : 𝒇 𝒙 = 𝒔𝒊𝒏 𝟐𝒙 𝒆𝒙−𝟒
Le processus de l'algorithme passe par les étapes suivantes :

1. Introduire la précision 𝜺, la fonction 𝒇(𝒙) et les bornes 𝒂 et 𝒃 de l'intervalle contenant le


zéro.
2. Calculer le milieu de [𝒂 𝒃].
3. Si la longueur de l'intervalle [𝒂 𝒃] est inférieure à 𝜺,
(a) alors on retourne 𝒎.
(b) sinon, si 𝒇(𝒂)𝒇(𝒎) < 𝟎 (le zéro est dans [𝒂 𝒎]) appeler la fonction avec l'intervalle
[𝒂 𝒎], sinon appeler la fonction avec l'intervalle [𝒎 𝒃].

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


52
Chapitre 3: Programmation sous Matlab
Exemple d'application

❑ Sans exécuter MATLAB, évaluez b1 à b6 dans la séquence d'expressions suivante :

❑ Écrivez une fonction MATLAB permettant de calculer la distance euclidienne entre deux points
dans un espace à n dimensions. Les points sont donnés comme arguments d'entrée a et b. Les deux
doivent être des tableaux de n éléments. Le fait que l'une ou l'autre des entrées soit une ligne ou
une colonne ne doit pas avoir d'importance pour votre fonction. Démontrez le fonctionnement de
votre fonction par un exemple.

❑ Écrivez une fonction MATLAB permettant de vérifier si un point donné (x ; y) se trouve dans le
carré dont le coin inférieur gauche est situé à (p ; q) et dont le côté est s. Les arguments d'entrée
sont x ; y ; p ; q et s, et la sortie est soit vraie (le point est dans le carré) soit fausse (le point n'est
pas dans le carré).

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


53
Plan du cours

❑Chapitre 4: Initiation au calcul Scientifique

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


54
Chapitre 4: Initiation au calcul Scientifique

❑ L'objectif de ce chapitre est de présenter brièvement des routines de calcul


numérique fournies dans la version de base de MATLAB.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


55
Chapitre 4: Initiation au calcul Scientifique
❑ Recherche des zéros d'une fonction

Problème : On cherche 𝒙𝟎 tel que 𝒇(𝒙𝟎 ) = 𝟎.

❑ La fonction fzero permet de résoudre ce problème. Il faut fournir d'une part la fonction 𝒇 elle
même, et d'autre part une estimation de 𝒙𝟎 . L'efficacité de l'algorithme est comme toujours
dépendante de la valeur estimée choisie. La fonction 𝒇 peut être définie par une directive inline ou
bien écrite dans un fichier.
Exemple:
▪ On cherche le zero de 𝒇(𝒙) = 𝒄𝒐𝒔(𝒙) – 𝒙.
Une approche graphique permet souvent de trouver une
estimation de 𝒙𝟎 . La figure suivante montre ainsi que les
fonctions 𝒈 𝒙 = 𝒙 et 𝒉 𝒙 = 𝒄𝒐𝒔(𝒙) se coupent en un point sur
[−, ]. Une valeur raisonnable pour l'estimation de 𝒙𝟎 est par
exemple 0.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


56
Chapitre 4: Initiation au calcul Scientifique
❑ Recherche des zéros d'une fonction

Problème : On cherche 𝒙𝟎 tel que 𝒇(𝒙𝟎 ) = 𝟎.

❑ La fonction fzero permet de résoudre ce problème. Il faut fournir d'une part la fonction 𝒇 elle
même, et d'autre part une estimation de 𝒙𝟎 . L'efficacité de l'algorithme est comme toujours
dépendante de la valeur estimée choisie. La fonction 𝒇 peut être définie par une directive inline ou
bien écrite dans un fichier.
Exemple:
▪ On cherche le zero de 𝒇(𝒙) = 𝒄𝒐𝒔(𝒙) – 𝒙.
On peut donc écrire, en utilisant fzero :

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


57
Chapitre 4: Initiation au calcul Scientifique
❑ Recherche des zéros d'une fonction

Problème : On cherche 𝒙𝟎 tel que 𝒇(𝒙𝟎 ) = 𝟎.

❑ La fonction fzero permet de résoudre ce problème. Il faut fournir d'une part la fonction 𝒇 elle
même, et d'autre part une estimation de 𝒙𝟎 . L'efficacité de l'algorithme est comme toujours
dépendante de la valeur estimée choisie. La fonction 𝒇 peut être définie par une directive inline ou
bien écrite dans un fichier.
Exemple:
▪ On cherche le zero de 𝒇(𝒙) = 𝒄𝒐𝒔(𝒙) – 𝒙.
On peut donc écrire, en utilisant fzero :
On remarquera que la variable 𝒇 envoyée à la
fonction fzero est-elle même une fonction. On
peut également écrire la fonction dans un
fichier f.m :

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


58
Chapitre 4: Initiation au calcul Scientifique
❑ Recherche des zéros d'une fonction

Problème : On cherche 𝒙𝟎 tel que 𝒇(𝒙𝟎 ) = 𝟎.

❑ La fonction fzero permet de résoudre ce problème. Il faut fournir d'une part la fonction 𝒇 elle
même, et d'autre part une estimation de 𝒙𝟎 . L'efficacité de l'algorithme est comme toujours
dépendante de la valeur estimée choisie. La fonction 𝒇 peut être définie par une directive inline ou
bien écrite dans un fichier.

❑ On peut déterminer plusieurs racines à l’aide de fsolve au voisinage des éléments d’un vecteur
que l’on donne en argument d’entrée.
Exemple:

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


59
Chapitre 4: Initiation au calcul Scientifique
❑ Recherche de minima Fonctions à une variable

❑ La fonction fminbnd permet de trouver le minimum d'une fonction à une variable.


❑ Il faut fournir d'une part la fonction 𝒇 elle-même et d'autre part les bornes inférieure et supérieure
de l'intervalle dans lequel le minimum est recherché. 𝒇 peut être définie dans un fichier ou par
l'intermédiaire d'une fonction anonyme.
Exemple:

Il est à noter que la valeur trouvée


correspond toujours à un
minimum local de la fonction,
mais pas au minimum global. Il
est prudent de toujours tracer la
fonction pour avoir une idée de ce
que l'on doit trouver.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


60
Chapitre 4: Initiation au calcul Scientifique
❑ Recherche de minima Fonctions à une variable

❑ La fonction fminsearch permet de trouver le minimum d'une fonction multivariable.


❑ La fonction fminsearch est l'une des fonctions les plus importantes utilisées dans Matlab pour
trouver la valeur minimale de la fonction et elle renvoie une valeur scalaire où les entrées fournies
peuvent être sous forme de matrice ou de vecteur. Elle commence initialement à un point
particulier et exécute ensuite la fonction minimale de la fonction objective spécifiée dans
l'argument d'entrée. Il suit l'approche de l'algorithme simplex de Nelder-Mead. L'algorithme utilisé
est une méthode de recherche directe et n'utilise pas de gradient analytique complexe.
Exemple:

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


61
Chapitre 4: Initiation au calcul Scientifique
❑ Interpolation de données
❑ L'interpolation numérique consiste à construire une courbe qui passe exactement par un ensemble
de points définis.

❑ L'interpolation est principalement utilisée en calcul scientifique. Il s'agit d'une procédure


permettant d'estimer les points qui se situent dans une plage définie. Les méthodes d'interpolation
peuvent être utilisées pour créer divers modèles en statistiques. Dans cette rubrique, nous allons
découvrir l'interpolation dans MATLAB.
❑ Dans Matlab, l'interpolation est la procédure consistant à ajouter de nouveaux points dans une
plage définie ou dans un ensemble de points donné. Elle est utilisée pour trouver les données
manquantes dans l'ensemble de données, lisser l'ensemble de dates donné ou prédire le résultat de
l'ensemble de ces dates.
❑ Diverses fonctions sont associées aux techniques d'interpolation. Ici, nous aborderons
principalement l'interpolation unidimensionnelle ou la syntaxe d'interpolation linéaire :

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


62
Chapitre 4: Initiation au calcul Scientifique
❑ Interpolation de données
❑ L'interpolation numérique consiste à construire une courbe qui passe exactement par un ensemble
de points définis.
Exemple:
Définir les valeurs d'échantillon de x et y pour trouver les valeurs interpolées :

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


63
Chapitre 4: Initiation au calcul Scientifique
❑ Interpolation de données
❑ L'interpolation numérique consiste à construire une courbe qui passe exactement par un ensemble
de points définis.
Exemple:
Définir les valeurs d'échantillon de x et y pour trouver les valeurs interpolées en
utilisant un autre type de méthode d'interpolation :

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


64
Chapitre 4: Initiation au calcul Scientifique
❑ Approximation (estimation de paramètres ou « fitting »)
Problème : faire passer une courbe d'équation connue au milieu d'un nuage de points de telle sorte
que la courbe soit la plus proche possible de l'ensemble des points. Comme on cherche à minimiser
une distance entre deux fonctions, on parle en général d'approximation aux moindres carrés ou encore
de régression.
Supposons que l'on dispose de n données expérimentales (𝒙𝒊 𝒚𝒊 ) et que l'on cherche à déduire une loi
𝒚 = 𝒇(𝒙) dépendant linéairement de 𝒎 coefficients :
𝑦 = 𝑎1 𝑓1 𝑥 + 𝑎2 𝑓2 𝑥 + ⋯ + 𝑎𝑚 𝑓𝑚 𝑥

Idéalement, les (𝒙𝒊 𝒚𝒊 ) vérifieraient cette relation, auquel cas on aurait le système de n équations
linéaires à 𝒎 inconnues (𝒂𝟏 ⋯ 𝒂𝒎 ) :
𝑦1 𝑓1 𝑥1 𝑓2 𝑥1 ⋯ 𝑓𝑚 𝑥1 𝑎1
𝑦2 𝑓1 𝑥2 𝑓2 𝑥2 ⋯ 𝑓𝑚 𝑥2 𝑎2
⋮ = ⋮
⋮ ⋮ ⋱ ⋮
𝑦𝑛 𝑓1 𝑥𝑛 𝑓2 𝑥𝑛 ⋯ 𝑓𝑚 𝑥𝑛 𝑎𝑚
soit sous forme matricielle 𝒀 = 𝑭 𝑨 auquel cas on trouverait simplement les coefficients 𝒂𝒊 par
inversion :
𝑨 = 𝑭 −𝟏 𝒀

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


65
Chapitre 4: Initiation au calcul Scientifique
❑ Approximation (estimation de paramètres ou « fitting »)
Problème : faire passer une courbe d'équation connue au milieu d'un nuage de points de telle sorte
que la courbe soit la plus proche possible de l'ensemble des points. Comme on cherche à minimiser
une distance entre deux fonctions, on parle en général d'approximation aux moindres carrés ou encore
de régression.
Exemple:
on cherche à fitter des points expérimentaux (𝒙𝒊 𝒚𝒊 ) par une
𝒂 𝒂
fonction de la forme : 𝒇 𝒙 = 𝒂𝟏 + 𝒙𝟐 + 𝒙𝟐𝟑

Ce programme trace la courbe fittée


ainsi que les points expérimentaux

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


66
Chapitre 4: Initiation au calcul Scientifique
❑ Système d'Équations Différentielles Ordinaires (ODE45)

❑ Ode45 est une fonction standard de MATLAB pour les équations différentielles ordinaires (ODE).
Cette fonction met en œuvre une méthode Runge-Kutta avec un pas de temps variable pour un
calcul efficace. ode45 est conçue pour traiter le problème général suivant :
𝑑𝑦
= 𝑓 𝑡, 𝑦 , 𝑦 𝑡0 = 𝑦0
𝑑𝑡
❑ Dans le domaine temporel, les ODE sont des problèmes à valeur initiale, donc toutes les conditions
sont spécifiées au temps initial t = 0.
❑ Les méthodes numériques sont utilisées pour résoudre les problèmes à valeur initiale où il est
difficile d'obtenir une solution exacte

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


67
Chapitre 4: Initiation au calcul Scientifique
❑ Système d'Équations Différentielles Ordinaires (ODE45)
I. Réduire l'ode donnée à une série d'équations du premier ordre
C'est la toute première étape que vous devez effectuer, idéalement sur une feuille de papier séparée.
Pour par exemple, si l'ode donnée est :
𝑑 2 𝑦 𝑑𝑦 𝑦 𝑑𝑦
𝑚 2+ 𝑒 − 𝑦 2 = 5, 𝑦0 = 3, ቟ = −1
𝑑𝑡 𝑑𝑡 𝑑𝑡 0

Alors on pose un vecteur 𝒙 a deux composantes : 𝒚 et 𝒚,ሶ soit : 𝑥 = [𝑦, 𝑦]ሶ


où nous utilisons les représentations de 𝒚 et 𝒚ሶ et 𝒚ሷ pour écrire :
𝑑
𝑥 1 = 𝑥(2)
𝑑𝑡
𝑑 1 2
𝑥(2) = (5 + 𝑥 1 − 𝑥(2)𝑒 𝑥 1
)
𝑑𝑡 𝑚
En fait, vous pourriez avoir un nombre arbitraire d'ode d'ordre supérieur. Ce qui est important, c'est
que vous les réduisiez à de multiples ode d'ordre 1 et que vous gardiez trace de l'ordre dans lequel
vous avez assigné les différentes dérivées dans le vecteur x final qui sera résolu.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


68
Chapitre 4: Initiation au calcul Scientifique
❑ Système d'Équations Différentielles Ordinaires (ODE45)
II. Programmation ode45
Maintenant que vous disposez de tout dans le premier ordre, vous aurez besoin de suivre les
commandes suivantes dans votre code principal :

▪ fname est le nom de la fonction Mfile utilisée pour évaluer la fonction du seconde membre de
l'équation de l'équation. Il s'agit de la fonction dans laquelle nous entrerons le système d'odeurs
de premier ordre à intégrer.
▪ tspan est le vecteur définissant les limites de début et de fin de l'intégration, ainsi que la taille des
pas de temps que nous souhaitons. Par exemple, si nous intégrons de t = 0 à t = 10, et que nous
voulons prendre 100 pas de temps, alors tspan= [0:0.1:10] ou tspan=linspace(0,10,100)).
▪ xinit est le vecteur des conditions initiales. Assurez-vous que l'ordre correspond à l'ordre utilisé
pour écrire y et leurs dérivées en fonction de x. Notez également que si x consiste en 5 variables,
alors nous avons besoin d'une entrée de 5 conditions initiales.

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


69
Chapitre 4: Initiation au calcul Scientifique
❑ Système d'Équations Différentielles Ordinaires (ODE45)
Example : Résolution des ODE du premier ordre

𝑑𝑦 1
= 2y − y2, 𝑦 0 = 10
𝑑𝑡 1000

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


70
Chapitre 4: Initiation au calcul Scientifique
❑ Système d'Équations Différentielles Ordinaires (ODE45)
Example : Les équations de van der Pol dans l'oscillation de relaxation :
𝑑𝑢
=𝑣 𝑢 0 =0
𝑑𝑡
𝑑𝑣
= 100 1 − 𝑢2 𝑣 − 𝑢 𝑣 0 =1
𝑑𝑡

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


71
Chapitre 4: Initiation au calcul Scientifique
❑ Système d'Équations Différentielles Ordinaires (ODE45)
Example : Pendule simple

𝑑2 𝜃 𝑔 𝜋
+ sin(𝜃) = 0 𝜃 0 = , 𝜃ሶ 0 = 0
𝑑𝑡 2 𝑙 3

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022


72
Première Année du Cycle Préparatoire
❑ Outils informatiques

VOUS SAVEZ MAINTENANT


FAIRE UN TAS DE TRUCS SUR
MATLAB !!
Merci de votre attention

Professeur O. ASKOUR Semestre 2 Année universitaire 2021 - 2022

Vous aimerez peut-être aussi