0% ont trouvé ce document utile (0 vote)
327 vues15 pages

Matlab Et Methodes Numeriques

Document de maths licence génie civil

Transféré par

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

Matlab Et Methodes Numeriques

Document de maths licence génie civil

Transféré par

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

UE VER 51

EC GCI 512

MATLAB ET METHODES NUMERIQUES

NIVEAU 3
Filière : VER - PPE
EQUIPE PEDAGOGIQUE
M. DJANNA KOFFI, (MC) CM 4h ; TD 4h ; TP 0H, TPE 2H
M. MOUNGNUTOU MFETOUM Inoussah, (MC) CM 4h ; TD 4h ; TP 4H, TPE 2H
M. KINFACK, (CC) CM 0h ; TD 0h ; TP 4H, TPE 2H
M. JIBIA, (VAC) CM 0h ; TD 0h ; TP 4H, TPE 2H
M. BIKAI, (VAC) CM 0h ; TD 0h ; TP 4H, TPE 2H
M. KABYL NSANGOU, (VAC) CM 0h ; TD 0h ; TP 4H, TPE 2H
MATLAB ET ANALYSE NUMERIQUE

Avant-propos
Ce polycopié se trouve être un support pédagogique de cours, destiné aux étudiants de 3ème Année des
Licences LMD assurées à l’IUT. Ce polycopié regroupe un certain nombre de méthodes étudiées dans les
différents chapitres du cours de méthodes numériques. L'objectif de ces chapitres est d'implémenter sous
MATLAB les différentes méthodes pour les comparer et mieux les comprendre.
Références
1- C. Brezinski, Introduction à la pratique du calcul numérique, Dunod, Paris 1988.
2- G. Allaire et S.M. Kaber, Algèbre linéaire numérique, Ellipses, 2002.
3- G. Allaire et S.M. Kaber, Introduction à Scilab. Exercices pratiques corrigés d'algèbre linéaire, Ellipses,
2002.
4- G. Christol, A. Cot et C.-M. Marle, Calcul différentiel, Ellipses, 1996.
5- M. Crouzeix et A.-L. Mignot, Analyse numérique des équations différentielles, Masson, 1983.
6- S. Delabrière et M. Postel, Méthodes d'approximation. Équations différentielles. Applications Scilab,
Ellipses, 2004.
7- J.-P. Demailly, Analyse numérique et équations différentielles. Presses Universitaires de Grenoble, 1996.
8- E. Hairer, S. P. Norsett et G. Wanner, Solving Ordinary Differential Equations, Springer, 1993.
9- P. G. Ciarlet, Introduction à l'analyse numérique matricielle et à l'optimisation, Masson, Paris, 1982.
10- M. Lakrib, Cours d'analyse numérique, OPU Alger 2008.
11- B. Demidovitch, I. Maron, Elément de calcul numérique, Ed. MIR, Moscou, 1979.
TABLE DE MATIERE
CHAPITRE 1 : RESOLUTION DES EQUATIONS NON LINEAIRES...................................................6
1.1. Position du problème............................................................................................... 6
1.2. Existence et unicité de la solution.........................................................................6
1.3. Rappel sur les différentes méthodes......................................................................6
1.3.1. La bipartition ou dichotomie ou bissection....................................................6
1.3.2. Regula-Falsi ou Lagrange.................................................................................. 6
1.3.3. Point fixe ou approximations successives.......................................................6
1.3.4. Newton-Raphson................................................................................................. 7
1.4. TP1 : Prise en main sur MATLAB et application à la résolution d’une
équation non linéaire f(x)=0............................................................................................. 7
1.4.1. Quelques notions sur les algorithmes et programmations : Méthodologie
7
1.4.2. Manipulations..................................................................................................... 8
CHAPITRE 2 : INTEGRATION NUMERIQUE DE FONCTIONS......................................................10
2.1. Position du problème............................................................................................. 10
2.2. Présentation des méthodes................................................................................... 10
2.2.1. Méthode des rectangles................................................................................... 10
2.2.2. Méthode des trapèzes...................................................................................... 10
2.2.3. Méthode de Simpson........................................................................................ 11
2.3. TP2 : Calcul des intégrales sous MATLAB..........................................................11
CHAPITRE 3: INTERPOLATION POLYNOMIALE............................................................12
3.1. Position du problème............................................................................................. 12
3.2. Présentation des différentes méthodes...............................................................12
3.2.1. La méthode de Lagrange................................................................................. 12
3.2.2. La méthode de Newton.................................................................................... 12
CHAPITRE 4 : RESOLUTION DES EQUATIONS DIFFERENTIELLES ORDINAIRES........................13
4.1. Position du problème............................................................................................. 13
4.2. Maillage du domaine.............................................................................................. 13
4.3. Rappel sur les différentes méthodes....................................................................13
4.3.1. Méthode d'Euler :............................................................................................. 13
4.3.2. Méthode de Range Kutta d'ordre 4................................................................14
CHAPITRE 5 : RESOLUTION DES SYSTEMES D'EQUATIONS LINEAIRES....................................15
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

Rappel sur les différentes méthodes : CM : 3h


CHAPITRE 1 : La bipartition :
TD :1h
Résolution des Regula-Falsi
Newton-Raphson
équations non lineaires
CHAPITRE 2 : Intégration CM : 3h
But du CHAPITRE :
numérique de fonctions TD :1h
Rappel des méthodes :

But du CHAPITRE :

CHAPITRE 3 : A. La méthode de Lagrange CM : 3h TD


B. La méthode de Newton :1h
Interpolation polynômiale
CHAPITRE 4 : Résolution des But du CHAPITRE :
Rappel sur les différentes méthodes : CM : 3h
équations differentielles Méthode d'Euler :
TD :1h
ordinaires
But du CHAPITRE : CM : 3h
CHAPITRE 5 : Résolution Rappel de la méthode :
des systèmes d’équations TD :1h
linéaires

5
CHAPITRE 1 : RESOLUTION DES EQUATIONS NON LINEAIRES
1.1. Position du problème

Dans ce chapitre, nous allons mettre en œuvre les algorithmes des méthodes de résolution des équations
non linéaires étudiées pendant le cours : la bipartition (ou bissection ou dichotomie) , Regula-Falsi
(Lagrange), les approximations successives (ou point fixe) et Newton-Raphson.

1.2. Existence et unicité de la solution

Si la fonction f (x) est définie et continue et strictement monotone sur l'intervalle [ a , b ] et que :

f (a)× f (b)<0, alors f (x)=0 admet une solution unique x ¿ dans cet intervalle.

1.3. Rappel sur les différentes méthodes

1.3.1. La bipartition ou dichotomie ou bissection

On calcule c par l'expression :

a+ b
c=
2

On compare ensuite f (c ) avec f (a) et f (b) pour déterminer l'intervalle de la solution et on recommence le
calcul de c itérativement jusqu'à ce que : |x n−x n−1|< ε .

Le nombre n d'itérations nécessaire pour avoir une approximation de la solution à ε près est :

n≥
log ⁡( )
b−a
ε
log ⁡(2)

1.3.2. Regula-Falsi ou Lagrange

On calcule c par l'expression :

a ⋅ f (b)−b ⋅f (a)
c=
f (b)−f (a)

On compare ensuite f (c ) avec f (a) et f (b) pour déterminer l'intervalle de la solution et on recommence le
calcul de c itérativement jusqu'à ce que : |x n−x n−1|< ε .

1.3.3. Point fixe ou approximations successives

Il faut réécrire l'équation f (x)=0 sous la forme x=g(x ),

La condition de convergence suffisante mais pas nécessaire est :

6
¿ g(x )∨¿ 1 pourtout x ∈ [ a b ]

Pour approximer la solution de l'équation

On part de la valeur initiale x 0=⋯ ,

On calcule itérativement les valeurs de x n par:

x n=g ( x n−1 )

Les critères d'arrêts peuvent être

|x n−x n−1|< ε
|x n−x n−1|

|x n|
|f ( x n )|<ε
1.3.4. Newton-Raphson

L'algorithme de Newton-Raphson est :

f ( xn)
x n+1=x n − '
f ( xn )

Les critères d'arrêts peuvent être

|x n−x n−1|< ε
|x n−x n−1| <ε
|x n|
|f ( x n )|< ε
1.4. TP1 : Prise en main sur MATLAB et application à la résolution
d’une équation non linéaire f(x)=0

1.4.1. Quelques notions sur les algorithmes et programmations :


Méthodologie

Pour mettre en œuvre les algorithmes, nous allons écrire des programmes (scripts) sous Matlab. Un script
(ou .m) est un fichier ASCII qui contient une succession d'instructions et d'opérations, et exécutable depuis
la fenêtre de commande ou de la fenêtre d'édition.

Pour écrire un script, il suffit de sélectionner l'icône « New Script » dans le menu principal du Matlab. A
l'ouverture d'une fenêtre d'édition (Editor), on saisit le programme puis on le sauvegarde dès qu'on termine.

7
Pour l'exécuter, on appui sur le triangle vert (Run) depuis la fenêtre d'édition ou bien en tapant le « nom du
programme » depuis la fenêtre de commande (Command Window).

On rappelle, la syntaxe des structures de contrôle et de répétition :

L’instruction de testifs’écrit comme suit:

if condition1 action1
elseif condition2 action2

else action3
end

 La boucle for:
For compteur ¿ valeur_initiale : incrément : valeur_finale action
end
 la boucle while:
while condition
action
end
Pour avoir une aide instantanée sur une commande Matlab, l'étudiant peut taper la commande «help» suivie
du nom de la commande, dans la fenêtre de commande de Matlab (Command Window).

1.4.2. Manipulations

Partie A: Rappel sur le tracé de graphiques 2D à l'aide de la fonction 'plot'


1. Former une liste de valeurs (un vecteur) x allant de 0 à 2 × p a avec un pas de pi/20 ;
2. Calculer y=cos ⁡( x) et z=sin ⁡(x) ;
3. Tracer la courbe de y=cos ⁡( x);
4. Tracer la courbe de z=sin ⁡(x) ;
5. Tracer les deux courbes dans un même graphe.
La fonction graphique plot ( ) peut contenir plusieurs couples de points : plot (a ,b ,a ,c , a , d) trace les
courbes de b, c, et d en fonction de a ;
6. Exécuter les commandes suivantes :
 xlabel ('Abcisses') ;
 ylabel('Ordonnées') ;
 title('Les fonctions Cos et Sin') ;
 grid
 legend('cosinus','sinus') ;

Partie B: Résolution des équations non linéaires


Soit à résoudre l'équation: f (x)=x+2 ln ⁡(x)=0 où x ∈ ¿ 0 ,+∞ ¿

8
a) Tracer le graphe y=f (x ) sur un intervalle tel qu'il vous permet de localiser la solution de l'équation.
b) Localiser la solution dans le plus petit intervalle ¿ a , b ¿ possible.
1. Ecrire un script, que vous appellerez «bipart.m» qui implémente la méthode de bipartition suivant
les étapes:
 Initialiser les limites du domaine de recherche a et b ;
 Initialiser un compteur d'itération k à 0 ;
 Ecrire l'algorithme de bipartition en incrémentant le compteur k à chaque passage de boucle ;
 Arrêter la boucle quand la largeur du domaine devient ≤ 10−5;
 Afficher la solution calculée ainsi que le nombre d'itérations.
2. Ecrire un autre script, que vous appellerez «RegFal.m» qui implémente la méthode de Regula-Falsi.
Il faut faire attention ici au critère d'arrêt. En effet, la précision n'est pas comparée à la largeur du
domaine final, comme en (1), mais c'est la différence entre deux valeurs consécutives de la solution.
3. Ecrire un autre script, que vous appellerez «Newton.m» qui implémente la méthode de Newton-
Raphson. L'arrêt des itérations se fera de la même manière que dans la manipulation (2).
4. Ecrire un autre script, que vous appellerez «AppSuc.m» qui implémente la méthode des
approximations successives. Pour cela, on doit réécrire l'équation sous la forme x=g(x ), en
assurant la convergence de l'algorithme. L'arrêt des itérations se fera de la même manière que dans
la manipulation (2).
5. Comparer les différentes méthodes implémentées. Module: Méthodes Numériques

9
CHAPITRE 2 : INTEGRATION NUMERIQUE DE FONCTIONS
2.1. Position du problème

Le but de ce chapitre est le calcul d'une valeur approximative de l'intégrale définie d'une fonction f (x) sur
un intervalle [ x 0 , x n ] .
xn
Pour se faire, il existe plusieurs méthodes d'approximation de l'intégrale ∫ x f (x )dx, basées sur
0

l'interpolation polynômiale de f (x) :

2.2. Présentation des méthodes

2.2.1. Méthode des rectangles


b
Méthode des rectangles : ∫ f ( x ) dx
a

2.2.2. Méthode des trapèzes

La méthode du trapèze: qui n'est autre que l'intégrale du polynôme d'interpolation de f (x) sur 2 points
d'appui, par extension à l'ensemble des points, on obtient la formule généralisée suivante :

( )
xn n −1
h
∫ ❑ f (x)dx ≅ 2 × y 0 + y n +2 × ∑ ❑ y i
x0
i=1

2.2.3. Méthode de Simpson

La méthode de Simpson: qui n'est autre que l'intégrale du polynôme d'interpolation de f (x) sur 3 points
d'appui équidistants, par extension à l'ensemble des points, on obtient la formule généralisée:

( )
x2 n n−1 n−1
h
∫ ❑ f (x )dx ≅ 3 × y 0+ y 2 n+ 4 × ∑ ❑ y 2i +1+ 2× ∑ ❑ y 2i
x 0
i=0 i=0

1
2.3. TP2 : Calcul des intégrales sous MATLAB

On se propose de calculer l'intégrale définie I = ∫ 10 sin ⁡(x)⋅e x dx , en utilisant les deux méthodes suscitées.
1. Ecrire un programme qui calculerait cette intégrale en utilisant la méthode du trapèze et en divisant
l'intervalle d'intégration en 10 intervalles élémentaires.
2. Refaire l'exécution pour n=100.
3. Matlab possède une fonction équivalente, c'est la fonction TRAPZ, TRAPZ (Y) donne la valeur
calculée par la méthode du trapèze sur un vecteur Y avec un pas d'intégration unitaire. Adapter cette
fonction pour le calcul de notre intégrale I .
4. Ecrire un deuxième programme qui calculerait cette intégrale en utilisant la méthode de Simpson
avec les mêmes conditions que dans (1).
5. Refaire l'exécution pour n=100.
6. Il existe une fonction dans Matlab qui ressemble à la méthode de Simpson, la fonction QUAD qui
implémente l'algorithme de Simpson adaptatif.
La syntaxe de cette fonction est: I =QUAD ¿ nom_fonction, a , b ) où nom_fonction est le nom de la
fonction à intégrer, et a et b sont les bornes d'intégration. La fonction doit impérativement accepter des
variables de type vecteur. Utiliser cette fonction et comparer avec le résultat obtenu en (3).
7. Comparer les résultats obtenus sachant que la valeur exacte est 0,909330673631479. Module:
Méthodes Numériques
1
CHAPITRE 3: INTERPOLATION POLYNOMIALE
3.1. Position du problème

Le but de ce chapitre est l'implémentation des algorithmes d'interpolation étudiés au cours sous Matlab, il
sera ensuite question d'étudier un phénomène qui se produit lorsque l'on augmente le nombre de points de
collocation.

3.2. Présentation des différentes méthodes

3.2.1. La méthode de Lagrange

Soit une fonction f (x)=exp(x ) définie sur l'intervalle [a , b] avec :


a=3.50; b=3.70
Ecrire un programme qui:
 Détermine le pas d'interpolation pour un nombre ' n ' donné de sous intervalles ( n=¿ 4) ;
 Remplit un tableau avec les coordonnées des points d'appui ;
 Interpole la fonction f (x) pour x=3 , 62 en utilisant la méthode de Lagrange.
Pour rappel, l'algorithme de Lagrange est comme suit :
n n
( x−x i )
Pn (x )=∑ ❑ y i ⋅ Li (x ) où Li (x)= ∏ ❑
i=0 j=0 , j ≠i ( xi −x j )
 Refaire l'exécution pour n=10.
3.2.2. La méthode de Newton

On considère la même fonction f (x)=exp(x ) définie sur l'intervalle [a , b].


On subdivise cet intervalle en ' n ' sous intervalles, ce qui nous donne ' n+1 ' points d'appui.
Pour n=4 , écrire un programme qui interpole cette fonction avec la méthode de Newton.
Le programme exécutera les étapes suivantes :
 Construire la matrice des différences finies que nous appelons 'D' comme suit :
D(i , j)=0 pour i=1..(n+1) et j=1..(n+1)
D(i, 1)=f ( x i ) pour i=1. .(n+ 1)
D (i, j−1)− D(i−1 , j−1)
D(i , j)= pour j=2. .(n+ 1) et i
x i−x i− j +1
¿ j …(n+1)
 Extraire ensuite la diagonale de D dans un vecteur M :
M (i)=D(i ,i) pour i=1. .(n+1)
 Interpoler la fonction f (x) pour x=3 . 62 en utilisant la méthode de Newton :
I =M (1)+ M (2)⋅ ( x−x 1 ) + M (3)⋅ ( x−x 1) ⋅ ( x−x 2 ) +⋯+ M ( n+1)⋅ ( x−x 1 ) … ( x−x n )
 Refaire ces étapes pour n=10.
 Calculer la valeur exacte de la fonction et comparer avec les interpolations précédentes, quel est
votre commentaire. Module: Méthodes Numériques

1
CHAPITRE 4 : RESOLUTION DES EQUATIONS DIFFERENTIELLES
ORDINAIRES
4.1. Position du problème

Durant ce chapitre, nous allons mettre en œuvre les algorithmes des méthodes de résolution des équations
différentielles ordinaires étudiées pendant le cours : la méthode d'Euler et la méthode de Range Kutta. Il
sera ensuite question de comparer les deux méthodes avec la solution exacte.

On appelle problème de Cauchy une équation différentielle associée à une condition initiale,
par exemple,

Il s’agit de toute EDO de la forme :

{¿ ¿ avec y ( x=0 )= y 0 ¿
4.2. Maillage du domaine

On discrétise cet intervalle [a ; b] avec n + 1 points et un pas h :

Résoudre l’équation y′ = f(x, y) signifie déterminer la fonction y, où encore les valeurs y(x) ∀ x ∈ [a; b].
La resolution approchée consiste à trouver une valeur approchée yi = y (xi) aux nœuds du maillage.
Par exemple, pour h = 0,1, on cherchera :
y0 = y(x0) = y(0)
y1 = y(x1) = y(0,1)
y2 = y(x2) = y(0,2)
...

4.3. Rappel sur les différentes méthodes

4.3.1. Méthode d'Euler :

On cherche donc les approximations yi = y (xi) aux noeuds. En ces noeuds, l’équation s’écrit:
y′ = f(x, y) ⇒ y′i = f (xi, yi)

Il reste à approximer y′i ′, cf. ”approximation numérique de dérivées”, par exemple, avec un
schéma décentré à droite :
1
y′i = y′(xi) ≃[ y(xi + h) - y(xi)]/h = [yi+1 – yi]/h
Le schema d’Eul er est alors:

h=xi −xi−1
y 1= y 0 +hf ( x 0 , y 0 )
y 2= y 1 +hf ( x 1 , y 1 )
y i+ 1= y i+ hf ( xi , y i )

4.3.2. Méthode de Range Kutta d'ordre 4

k 1 ¿ f ( x0 , y0)
k2 ¿ ( h h
) h
=f x 0 + , y 0 + ∗k 2 =¿ k 4 ¿=f ( x 0+ h , y 0+ h k 3 )=¿ y 1 ¿= y 0 + ∗( k 1 +2 k 2 +2 k 3 + k 4 ) =¿
2 2 6

( h
2
h
2 ) h
2
h
( )
x 1 ¿ x 1+ h=¿ k 1 ¿ f ( x 1 , y1 ) =¿ k 2 ¿ f x 1 + , y 1 + ∗k 1 =¿ k 3 ¿ f x1 + , y 1 + ∗k 2 =¿ k 4 ¿ f ( x 1+ h , y 1+ h k 3 )=¿
2

Travail demandé :
y
Soit l'équation différentielle y '= 2
1+ x
avec y (0)=1 et x ∈ [ 0 0 , 4 ]
Résoudre cette équation avec un pas d'intégration h=0 , 2 en utilisant :
 La méthode d'Euler
 La méthode de Range Kutta d'ordre 4 (RK4)
Calculer la solution exacte de l'équation et comparer avec les approximations précédentes, quel est votre
commentaire.

1
CHAPITRE 5 : RESOLUTION DES SYSTEMES D'EQUATIONS
LINEAIRES

But du CHAPITRE :
Le but de ce CHAPITRE est l'implémentation de la méthode de triangularisation de Gauss pour la
résolution d'un système d'équations linéaires.

Rappel de la méthode:
 On commence par le remplissage de la matrice augmentée A du système qui n'est autre que
l'augmentation de la matrice du système d'une colonne contenant le vecteur des données: A=( A ⋮ b)
La dimension de la matrice A sera de ' n ' lignes et ' n+1 ' colonnes.

 Ensuite, on programme l'algorithme de Gauss qui va triangulariser la matrice A. Il procède de la


manière suivante :
Pour k allant de 1 à n−1

aik
ligne i= ligne i− × ligne k ; avec i allant de k +1 à n
akk

 Et enfin, on extrait la solution du système suivant l'algorithme:


n
ai , n+1−∑ ❑a ij × x j
i+1
x i= ; i allant de n à 1
a ii

Travail demandé:
a. Ecrire un script Matlab qui utilise la méthode de Gauss pour trouver la solution du système A ⋅ x=b
suivant :

[ ][ ][]
10 7 8 7 x1 4
7 5 6 5 × x2 = 3
8 6 10 9 x3 3
7 5 9 10 x4 1

b. Vérifier ensuite votre résultat en le calculant directement avec : x=inv ⁡( A)× b

Vous aimerez peut-être aussi