Vous êtes sur la page 1sur 51

ANALYSE NUMÉRIQUE

NIVEAU 3

SEMESTRE 5

Dr Samuel EPESSE MISSE


Lucie DONKING

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING i


UE : IUT GMP53 MAINTENANCE

EC : GMP533 ANALYSE NUMERIQUE

DURÉE : 24 Heures

CM12 TD6 TP6


ÉQUIPE PÉDAGOGIQUE
EPESSE MISSE Samuel (CM12 TD6 TP2)
DONKING Lucie (CM0 TD0 TP4)

OBJECTIFS GÉNÉRAUX

A la fin de ce cours, l’étudiant sera capable de :


 maitriser des techniques numériques pour résoudre des problèmes mathématiques en
sciences de l’ingénieur
 maitriser de façon globale l’utilisation du logiciel MATLAB pour s’en servir dans la
programmation;
 pouvoir résoudre via le code MATLAB un problème d’analyse numérique ;

OBJECTIFS SPÉCIFIQUES

A la fin de ce cours, l’étudiant sera capable de :


 utiliser les règles d’une programmation structurée ;
 écrire et programmer via MATLAB un petit programme solutionnant par une
technique numérique choisie un problème posé;

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING ii


FICHE DE PROGRESSION
I- PROCESSUS GENERAL DU DEROULEMENT DE CHAQUE COURS
1- Présentation de l’objet du cours :
2- Rappels du cours précédent :
3- Question sur la qualité du cours :
a. Le rythme du Cours Magistral est-il convenable ?
b. Les explications sont-elles assez, ou insuffisantes ?
4- Libellé du nouveau cours
5- Proposer :
a. D’exercices à faire à la maison ;
b. Un exercice durant le CM pour mieux illustrer le cours ?

SEQUENCES THEMES DEVELOPPES DUREE


SEQUENCE 1 :
REGLES DE LA 1- Généralités sur l’ordinateur CM : 2h
PROGRAMMATION 2- Règles de la programmation structurée TD : 2h
STRUCTUREE
1- Prise en main de MATLAB
a- Rappels du cours 1
SEQUENCE 2 :
b- Lien avec le cours 2 CM : 4h
PRISE EN MAIN DU
c- Fonctionnement général TP : 4h
LOGICIEL MATLAB
d- Utilisation de l’aide en ligne
2- Programmation sous MATLAB
1- Présentation de l’objet du cours
a- But
SEQUENCE 3 : b- Principe
CM : 4h
INTEGRATION 2- Méthode des trapèzes
TD : 2h
NUMERIQUE 3- Méthode de Simpson
4- Méthode de Newton -Cotes
5- Méthode de GAUSS
1- Position du problème
SEQUENCE 4 :
2- Interpolation de Lagrange
INTERPOLATION CM : 6h
3- Formulation barycentrique
NUMERIQUE ET TD : 2h
4- Formule de Newton
EXTRAPOLATION
5- Interpolation par morceaux
1- Présentation de l’objet du cours
2- Régression ou ajustement linéaire
a. Méthode de travail
SEQUENCE 5 : b. Exercice
CM : 4h
APPROXIMATION DES 3- Méthode des moindres carrés
TD : 2h
FONCTIONS a. Démarche
b. Rappel sur la dérivée
c. Résoudre le problème général
d. Recherche du minimum
1- Présentation de l’objet du cours
2- Méthode matricielle
SEQUENCE 6 :
a- Méthode du pivot (Gauss- Jordan)
RESOLUTION NUMERIQUE CM : 4h
b- Programme Matlab
SE SYSTEMES TD : 2h
3- Méthode de Gauss Seidel
D’EQUATIONS
a. Programme Matlab
b. Programme Matlab avec test d’arrêt

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING iii


SOURCES DOCUMENTAIRES
[1] K. Arbenz, A. Wohlhauser, Analyse numérique, Presses Polytechniques romandes, 1980.
[2] Arcangeli, M. Artola, J. M. Blondel, J. Grenet, Problèmes d’analyse numérique,
agrégation années 1969-1978, Masson, 1980. Introduction à la relativité. J. –L. Bobin.
Didérot éditeur. 1997 ;
[3] J. Baranger, Analyse numérique, Hermann, 1991.

OUVRAGES RECOMMANDÉS AUX ETUDIANTS


[1] Discrete Mathematics, László Lovász, József Pelikán, Katalin Vesztergombi, 2003,
http://link.springer.com/openurl?genre=book&isbn=978-0-387-21777-2
[2] Numerical Optimization Jorge Nocedal, Stephen Wright, 2nd ed. 2006
http://link.springer.com/openurl?genre=book&isbn=978-0-387-40065-5
[3] Introduction to Partial Differential Equations David Borthwick, 1st ed. 2016
http://link.springer.com/openurl?genre=book&isbn=978-3-319-48936-0
[4] Introduction to Partial Differential Equations Peter J. Olver 2014
http://link.springer.com/openurl?genre=book&isbn=978-3-319-02099-0
[5] Elementary Analysis Kenneth A. Ross, 2nd ed. 2013,
http://link.springer.com/openurl?genre=book&isbn=978-1-4614-6271-2
[6] Differential Equations and Their Applications Martin Braun, 4th ed. 1993
http://link.springer.com/openurl?genre=book&isbn=978-1-4612-4360-1
[7] Elementary Mechanics Using Matlab Anders Malthe-Sørenssen 2015
http://link.springer.com/openurl?genre=book&isbn=978-3-319-19587-2
[8] Numericals Methods Using MATLAB, John H. MATTHIEW SCIENCES ET GENIES
INFORMATIQUES N T
[9] Analyse Numérique -- Exercices et Problèmes corrigés, Bernard HERON 2SCIENCES
ET GENIES MATHEMATIQUES

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING iv


TABLE DE MATIÈRES
FICHE DE PROGRESSION .................................................................................................................. iii
SOURCES DOCUMENTAIRES ........................................................................................................... iv
TABLE DE MATIÈRES ......................................................................................................................... v
INTRODUCTION GÉNÉRALE ............................................................................................................. 1
CHAPITRE 1 : LA PROGRAMMATION STRUCTURÉE................................................................... 3
I – GÉNÉRALITÉS SUR L’ORDINATEUR ........................................................................................... 3
II - LA PROGRAMMATION STRUCTURÉE ........................................................................................ 3
CHAPITRE 2 PRISE EN MAIN DU LOGICIEL MATLAB................................................................ 6
I - INTRODUCTION ................................................................................................................................ 6
II - PRISE EN MAIN DE MATLAB ........................................................................................................ 6
II.1 FONCTIONNEMENT GENERAL............................................................................................................... 6
II.2 UTILISATION DE L’AIDE EN LIGNE ....................................................................................................... 8
III - PROGRAMMATION .................................................................................................................... 9
III.1 Syntaxe du langage .................................................................................................................................... 9
III.1 Vecteurs ................................................................................................................................................... 10
III.3 Matrices................................................................................................................................................... 12
III.4 Exercices sur la syntaxe de base et les tableaux ...................................................................................... 14
CHAPITRE 3 : INTÉGRATION NUMÉRIQUE ................................................................................. 17
I - BUT ................................................................................................................................................... 17
II - MOTIVATIONS ............................................................................................................................... 17
III - PRINCIPE ....................................................................................................................................... 17
IV - METHODE DES TRAPEZES ........................................................................................................ 17
V - METHODE DE SIMPSON .............................................................................................................. 18
VI - METHODE DE NEWTON-COTES ............................................................................................... 19
VII - METHODE DE GAUSS ................................................................................................................ 20
CHAPITRE 4 : INTERPOLATION NUMÉRIQUE ET EXTRAPOLATION ..................................... 22
I - POSITION DU PROBLEME ............................................................................................................. 22
II - INTERPOLATION DE LAGRANGE .............................................................................................. 22
III - FORMULATION BARYCENTRIQUE .......................................................................................... 24
IV - FORMULE DE NEWTON ............................................................................................................. 25
V - INTERPOLATION PAR MORCEAUX .......................................................................................... 27
CHAPITRE 5 APPROXIMATION DES FONCTIONS ..................................................................... 30
I - POSITION DU PROBLEME ............................................................................................................. 30
II - REGRESSION OU AJUSTEMENT LINEAIRE ............................................................................. 30
III - METODE DES MOINDRES CARRES .......................................................................................... 31
III.1 Démarche ................................................................................................................................................ 31
III.2 Rappel sur la dérivée ........................................................................................Erreur ! Signet non défini.
III.3 Résoudre le problème général ..........................................................................Erreur ! Signet non défini.
III.4 Recherche du minimum ....................................................................................Erreur ! Signet non défini.

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING v


CHAPITRE 6 : RÉSOLUTION NUMÉRIQUE DE SYSTÈMES D’ÉQUATIONS LINEAIRES .... 35
I - METHODE MATRICIELLE (matrice inverse) ......................................................................... 36
I.1 METHODE DU PIVOT (Gauss-Jordan) ............................................................................................ 37
II - METHODE DE GAUSS-SEIDEL .............................................................................................. 42
x=[0,0,0]; ................................................................................................................................................ 45

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING vi


INTRODUCTION GÉNÉRALE
L’analyse numérique traite de nombreux problèmes de sciences physiques,
biologiques, technologiques ou des problèmes issus de modèles économiques et sociaux.
Elle intervient dans le développement de codes de calcul (météorologie, physique des
particules...), mais aussi dans les problèmes de simulations (aéronautique, industrie
nucléaire...) ou d’expérimentations mathématiques. Elle entretient des liens étroits avec
l’informatique. Si sa partie théorique relève plus des mathématiques, sa mise en
pratique aboutit généralement à l’implémentation d’algorithmes sur ordinateur. Ses
méthodes se fondent à la fois sur la recherche de solutions exactes comme dans le cas de
l’analyse matricielle ou du calcul symbolique, sur des solutions approchées qui résultent
le plus souvent de processus de discrétisation comme dans le traitement des équations
différentielles. Récemment, l’analyse numérique s’est enrichie des techniques
probabilistes comme les méthodes de Monte-Carlo (non traitées ici).
Les machines à calcules électroniques ont leur origine en sciences (exactes) et
aujourd’hui ils constituent des objets vitaux pour tous les domaines de l’activité humaine.
Tandis que des outils comme les microscopes et les télescopes augmentent nos
possibilités d’observation, les calculateurs électroniques ou les ordinateurs augmentent nos
possibilités de raisonnement. Ils ont révolutionnés la science moderne. Les moyens de calcul
jadis utilisés sont la règle à calcul, l’arithmomètre et les tables que l’homme a patiemment
établis. Mais ces moyens se sont avérés incapables de faire face aux besoins de plus en plus
complexes de la science, de la technique et de l’économie de notre temps.
La recherche des dispositifs plus performants, plus efficaces et plus rapides ont généré
la création des calculateurs électronique analogiques et numériques. Le 1er calculateur
électronique a été conçu en 1943 aux USA. En 1946 Von Neumann a formulé les principes et
les idées qui servent de base à la construction des calculateurs électroniques. Leur
généralisation, leur développement et sur tous leurs applications conduisent aujourd’hui à une
refonte de la recherche scientifique, de la gestion, du service, etc. Les ordinateurs nous aident
à:
 traiter la complicité dans les modèles qui ne peuvent pas être résolus autrement
 étudier les phénomènes qui sont difficiles à étudier expérimentalement
 tester la théorie
 découvrir des nouveaux concepts et améliorer la théorie, le but de ce cours est de
permettre au scientifique en général et au génie mécanicien en particulier, d’élaborer

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


1
des méthodes de calcul numériques utilisables par l’ordinateur, pour résoudre des
problèmes de recherches et de développement en sciences de l’ingénieur.
Les points importants du cours sont les suivants :
- la programmation structurée ;
- la prise en main du logiciel MATLAB ;
- l’intégration numérique ;
- l’interpolation numérique et l’extrapolation ;
- l’approximation des fonctions par la méthode des moindres carrés ;
- la résolution de systèmes d’équations.

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


2
CHAPITRE 1 : LA PROGRAMMATION STRUCTURÉE

I – GÉNÉRALITÉS SUR L’ORDINATEUR


Les calculateurs électroniques sont des dispositifs conçus et fabriqués par l’homme
pour faire des calculs. Ils sont de deux types :
 Les calculateurs analytiques qui utilisent des dispositifs de l’électronique analogique,
pour résoudre les problèmes scientifiques (sommateur, intégrateur, différentiateur,
multiplieur, amplicateur, etc.)
 Les calculateurs numériques ou digitaux qui sont à la base des ordinateurs modernes
traitent les infos sous forme binaire.
Cette info est représentée par une suite de bit.
L’ordinateur comprend essentiellement 3 parties :
 L’unité centrale
 La mémoire centrale
 L’unité d’échange
La mémoire centrale dont la capacité s’exprime en kilo octet ou méga octet enregistre
et conserve les informations.
L’unité centrale encore appelée partie intelligente de la machine est constitué de
l’organe de commande et de l’opérateur arithmétique et logique. L’unité d’échange est
constituée des organes entrée et sortie. Elle assure le transfert des infos entre la mémoire,
l’utilisateur et les périphériques (clavier, écran imprimante etc.) pour son fonctionnement,
l’ordinateur doit posséder un système d’exploitation qui assure l’organisation de la mémoire
centrale, le transfert des infos entre les différentes parties et la communication avec les
différents utilisateurs.

II - LA PROGRAMMATION STRUCTURÉE
La réalisation d’un programme demande parfois beaucoup de temps et des spécialistes
qualifiés. Cependant, elle possède quelques règles simples qui permettent d’améliorer la
lisibilité des programmes par la mise en page et l’auto documentation (commentaires).
Pour cela, on décompose le programme en modules de dimensions raisonnable. Les
principales règles de la programmation structurée sont :
 Le programme doit être divisé en sous-programme ou en proédure ; les programmes
traitant des problèmes compliqués peuvent être volumineux, or assez souvent, ils

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


3
incluent des problèmes plus simples répétés plusieurs fois. La résolution de ces
problèmes élémentaires est mise sous forme de sous-programme. alors, en
programmant un problème plus compliqué l’appel d’un sous-programme se fait par
une seule instruction.
 Un programme s’écrit avec les 3 structures fondamentales suivantes :
a) La séquence qui est une suite d’instructions

b) L’alternative : elle est de la forme :

Si condition
S
O N
Alors inon
ui on
Ins Instr
truction 1 uction 2
Instruction 1
Fin si Sinon

c) L’itération
Instruction 2
1ere forme I

Pour i allant de n à m par n

Pas de p I
Faire < Nn

Introduction n
Instr
Fin pour uction

I
I+p

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


4
3e forme
Tant que condition
Faire
C
C
Instruction ondition
ondition O
ui
Instruct
Suite du
S
ion
Fin tant que uite
programme
du
programme

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


5
CHAPITRE 2 PRISE EN MAIN DU LOGICIEL MATLAB

I - INTRODUCTION
MATLAB est un logiciel commercial de calcul interactif. Il permet de réaliser des
simulations numériques basées sur des algorithmes d’analyse numérique. Il peut donc être
utilisé pour la résolution approchée d’équations différentielles, d’équations aux dérivées
partielles ou de systèmes linéaires, etc... L’objectif de ces séances MATLAB est double : la
connaissance de ce logiciel est en soi indispensable parce qu’il est de plus en plus utilisé dans
l’industrie et les banques pour développer des prototypes de logiciels et tester de nouveaux
algorithmes.
Ensuite son apprentissage va passer par la mise en pratique des algorithmes d’analyse
numérique étudiés plus théoriquement dans le reste du cours. Pour cela on réalisera au cours
des séances un projet directement inspiré d’un cas concret schématisant un problème
industriel.
Signalons au passage que des logiciels en shareware/freeware émulent MATLAB de
manière de plus en plus satisfaisante. Leur utilisation permet de palier l’inconvénient principal
du coût de la licence. Vous pouvez par exemple télécharger Scilab gratuitement sur le site
Internet de l’INRIA. Vous pouvez apprendre à programmer en Scilab dont la syntaxe est
proche de celle de Matlab avec l’ouvrage récent et complet de G. Allaire et S. M. Kaber.

II - PRISE EN MAIN DE MATLAB

II.1 FONCTIONNEMENT GENERAL

Ouvrez simultanément une session Matlab en tapant tout simplement Matlab dans une
fenêtre de commandes.
Vous allez voir apparaître une ou plusieurs nouvelles fenêtres sur votre écran, dont la
fenêtre de commandes représentée sur la figure 1.

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


6
Figure 1 : Interface de Matlab

Les principales caractéristiques de cette fenêtre sont :


Les caractères >> en début de ligne constituent le prompt de Matlab. C’est après eux
que vous pouvez taper des commandes qui seront exécutées par le logiciel après avoir tapé sur
la touche entrée.
Le résultat, de l’exécution s'inscrit alors dans la fenêtre ou est représenté
graphiquement dans une nouvelle fenêtre spécifique (avec possibilité de zoom, d'impression,
etc...). Pour rentrer une suite complexe d’instructions (on parle aussi d'un script), on les tape
au préalable dans un fichier en utilisant l’éditeur intégré. Une fois le script enregistré, on peut
l’exécuter en tapant son nom dans la fenêtre Matlab (cf. exercice 1). L’historique des
instructions entrées depuis le début de la session sur la ligne de commande est accessible par
pressions successives de la touche
Enfin, pour effacer les données en mémoire (par exemple avant d’exécuter un nouveau
calcul), il suffit d’utiliser la commande clear.
Exemple :
Tapez dans la fenêtre de commande la ligne suivante
>>A = ones(2,3)
Le résultat devrait ressembler à :
A = ones(2.3)

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


7
Ceci représente mm matrice 2 x 3 dont toutes les composantes valent un. Matlab est
assez friand de lignes blanches. Si vous préférez des sorties plus compactes tapez.
>> format compact
en début de session.
Si vous ne désirez pas voir le résultat d'une commande immédiatement, il faut, la faire
suivre d’un point virgule. La commande sera exécutée, mais son résultat n’apparaîtra pas à
l’écran. Essayez la séquence de commandes suivantes :
>>clear
>>A
>>A = ones(2,3) ;
>>A.
Enfin si vous voulez que Matlab ignore complètement ce que vous tapez. Ce qui sera
utile dans l’écriture des scripts pour y mettre des commentaires améliorant leur lisibilité, il
faut le faire précéder du caractère %.

II.2 UTILISATION DE L’AIDE EN LIGNE

L’apprentissage du bon maniement de l’aide (en ligne ou papier) du logiciel est


indispensable : étant donné le très grand nombre d'instructions utilisables, il est hors de
question de pouvoir mémoriser chacune d’elles avec sa syntaxe correspondante. A noter
également que cette aide est uniquement disponible en langue anglaise (ce qui nécessite le cas
échéant l’apprentissage complémentaire de quelques rudiments de cette langue...). L’aide en
ligne permet de retrouver toutes les informations utiles : en allant dans le menu Help-
>MATLAB help, (voir figure 1) une nouvelle fenêtre s’ouvre partagée en deux. A gauche, on
peut en cliquant sur le signet supérieur correspondant, activer
 Contents. La table des matières de l’aide en ligne. En cliquant sur un chapitre de
l’arborescence, son contenu est affiché dans la fenêtre de droite.
 Index. L’index de l’aide en ligne, qui répertorie toutes les commandes Matlab et permet
d’accéder à leur mode d’emploi spécifique. On peut taper- le nom de la commande - si
on la connaît !- dans la fenêtre de saisie Search index for :, ou bien la rechercher dans la
liste alphabétique proposée. Pour avancer dans l’alphabet taper la première lettre de la
commande recherchée dans la fenêtre de saisie.
 Search. Un moteur de recherche dans l’index
 Favorites. La liste des chapitres de l’aide stockés dans les favoris. Pour ajouter un chapitre
dans cette liste, se positionner dessus à partir de Contents et cliquer sur le bouton de

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


8
droite de la souris.
Une aide très importante se présente sous la forme de programmes de démonstration
auxquels on peut accéder à partir de Contents — > Begin Here puis en cliquant sur demos
dans la sous-fenêtre de droite, ou bien en tapant demos directement dans la fenêtre de
commande.

III - PROGRAMMATION

III.1 Syntaxe du langage

Un script Matlab est composé d’une suite d’instructions, toutes séparées par une
virgule (ou de manière équivalente, un passage à la ligne) ou un point virgule. La différence
entre ces deux types de séparation est liée à l'affichage ou non du résultat à l'écran (seulement
effectué dans le premier cas). Comme tout langage. Matlab possède aussi un certain nombre
d’instructions syntaxiques (boucles simples, conditionnelles, etc...) et de commandes
élémentaires (lecture, écriture, etc...) récapitulées dans les tableaux 2-3.
Dès que le calcul à effectuer implique un enchaînement de commandes un peu
compliqué, il vaut mieux écrire ces dernières dans un fichier. Par convention un fichier
contenant des commandes Matlab porte un nom avec le suffixe :m et s'appelle pour cette
raison un M-fiie ou encore script. On utilisera TOUJOURS l'éditeur intégré au logiciel qui se
lance à partir de la fenêtre de commande en cliquant sur les icônes new M-file ou open file
dans la barre de menu. Une fois le fichier enregistré sous un nom valide, on peut exécuter les
commandes qu’il contient en tapant son nom - sans le suffixe .m - dans la fenêtre de
commande. Si vous avez ouvert l’éditeur comme indiqué, à partir de la fenêtre de commande,
les M-file seront créés dans le répertoire courant, accessible depuis cette fenêtre, et vous
n’aurez pas de problème d’accès. Si vous voulez exécuter des scripts qui se trouvent ailleurs
dans l’arborescence des fichiers, vous aurez éventuellement à modifier le Path en cliquant sur
le menu file— >SetPath ou bien en changeant de répertoire de travail (cliquer sur l’onglet
current. directory).
Exercice 1 : Un premier script
Créer dans le répertoire courant un M-file en cliquant sur l’icone New M-file et taper
les instructions suivantes :
Script 1 Premier script
a=l ;

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


9
b=2 ;
c=a+b;
Sauver (en cliquant sur l’icone save) sous le nom PremierScript. m et exécuter la
commande >>PremierScript dans la fenêtre Matlab, soit en la tapant au clavier soit en
cliquant sur l’icone Run à partir de la fenêtre d'édition. Taper maintenant >>c qui doit
contenir la valeur calculée par le script.
Plusieurs types de données sont disponibles dans Matlab. Les types traditionnels que
Ton retrouve dans tous les langages de programmation : les types numériques (single,
double, int8, etc...), caractères char, les tableaux de réels, et les tableaux creux sparse, et les
types composés cell, structure ainsi que les types définis par l’utilisateur, comme les
fonctions inline. Le type de donnée privilégié sous Matlab est les tableaux à une ou deux
dimensions, qui correspondent aux vecteurs et matrices utilisés en mathématiques et qui sont
aussi utilisés pour la représentation graphique. Nous allons donc nous attarder sur leur
définition et leur maniement dans les paragraphes qui suivent.

III.1 Vecteurs

Pour définir un vecteur la svntaxe est une des suivantes :


>>v=[2;3 ;7] % vecteur colonne composantes réelles
v=
2.0000
3.0000
7.0000
>>v= [2, -3+i, 7] %vecteur ligne composantes complexes, i~2 = -1
v=

2.0000 -3.0000 + 1.0000i 7,0000


>>v’ %vecteur transconjugué
ans =
2.0000
-3.0000 – 1.0000i
7.0000
>>v’ % vecteur transposé
ans =
2.0000

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


10
-3.0000 – 1.0000i
7.0000
>>w % vecteur colonne
w=
-3.0000
-3.0000 – 1.0000i
2.0000
>>v+w’ % somme de deux vecteurs
ans =
-1.0000 -6.0000 + 2.0000i 9.0000
>>v*w’ % produit scalaire euclidien
ans =
18.
>>w’.*v % produit des composantes terme à terme
ans =
-6.0000 8.0000 - 6.OOOOi 14.0000
>>«w’*v % division des composantes terme à terme
>>w~3 % mise à la puissance 3 de chaque composante.
Les composantes sont séparées par des blancs (dangereux) on de préférence par des
virgules pour les vecteurs lignes et par des points-virgules pour les vecteurs colonnes. Des
messages erreurs sont affichés si une opération impossible est tentée (par exemple l’addition
de vecteurs de longueurs différentes).
Et pour aller plus vite...
>>v=l:5.1:23 % vecteur a incrément constant
v=
1.0000 6.1000 11.2000 16.3000 21.4000
»ones (size (v) ) % vecteur de même taille que v et contenant des 1
ans =
1 1 1 1 1
>>ones(l,4) % vecteur ligne 4 composantes égalés a 1
ans =
1 1 1 1
>>3*ones (1,5) %vecteur ligne 5 composantes égalés a 3

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


11
Ans =
3 3 3 3 3
>>zeros(3,l) % vecteur colonne 3 composantes nulles
Ans=
0
0
0

III.3 Matrices

Les matrices suivent la même syntaxe que les vecteurs. Les composantes des lignes
sont séparées par des virgules et chaque ligne est séparée de l’autre par un point virgule.
>>% une manière de définir une matrice 3 x 3:
>>A=[l,2,3;0,0,atan(l); 5,9,-1] ;
>>% une autre syntaxe pour faire la même chose
>>A=[1 2 3
>> 0 0 atan(l)
» 5 9 -1]
A=

»% à ne pas confondre avec ce groupe d'instructions


»A= [1 2 3 . . .
>>0 0 atan(l)...
»5 9 -1]
A=
1. 2. 30. 0. 0.7853982 5. 9. - 1.
>>v=l : 5;W=v' *v % multiplication de matrices
W=
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


12
5 10 15 20 25
>>W(1, :) %extraction-de la première- ligne
ans =
1. 2. 3. 4. 5.
>>A=eye(3,3) % Matrice identité
A=
1 0 0
0 1 0
0 0 1
>>B=toeplitz( [2,1,0, 0] ) % une matrice de Toeplitz
B=
2 1 0 0
1 2 1 0
0 1 2 1
0 0 1 2
Le tableau 1 résume les principales fondions affectant ou effectuant des opérations sur
des matrice. Noter que les fonctions scalaires courantes, (sin. exp. etc...) peuvent aussi
s'appliquer à des matrices, composante par composante, comme dans l'exemple suivant
>>u=[0:1:4]

u=
0 1 2 3 4
>>v=sin(u)
v. =

0 0.8415 0.9093 0.1411 -0.7568


La fonction find(C(A)) renvoie les indices dans le tableau A des composantes vérifiant la
condition C(A).
Par exemple
>>A=rand(l,5) % cree un vecteur ligne contenant 5 nombres repartis
% aléatoirement entre 0 et 1
>>find(A>0.5) % renvoie les indices des composantes de A >0.5
>>find(A) % renvoie les indices des composantes de A différentes de 0
>>find(A==0.2) % renvoie les indices des composantes de A égalés a 0.2
Exercice 2 : Tester et comprendre les deux lignes suivantes

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


13
A= [1 2 -1 1 ; -1 1 0 3]
find(A>0)

III.4 Exercices sur la syntaxe de base et les tableaux

La solution des exercices ne doit pas être tapée directement dans la fenêtre de
commandes mais au contraire dans la fenêtre de l’éditeur de manière à être sauvegardée dans
un script pour pouvoir y revenir ultérieurement (cf. 1). Les mots clefs en italiques dans la
marge sont des fonctions Matlab à utiliser pour faire l’exercice. Taper par exemple
TAB. 1 - Principales opérations sur les matrices
Fonction Description
ones(ij) crée un tableau de i lignes j colonnes contenant des 1
zeros (ij) crée un tableau de i lignes j colonnes contenant des 0
cye(i,j) crée un tableau de i lignes j colonnes avec des 1 sur la diagonale principale et 0 ailleurs
toeplitz(u) crée une matrice de Toeplitz symétrique dont la première ligne est le vecteur u
diag(u) crée une matrice carrée avec le vecteur ü sur la diagonale et 0 ailleurs
diag(U) extrait la diagonale de la matrice U
triu(A) renvoie la partie supérieure de A
tril(A) renvoie la partie inférieure de A
linspace(a,b,n) crée un vecteur de n composantes uniformément réparties de a à b
A\b résolution du système linéaire Ax=b
coiîü(A) conditionnement d:une matrice (norme euclidienne)
det(A)
rank(A) déterminant d’une matrice
inv(A) rang d’une matrice
pinv(A) inverse d’une matrice
svd(A) pseudo inverse d’une matrice
norm(A) valeurs singulières d’une matrice
u: norme matricielle ou vectorielle
u*v prend le transposé de u
11-rV multiplication matricielle
u-v addition matricielle
U.* V soustraction matricielle
u./v multiplication des tableaux u et v terme à terme
find (G (A)) division du tableau u par le tableau v terme à terme
indices des composantes du tableau A vérifiant la condition C(A)

help norm!
dans la fenêtre de commandes pour connaître la syntaxe d’utilisation de la fonction norm.
Exercice 3 On note u,v et w les vecteurs suivants
u = (1, —1. 2)T, v = (10. —1,3)T w =(5,-1,4)T
1) Calculer 3u. ||u||2, 2u-+5w, ||2u-v+5w||1, ||w-4v||∞ norm
2) Déterminer l'angle formé par les vecteurs v et w. acos
C
Exercice 4 On note u et v les nombres complexes
onj
R
ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING
14
eal
i
u=ll-7i v=-1+3i.
Calculer les modules de u et de v. les produits u , vu, la partie réelle et la partie imaginaire
de u 3 + v 2 .
Exercice 5 On note A, B et C les matrices suivantes

1 3 2

A
-5 3 1 , B= , C=
=
-10 0 3
1 0 -2
Calculer les matrices AB,BA et AB T
eye
1. Calculer les matrices D = I 2 — BB T . det
2. Calculer les déterminants des matrices A. 13, C, D et E — AA T. inv
spec
3. Calculer les inverses des matrices A. B, C, D et E = A A 1 .
bdiag
4. Calculer les valeurs propres de la matrice E. Quel est le rayon spectral de E ?
5. Déterminer les vecteurs propres de la matrice A.

Exercice 6 On pose

A= , B= ,

Que font les instructions suivantes


3*A; A.*B; A./B; cos(A); exp(B);

Exercice 7 Pour chacune des matrices

A1= , A2= , A3 =

Calculer An, pour n=1,2,3,… que vaut

Exercice 8 : On pose

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE / Lucie DONKING


15
Que font les instructions suivantes
v=[l, 2, 4, 7] ;
A(v)=A(v) + 0.01;
B(v)=abs(B(v)) ;
Exercice 9
1. Créer un vecteur de 11 coordonnées contenant les nombres -5, -4, …, 4, 5.
2. Créer un vecteur de 1001 coordonnée» contenant les nombres -500. -499, -498..., 499. 500.
3. Créer un vecteur u contenant 10 valeurs entre 0 et séparées par un incrément constant.
4. Créer un vecteur v tel que v2i» = cos u 2i et v2i+1 = sin u2i+1
Exercice 10 On rappelle deux approximations de la dérivée dame fonction par différences
finies

1) Définir dans un M-file la variable h = 0.1 et, un tableau d’abscisses x pour discrétiser
finement l’intervalle [0, ]
2) Calculer dans un tableau d la dérivée exacte de ¡a fonction sin aux points x et dans un
tableau d1 les valeurs approchées par la première formule ci-dessus. Calculer l’erreur
maximale commise en faisant cette approximation sur l’intervalle [0, ]. Diminuer h,
que remarque-t-on?
3) Mêmes questions avec la deuxième approximation. Les valeurs approchées seront
calculées dans un vecteur d2
4) Représenter sur le même graphique la dérivée et ses deux approximations
plot(x,d,x,d1,x,d2)
Que remarque-t-on, quelle est la meilleure approximation?

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


16
CHAPITRE 3 : INTÉGRATION NUMÉRIQUE

I - BUT
Le but de ce chapitre est d’aborder le calcul général de l’intégrale d’une
fonction f (x) sur un domaine fini délimité par des bornes finies a et b (les cas des
bornes infinies n’est donc pas couvert ici) :

II - MOTIVATIONS
Dans certains cas très limités, une telle intégrale peut être calculée
analytiquement (à la main). Cepen- dant, ce n’est que très rarement possible, et le plus
souvent un des cas suivants se présente :
- Le calcul analytique est long, compliqué et rébarbatif
- Le résultat de l’intégrale est une fonction compliquée qui fait appel à
d’autres fonctions elles-même longues à évalue

III - PRINCIPE
L’idée principale est de trouver des méthodes qui permettent de calculer
rapidement une valeur approchée de l’intégrale à calculer.
Comme toujours, un programme numérique n’invente rien, et ne fait que procéder
très rapidement à un calcul que l’on pourrait en principe faire à la main.

IV - METHODE DES TRAPEZES


Soit f une fonction continue sur [a.b] , dérivable sur ]a,b[ et a = xo < x 1 < ... <
x n - 1 < x n = b une subdivision régulière de l’intervalle [a. b] . On note h le pas de cette
subdivision. Dans la méthode des trapèzes, la fonction f est remplacée sur chaque intervalle
[xi, xi+1] par la droite joignant les points (xi, f (xi)) et (xi +1, f (xi +1)), soit

h (xi)= x [xi, xi+1]

La méthode s'écrit

Lorsque la subdivision se réduit à s plus simple expression, x o = a, x 1 =b on a

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


17
La méthode des trapèzes est une méthode d’ordre 1. L’erreur dans la méthode des
trapèzes est donnée par l’expression

sup

x
La somme S s’exprime par
[a , b ]

S= ( f(a)+f(b)+

Pour améliorer la précision, on considère parfois la formule des trapèzes corrigée


suivante

V - METHODE DE SIMPSON
Dans la méthode de Thomas Simpson (1710-1761), la fonction f est remplacée par un
polynôme du second degré définissant un arc de parabole passant par les points d’ordonnées
f(x i ), f(x i + 1) et f(x i+2). La méthode s'écrit

Lorsque la subdivision se réduit à sa plus simple expression, xo = a, = (a +b)/ 2. 2=b

la formule précédente devient :

La méthode de Simpson est une méthode d’ordre 4. L’erreur dans la méthode de


Simpson est donnée par :

La somme S qui approche l’intégrale s’exprime par :

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


18
VI - METHODE DE NEWTON-COTES
La méthode de Roger Côtes (1682-1716) publiée en 1707, généralise la méthode des
trapèzes et la méthode de Simpson : la fonction f est approchée par un polynôme de degré n.
L’intégrale est évaluée selon l’expression :

Pour déterminer les coefficients a,j, il suffit d’écrire que la relation précédente est
exacte lorsque f est un polynôme de degré inférieur ou égal à n. En prenant successivement f(x)
= xk pour k = 0,1, …. n , on obtient le système linéaire suivant :

Le déterminant de ce système est un déterminant de Vandermonde, qui vaut (xo — xi)


(xi — x 2 ) ….(x n -xo). Lorsque les points sont régulièrement espacés, on obtient les formules
de Newton-Côtes.
Pour n = 1 (méthode des trapèzes)

Pour n = 2 (méthode de Simpson)

Pour n = 3

Pour n = 4 (méthode de Villarceau)

Pour n = 6 (méthode de Hardy)

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


19
VII - METHODE DE GAUSS
C’est une méthode très précise. Elle utilise des points qui ne sont pas régulièrement
espacés et convenablement choisis. Lorsque la fonction f(x) est connue analytiquement ou
lorsqu’elle est tabulée numériquement en ces points précis, la méthode de Gauss peut être
appliquée.
En développant f(x) sur une base de polynômes, l’intégrale de f(x) peut s’écrire comme
une combinaison linéaire des valeurs que prend la fonction en divers points :

f(x)dx=C(w 1 f(x 1 )+w 2 f(x 2 )+ (w 3 f(x 3 )+…+w n f(x n ))

Dans cette expression, la constante C est proportionnelle à (b-a) et les facteurs de


pondération w i dépendent de la fonction par laquelle on approche f(x) (segments de droites pour
la méthode des trapèzes, arcs de paraboles pour la méthode de Simpson). En ce qui concerne
la méthode de Gauss, on développe dans une base de polynômes orthogonaux dont les xi sont
les racines de ces polynômes, qui sont alors irrégulièrement espacés. Ces polynômes sont
définis sur F intervalle -1,1]. Dans ce cas, il faut faire un changement de variable sur x qui

permet de transformer x a, b]. En -1,1]; c’est à dire :

On obtient donc :

f(x)dx=  (b)

Où Wi et xe sont tabulés.
Ainsi, l’intégrale de f(x), peut être évaluée en suivant la procédure :
 on choisit la valeur n qui donne le nombre de points où la fonction doit être
évaluée,
 on lit dans la table donnant Wi et xe les n valeurs de xe (qui sont deux à deux
symétriques par rapport à zéro ( qui sont les racines du polynôme de Legendre
d’ordre n) qui correspondent à la valeur de n choisie,
 on calcule xe par l’équation (a), ensuite on évalue l’intégrale de f(x) (expression
(b)).

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


20
Racine et poids la Méthodes de Gauss- Legendre
xe Wi
n
2 0,5773502692 1,0000000000
3 0,000000000 0,8888888889
0,7745966692 0,5555555556
4 0,3399810436 0,6521451549
0,8611363116 0,3478548451
5 0,0000000000 0,5688888889
0,5384693101 0,4786286705
0,9061798459 0,2369268850
6 0,2386191861 0,4679139346
0,6612093865 0,3607615730
0,9324695142 0,1713244924
7 0,0000000000 0,4179591837
0,4058451514 0,3818300505
0,7415311856 0,2797053915
0,949079123 0,1294849662

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


21
CHAPITRE 4 : INTERPOLATION NUMÉRIQUE ET
EXTRAPOLATION

I - POSITION DU PROBLEME
Deux problèmes classiques :
1) Interpolation : on considère une aile d’avion, qu’on soumet à des vents de 10, 50, 100,
200 km/h, et dont on calcule les déformations pour ces valeurs.
On veut savoir comment elle résistera à un vent de 150km/h.
2) Extrapolation : on connait la population Camerounaise de 1800 à 2015 et on veut en
déduire une estimation de la population française dans les 10 prochaines années.

Une solution est de déterminer un polynôme dont la courbe s’approche le plus possible
(ou passe par) ces points, et de prendre sa valeur aux nouveaux points. C’est le but de ce
chapitre.
Le problème de l’interpolation consiste à chercher des fonctions “simples”
(polynômes, polynômes par morceaux, polynômes trigonométriques) passant par des points
donnés (x0 ,y0), (x1 ,y1), (x2 ,y2),… (xn ,yn) c.-`a-d., on cherche p(x) avec p(xi) =yi_ �
pour i = 0,1,2,…,n . Si les valeurs de yi satisfont yi = f(xi) ou est f(xi) est une fonction
donnée, il est intéressant d’étudier l’erreur de l’approximation f(x) –p(x) = ?
Le problème mathématique est le suivant : on se donne n + 1 mesures f0, …, fn en n +
1 points distincts I0, …, In et on cherche à calculer un polynôme q de degré inférieur ou égal à
m, n, qui "approche" les mesures f0, …, fn. La première approche est quand un = n : c’est le

polynôme d’interpolation.

II - INTERPOLATION DE LAGRANGE
Théorème 1
1) Il existe un unique polynôme pn Pn (espace vectoriel des polynômes de degré inférieur

ou égal à n) tel que :

2) Il s’écrit sous la forme : pn(x) = (6.2)

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


22
Les sont les polynômes d’interpolation de Lagrange, Pn est le polynôme

d’interpolation aux points xi pour les mesures fi.


Démonstration
1) Notons pn(x) = . Résoudre (6.1) est équivalent à résoudre un

système linéaire dont les inconnues sont les coefficients :

Ay = b avec

A= , y=( ), b = ( ),

A est une matrice de Vandermonde. Elle est inversible ce qui conclut la partie 1).
2) Li est un polynôme de P(x) et vérifie li(xj) = On vérifie que ce polynôme convient.

Figures
Lorsque les fi sont les valeurs d’une certaines fonction f aux points x i, on parle de pn

comme de l’interpolant de f et on la note

Figures 2
En principe il suffit de résoudre le système linéaire pour calculer les ai, puis de calculer
en chaque nouveau point x.

Pn(x) = (

Mais le système est très mal conditionné. Il vaut mieux programmer directement (6.2).
Function [yy] = lagint (x, y, xx)
% LAGINT uses the points (x..i, y..i) for the Lagrange Form of the % interpolating
polynomial and interpolates the values % yy.. I = p..n (xx..i)
n = length (x); nn = length (xx); for I = 1 : nn,
yy(i) = 0; for k = 1: n
yy(i) = yy(i) + y(k)*prod((xx(i)) – x([1: k -1, k+1: n])))… / prod((x(k) – x([1:k-1, k+1:
n]))); end;
end ;

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


23
III - FORMULATION BARYCENTRIQUE
Utiliser la formulation (6.2) mène à opérations pour chaque x. Nous définissons

les coefficients :

Et nous réécrivons :

Pn(x) = =

Puisque la formule est exacte pour les polynômes de degré 0, on peut écrire pour f = 1 :

1=

et donc :

ce qui nous donne la formule barycentrique :

pn(x) =

pn(x) =

Pour l’utiliser nous calculons d’abord les en opérations, function [lambda] =

coeffbary (x)
% COEFFBARY computes the coefficients for the barycentric % representation of the
interpolating polynomial through % the points (x., I, y., i)
n = length (x) ; x =x(:=) ; for k = 1: n, lambda (k) = 1 / prod (x(k)= - x([1: k-1, k+1: n]))
; end;

puis pour chaque x nous calculons les poids et pn(x) =

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


24
en seulement opérations. Function [yy] = intbary(x, y, lambda, xx).

%% INTBARY evaluates the interpolating polynomial


%%(:) ; y = y (:) ; xx = xx(:) ; nn = length (xx); for I = 1: nn,
z = (xx (i) – x) + 1e – 30; % prevents a division by zero mue = lambda’ * sum (mue) ;
end;

IV - FORMULE DE NEWTON
On se donne les n + 1 points x0. Pour tout k plus petit que n, on note pk le polynôme
d’interpolation de f aux poinst x0, …, xk. On a :
Pk – Pk – 1 = C(x – x0) … (x – xk – 1)
Definition 6.1
Pour K + 1 points yo, …, yk, on note f[yo, …, yk] le coefficient de degré k du
polynôme d’interpolation de f aux points yo, …, yk.
Lemme 6.1
Pk – pk-1 = f[xo, …, xk] (x – xo) … (x – xk-1)
Démonstration
Théorème 6.2 (Formule de Newton)
Pn(x) = f(x0) + (6.3)

Demonstration: Il suffit de sommer la formule de récurrence précédente.


Lemme 6.2 (Formule des différences divisées)

f[x0, …, xk] = (6.4)

Démonstration
Soit qk-1 Pk-1 Le polynôme d’interpolation de f aux points x1, … xk.

Posons :

Alors . En effet

Et il ne reste plus qu’à égaler les coefficients directeurs dans la formule de

Table de calcul
x0 f(x0) = f[x0]
x1 f(x1) = f[x1] f[x0, x1]
x2 f(x2) = f[x2] f[x1, x2] f[x0, x1, x2]

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


25
xn f(xn) = f[xn] f[xn-1, xn] f[xn-2, xn – 1, xn] f[x0, …,

xn]
Figure 6.3 : Table des différences divisées
Voici l’algorithme matlab
Function [d, D] = coeffnewton (x, y)
% COEFFNEWTON computes the divided difference needed for % constructing the
interpolating polynomial through (x_i, y_i)
N = length (x) -1 ; % degree of interpolating polynomial. The interpolation Polynomial
335 % divided differences for I = 1! N + 1
D(i, 1) = y(i); for j = 1 : i-1
D(I, j+1) = (D(I, j) – D(i-1, j)) / (x(i) – x(i-j));
end
end
d= diag (D);
une fois les di calculés, pour les utiliser nous couplons avec l’algorithme de Hörner, en
réécrivant le polynôme pn sous la forme
pn(x) = d0 + (x – x0) (d1 + (x – x1) (d2 + … + (x – xn-2) (dn-1 + (x – xn-1)dn)))
function y intnewton (x, d, z)
% INTENEWTON evaluates the Newton interpolating polynomial
% at the new points z ! y P_n(z) using the Horner form % and
the diagonal d of the divided difference scheme. n
= length (x) – 1;
Y = d(n+1)
for i = n: -1 : 1
y = y. * (z-x(i))+d(i) ;
end;
En Matlab, on utilise la fonction polyfit pour l’interpolation polynomial. Cette
fonction utilise une interpolation au sens des moindres carrés discrets (voir partie 3).
6.1.3. Estimation d’erreur
Théorème 6.3

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


26
Si f Cn+1 ([a, b]), appartenant au plus petit intervalle ouvert

contenant x, x0, …, xn, tel que : f(x) – pn(x) = (6.5)

Bien que la fonction soit tout à fait régulière, on voit que l’erreur en 1 tend vers
l’infini.
6.2. Interpolation d’Hermite
f est toujours une fonction suffisamment régulière sur le segment pn Pn tel que

0 pn(xj) = f(xj) et p’n(xj) = f’(xj).

Théorème 6.6
Si f Cn+1 ([a, b]), appartenant au plus petit intervalle ouvert

contenant x, x0, …, xn, tel que : f(x) – pn(x) = (6.9)

où =

Pn dépend de 2k + 2 coefficients, nous allons l’exprimer sous la forme

Pn(x) = (6.10)

Où les polynômes qi et ri sont définis par

(6.11)

On pet les déterminer en fonction des polynômes d’interpolation de Lagrange li :


Qi(x) = (1 + 2 (xi – x)lil(xi) ) li2(x), ri(x) = (x – xi)li2 (x)

V - INTERPOLATION PAR MORCEAUX

Soient a a0 des points qui divisent l’intervalle I = [a, b]

en sous-intervalles Ij = [aj, aj+1] de longueur H = , soit aj = a + jH.

6.3.1. Interpolation affine


Sur chaque intervalle Ij, on interpole f par un polynôme de degré inférieur ou égal à 1/
on obtient un polynôme par morceaux, noté II1H f. Il s’écrit :
II1H f(x) = f(aj) + f[aj, aj+1] (x – aj), x Ij.

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


27
Figure 6.7 – Interpolation affine par morceaux
Théorème 6.7
Si f C2(I), alors

[f(x) – II1H F(x)]

Demonstration
Il suffit d’appliquer l’estimation d’erreur (6.6)
Remarque 6.2
Si f Cn+1(I), on peut faire de même une interpolation par des polynômes de degré

inférieur ou égal à n dans chaque sous-domaine et on obtient l’estimation d’erreur

(6.13)

6.3.2 Interpolation par fonctions splines


L’inconvénient de la démarche précédente est que l’approximation de f marque de
régularité. Ici nous nous donnons yi = f(ai) et aussi des valeurs y’i que nous choisirons ensuite.
Dans chaque sous-intervalle, nous interpolons la fonction f par un polynôme pi P3 tel que

Pi(ai) = yi, pi(ai+1) = yi+1, p’i(ai) = y’i, p’i(ai+1) = y’i+1,


Faisons le changement de variable y = (x – ai) /H, et posons p(x) = p(y). On doit donc avoir
Pi(0) = yi, Pi(l) = yi+1 ; P’i(0) = Hy’i, P’i(l) = Hy’i+1 ;
Nous utilisons les formules données pour les polynômes d’Hermite.
Pi = yiqo + yi+1q1 + y’iro + y’i+1r1
Les polynômes de Lagrange aux points 0 et 1 sont l0 = 1 – y, et les polynômes qi et ri sont
donnés par q0(y) = (2y – 1) (1 – y)2, q0(y) = (2y – 1)y2, r0(y) = y(1 – y)2, r0(y) = y(1 –
y)2, ri(y) = (1 – y)y2.
Comment maintenant calculer la valeur de pi en un point x ?
1. Déterminer l’intervalle [ai, ai+1] où se trouve x.
2. Calculer la variable locale y (x – ai)/H.
3. Evaluer Pi(y), de préférence par l’algorithme de Hörner.

Pour déterminer l’intervalle où se trouve x, on utilise un algorithme de recherche binaire si


les intervalles ne sont pas de même taille. Sinon bien sûr on prend la partie entière de x/H.

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


28
Les y’i doivent approcher les dérivées f’(ai) par des différence divisées y’i = f[ai-1, ai+1]
pour 1 i N – 1. Aux deux extrémités on peut prendre des dérivées décentrées y’0 = f[a0, a1] et

y’N = f[aN-1, aN].


Peut-on déterminer les y’i de façon à être encore plus régulier ? Par exemple que les
dérivées secondes soient aussi continues ? La réponse est oui, ce sont les vrais splines cubiques
historiques.

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


29
CHAPITRE 5 APPROXIMATION DES FONCTIONS

I - POSITION DU PROBLEME
L’approximation des fonctions consiste à chercher la fonction la plus proche possible,
selon certains critères d’une fonction donnée. Dans le cas de l’approximation, il n’est en
général plus imposé de passer exactement par des points donnés initialement. Ceci permet de
mieux prendre en compte le cas des erreurs de mesure, et c’est ainsi que l’exploitation de
données expérimentales pour la recherche de lois empiriques relève plus souvent de la
régression linéaire ou plus généralement de la méthode des moindres carrés.

II - REGRESSION OU AJUSTEMENT LINEAIRE


L’analyse de régression est souvent utilisée en expérimentation ou en cours d’analyse
pour savoir s’il existe une relation ou un rapport entre deux ou plusieurs séries de données
collectées. De même, pour des raisons diverses (moyens de mesure ou de contrôle imprécis,
etc.), la représentation entre deux séries de données peut être imprécise (graphe avec des
points plus ou moins dispersés, exemple fig. 23).
L’analyse de régression permet alors de trouver le meilleur ajustement possible pour
une droite de proportionnalité ou pour toute autre courbe.
La plus simple des régressions, et la plus largement utilisée, est la régression linéaire
basée sur l’équation de la droite : y = ax + b.

Méthode de travail
Première étape : collecter et classer les données des deux séries statistiques.

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


30
Par exemple, pour déterminer le rapport qui peut exister entre l’âge d’une voiture et
son coût de maintenance, il faut commencer par collecter des données à partir d’un
échantillon significatif de voitures. Les âges des différents véhicules seront repérés par x1,
x2,..., xn et les coûts par y1, yn.
Deuxième étape : représentation graphique. Tracer les données précédentes sur un
repère cartésien de type (x, y). Le résultat donne un graphe de dispersion (graphe avec un
nuage de points, fig. 23).
Troisième étape : tracer la droite de régression qui sépare le nuage de points en deux
zones sensiblement égales. Déterminer les paramètres caractéristiques a (pente de la droite), b
(constante) et r (coefficient de corrélation). r permet d’apprécier la qualité de l’approximation.

III - METODE DES MOINDRES CARRES


La méthode des moindres carrés part du principe que la somme X(yf - y\)2 de
l’ensemble des points i du nuage (/ = 1 à n) doit être aussi petite que possible, y\ étant un point
de la droite cherchée.

III.1 Démarche

 On cherche à calculer les valeurs d’une fonction f (x) pour toutes valeurs de x mais on
ne connait pas explicitement f. par exemple.

 f n’est connue qu’en certains points x expérimentaux


 f est calculé par un code numérique très couteux.

 On remplace f par une fonction simple dont l’évaluation est aisée (ex utilisation de
polynômes, fonction rationnelles,)

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


31
 2 grandes familles d’approches.

 De quoi dispose-t-on ?
 Ensemble de données : n points (xi ; yi), i = 1,….n
 Fonction modèle : f (x, avec vecteur contenant m paramètres

 Objectif : ajuster les paramètre pour que f(x, ) approche au mieux les données(xi,
yi).

 Comment faire ? En trouvant les paramètres minimisant

La dérivée permet de connaître les variations d’une fonction (croissance,


décroissance,) En particulier, si la dérivée est nulle en un point, la tangente est
horizontale en ce point et donc la fonction ne croit ni ne décroit (minimum ou
maximum).
On dispose de n points (xi, yi), i = 1,…..,n et on suppose que la fonction modèle est de
la forme
f(x, 0) = 0

Trouver 0 minimisant

Trouver 0 minimisant

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


32
Pour cela, on calcule la dérivée de S

et on résout S’(

C’est à dire la moyenne de yi.


Résoudre le problème général
La fonction modèle f(x, ) se règle par m paramètres contenus

dans le vecteur

Le minimum d’une somme de carrés

Se trouve en cherchant où le gradient S vaut 0 soit

Un système à m équations non linéaires à résoudre.


Rarement de solutions analytiques.
méthodes numériques(ex : adaptation méthode du point fixe pour m
variables cherchées).

La fonction modèle est de la forme


f(x,a,b = ax+b

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


33
On cherche le minimum de

Recherche du minimum
Le minimum de S est atteint pour (a,b) du Système suivante

On note et les moyennes des valeurs xi et yi :

Exprimer b en fonction de a, , puis exprimer a.

Exercice(correction)
b= -a

Le système est maintenant

Si on multiplie la ligne 2 par puis on la soustraire à la première, on

obtient

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


34
ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE
35
CHAPITRE 6 : RÉSOLUTION NUMÉRIQUE DE SYSTÈMES
D’ÉQUATIONS LINEAIRES
Le but de ce chapitre est de proposer quelques méthodes de résolution des systèmes
d’équations tel que :

Dans ce système, on a A = a ij connue, et B = b-,, connues et. À' = Xj inconnues (i =


1,m et j = 1, n ) , alors :
1. Si m > n —»système sur-déterminé,
2. Si m < n —» système sous-déterminé.
3.Si m = n —» système déterminé, une solution unique (si det(A) ≠ 0 ),
Dans le dernier cas le système admet une unique solution que l’on peut obtenir par
différentes méthodes.
Soit par exemple un système linéaire de 3 équations à 3 inconnues (x1, x 2, x3) :

Celui-ci peut aussi s’écrire sous forme matricielle :

I - METHODE MATRICIELLE (matrice inverse)

Si A-1 est la matrice inverse de A, le système Ax x = B s’écrit aussi :


x = A -1 x B
La connaissance de A-1 permet alors de calculer directement la solution x par produit
matriciel direct.
Exemple : Soit, le système d'équations suivant :

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


36
On a la matrice A= et la matrice B=

La solution par Matlab est :


>>A=[1 3 5 ; 2 -1 0; 5 4 3];
»B= [6 ; 0 ; -1] ;
»x=A~(-l)*B
x=
-0.5227
-1.0455
1.9318

Alors la solution est la matrice x= =

I.1 METHODE DU PIVOT (Gauss-Jordan)

La méthode du pivot est plus commode pour les systèmes denses d’ordre élevé, cette
méthode basée sur le constat suivant : le système linéaire reste invariant pour les trois
opérations suivantes effectuées dans n’importe quel ordre et un nombre de lois indéterminé :
1. Permutation de lignes de la matrice A (et donc de b) ;
2. Multiplication d’une ligne par constante non nulle ;
3. Addition d'une ligne à une autre ligne.
Pour un système de 3 équations à 3 inconnues suivant :

Dans cette méthode, on choisit successivement chaque ligne comme ligne pivot, le pivot
étant le premier élément non nul de la ligne. On divise, alors la ligne N°1 du système par a11 :

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


37
Ou obtient, alors 1e .système :

On annule ensuite le premier terme de chacune des autres lignes, en retranchant à la


2eme ligne la 1ère ligne multipliée par a21, à la 3eme ligne la 1ère ligne multipliée par a 31\, etc.

De même pour la troisième ligne :

Alors

On procède ainsi à la deuxième ligne :

Alors :

On annule ensuite le deuxième terme des lignes 1 et 3, en retranchant à la lere ligne la 2ème
ligne multipliée par a 12, à la 3ème ligne la 2cm,; ligne multipliée par a32

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


38
=

On obtient :

La solution du système peut être obtenue ainsi :

Exemple Soit, à résoudre le système d’équation suivant par la méthode de Gauss :

On écrit :

On définit tout d’abord la matrice argument dans Matlab par :

On commence par diviser la première ligne par le Pivot=4.

A= =

On annule ensuite le premier terme des lignes 2 et 3, en retranchant à la 2 ème ligne; la


1ère ligne multipliée par « 1 », à la, 3ème ligne la 1ère ligne multipliée par ’3’,,

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


39
A= =

Ensuite on diviser la deuxième ligne par le Pivot=

Ou annule ensuite le deuxième terme; des lignes 1 et 3en retranchant à la l ère ligne; la 2cmc

ligne; multipliée à la 3ème ligne la 2ème ligne multipliée par

A= =

Dans l’étape suivante on diviser la troisième ligne par le Pivot=

A= =

Comme a été fait avant on annule ensuite le troisième terme des lignes 1 et 2, en

retranchant à la 1ère ligne la 3ème ligne multipliée par à la 2ème ligne la 3ème ligne multipliée

par :

A= =

La solution obtenue est alors : x1 = 1 x2 = 1 x3 = 1

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


40
Programme Matlab
Le programme Matlab correspondant à la résolution d’un système de 3 équations à l’aide de
la méthode de Gauss-Jordan est donné par la fonction Matlab suivante :
function [x]=Gauss(A)
disp(’Le premier pivot A(l,l)’)
Pivot=A(l,1);
for j=l:4
A(1,j)=A(1,j)/Pivot ;
end
Pivot=A(2,1);
for j=l:4
A(2,j)=A(2,j)- Pivot*A(l,j);
end
Pivot=A(3,1);
for j = 1:4
A(3,j)=A(3,j)- Pivot*A(l,j);
end
disp(’Le deuxième pivot A(2,2)’)
Pivot=A(2,2);
for j=2:4
A (2,j)=A(2,j)/Pivot;
end
Pivot=A(l,2);
for j=2:4
A(1,j)=A(1,j)— Pivot*A(2,j);
end
Pivot=A(3,2) ;
for j=2:4
A(3,j)=A(3,j)- Pivot*A(2,j);
end
disp(’Le troisième pivot A(3,3)’)
Pivot=A(3,3);
for j=3:4
A(3,j)=A(3,j)/Pivot ;

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


41
end
Pivot=A(l,3) ;
for j=3:4
A(l,j)=A(l,j)-Pivot*A(3,j);
end
Pivot=A(2,3) ;
for j=3:4
A(2,j)=A(2,j)- Pivot*A(3,j) ;
end
x(1)=A(1,4);
x(2)=A(2,4);
x(3) =A(3,4) ;
Exemple En utilisant, l'exemple précédent:

A=

Le programme est exécuté ainsi :


» A=[4 1 1 7 ; 1 -7 2 -2; 3 0 4 11];
>> [x]=Gauss(A)
x=
1.00 1.0000 2.0000

II - METHODE DE GAUSS-SEIDEL

La méthode de Gauss Seidel est une méthode itérative pour le calcul de la solution
d’un système linéaire Ax = b avec A  R nXn . Elle construit, une suite de vecteurs : x(k)= (x 1 (k) ,
x 2 (k , …, x n (k)) ) convergent vers le vecteur solution exacte x = (x 1 , x 2 , …, x n ) pour tout
vecteur initiale x (0) = (x 1 (0 , x 2 (0) ,…, x n (0) ) l o r s q u e k tend vers ∞.
Soit, le système de 3 équations à trois inconnues :

Ce système peut s’écrire ainsi :

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


42
À la première itération, on calcule à partir du vecteur initial :
x (0) = (x 1 (0 , x 2 (0) ,…, x 3 (0) )
Les valeurs de x de la première itération se calculent ainsi :

Et on continue jusqu’à aboutir à une précision suffisante.


Exemple Considérons le système linéaire :

On peut le mettre sous la forme :

Soit. X(0) = (0,0,0) le vecteur initiale.


Itération N 1
En partant de = (0, 0, 0)

Itération N 2
En partant de :

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


43
Itération N 3
En partant de :

(0.0087, 1.0043, 1.9945)


La suite converge vers la solution du système x = (0,1,2)

Programme Matlab de la méthode


function x=Gauss_Seide1(a,b,Iter)
x= [0,0,0] ;
for i=1:Iter %Les itérations
x(l) = (b(l)-x(3)*a(l,3)-x(2)*a(l,2))/a(l,1) ;
x(2)=(b(2)-x(3)*a(2,3)-x(l)*a(2,l))/a(2,2);
x(3)=(b(3)-x(2)*a(3,2)-x(l)*a(3,l))/a(3,3);
end
x
Remarque :
Le Iter représente le nombre d’itérations qu’on désire faire pour approximer la
solution.
Exemple En exécutant le programme MATLAB avec, l’exemple précédent :
>> [x]=Gauss_seidel(A,B,3)
X=
0.0088 1.0044 1.9945
d’arrêt
On décide d’arrêter la méthode de Gausse-Seidel lorsque la différence (Ax-b) sera
inférieure à une tolérance précise à l’avance Tol. On modifie ainsi le programme précédent.

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


44
Programme Matlab avec test d’arrêt
function [x,iter]=Gauss_Seidel(a,b)
iter=0;
x=[0,0,0];
C=(a*x’)-b;
tol=le-5;
while abs(C(l))>tol | abs (C (2) ) >tol | abs (C(3) ) >tol %Les itérations x(l)=(b(l)-
x(3)*a(l,3)-x(2)*a(l,2))/a(l,l);
x(2)=(b(2)-x(3)*a(2,3)-x(l)*a(2,l))/a(2,2);
x(3)=(b(3)-x(2)*a(3,2)-x(l)*a(3,l))/a(3,3);
iter=iter+l;
C=(a*x;)-b ;
end
Exemple Soit à résoudre le système suivant :

Le programme Matlab s’exécute de la façon suivante :


» A=[ 3 2 1; 2 -3 -2;1 -1 2] ;
» B= [10 ; 10 ; 5];
» [x,iter]=Gauss_seidel2(A,B)
X=
3.8571 -0.8571 0.1429
iter =

ANALYSE NUMERIQUE Dr Samuel EPESSE MISSE


45

Vous aimerez peut-être aussi