Vous êtes sur la page 1sur 61

Université Hassan Premier

Faculté des Sciences et Techniques Settat


Département de Mathématiques et Informatique
Cycle Procédés et ingénierie chimique

Travaux Pratiques d'Analyse

Numérique

Réalisé par :

▶ Pr. Mohamed LOUZAR


▶ Mohamed BOUSHABI

Année Universitaire : 2021-2022


Travaux Pratiques d'Analyse Numérique

page 1
TABLE DES MATIÈRES

1 Introduction générale 5
2 Généralités et prise en main 6
2.1 Démarrer et quitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 "Hello world" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.2 Fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Outils de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1 Types de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.2 Arithmétique et opérations sur les scalaires . . . . . . . . . . . . . . . 9
2.3.3 Commandes MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3 Vecteurs et Matrices 12
3.1 Dénition d'un vecteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Quelques fonctions utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 Dénition d'une matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3.1 Matrices particulières . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.2 Extraction de sous-tableaux . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.3 Construction de matrice par blocs . . . . . . . . . . . . . . . . . . . . 16
3.3.4 Quelques fonctions utiles . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4 Opérations sur les matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4 Repésentations graphiques 19
4.1 Graphiques 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 Graphiques 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2.1 Tracé de courbes dans l'espace . . . . . . . . . . . . . . . . . . . . . . 23
4.2.2 Représentation par maillage dans le plan (x,y) . . . . . . . . . . . . . 24
4.2.3 Tracé des courbes de contour . . . . . . . . . . . . . . . . . . . . . . 25

5 Principales instructions MATLAB 27


6 Série d'applications 32
7 Correction de la série d'applications 33
8 Les méthodes numériques avec MATLAB 42
8.1 Introduction générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

2
TABLE DES MATIÈRES Travaux Pratiques d'Analyse Numérique

8.2 Interpolation polynômiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43


8.2.1 Interpolation de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . 43
8.2.2 Interpolation de Newton . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.2.3 La commande polyt . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8.2.4 La commande interp1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.2.5 Exemple pratique : Élévation du soleil au cours d'une journée . . . . 49
8.3 Résolution numérique des équations non linéaires . . . . . . . . . . . . . . . 51
8.3.1 La méthode de dichotomie . . . . . . . . . . . . . . . . . . . . . . . . 51
8.3.2 La méthode de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8.4 Intégration numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.4.1 La méthode du point milieu . . . . . . . . . . . . . . . . . . . . . . . 58
8.4.2 La méthode du Trapèze . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.4.3 La méthode de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . 60

page 3
TABLE DES MATIÈRES Travaux Pratiques d'Analyse Numérique

Motivation
Partout dans le monde, des millions d'ingénieurs et de scientiques utilisent MAT-

LAB pour analyser et concevoir les systèmes et produits de demain. MATLAB est présent

dans des systèmes automobiles de sécurité active, des véhicules spatiaux, des appareils de

surveillance médicale, des réseaux électriques intelligents et des réseaux mobiles LTE. Il est

utilisé dans les domaines de l'apprentissage automatique, le traitement du signal, la vision

par ordinateur, les communications, la nance computationnelle, la conception de contrô-

leurs, la robotique et bien plus.

La plate-forme MATLAB est optimisée pour résoudre les problèmes scientiques et tech-

niques. Le langage MATLAB, basé sur les matrices, est le moyen le plus naturel au monde

pour exprimer les mathématiques computationnelles. Les graphiques intégrés permettent de

visualiser facilement les données an d'en dégager des informations. Grâce à la vaste biblio-

thèque de boîtes à outils prédénies, vous pouvez commencer directement par les algorithmes

essentiels à votre domaine. L'environnent bureau encourage l'expérimentation, l'exploration

et la découverte. Les outils et les fonctionnalités MATLAB sont tous testés rigoureusement.

Ils sont conçus pour fonctionner conjointement.

Pourquoi opter MATLAB ?


MATLAB pour 'Matrix Laboratory" est le logiciel le plus accessible et le plus
productif conçu pour les ingénieurs et les scientiques. Pour vos tâches d'analyse
de données, de développement d'algorithmes et de création de modèles, MAT-
LAB vous fournit un environnement qui encourage l'exploration et la découverte.

page 4
CHAPITRE 1

INTRODUCTION GÉNÉRALE

Cette initiation à MATLAB a pour objectif de se familiariser à un


outil très utilisé par la communauté scientique dans les laboratoires
et dans l'industrie. Il a également pour objectif d'initier (pour ceux
qui n'y ont jamais touché) à la programmation et à l'algorithmique,
ce qui est indispensable à tout bon ingénieur aujourd'hui. En eet,
beaucoup de notions introduites ici ne sont pas propres à MATLAB
mais à tout langage structuré comme le C/C++, le Java, etc.

Le succès actuel de MATLAB vient de sa simplicité de prise en main


et d'utilisation.De plus, il existe des boîtes à outils (toolbox) option-
nelles mais très utiles dans certains domaines comme l'optimisation,
le traitement du signal et de l'image, l'apprentissage (réseaux de
neurones ...), l'automatique (Simulink), etc. Ce logiciel est de plus
très utilisé tant dans le monde industriel que dans le monde univer-
sitaire.

La prmière partie consiste à présenter l'interface de MATLAB ainsi


que les principales instructions MATLAB utilisées presque tous les
jours. La seconde partie introduit les principales fonctions sous MAT-
LAB et la programmation des méthodes numériques en utilisant ce
logiciel.

5
CHAPITRE 2

GÉNÉRALITÉS ET PRISE EN MAIN

2.1 Démarrer et quitter


Pour lancer MATLAB, il sut de cliquer sur le raccourci MATLAB situé sur le Bureau
ou dans le menu Démarrer, selon l'ordinateur. MATLAB est un gros programme. Il est donc
normal qu'il prenne un peu de temps à démarrer. Une fenêtre logo apparaît

Figure 2.1  Logo de démarrage MATLAB

puis apparaît l'espace de travail gure 2.2.

6
2.2. "HELLO WORLD" Travaux Pratiques d'Analyse Numérique

Avant de commencer le cours proprement dit, nous allons nous familiariser avec l'interface
de Matlab. Selon la version utilisée, l'interface peut changer légèrement mais les points
centraux resteront identiques.

Figure 2.2  Environnement de travail MATLAB

Les blocks de la gure précédente sont présentés comme suit :

▶ Command window : dans cette fenêtre, l'utilisateur donne les instructions et MATLAB
retourne les résultas.
▶Workspace : Les variables dans la fenêtre de commande sont répertoriés dans la fenêtre
de l'espace de travail.
▶ Current directory : Le répertoire courant est une liste de ses chiers.

Le symbole >> situé à gauche indique que l'interpréteur est prêt à recevoir une commande.
Pour mettre n à la session de travail et quitter l'environnement MATLAB, il sut de taper
la commande :
 
>> quit 


2.2 "Hello world"


Tout cours de programmation qui se respecte commence par l'exemple "Hello World".
Il s'agit d'un bref programme pour mettre en place les diérents éléments nécessaires. Nous
allons réaliser deux exemples de ce programme pour mettre en évidence la diérence entre
un script et une fonction.

2.2.1 Script
Le script est le chier m le plus simple. Il s'agit simplement d'une liste de commandes
mises bout à bout et sauvegardée dans un chier. Pour commencer on xe le USERPATH.
On crée ensuite un chier .m dans ce dossier et on nomme ce chier hello.m. On édite ensuite
le chier .m de la façon suivante :

page 7
2.3. OUTILS DE BASE Travaux Pratiques d'Analyse Numérique

Sauvegarder ensuite ce script. Puis dans la fenêtre Command Window, on tape la com-
mande : hello. Voila nous avons fait le programme le plus simple possible de Matlab, voyons
comment nous pouvons l'améliorer.

2.2.2 Fonction
Une fonction va permettre de rentrer des arguments en entrée et d'obtenir diérentes
variables en sortie. On va essayer ici de modier le script hello.m pour en faire une fonction
qui prend votre prénom en entrée et retourne Hello Votreprénom en sortie. On commence
de façon similaire à pour un script : on crée un chier .m que l'on nomme hello2.m.

On sauvegarde le chier .m puis on l'appelle depuis la fenêtre Command Window. Cette fois
la fonction a besoin d'un paramètre en entrée, on tape donc : hello2 ('MOHAMED').
On obtient l'achage voulu. La syntaxe d'une fonction est relativement simple et doit être
connue. On dénit ce que va retourner la fonction : function [output1, output2 ... out-
putN]. Puis on nomme la fonction, ici : = hello2(). On dénit alors les paramètres d'entrée
hello2(input1, imput2, ... inputM). On peut passer alors au corps même de la fonction,
qui doit contenir une dénition de toutes les variables de sortie output1, output2 ... out-
putN. Finalement, une fonction se conclut toujours par end.

2.3 Outils de base


On l'a déjà dit, le principe de base de Matlab est de considérer la plupart des objets
comme des matrices. Ainsi les opérations usuelles +, −, ∗, / doivent se comprendre comme
des opérations matricielles. On consacrera la section suivante à ces opérations. Nous allons
dans un premier temps regarder ce qu'ils se passent pour les matrices 1x1 (c'est à dire un
seul élément), puis pour les matrices 1xn ou nx1 (c'est à dire des vecteurs ligne ou colonne).

2.3.1 Types de variables


Il existe cinq grands types de variables sous Matlab : les entiers, les réels, les complexes,
les chaînes de caractères et le type logique. Dénissons une variable de chaque type :

page 8
2.3. OUTILS DE BASE Travaux Pratiques d'Analyse Numérique

a représente un réel, b un complexe, c une chaine de caractères, d1 et d2 sont deux manières


de dénir une variable logique (VRAI dans le cas présent) et e est un entier codé sur 8 bits.
On peut alors vérier le type de ces diérentes variable en utilisant la fonction whos :

Il n'est donc pas nécessaire (impossible en fait) de déclarer le type de variable lorsque l'on
crée une variable dans Matlab. Il peut alors s'avérer utile de vérier quel est le type d'une
variable. On utilise les fonctions ischar, islogical, isreal.

2.3.2 Arithmétique et opérations sur les scalaires


Nous allons nous intéresser aux opérations mathématiques de bases avec des matrices
1x1, c'est à dire des nombres. Commençons par les 4 opérations que vous connaissez depuis
l'école primaire : +, −, ∗, /.

On peut également travailler avec des variables dénies par l'utilisateur :

page 9
2.3. OUTILS DE BASE Travaux Pratiques d'Analyse Numérique

On peut également utiliser les fonctions trigonométriques, puissance, logarithmiques etc.

2.3.3 Commandes MATLAB


La fenêtre Workspace ache les variables en cours ainsi que leur valeur. La commande
whos permet de lister les variables en cours :

Name : le nom de la variable (2.1)


Size : la taille de la variable (2.2)
Bytes : nombre d'octets (1 octet = 8 bits) alloué à la variable (2.3)
Class : le type de la variable ; pour une chaîne de caractères : char (2.4)

La commande clear, permet de supprimer dénitivement des variables de l'espace de travail.


Pour supprimer une variable spécique, par exemple la variable ans :

page 10
2.3. OUTILS DE BASE Travaux Pratiques d'Analyse Numérique

La commande help permet d'accéder à l'aide en ligne de MATLAB.Elle donne les dif-
férents thèmes abordés dans la documentation. Examinez la liste des thèmes proposés dans
l'aide. Pour obtenir de l'aide sur un thème spécique, par exemple, sur les opérateurs :

La commande disp (pour display, i.e. acher, help disp) permet d'acher du texte ou une
valeur numérique (scalaire, vecteur ou matrice). Le texte à acher doit être placé entre
apostrophes '. Par exemple :

Une valeur numérique à acher n'est pas encadrée par des apostrophes :

La commande input (help input) permet une saisie clavier avec aectation de la saisie
à une variable de type numérique ou de type caractère. Pour saisir une valeur numérique :

MATLAB attend une saisie de clavier validée par un appui sur la touche Entrer.

page 11
CHAPITRE 3

VECTEURS ET MATRICES

Avec Matlab, on travaille essentiellement avec un type d'objet : les matrices. Une variable
scalaire est une matrice de dimension 1 × 1 et un vecteur est une matrice de dimension 1 × n
ou n × 1. II est capital d'être à l'aise avec ces notions pour comprendre au mieux la philo-
sophie de Matlab et l'exploiter ecacement.

3.1 Dénition d'un vecteur


Un vecteur n'est rien d'autre qu'un tableau de valeurs. II existe plusieurs façons de créer
un vecteur et la plus simple d'entre elles est de l'écrire explicitement.

L'ensemble des composantes est donné entre crochets et les valeurs sont séparées par un
espace (ou une virgule ","). Nous avons ici déni un vecteur ligne. Un vecteur colonne est
créé en utilisant un point-virgule  ; comme délimiteur.

Bien que simple, cette méthode n'est pas pratique pour dénir des vecteurs de taille im-
portante. Une seconde méthode utilise l'opérateur deux-points  :. II permet de discrétiser
un intervalle avec un pas constant.

12
3.2. QUELQUES FONCTIONS UTILES Travaux Pratiques d'Analyse Numérique

Cette instruction crée un vecteur contenant des valeurs allant de 0 à 1 avec un pas de 0.2.
La syntaxe est la suivante : vecteur=valeurinitial : increment : valeurf inale. Par défaut,
le pas est égal à 1.

Enn, des fonctions prédénies permettent de générer des vecteurs automatiquement.

La première fonction crée un vecteur de 1000 points avec des valeurs allant de 0 à 10 éga-
lement espacées. La seconde crée un vecteur de 1000 points sur un intervalle de 10−1 à 102
avec un espacement logarithmique.
On peut accéder aux diérents éléments d'un tableau en spéciant un (ou des) indice(s)
entre parenthèses.

v (3) retourne le 3ième élément du vecteur V. L'argument 2 : 4 permet de sélectionner un


bloc d'éléments (ici du second au quatrième).

3.2 Quelques fonctions utiles


Nous présentons dans ce paragraphe un ensemble de fonctions usuelles liées à l'utilisation
des tableaux.
▶ length (v) : renvoie la taille du tableau.
▶ max (v) : renvoie renvoie la valeur maximale du tableau.
▶ min (v) : renvoie la valeur minimale du tableau.
▶ mean (v) : renvoie la valeur moyenne des éléments du tableau.
▶ sum (v) : calcul la somme des éléments du tableau.
▶ prod (v) : calcul le produit des éléments du tableau.
▶ sort (v) : range les éléments du tableau dans l'ordre croissant.

page 13
3.3. DÉFINITION D'UNE MATRICE Travaux Pratiques d'Analyse Numérique

3.3 Dénition d'une matrice


La matice est reine, elle constitue l'élément de base dans MATLAB. Toutes les opérations
et les fonctions se font directement sur des matrices. Ceci lui confère une rapidité de calcul
impressionnante.
La dénition d'une matrice est délimitée pas des crochets [ ]. Les diérents éléments d'une
ligne sont séparés par un espace et les diérentes lignes sont séparées par des pointsvirgules
 ;. Ainsi pour dénir une variable matricielle
 
1 2 3
M = 4 5 6 
7 8 9

On écrira

ou

L'accès à un élément d'une matrice s'opère en spéciant des indices entre parenthèses à la
suite de son nom. L'élément situé la iieṁm ligne et la j ii me colonne est obtenu par la com-
mande M (i, j). Par exemple, la valeur M23 est récupérée en tapant

On peut également modier directement un des éléments en lui aectant une nouvelle valeur.

page 14
3.3. DÉFINITION D'UNE MATRICE Travaux Pratiques d'Analyse Numérique

3.3.1 Matrices particulières


Quelques matrices particulières, et très utilisées, sont dénies plus aisément au travers de
fonctions. Ces fonctions prennent en argument les dimensions de la matrice que l'on souhaite
construire. Le premier désigne le nombre de lignes et le second le nombre de colonnes.
La matrice nulle :

Une matrice pleine de 1 :

La matrice identité :

Une matrice aléatoire (éléments compris entre 0 et 1) :

Une matrice diagonale :

Contrairement aux précédentes, cette dernière fonction prend en argument un vecteur. La


taille de la matrice diagonale est donc déterminée par la taille du vecteur.

3.3.2 Extraction de sous-tableaux


II est souvent utile d'extraire des blocs d'un tableau existant. Pour cela on utilise l'opé-
rateur " : Pour cela, il faut spécier pour chaque indice la valeur de début et la valeur de
n. La syntaxe générale est donc la suivante (pour un tableau à deux dimensions) : tableau
(début :n, début : n).  
2 3
Ainsi pour extraire le bloc de la matrice M , on tapera :
5 6

page 15
3.3. DÉFINITION D'UNE MATRICE Travaux Pratiques d'Analyse Numérique

Le caractère  :  seul, signie toute la longueur est extraite. De cette façon, on peut
isoler une ligne, ou une colonne, complète. Exemples :

3.3.3 Construction de matrice par blocs


A partir de matrices et de vecteurs dénis préalablement, on peut créer de nouvelles
matrices :

Cette opération est réalisée très simplement par la même syntaxe que pour les nombres.

II est impératif que les matrices M, V, U et O aient été dénies auparavant. De plus, les blocs
composant une matrice doivent évidement être de dimension compatible. Si ces conditions
ne sont pas respectées, la commande ne pourra s'exécuter et l'interface achera une erreur.
Nous pouvons mentionner la fonction blkdiag() qui permet de créer une matrice diagonale à
partir des éléments donnés en argument.

page 16
3.4. OPÉRATIONS SUR LES MATRICES Travaux Pratiques d'Analyse Numérique

3.3.4 Quelques fonctions utiles


Nous présentons dans ce paragraphe un ensemble de fonctions usuelles liées à l'utilisation
des matrices.

3.4 Opérations sur les matrices


Un des atouts remarquables de Matlab est la possibilité d'eectuer les opérations arith-
métiques traditionnelles de façon naturelle sans avoir à les programmer. Les opérateurs stan-
dards sont donc directement applicables aux matrices. Si la commande entrée ne respecte
pas les règles de calcul matriciel (compatibilité des opérandes), le logiciel renverra une erreur.

page 17
3.4. OPÉRATIONS SUR LES MATRICES Travaux Pratiques d'Analyse Numérique

Appliquons ces opérateurs aux matrices A et B dans l'exemple ci-dessous.

Si l'on souhaite eectuer une opération, non pas matricielle, mais éléments par éléments,
l'opérateur doit être précédé d'un point  .  : . ∗ ./.. Appliquons ces opérateurs aux ma-
trices de l'exemple précédent.

page 18
CHAPITRE 4

REPÉSENTATIONS GRAPHIQUES

Les bibliothèques de Matlab proposent un très grand nombre de fonctions pour la ma-
nipulation d'objets graphiques. Nous ne présentons ici que quelques principes de base,
utiles pour la visualisation de courbes. Si nous nous concentrons particulièrement sur la
représentation graphique à 2 dimensions, il est possible d'aller bien plus loin : graphismes
3D (courbes, maillages, surfaces. . .), édition d'IHM (graphical user interface, GUI), anima-
tions. . . Quelques exemples de représentations 3D sont brièvement présentés.

4.1 Graphiques 2D
Le tracé d'une courbe s'eectue à partir de la commande plot(). Celle-ci prend en para-
mètres deux vecteurs et ache sur un graphique à deux axes chaque couple de points (de
même indice). Par exemple, plot (x, y) marquera un point pour chaque couple [x(i), y(i)]
avec i allant de 0 à length(x). On représente ainsi les valeurs de y en fonction des valeurs
de x. La fonction renvoie une erreur si x et y ne sont pas de même longueur. Si le premier
vecteur x est omis, y est tracé en fonction de son indice i. Par défaut, chaque point tracé est
relié par une droite.
Traçons la fonction sinus dans l'intervalle [−π, π] avec un pas de 0.01.

19
4.1. GRAPHIQUES 2D Travaux Pratiques d'Analyse Numérique

Le tracé de la fonction y = sin(x) est donné par la gure suivante

Le pas étant faible, la courbe semble parfaitement tracée. Bien évidemment, si l'on diminue
le nombre de points (le pas est augmenté), la courbe apparaitra plus saccadée.

page 20
4.1. GRAPHIQUES 2D Travaux Pratiques d'Analyse Numérique

La commande plot prend un troisième argument permettant de spécier la couleur du


tracé et le symbole de représentation.
Retraçons l'exemple précédent en rouge avec des étoiles pour chaque point.

Diérentes options sont disponibles (consulter le help plot) :

page 21
4.1. GRAPHIQUES 2D Travaux Pratiques d'Analyse Numérique

A chaque nouvelle commande plot, la gure est remplacée. Pour garder plusieurs courbes,
il faut autoriser la superposition de graphique à l'aide de la commande hold on. Les plot
suivants se superposeront jusqu'à la désactivation hold of f ou la fermeture de la fenêtre.

II est également possible de tracer plusieurs courbes sur plusieurs fenêtres. Pour cela, une
nouvelle fenêtre (objet graphique f igure) doit invoquée avant l'appel à la fonction plot cor-
respondante.

page 22
4.2. GRAPHIQUES 3D Travaux Pratiques d'Analyse Numérique

D'autres fonctions permettent une représentation diérente des données, par exemples
sous forme discrète (stem), d'histogramme (bar), de camembert (pie), d'escalier (stairs),
avec échelle logarithmique ( semilogx, semilogy ) . . .
La mise en forme d'une représentation graphique, c'est-à-dire l'insertion de labels, lé-
gende, le dimensionnement des axes, peut être éditée de deux manières. La méthode la plus
simple utilise directement les menus de l'interface de la gure (Edit et Insert). Toutes ces
manipulations sont également réalisables à partir de la command W indow en ligne de
commande. Cette seconde méthode est généralement utilisée lors du développement de pro-
grammes. Voici quelques exemples parmi les manipulations les plus simples :

4.2 Graphiques 3D
Nous montrons ici les possibilités de Matlab en graphisme 3D sur quelques exemples.

4.2.1 Tracé de courbes dans l'espace


La fonction prend en argument 3 vecteurs de même taille. Son fonctionnement est simi-
laire à celui de plot. Elle ache dans un système d'axe à 3 dimensions les triplets [ x (i), y
(i), z (i) ].

page 23
4.2. GRAPHIQUES 3D Travaux Pratiques d'Analyse Numérique

4.2.2 Représentation par maillage dans le plan (x,y)


La fonction mesh trace un maillage (séries de lignes entre les points) tandis que la fonc-
tion surf trace une surface. Ces fonctions prennent en argument 2 matrices générées à partir
de 2 vecteurs ( x et y , pas nécessairement de même taille) et une matrice z de dimension
(length ( y ), length ( x ) ). Pour chaque point du plan ( x(i), y(j)), elles achent la valeur
(ou niveau) z(j, i). Les 2 premières matrices obtenues à l'aide de la fonction meshgrid dé-
nissent tous les points du quadrillage. En fait, le niveau Z(j, i) de chaque point du maillage
est calculé à partir des couples (X(j, i), Y (j, i)). Une quatrième matrice peut être précisée
pour dénir une échelle de couleur associée au niveau du maillage. Cette échelle est basée
sur une palette de couleurs prédénie par la valeur courante de la variable colormap.

page 24
4.2. GRAPHIQUES 3D Travaux Pratiques d'Analyse Numérique

4.2.3 Tracé des courbes de contour


Reprenons l'exemple précédent.

La fonction contour trace dans le plan (x, y) les courbes z = cst d'une surface. Elle s'utilise
comme les deux fonctions précédentes mais représente les courbes sur un graphique 2D avec
un dégradé de couleurs associé aux valeurs de z correspondantes. Le quatrième paramètre
représente le nombre de lignes de niveau à tracer. On peut également spécier quelles lignes
de niveauacher. Par exemple, pour dessiner les courbes z = −0.1, 0, 0.3, on écrira contour
X, Y, Z, −0.1 0 0.3 ..


page 25
4.2. GRAPHIQUES 3D Travaux Pratiques d'Analyse Numérique

page 26
CHAPITRE 5

PRINCIPALES INSTRUCTIONS MATLAB

Les tableaux suivants résument les principales instructions MATLAB.

27
Travaux Pratiques d'Analyse Numérique

page 28
Travaux Pratiques d'Analyse Numérique

page 29
Travaux Pratiques d'Analyse Numérique

page 30
Travaux Pratiques d'Analyse Numérique

page 31
CHAPITRE 6

SÉRIE D'APPLICATIONS

1. Soient les vecteurs colonnes et la matrice suivants


     
1 −5 2 3 4
⃗u1 =  2  , ⃗u2 =  2  , A =  7 6 5 .
3 1 2 8 7

(a) Entrer ces données sous Matlab et déterminer les dimensions des vecteurs ⃗u1 , ⃗u2 et la
matrice A.
(b) Calculer ⃗u1 + 3⃗u2 , A⃗u1 .
(c) Dénir le vecteur ⃗u3 contenant la première colonne de la matrice de A, et le vecteur ⃗u4
contenant les éléments de ⃗u1 et ⃗u2 .  
  2 3
2 3 4
(d) Extraire de la matrice A les matrices P = , H =  7 6 .
7 6 5
2 8
(e) Utiliser des commandes Matlab pour calculer ∥⃗u1 ∥1 , ∥⃗u1 ∥2 , ∥⃗u1 ∥∞ .
(f) Utiliser des commandes Matlab pour calculer le determinant et l'inverse de A.
2. Créez un script Fichier.m. Écrivez sur le script Fichier un programme qui demande deux
valeurs a et b à l'utilisateur et qui les ache, qui intervertit leurs contenus et qui les ache
à nouveau.
3. Écrire une fonction y = Sommation(a, n) qui reçoitP en entrée deux entiers a et b et renvoi
en sortie y le résultat de la somme suivante : y = nk=1 K a .
4. Utiliser la fonction solve de Matlab pour résoudre le système d'équations suivant
6x + y − 5z = 10
2x + 2y + 3z = 11
4x − 9y + 7z = 12

5. Tracer les graphes des fonctions suivantes sur deux gures diérentes et sur une même
gure.
x → cos(x), x ∈ [0, 2π], x → sin(x), x ∈ [0, 2π].
6. Tracer la surface donnée par l'équation

z = sin(x) cos(y), pour x ∈ [−5, 5] et y ∈ [−5, 5].

32
CHAPITRE 7

CORRECTION DE LA SÉRIE D'APPLICATIONS

1. Soient les vecteurs colonnes et la matrice suivants


     
1 −5 2 3 4
⃗u1 =  2  , ⃗u2 =  2  , A =  7 6 5  .
3 1 2 8 7

(a). Entrer ces données sous Matlab et déterminer les dimensions des vecteurs ⃗u1 , ⃗u2 et la
matrice A.

33
Travaux Pratiques d'Analyse Numérique

(b). Calculer ⃗u1 + 3⃗u2 et A⃗u1 .

(c). Dénir le vecteur ⃗u3 contenant la première colonne de la matrice de A, et le vecteur ⃗u4
contenant les éléments de ⃗u1 et ⃗u2 .

page 34
Travaux Pratiques d'Analyse Numérique
 
  2 3
2 3 4
(d). Extraire de la matrice A les matrices P = , H =  7 6 .
7 6 5
2 8

(e). Utiliser des commandes Matlab pour calculer ∥⃗u1 ∥1 , ∥⃗u1 ∥2 , ∥⃗u1 ∥∞ .

page 35
Travaux Pratiques d'Analyse Numérique

(f ). Utiliser des commandes Matlab pour calculer le determinant et l'inverse de A.

2. Créez un script Fichier.m. Écrivez sur le script Fichier un programme qui demande deux
valeurs a et b à l'utilisateur et qui les ache, qui intervertit leurs contenus et qui les ache
à nouveau.

page 36
Travaux Pratiques d'Analyse Numérique

3. Écrire une fonction y = Sommation(a, n) qui reçoit Pen entrée deux entiers a et n et
renvoi en sortie y le résultat de la somme suivante : y = nk=1 K a .

4. Utiliser la fonction solve de Matlab pour résoudre le système d'équations suivant


6x + y − 5z = 10
2x + 2y + 3z = 11
4x − 9y + 7z = 12

page 37
Travaux Pratiques d'Analyse Numérique

5. Tracer les graphes des fonctions suivantes sur deux gures diérentes et sur une même
gure.
x → cos(x), x ∈ [0, 2π], x → sin(x), x ∈ [0, 2π].

Figure 7.1  Le graphe de la fonction sin(x) sur l'intervalle [0, 2π]

page 38
Travaux Pratiques d'Analyse Numérique

Figure 7.2  Le graphe de la fonction cos(x) sur l'intervalle [0, 2π]

page 39
Travaux Pratiques d'Analyse Numérique

Figure 7.3  Le graphe de la fonction cos(x) et sin(x) sur l'intervalle [0, 2π]

page 40
Travaux Pratiques d'Analyse Numérique

6. Tracer la surface donnée par l'équation

z = sin(x) cos(y), pour x ∈ [−5, 5] et y ∈ [−5, 5].

page 41
CHAPITRE 8

LES MÉTHODES NUMÉRIQUES AVEC MATLAB

8.1 Introduction générale


Le domaine de calcul scientique consiste à développer, analyser et appliquer des mé-
thodes relevant de domaines mathématiques aussi variés que l'analyse, l'algèbre linéaire, la
géométrie, la théorie de l'approximation, les équations fonctionnelles, l'optimisation ou le
calcul diérentiel.
Les méthodes numériques trouvent des applications naturelles dans de nombreux problèmes
posés par la physique, les sciences biologiques, les sciences de l'ingénieur, l'économie et la
nance. Son rôle est renforcé par l'évolution permanente des ordinateurs et des algorithmes :
la taille des problèmes que l'on sait résoudre aujourd'hui est telle qu'il devient possible d'en-
visager la simulation de phénomènes réels.
Dans ce polycopié de travaux pratiques, nous avons fait le choix de présenter systémati-
quement et succinctement les fondements théoriques de chaque méthode numérique avant
d'entamer l'écriture des algorithmes. Ceci est primordial an d'appréhender les diérents
concepts de l'analyse numérique mais également pour éveiller "l'instinct" de programmation
chez l'étudiant(e). Tous les algorithmes sont écrits sous Matlab.

42
8.2. INTERPOLATION POLYNÔMIALE Travaux Pratiques d'Analyse Numérique

8.2 Interpolation polynômiale


8.2.1 Interpolation de Lagrange
Soient n + 1 couples de données {xi , yi }, avec des n÷uds diérents xi . On peut associer
(relier) à ces données un seul et unique polynôme d'interpolation des yi aux n÷uds xi , ayant
un degré inférieur ou égal à n. Dans le cas général ce polynôme est donné par :
n n
x − xj
avec
X Y
Pn (x) = f (xi ) Li (x), Li (x) =
i=0 i=0
xi − xj
j̸=i

Cette relation est appelée formule d'interpolation de Lagrange et les polynômes Li sont ses
polynômes caractéristiques. Le but de l'interpolation consiste, entre autre, à substituer une
fonction f (x) (connue analytiquement ou non) par une fonction plus simple an de procéder à
une intégration numérique ou à un calcul de la dérivée. L'interpolation sert aussi à construire
une représentation synthétique de données expérimentales quand leurs nombre devient très
élevé.
Enoncé du TP : Interpolation de Lagrange
Construire, selon la méthode de Lagrange, le polynôme d'interpolation P2 (x) de degré deux qui
interpole les points : (x0 , y0 ) = (0, 1); (x1 , y1 ) = (1, 2) et (x2 , y2 ) = (2, 5).
1. Déterminer d'abord ce polynôme de façon analytique.
2. Écrire un algorithme Matlab permettant l'implémentation de la méthode de Lagrange. Dé-
terminer ce polynôme.
3. Tracer, sur la même gure, le polynôme et les points d'interpolation.

Résolution analytique
Dans un premier temps, nous déterminerons analytiquement le polynôme P2 (x). Il vient :

P2 (x) = y0 × L0 (x) + y1 × L1 (x) + y2 × L2 (x)


x − x1 x − x2
L0 (x) = ×
x0 − x1 x0 − x2
x − x0 x − x2
L1 (x) = ×
x1 − x0 x1 − x2
x − x0 x − x1
L2 (x) = ×
x2 − x0 x2 − x1
En substituant les équations ci-dessus, on obtient :
     
x − x1 x − x2 x − x0 x − x2 x − x0 x − x1
P2 (x) = y0 × × + y1 × × + y2 × ×
x0 − x1 x0 − x2 x1 − x0 x1 − x2 x2 − x0 x2 − x1
     
(x − 1)(x − 2) (x)(x − 2) (x)(x − 1)
=⇒ P2 (x) = 1 × +2× +5×
(−1)(−2) (1)(−1) (2)(1)
 2   2   2 
(x − 3x + 2) (x − 2x) (x − x)
=⇒ P2 (x) = −2× +5×
2 1 2
 2 2 2

x − 3x + 2 − 4x + 8x + 5x − 5x
=⇒ P2 (x) =
2
2
=⇒ P2 (x) = x + 1

page 43
8.2. INTERPOLATION POLYNÔMIALE Travaux Pratiques d'Analyse Numérique

Résolution algorithmique

À partir de ce calcul, on comprend que le calcul analytique montre ses limites pour des degrés
n élevés. Par conséquent, il est nécessaire de développer un algorithme permettant l'implémen-
tation de la méthode de Lagrange an de déterminer les polynômes quelque que soit le degré
n.

page 44
8.2. INTERPOLATION POLYNÔMIALE Travaux Pratiques d'Analyse Numérique

Ci-dessous, le graphique représentant le polynôme interpolant et les points d'interpola-


tion.

Figure 8.1  Polynôme d'interpolation de Lagrange

8.2.2 Interpolation de Newton


Enoncé du TP : Interpolation de Newton
Construire, selon la méthode de Newton, le polynôme d'interpolation P2 (x) de degré deux qui
interpole les points : (x0 , y0 ) = (0, 1); (x1 , y1 ) = (1, 2) et (x2 , y2 ) = (2, 5).
1. Déterminer d'abord ce polynôme de façon analytique.
2. Écrire un algorithme Matlab permettant l'implémentation de la méthode de Newton. Déter-
miner ce polynôme.
3. Tracer, sur la même gure, le polynôme et les points d'interpolation.

page 45
8.2. INTERPOLATION POLYNÔMIALE Travaux Pratiques d'Analyse Numérique

page 46
8.2. INTERPOLATION POLYNÔMIALE Travaux Pratiques d'Analyse Numérique

Figure 8.2  Interpolation selon Newton

8.2.3 La commande polyt


En MATLAB on peut calculer les polynômes d'interpolation en utilisant les commandes
polyt. Voyons plus en détail comment peut-on utiliser cette commande.
p = polyfit(x, y, n)
calcule les coecients du polynôme de degré n qui interpole les valeurs y aux points x.

Exemple d'application de la commande polyt



On veut interpoler les valeurs y = [1, 2, 5] aux points x = [0, 1, 2] par un polynôme de degré 2.
Il sut d'utiliser les commandes Matlab suivantes :

p est le vecteur des coecients du polynôme interpolant : Π2 (x) = x2 + 1.


Pour calculer le polynôme de degré n qui interpole une fonction f donnée dans n + 1 points,
il faut d'abord construire le vecteur y en évaluant f dans les noeuds x.

page 47
8.2. INTERPOLATION POLYNÔMIALE Travaux Pratiques d'Analyse Numérique

Exemple : Interpolation de la fonction f (x) = cos(x)



Calculons le polynôme de degré 2 qui interpole la fonction f (x) = cos(x) aux points
0, π/2 et π.

p est le vecteur des coecients du polynôme interpolant : Π2 (x) = −0.6366x + 1.

8.2.4 La commande interp1


La fonction interp1 de Matlab permet d'eectuer des interpolations à une dimension.
Le syntaxe de cette fonction est donné comme suit :
p = interp1(x, y, xi, method);

où :
→ x est le vecteur des abscisses des points d'échantillonnage.
→ y est le vecteur des valeurs d'échantillonnage, correspondant à x.
→ xi est le vecteur des abscisses des points dont on souhaite interpoler la valeur.
→ method est la méthode d'interpolation à choisir notamment 'linear' pour une interpola-
tion linéaire.
→ p est le vecteur des valeurs interpolées.

Exemple d'application de la commande interp1



Déterminer le polynôme d'interpolation de la fonction f (x) = sin(x) aux points
0 0.5 1 1.5 et 2.

page 48
8.2. INTERPOLATION POLYNÔMIALE Travaux Pratiques d'Analyse Numérique

Figure 8.3  Le poynôme d'interpolation en utilisant la commande interp1

8.2.5 Exemple pratique : Élévation du soleil au cours d'une journée


Imaginons que l'on dispose de relevés de l'élévation du soleil dans le ciel toutes les heures
entre 9 heures et 19 heures.
temps =[9 10 11 12 13 14 15 16 17 18 19] ;
elevation =[28.5 40 50 60 67.5 70 65 56 45.5 35 23] ;
On souhaite estimer la position du soleil de 8 heures à 20 heures avec une résolution d'un
quart d'heure, de sorte que le vecteur de temps que l'on souhaite est le suivant.
temps Interp = 8 :0.25 :20 ;
Pour estimer l'élévation pour chaque valeur du vecteur précédent, il est nécessaire d'interpoler
car les données ont seulement une résolution d'une heure et que les relevés n'ont été eectués
que de 9 heures à 19 heures.
elevationInterp = interp1(temps, elevation, tempsInterp, 'linear') ;

page 49
8.2. INTERPOLATION POLYNÔMIALE Travaux Pratiques d'Analyse Numérique

Visualisons maintenant le résultat obtenu :

page 50
Travaux Pratiques
8.3. RÉSOLUTION NUMÉRIQUE DES ÉQUATIONS d'Analyse
NON LINÉAIRES Numérique

8.3 Résolution numérique des équations non linéaires


II existe toute une panoplie de méthodes numériques (dichotomie, point xe, Newton,
...etc) permettant de trouver numériquement les zéros de fonction f (x) = 0 d'une variable
réelle. La majorité de ces méthodes sont itératives. En d'autres mots, elles calculent des
approximations successives x1 , x2 , x3 , . . . de la véritable racine x∗ de l'équation f (x) = 0, à
partir d'une valeur initiale x0 plus au moins bien choisie. Ce qui les distingue, entre autre,
c'est leurs vitesses de convergence et leurs robustesses. Dans certaines applications, cette
vitesse de convergence devient un facteur déterminant notamment quand il s'agit de calculer
les racines d'une constellation de fonctions.

8.3.1 La méthode de dichotomie


Le principe de la méthode de dichotomie, encore appelée méthode de bissection, est
basé sur le théorème de la valeur intermédiaire. La méthode est
 décrite comme suit : soit,
f : a, b −→ R, une fonction continue sur l'intervalle a, b . Si f (a) × f (b) < 0 −→ il


existe donc au moins une racine de f (x) appartenant à l'intervalle a, b .

8.3.2 La méthode de Newton


Comme il a été montré précédemment, la méthode de dichotomie exploite uniquement
le signe de la fonction f aux extrémités des sous-intervalles. Lorsque cette fonction est
diérentiable, on peut établir une méthode plus eciente en exploitant les valeurs de la
fonction f et de ses dérivées. Le but est de programmer, sous Matlab, la méthode itérative
de Newton.
Enoncé du TP : Résolution numérique des équations non linéaires
Dans ce test, il est demandé de trouver la racine de f (x) = 2x2 − x − 1 sur l'intervalle [0.5, 1.5]
en utilisant la méthode de dichotomie, et la méthode de Newton.

Résolution algorithmique

▶ La méthode de Dichotomie
On prend c = a+b la moitié de l'intervalle a, b tel que :
 
2
1. Si f (c) = 0 −→ c est la racine de f (x).
2. Sinon, nous testons le signe de f (a) × f (c) (et de f (c) × f (b) ).
3. Si f (a)×f (c) < 0 −→ la racine se trouve dans l'intervalle  a, c  qui est la moitié de  a, b .
 

4. Si f (c) × f (b) < 0 −→ la racine se trouve dans l'intervalle c, b qui est la moitié de a, b .
Ce processus de division, par deux, de l'intervalle (à chaque itération on divise l'intervalle par
deux) de la fonction est réitéré jusqu'à la convergence
 pour la tolérance considérée. Ainsi, pour
la nième itération, on divise : an , bn en an , cn et cn , bn , avec à chaque fois cn = an +b .
   n
2
▶ La méthode de Newton
Soit f (x) une fonction dérivable. On veut résoudre l'équation non linéaire

f (x) = 0

page 51
Travaux Pratiques
8.3. RÉSOLUTION NUMÉRIQUE DES ÉQUATIONS d'Analyse
NON LINÉAIRES Numérique

L'algorithme de Newton n'est autre que la méthode des points xes appliquée à la fonction
f (x)
F (x) = x −
f ′ (x)

L'algorithme consiste à construire une suite x0 , x1 , . . . , xn telle que

x0 donné
(
f (xn )
xn+1 = xn − f ′ (xn )

page 52
Travaux Pratiques
8.3. RÉSOLUTION NUMÉRIQUE DES ÉQUATIONS d'Analyse
NON LINÉAIRES Numérique

La méthode de Dichotomie

Figure 8.4  Recherche de la racine par la méthode de Dichotomie

page 53
Travaux Pratiques
8.3. RÉSOLUTION NUMÉRIQUE DES ÉQUATIONS d'Analyse
NON LINÉAIRES Numérique

Figure 8.5  Racine de f par la méthode de Dichotomie

page 54
Travaux Pratiques
8.3. RÉSOLUTION NUMÉRIQUE DES ÉQUATIONS d'Analyse
NON LINÉAIRES Numérique

La méthode de Newton

Figure 8.6  Recherche de la racine par la méthode de Newton

page 55
Travaux Pratiques
8.3. RÉSOLUTION NUMÉRIQUE DES ÉQUATIONS d'Analyse
NON LINÉAIRES Numérique

Figure 8.7  Racine de f par la méthode de Newton

page 56
8.4. INTÉGRATION NUMÉRIQUE Travaux Pratiques d'Analyse Numérique

8.4 Intégration numérique


Très souvent le calcul explicite de l'intégrale, d'une fonction f continue sur [a, b] dans R,
dénie par I(f ) = a f (x)dx peut se révéler très laborieux, ou tout simplement impossible
Rb

à atteindre. Par conséquent, on fait appel à des méthodes numériques, an de calculer une
approximation de I(f ). Dans ces méthodes numériques, la fonction f , est remplacée par
une somme nie. Dans ce TP, nous allons étudier et implémenter, sous Matlab, quelques
méthodes usuelles (point mileu, trapèze et Simpson) dédiées à l'intégration numérique.
Enoncé du TP : Intégration numérique
- Calculez les approximations de l'intégrale :
Z 2π
I(f ) = x exp(−x) cos(2x)dx ≃ −0.122122604618968
0

en utilisant les méthodes du point milieu, du trapèze et de Simpson. Conclure.

Résolution algorithmique

MATLAB propose plusieurs fonctions pour calculer numériquement la valeur de l'intégrale
d'une fonction d'une variable, sur un intervalle fermé.
Il existe dans MATLAB deux fonctions trapz et quad qui implémentent respectivement la
méthode du trapèzes et la méthode de Simpson.
Les arguments de trapz sont deux listes, dans l'ordre :
→ une liste x qui est une subdivision de l'intervalle d'intégration ;
→ une liste y dont les valeurs sont les images des valeurs de de la liste x par la fonction à
intégrer.
Cette fonction est utilisée sur MATLAB avec la façon suivante :
x=a :increment :b ;
y=fun(x) ;
trapz(x,y)
La fonction quad tente d'approximer l'intégrale de la fonction à valeur scalaire F U N de a à b
avec une marge d'erreur de tol = 10−6 .
Cette fonction est utilisée sur MATLAB avec la façon suivante :
quad('FUN',a,b,tol)

page 57
8.4. INTÉGRATION NUMÉRIQUE Travaux Pratiques d'Analyse Numérique

8.4.1 La méthode du point milieu


Soit f une fonction continue sur l'intervalle [a, b], par dénition son intégrale se calcule
suivant : Z b
I(f ) = f (x)dx
a

Notons que l'expression analytique de f (x) peut être connue comme elle peut être inconnue.
L'idée de base de cette méthode, consiste à subdiviser l'intervalle [a, b] en n sous-intervalles
[xk , xk+1 ]. Dans le cas où les sous-intervalles sont équidistants, on écrira ∆x = (b − a)/n.
Ainsi, le schéma numérique de cette méthode s'écrira comme :
n Z
X
I(f ) = f (x)dx
k=1 Ik
n
xk+1 − xk
avec
X
I(f ) = ∆x × f (x̄k ) x̄ =
k=1
2

Pour chaque ∆x = [xk , xk+1 ] on prend le point central de l'ordonnée f (x̄), valeur médiane
entre f (xk ) et f (xk+1 ) .I(f ), comme illustré sur la gure ci-dessous, représente l'aire com-
prise entre la courbe y = f (x) et l'axe des abscisses entre les droites x = a et x = b. Par
ailleurs, notons qu'il existe plusieurs façons de mettre en ÷uvre la méthode des rectangles.
Ainsi, on a également la possibilité de prendre la borne inférieure ou bien la borne supérieure
sur chaque sous-intervalle [xk , xk+1 ].

Figure 8.8  La solution de l'intégrale par la méthode du point milieu

page 58
8.4. INTÉGRATION NUMÉRIQUE Travaux Pratiques d'Analyse Numérique

8.4.2 La méthode du Trapèze


Cette méthode est basée sur l'interpolation, de chaque sous-intervalle [xk , xk+1 ], par un
polynôme de degré un. En d'autres mots, sur chaque [xk , xk+1 ], la fonction f continue et déri-
vable sur [a, b], est substituée par la droite joignant les points (xk , f (xk )) et (xk+1 , f (xk+1 )).
Le schéma numérique de la méthode du trapèze est donné par :
n−1
∆x X
I(f ) ≈ [f (a) + f (b)] + ∆x × f (xk )
2 k=1

La méthode du trapèze (O (h2 )) fournit une bien meilleure précision que la méthode du point
milieu (O(h))

Figure 8.9  La solution de l'intégrale par la méthode du Trapèze

La commande trapz

Figure 8.10  La solution de l'intégrale par la méthode du Trapèze en utilisant la commande


trapz

page 59
8.4. INTÉGRATION NUMÉRIQUE Travaux Pratiques d'Analyse Numérique

8.4.3 La méthode de Simpson


Cette méthode est basée sur l'interpolation, de chaque sous-intervalle [xk , xk+1 ], par un
polynôme de degré deux. Ainsi, la fonction f est substituée par ce polynôme du second
degré qui dénit donc un arc de parabole passant par les points d'ordonnées f (xk ) , f (xk+1 )
et f (xk+2 ). Le schéma numérique de cette méthode est donné par :
n−1 n−1  !
∆x X X xk+1 − xk
I(f ) ≈ f (a) + f (b) + 2 × f (xk ) + 4 × f
6 k=1 k=1
2

La méthode de Simpson (O (h4 )) fait mieux que celle du trapèze. Ceci provient du fait qu'elle
pondère plus le point central.

La commande quad

Figure 8.11  La solution de l'intégrale par la méthode de Simpson en utilisant la commande


quad

page 60

Vous aimerez peut-être aussi