Vous êtes sur la page 1sur 54

Recueil de travaux pratiques de lanalyse numrique, rdig par :

Samir KENOUCHE
) kennouchesamir@gmail.com
) samir.kenouche@univ-biskra.dz

Important
Les programmes Matlab prsents dans ce recueil, sont exclusivement rservs aux tudiants
de Dpartement des sciences de la matire. Ce document peut tre tlcharg et reproduit
uniquement pour un usage individuel. La vente ou la reproduction comme support de cours
payants est strictement interdite.

Tous droits de traduction,


adaptation et reproduction
strictement rservs
Copyright r 2015 Universit de Biskra - All rights reserved.
Prambule
Dans ce recueil de travaux pratiques, jai fait le choix de prsenter systmatiquement
et succinctement les fondements thoriques de chaque mthode numrique avant
dentamer lcriture des algorithmes. Ceci est primordial afin dapprhender les
diffrents concepts de lanalyse numrique mais galement pour veiller "linstinct"
de programmation chez ltudiant(e). Tous les algorithmes sont crits sous Matlab.
Ce dernier, est pourvu dune interface interactive et conviviale, et permet avec une
grande flexibilit deffectuer des calculs numriques et des visualisations graphiques
de trs haut niveau. Les notions abordes dans ce recueil sont : lintgration
numriques (mthode du point milieu, du trapze et celle de Simpson), recherche de
racines dune fonction relle de variable relle (mthode de point fixe, Aitken-Shanks,
dichotomie, Newton, scante), linterpolation polynomiale (mthode de Lagrange,
celle de Hermite et Tchebychev) et la rsolution numrique dquations diffrentielles.
Par ailleurs, lobjectif principal de ce recueil de travaux pratiques, est la mise la
disposition des tudiants(es) dun outil pratique ddi au calcul numrique sur ordi-
nateur. Il a aussi pour vocation de donner les connaissances de base ncessaires la
comprhension des algorithmes inhrents cette discipline. Bien videmment, la liste
des mthodes numriques prsentes ici est loin dtre exhaustive, sont prsentes
uniquement les mthodes les plus couramment utilises en graduation. Jinvite les lec-
teurs signaler dventuelles erreurs et imperfections en envoyant un mail ladresse.

) kennouchesamir@gmail.com
% xx xx xx xx

Matlab est un produit de The Mathswork Inc., www.mathswork.com

< M A T L A B (R) >


(c) Copyright 1984-2008 The MathWorks, Inc.
All Rights Reserved
Version 7.6.0.324 (R2008a)

Notons au passage, que la socit MathWorks commercialise deux versions de


MATLAB annuellement. Les lettres a et b dsignent respectivement les versions
sorties en Mars et en Septembre.
1

Liste des Travaux pratiques


Important, page 1
Prambule, page 1
Introduction, page 3
nonc du TP + r, page 5
Note, page 5
Introduction, page 9
nonc du TP + r, page 9
Introduction, page 11
nonc du TP + r, page 12
nonc du TP + r, page 17
nonc du TP + r, page 21
nonc du TP + r, page 24
Introduction, page 27
nonc du TP + r, page 27
Rsolution analytique, page 28
Rsolution algorithmique, page 28
Introduction, page 31
nonc du TP + r, page 31
Introduction, page 34
Interprtation, page 35
nonc du TP + r, page 37
Introduction, page 40
nonc du TP + r, page 43
Introduction, page 48
nonc du TP + s, page 48
nonc du TP + s, page 50
Liste des Figures

1 Aire de lintgrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Influence du nombre de sous-intervalle sur lerreur dintgration . . . 8
3 Influence du paramtre k sur la valeur de lintgrale . . . . . . . . . . 10
4 Racine de et ordre de convergence de la mthode du point fixe . 15
5 Racine de par la mthode de dichotomie . . . . . . . . . . . . . . 19
6 Racine de par la mthode de Newton . . . . . . . . . . . . . . . . . 23
7 Racine de par la mthode de la Scante . . . . . . . . . . . . . . . 26
8 Interpolation selon Lagrange . . . . . . . . . . . . . . . . . . . . . . . 30
9 Interpolation selon Hermite . . . . . . . . . . . . . . . . . . . . . . . 33
10 Illustration du phnomne de Runge . . . . . . . . . . . . . . . . . . . 35
11 Attnuation du phnomne de Runge aux nuds de Tchebychev . . . 36
12 Effet du nombre de points dinterpolation selon Tchebychev . . . . . 36
13 Interpolation aux nuds de Tchebychev pour = 10 . . . . . . . . . 38
14 Interpolation aux nuds de Tchebychev pour = 20 . . . . . . . . . 39
15 Solutions numriques obtenues par les mthodes de Euler, de Heun et
de Runge-Kutta dodre 4 . . . . . . . . . . . . . . . . . . . . . . . . 45
16 volution de lerreur relative en fonction du pas de discrtisation . . . 47
17 Comparaison entre la solution analytique et la solution numrique
gnre par le solveur ode23 . . . . . . . . . . . . . . . . . . . . . . . 49
18 Solution numrique () pour diffrentes valeurs de . . . . . . . . . 51
19 Drive premire de la solution numrique () pour diffrentes valeurs
de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

2
Intgration numrique

1. Intgration numrique
Mthodes du point milieu, du trapze et de Simpson

Introduction
Trs souvent le calcul explicite de lintgrale, dune fonction continue sur [, ]

dans R, dfinie par ( ) = () peut se rvler trs laborieux, ou tout
simplement impossible atteindre. Par consquent, on fait appel des mthodes
numriques, afin de calculer une approximation de ( ). Dans ces mthodes
numriques, la fonction , est remplace par une somme finie. Dans ce TP, nous
allons tudier et implmenter, sous Matlab, quelques mthodes usuelles (point
mileu, trapze et Simpson) ddies lintgration numrique.

1.1 Mthode du point milieu


Soit une fonction continue sur lintervalle [, ], par dfinition son intgrale se
calcule suivant :


( ) = () (1)

Notons que lexpression analytique de () peut tre connue comme elle peut tre
inconnue.

Lide de base de cette mthode, consiste subdiviser lintervalle [, ] en sous-intervalles


[ , +1 ]. Dans le cas o les sous-intervalles sont quidistants, on crira = ( )/.
Ainsi, le schma numrique de cette mthode scrira comme :


( ) = () (2)
=1


+1
( ) = (
) avec = (3)
=1
2

Comme illustr par lq. (3), pour chaque = [ , +1 ] on prend le point central
de lordonne (), valeur mdiane entre ( ) et (+1 ). ( ), comme illustr sur
la figure ci-dessous, reprsente laire comprise entre la courbe = () et laxe des

@ Samir Kenouche 3
Intgration numrique

abscisses entre les droites = et = . Par ailleurs, notons quil existe plusieurs
faons de mettre en uvre la mthode des rectangles. Ainsi, on a galement la possibilit
de prendre la borne infrieure ou bien la borne suprieure sur chaque sous-intervalle
[ , +1 ].

1.2 Mthode du trapze


Cette mthode est base sur linterpolation, de chaque sous-intervalle [ , +1 ],
par un polynme de degr un. En dautres mots, sur chaque [ , +1 ], la fonction
continue et drivable sur [, ], est substitue par la droite joignant les points ( , ( ))
et (+1 , (+1 )). Le schma numrique de la mthode du trapze est donn par :
1

( ) [ () + ()] + ( ) (4)
2 =1

La mthode du trapze ((2 )) fournit une bien meilleure prcision que la mthode
du point milieu (()).

1.3 Mthode de Simpson


Cette mthode est base sur linterpolation, de chaque sous-intervalle [ , +1 ], par
un polynme de degr deux. Ainsi, la fonction est substitue par ce polynme du
second degr qui dfinit donc un arc de parabole passant par les points dordonnes
( ), (+1 ) et (+2 ). Le schma numrique de cette mthode est donn par :

( 1 1 ( ))
+1
( ) () + () + 2 ( ) + 4 (5)
6 =1 =1
2

La mthode de Simpson ((4 )) fait mieux que celle du trapze. Ceci provient du
fait quelle pondre plus le point central.

@ Samir Kenouche 4
Intgration numrique

nonc du TP + r
Calculez les approximations de lintgrale :
2
( ) = () (2 ) 0.122122604618968 (6)
0

en utilisant les mthodes du point milieu, du trapze et de Simpson. Conclure.


Tracer laire de lintgrale, pour n = 150 sous-intervalles.
tudier linfluence du nombre de sous-intervalles (n) sur lerreur dintgration.
Appliquez les mmes tapes pour lintgrale :
1
2
( )
( ) = + 0.856086378341836 (7)
0 2

Note
Lalgorithme du point milieu doit tre crit de deux faons diffrentes. Dune part,
en utilisant la boucle for et dautre part, au moyen des fonctions prprogrammes
sum et linspace

................ Script Matlab ................


1 clearall;closeall;clc;
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 %@copyright15/11/2015SamirKENOUCHE:ALGORITHMEPERMETTANT
4 %LIMPLEMENTATION,SOUSMATLAB,DELAMETHODEDUPOINTMILIEU,du
5 %TRAPEZEETDESIMPSON
6

7 %%%%%%%%%%%%%%%%%%%%%%POINTMILIEU:1EREAPPROCHE%%%%%%%%%%%%%%%%%
8 a=0;b=2*pi;n=100;dx=(b-a)/n;
9 x=a:dx:b;fun=x.*exp(-x).*cos(2.*x);int=0;
10

11 forik=1:length(x)-1
12

13 xbar=(x(ik)+x(ik+1))/2;
14

15 func=eval(fun,xbar);
16

17 int=int+dx*func(ik);
18 end
19

20 disp(strcat(LINTEGRALE,PARLAMETHODEDUPOINTMILIEUVAUT:,...
21 num2str(int)))

@ Samir Kenouche 5
Intgration numrique

22

23 %%%%%%%%%%%%%%%%%%%%POINTMILIEU:2EMEAPPROCHE%%%%%%%%%%%%%%%%%%%
24 a=0;b=2*pi;n=100;dx=(b-a)/n;x=a:dx:b;
25 fun=inline(x.*exp(-x).*cos(2.*x));x=linspace(a+dx,b-dx,n);
26 fun=feval(fun,x);int=dx.*sum(fun)
27

28 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%TRAPEZE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
29 a=0;b=2*pi;n=1000;dx=(b-a)/n;x=a:dx:b;
30 f=x.*exp(-x).*cos(2.*x);int=0;init=(f(1)+f(end))*(dx/2);
31

32 forik=1:length(x)-1
33

34 int=int+dx*f(ik);
35 end
36 int=init+int
37 disp(strcat(LINTEGRALE,PARLAMETHODEDUTRAPEZEVAUT:,...
38 num2str(int)))
39

40 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%Simpson%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
41 clearall;clc;closeall;
42

43 a=0;b=2*pi;n=1000;dx=(b-a)/(n);x=a:dx:b;
44 fun=x.*exp(-x).*cos(2.*x);som1=0;som2=0;
45

46 forik=1:n-1
47

48 som1=som1+fun(ik);
49

50 xbar=(x(ik+1)-x(ik))/2;
51

52 fun2=eval(fun,xbar);
53 som2=som2+fun2(ik);
54 end
55

56 int=(dx/6)*(fun(1)+fun(end)+2*som1+4*som2)
57 disp(strcat(LINTEGRALE,PARLAMETHODEDESIMPSONVAUT:,...
58 num2str(int)))
59 %%%%%%%%%%%%%%%%%%%%%%%%%AIREDELINTEGRALE%%%%%%%%%%%%%%%%%%%%%%%
60

61 figure(color,[111]);plot(x,fun,LineWidth,1);holdon
62

63 forik=1:numel(x)
64

65 plot([x(ik),x(ik)],[0,fun(ik)],r,LineWidth,1)

@ Samir Kenouche 6
Intgration numrique

66

67 end
68

69 ih=gca;
70 str(1)={Integralareaof:};
71 str(2)={[$$\int_{0}^{2\pi}x\,\exp(-x)\,\cos(2\,x)\,dx=$$
,num2str(int)]};set(gcf,CurrentAxes,ih);
72 text(Interpreter,latex,String,str,Position,[3-0.2],
FontSize,12);xlabel(x);ylabel(f(x));

Les rsultats de lintgrale, calculs par les trois mthodes, sont affichs sous Matlab
comme suit :

LINTEGRALE, PAR LA METHODE DU POINT MILIEU VAUT : -0.1228


LINTEGRALE, PAR LA METHODE DU TRAPEZE VAUT : -0.1222
LINTEGRALE, PAR LA METHODE DE SIMPSON VAUT : -0.1221

Figure 1: Aire de lintgrale

Influence du nombre de sous-intervalles sur lerreur dintgration, voici le script Matlab :

1 clearall;clc;closeall;formatlong
2 %%%%%%%%%%%%%%%%%%%%%%%%ERREURDINTEGRATION%%%%%%%%%%%%%%%%%%%%%%%
3 a=0;b=2*pi;n=150;ih=0;intexact=-0.12212260461896;
4

5 forn=60:20:600
6

@ Samir Kenouche 7
Intgration numrique

7 dx=(b-a)/n;x=a:dx:b;fun=x.*exp(-x).*cos(2.*x);
8 som1=0;som2=0;ih=ih+1;
9

10 forik=1:n-1
11

12 som1=som1+fun(ik);xbar=(x(ik+1)-x(ik))/2;
13 fun2=eval(fun,xbar);som2=som2+fun2(ik);
14

15 end
16

17 int(ih)=(dx/6)*(fun(1)+fun(end)+2*som1+4*som2);
18 err(ih)=abs((int(ih)-intexact)/intexact);%ERREURRELATIVE
19 plot(n,err(ih),+,MarkerSize,8,LineWidth,1/2);holdon;
20 xlabel(NOMBREDESOUS-INTERVALLES);ylabel(ERREURRELATIVED
INTEGRATION(x100\%));
21 end

Le graphe gnr par ce script Matlab est :

Figure 2: Influence du nombre de sous-intervalle sur lerreur dintgration

partir de ce graphique, il apparait clairement que plus le nombre de sous-intervalles


est lev plus lerreur dintgration est faible. Ce rsultat sexplique par le fait que plus
n (nombre de sous-intervalles) est grand plus on sapproche de la forme continue de la

fonction intgrer. Autrement dit, plus n est lev plus lgalit = lim est
+

vraie.

@ Samir Kenouche 8
Intgration numrique

1.4 Au moyen de routines Matlab


Introduction
Il existe des routines Matlab prdfinies qui permettent de rsoudre numriquement
des intgrales simple, double et triple. Ces commandes sont les suivantes : quad,
quadl, quadgk et quadv. Les commandes relatives au calcul dintgrales double et
triple seront abordes au cours de la sance. Nous donnons dans le script Matlab
ci-dessous, un exemple dutilisation de ces commandes pour le calcul dintgrales
simples.

nonc du TP + r
Au moyen des commandes quad, quadl et quadgk, valuer lintgrale :
2
( ) = () (2 ) 0.122122604618968 (8)
0

Se servant de la commande quadv, valuer lintgrale :


2
() ( ) (9)
0

pour diffrentes valeurs du paramtre k = 2 : 24.


Tracer le courbe reprsentant la valeur de lintgrale en fonction du paramtre k.

................ Script Matlab ................


1 clearall;clc;
2 %%%%%%%%%%%%%%%%%%%%AUMOYENDESROUTINESMATLAB%%%%%%%%%%%%%%%%%%%
3 %@copyright16/11/2015SamirKENOUCHE
4

5 fun=@(x)x.*exp(-x).*cos(2.*x);
6

7 lowerBound=0;upperBound=2*pi;tol=1e-07;
8

9 [int1,funEval1]=quad(fun,lowerBound,upperBound,tol)%METHODE
10 %ADAPTATIVEDESimpson.funEval1:NbrDEVALUATIONsDEfun
11

12 [int2,funEval2]=quadl(fun,lowerBound,upperBound,tol)%METHODE
13 %ADAPTATIVEDELobatto
14

15 [int3,errorbnd]=quadgk(fun,lowerBound,upperBound,RelTol,...
16 1e-8,AbsTol,1e-12)%METHODEADAPTATIVEDEGauss-Kronrod
17 %errorbnd:TRADUITLERREURABSOLUEDINTEGRATION|Q-I|,AVEC
18 %QETISONTRESPECTIVEMENTLESVALEURSAPPROCHHEETEXACTE.
19

20 n=1000;dx=(upperBound-lowerBound)/n;

@ Samir Kenouche 9
Intgration numrique

21 x=lowerBound:dx:upperBound;
22

23 int4=trapz(x,fun(x));%METHODEDUTRAPEZE
24

25 fork=2:14%POURLESINTEGRALESPARAMERTRIQUE
26

27 [int5,funEval4]=quadv(@(x)x.*exp(-x).*cos(k.*x),lowerBound,...
28 upperBound);
29

30 figure(1);holdon
31 plot(k,int5,+,MarkerSize,10,LineWidth,1)
32 xlim([115]);xlabel(VALEURDUPARAMETREk,FontSize,12);
33 ylabel(VALEURDELINTEGRALE,FontSize,12)
34

35 end

Ci-dessous, les rsultats renvoys par le script Matlab.

int1 = -0.1221 ; funEval1 = 125


int2 = -0.1221 ; funEval2 = 48
int3 = -0.1221 ; errorbnd = 1.4734e-15

Figure 3: Influence du paramtre k sur la valeur de lintgrale

partir de ce graphe, on observe que plus le paramtre k augmente, plus la valeur


de lintgrale est leve. Il sagit donc dune corrlation positive.

@ Samir Kenouche 10
Solution dquations non linaires

2. Rsolution dquations non-linaires


Mthodes du point fixe et de dichotomie

Introduction
Il existe toute une panoplie de mthodes numriques (dichotomie, point fixe, Newton,
Lagrange, ... etc) permettant de trouver numriquement les zros de fonction
() = 0 dune variable relle. La majorit de ces mthodes sont itratives. En
dautres mots, elles calculent des approximations successives 1 , 2 , 3 , ... de la
vritable racine * de lquation () = 0, partir dune valeur initiale 0 plus
au moins bien choisie. Ce qui les distingue, entre autre, cest leurs vitesses de
convergence et leurs robustesses. Dans certaines applications, cette vitesse de
convergence devient un facteur dterminant notamment quand il sagit de calculer
les racines dune constellation de fonctions.

2.1 Mthode du point fixe


Le principe de la mthode du point fixe consiste transformer, la fonction () = 0,
: [ ] , en une fonction () = . La fonction : [ ] , est construite
de faon ce que () = quand () = 0. Trouver la racine de (), se rsume donc
dterminer un [ ] tel que :

= () (10)
Dans le cas o un tel point existe, il sera qualifi de point fixe de et cette
dernire est dite fonction ditration. Le schma numrique de cette mthode est
donn par :

(+1) = (() ) 0 (11)

On rappelle que le vecteur erreur est calcul partir de : = | |.


Avec, est la solution approche, de la valeur exacte, dtermine avec une tolrance
fixe pralablement. , tant le nombre ditrations. Par ailleurs, lestimation de lerreur
servira, entre autre, comparer la vitesse de convergence pour des mthodes numriques
diffrentes. Sur le plan pratique, lerreur est reprsente graphiquement en traant +1
en fonction de avec une chelle logarithmique. Ainsi, lordre, not , dune mthode
numrique sobtient partir de :

@ Samir Kenouche 11
Solution dquations non linaires

|+1 | | | = log |+1 | log | | + log (12)

Ainsi lordre, , est quantifi via la pente de lquation ci-dessus. On en dduira que :

1. Si = 1 = converge linairement vers la solution approche. Dans ce cas


on gagne la mme quantit de prcision chaque itration.
2. Si = 2 = converge quadratiquement vers la solution approche. Dans ce
cas on gagne le double de prcision chaque itration.
3. Si = 3 = converge cubiquement vers la solution approche. Dans ce cas
on gagne le triple de prcision chaque itration.

Dun point de vue pratique, et pour un suffisamment lev, la vitesse de convergence


dune mthode itrative est value au moyen de la relation :
+2 +1
(, ) = (13)
(+1 )

Tenant compte de cette quation, il vient que plus (, ) tend vers zro plus la
vitesse de convergence de la mthode est leve.

nonc du TP + r
Dans ce TP, il est demand de trouver la racine de la fonction 1 () = (),
en utilisant la mthode du point fixe

1. Tracer la fonction 1 () sur lintervalle [1/2 3].


2. crire un programme Matlab permettant limplmentation du schma num-
rique de cette mthode.
3. Afficher, sur le mme graphe, la fonction 1 () et la solution approche.
4. Afficher le graphe reprsentant le nombre dapproximations successives (+1)
en fonction du nombre ditrations.
5. Tracer lvolution de lerreur en fonction du nombre ditrations.
6. Tracer lerreur ln|+1 | en fonction de ln| | et dterminer lordre de la mthode
numrique.
7. Calculer la vitesse de convergence de la mthode numrique.

Appliquez le mme algorithme pour rsoudre lquation : 2 () = + () + 1


avec [2 3/2].

@ Samir Kenouche 12
Solution dquations non linaires

On donne : tolrance = 106 , les valeurs initiales sont 0 = 0.8 pour 1 () et


0 = 1/5 pour 2 ()

................ Script Matlab ................


1 clearall;closeall;clc;
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 %@copyright15/11/2015SamirKENOUCHE:ALGORITHMEPERMETTANT
4 %LIMPLEMENTATION,SOUSMATLAB,DELAMETHODEDUPOINTFIXE
5 x0=0.8;it=0;tol=1e-05;Nbrit=30;
6

7 whileit<Nbrit
8

9 it=it+1;
10 x=cos(x0);
11 x0=x;
12

13 xn(it)=x;
14

15 ifabs(x-cos(x))<tol
16

17 sol=x;
18 break
19 end
20 end
21

22 a=0;b=3;n=1000;dx=(b-a)/n;x1=a:dx:b;
23 y=inline(cos(x));
24

25 figure(color,[111])
26 plot(x1,x1,k);holdon;plot(x1,y(x1),LineWidth,2);holdon
27 plot(sol,y(sol),ro,MarkerSize,12,LineWidth,2)
28 holdon;plot(sol,y(sol),rx,MarkerSize,12,LineWidth,2)
29

30 holdon
31 plot(sol,0,ko,MarkerSize,12,LineWidth,2);holdon
32 plot(sol,0,kx,MarkerSize,12,LineWidth,2);holdon
33 line(x1,zeros(1,length(x1)),LineStyle,-.,Color,k,
LineWidth,1)
34 xlabel(x);ylabel(f(x))
35

36 holdon;line(sol.*ones(1,length(x1)),y(x1),LineStyle,-.,
Color,k,LineWidth,1);axis([03-11.5])
37

38 %%%%%%%%%%%%%%%%%%%%%%%%%%%AFFICHAGE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

@ Samir Kenouche 13
Solution dquations non linaires

39 text(Interpreter,latex,...
40 String,$x=cos(x)$,Position,[2-1/3],FontSize,15)
41 text(Interpreter,latex,String,$y=x$,...
42 Position,[1.21],FontSize,15);text(sol,2*sol,[\alpha=,
num2str(sol)],...
43 Position,[0.8-1/4],BackgroundColor,[111]);
44

45 %%%%%%%%%%%%%%%%%%%%%%%%%%CALCULDERRRUR%%%%%%%%%%%%%%%%%%%%%%%%%
46 err=abs(xn-sol);error_1=err(1:end-1);error_2=err(2:end);
47

48 figure(color,[111]);loglog(error_1(1:end-4),error_2(1:end-4),
+)
49 ylabel(Ln|e_{n+1}|);xlabel(Ln|e_{n}|)
50

51 cutoff=7;%ATTENTIONAUCHOIXDELANIEMEITERATION
52

53 pente=(log(error_2(end-cutoff))-log(error_2(end-(cutoff+1))))/(
log(error_1(end-cutoff))-log(error_1(end-(cutoff+1))));%
VITESSEDECONVERGENCElog|en+1|=log|en|
54 pente=round(pente);
55

56 %%%%%%%%%%%%%%%%%%%VITESSEDECONVERGENCE(CV)%%%%%%%%%%%%%%%%%%%%%
57 n=20;%ATTENTIONAUCHOIXDELANIEMEITERATION
58 vitesse_CV=(xn(n+2)-xn(n+1))/(xn(n+1)-xn(n));
59

60 msg1=gtext(strcat(CETTEMETHODEESTDORDRE:,num2str(pente)))
;%CLIQUERSURLAFIGUREPOURAFFICHERmsg1
61

62 msg2=gtext(strcat(LAVITESSEDECONVERGENCEVAUT:,num2str(
vitesse_CV)));
63 %CLIQUERSURLAFIGUREPOURAFFICHERmsg2

Les rsultats des diffrents calculs sont ports sur les figures suivantes

@ Samir Kenouche 14
Solution dquations non linaires

Figure 4: Racine de et ordre de convergence de la mthode du point fixe

Linconvnient de la mthode du point fixe, est quelle converge trop lentement. Afin
damliorer sa convergence on peut la transformer en une nouvelle suite par le biais de
lalgorithme dacclration de convergence. Cet algorithme est connu sous le nom de
Aitken-Shanks.

((() ) () )2
(+1) = () (14)
((() )) 2 (() ) + ()

Lalgorithme de Aitken-Shanks peut tre appliqu toute mthode de point fixe.


Trs souvent la convergence de cette mthode est trs rapide.

@ Samir Kenouche 15
Solution dquations non linaires

................ Script Matlab ................


1 clearall;closeall;clc;
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 %@copyright28/11/2015SamirKENOUCHE:ALGORITHMEPERMETTANT
4 %LIMPLEMENTATION,SOUSMATLAB,DELAMETHODEAitken-Shanks
5 xinit=0.8;it=0;tol=1e-05;Nbrit=30;
6

7 whileit<Nbrit
8 it=it+1;
9 phi=cos(xinit);
10 phiphi=cos(phi);
11

12 x=xinit-((phi-xinit).^2)/(phiphi-2*phi+xinit);
13 xinit=x;
14 xn(it)=x;
15

16 ifabs(x-cos(x))<tol
17

18 sol=x;
19 break
20 end
21

22 end

titre comparatif et tenant compte des deux codes Matlab prsents ci-dessus, la m-
thode du point fixe converge vers la racine approche sol = 7.390850858357935e-01,
au bout de 24 itrations. Alors que celle de Aitken-Shanks converge vers la mme
solution au bout de 2 itrations seulement. Ainsi, le gain en terme du temps dexcu-
tion apparait clairement. La convergence est 12 fois plus rapide avec lalgorithme de
Aitken-Shanks.

@ Samir Kenouche 16
Solution dquations non linaires

2.2 Mthode de dichotomie


Le principe de la mthode de dichotomie, encore appele mthode de bissection,
est bas sur le thorme de la valeur intermdiaire. La mthode est dcrite comme
suit : soit, : [ ] , une fonction continue sur lintervalle [ ]. Si
() () < 0 il existe donc au moins une racine de () appartenant lintervalle
+
[ ]. On prend = la moiti de lintervalle [ ] tel que :
2

1. Si () = 0 est la racine de ().


2. Sinon, nous testons le signe de () () (et de () ()).
3. Si () () < 0 la racine se trouve dans lintervalle [ ] qui est la moiti
de [ ].
4. Si () () < 0 la racine se trouve dans lintervalle [ ] qui est la moiti
de [ ].

Ce processus de division, par deux, de lintervalle ( chaque itration on divise


lintervalle par deux) de la fonction est ritr jusqu la convergence pour la tolrance
considre. Ainsi, pour la nime itration, on divise : [ ] en [ ] et [ ],
+
avec chaque fois = .
2

nonc du TP + r
10
Dans ce TP, il est demand de trouver la racine de () = + () + 5,
1 + 2
en utilisant la mthode de dichotomie

1. crire un programme Matlab permettant limplmentation du schma num-


rique de cette mthode.
2. Afficher, sur le mme graphe, la fonction (), la solution approche et les
approximations successives.
3. Calculer lordre et la vitesse de convergence de la mthode numrique.

On donne : tolrance = 108 , 0 = 1.30 et 0 = 3/2

................ Script Matlab ................


1 clearall;closeall;clc;
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 %@copyright14/11/2015SamirKENOUCHE:ALGORITHMEPERMETTANT
4 %LIMPLEMENTATION,SOUSMATLAB,DELAMETHODEDEDICHOTOMIE
5 a=-1.3;b=3/2;itmax=100;tol=1e-6;
6 it=0;center=(b+a)/2;x=[a,center,b];
7 fun=@(x)x+exp(x)+10./(1+x.^2)-5;

@ Samir Kenouche 17
Solution dquations non linaires

9 whileit<itmax
10

11 iffun(a)*fun(center)<0
12

13 b=x(2);a=x(1);center=(a+b)/2;x=[a,center,b];
14

15 elseiffun(center)*fun(b)<0
16

17 b=x(3);a=x(2);center=(a+b)/2;x=[a,center,b];
18

19 end
20

21 ifabs(fun(center))<tol
22

23 sol=center;
24 break
25 end
26

27 ifit==itmax&abs(fun(center))>tol
28

29 disp(PASDECONVERGENCEPOURLATOLERANCECONSIDEREE)
30

31 end
32

33 it=it+1;
34 xit(it)=center;
35 itNumber=it;
36 end
37

38 disp(strcat(LARACINEAPPROCHEEVAUT:,num2str(sol)))
39 %%%%%%%%%%%%%%%%%%%%%%%%AFFICHAGEGRAPHIQUE%%%%%%%%%%%%%%%%%%%%%%%%
40 ainit=-1.3;binit=3/2;n=500;dx=(binit-ainit)/n;
41 xn=ainit:dx:binit;
42

43 figure(color,[111]);plot(xn,fun(xn),LineWidth,1);holdon
44 plot(sol,fun(sol),ro,MarkerSize,12,LineWidth,2)
45 plot(sol,fun(sol),rx,MarkerSize,12,LineWidth,2)
46 plot(xit,fun(xit),kx,MarkerSize,10,LineWidth,1.5)
47 plot(xit,fun(xit),ko,MarkerSize,10,LineWidth,1.5)
48

49 line(xn,zeros(1,length(xn)),LineStyle,-.,Color,k,...
50 LineWidth,1);xlabel(x);ylabel(f(x))
51 title(RACINEDEf(x)=0PARLAMETHODEDEDICHOTOMIE)

@ Samir Kenouche 18
Solution dquations non linaires

Les sorties renvoyes par ce script MATLAB sont :

LA RACINE APPROCHEE VAUT :-0.92045


itNumber = 21

Sur ce graphique, les tiquettes noires reprsentent les approximations successives


xit et ltiquette rouge cest la racine calcule sol par cette mthode numrique.

Figure 5: Racine de par la mthode de dichotomie

La mthode de dichotomie est simple mettre en uvre. Nanmoins, elle souffre


dun inconvnient du fait que son seul critre darrt consiste contrler la longueur de
lintervalle chaque itration. Ceci risque de rejeter la racine recherche, car elle ne
tient pas suffisamment en compte du comportement effectif de la fonction en question.

@ Samir Kenouche 19
Solution dquations non linaires

3. Rsolution dquations non-linaires


Mthodes de Newton et de la scante

3.1 Mthode de Newton


Comme il a t montr prcdemment, la mthode de dichotomie exploite uniquement
le signe de la fonction aux extrmits des sous-intervalles. Lorsque cette fonction est
diffrentiable, on peut tablir une mthode plus efficiente en exploitant les valeurs de la
fonction et de ses drives. Le but de ce TP est la programmation, sous Matlab, de la
mthode itrative de Newton. Afin dapprhender cette dernire, soit la figure ci-dessous :

Gomtriquement, la solution approche +1 nest autre que le point dintersection de


laxe des abscisses et la tangente, au point ( , ( )), dquation D : = ( )
( +1 ) + ( ). Notons que * est la vritable racine de lquation () = 0, dont
on cherche approcher. partir de la figure ci-dessus, on a :

( )
tan = (15)
+1

Or on sait que :

@ Samir Kenouche 20
Solution dquations non linaires

( ) 0
( ) = lim = tan (16)
( +1 )0 +1

partir des Eqs. (15) et (16) on obtient ainsi le schma numrique de la mthode
de Newton, soit :

( )
+1 = (17)
( )

Tenant compte de toutes les mthodes vues jusqu prsent, on constate que la
mthode de Newton ncessite chaque itration lvaluation des deux fonctions et de
sa drive. Nanmoins, cet effort est compens par une vitesse de convergence accrue,
puisque cette mthode est dordre deux. Cet accroissement de la vitesse de convergence
est conditionn par le choix de la valeur initiale qui doit tre la proche possible du zro
recherch.

nonc du TP + r
Nous allons rsoudre lquation : () = +()+1. Nous choisissons 0 = 1/2
comme valeur initiale. crire un code matlab, portant sur limplmentation de la
mthode de Newton, en suivant les tapes suivantes :


1. Faire un test si () = 0 = arrt du programme.
2. Le critre darrt est : |+1 | < , tant la solution approche et ,
la tolrance considre.
3. Afficher la solution approche .
4. Afficher le nombre ditrations conduisant la solution approche.
5. Afficher sur le mme graphe, la fonction (), la solution approche et la
droite tangente au point ( , ( )).
Appliquez le mme algorithme pour rsoudre lquation : () = 83 122 + 1

................ Script Matlab ................


1 clearall;closeall;clc;
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 %@copyright09/11/2015SamirKENOUCHE:ALGORITHMEPERMETTANT
4 %LIMPLEMENTATION,SOUSMATLAB,DELAMETHODEDENEWTON
5

6 Nmax=100;x=-1/2;it=0;tol=1e-04;
7 verif=tol+1/2;
8

@ Samir Kenouche 21
Solution dquations non linaires

9 while(it<Nmax&verif>=tol)
10

11 fx=inline(x+exp(x)+1);
12 dfx=inline(1+exp(x));
13 fx=feval(fx,x);
14 dfx=feval(dfx,x);
15

16 ifdfx~=0
17 xn=x-(fx/dfx);
18 verif=abs(fx/dfx);
19 x=xn;
20 elseifdfx==0
21 disp(PASDESOLUTION,LADERIVEEESTNULLE)
22 end
23

24 if(it==Nmax&verif>tol)
25 disp(LAMETHODEDENEWTONNECONVERGEPASPOURLATOLERANCE
CONSIDEREE)
26 end
27

28 it=it+1;
29 end
30

31 disp(strcat(CONVERGENCE,LASOLUTIONAPPROCHEEESTxn=,num2str(
xn)))
32 disp(strcat(LENOMBREDITERATIONEST=,num2str(it)))
33 %%%%%%%%%%%%%%%%%%%%%%%%%%AFFICHAGEGRAPHIQUE%%%%%%%%%%%%%%%%%%%%%
34 xi=linspace(-12/2,6/2,1000);
35 fx=inline(xi+exp(xi)+1);
36 fxi=feval(fx,xi);
37 dfx=inline(1+exp(x));droite=dfx(xn)*(xi-xn)+fx(xn);
38

39 figure(color,[111]);plot(xi,fxi,LineWidth,2);holdon;
40 plot(xi,droite,r,LineWidth,1);holdon
41 plot(x,fx(x),kx,MarkerSize,12,LineWidth,2);holdon
42 plot(x,fx(x),ko,MarkerSize,12,LineWidth,2)
43

44 xlabel(x,fontweight,b,fontsize,12,LineWidth,1)
45 ylabel(f(x),fontweight,b,fontsize,12,LineWidth,1)
46

47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48

49 text(Interpreter,latex,String,$f(x)=x+exp(x)+1$,...
50 Position,[-10/220/2],FontSize,15)

@ Samir Kenouche 22
Solution dquations non linaires

51

52 text(xn,2*xn,[x_n=,num2str(xn)],Position,[-32],...
53 BackgroundColor,[111]);

Les rsultats des diffrents calculs sont ports sur la figure suivante

Figure 6: Racine de par la mthode de Newton

Notons que la mthode de Newton converge de faon quadratique uniquement dans


le cas o la racine recherche de est simple. Dans le cas contraire, elle converge de
faon linaire. Par ailleurs, cette mthode, peut tre utilise afin de rsoudre des systmes
dquations non linaires.

@ Samir Kenouche 23
Solution dquations non linaires

3.2 Mthode de la scante


La mthode de Newton est rapide et trs utilise, quand sa drive existe. Malheureu-
sement dans certaines situations nous navons pas accs cette drive. Cest pourquoi on
sest propos dtudier une autre mthode, dite de la scante. Cette dernire saffranchit
de la drive de la fonction (), en lapprochant par laccroissement :

() (1)
( ) (18)
() (1)
Le schma numrique de cette mthode est donn par :

() (1)
(+1) = () () (19)
() (1)

En observant lquation (19), on constate des similitudes avec celle de Newton.


Toutefois, la mthode de la scante ncessite linitialisation de deux valeurs approches
0 et 1 de la racine exacte de lquation () = 0.

nonc du TP + r
Il vous est demand de trouver la racine de lquation : () = 0.2(4)1/2.
Prenez 0 = 1 et 1 = 2 comme valeurs initiales. crire un code matlab, portant
sur limplmentation de la mthode de la scante en considrant une tolrance :
= 1010 .

1. Afficher la solution approche .


2. Afficher le nombre ditrations conduisant la solution approche.
3. Afficher sur le mme graphe, la fonction (), la solution approche et les
approximations successives (+1) .

................ Script Matlab ................


1 clearall;closeall;clc;
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 %@copyright10/11/2015SamirKENOUCHE:ALGORITHMEPERMETTANT
4 %LIMPLEMENTATION,SOUSMATLAB,DELAMETHODEDELASECANTE
5

6 x(1)=-1;x(2)=2;fun=x-0.2.*sin(4.*x)-1/2;
7 it=0;tol=1e-10;Nit=20;
8

9 whileit<Nit
10

11 it=it+1;
12

@ Samir Kenouche 24
Solution dquations non linaires

13 fun=eval(fun,x);
14 var=x(2)-fun(2)*((x(2)-x(1))/(fun(2)-fun(1)));
15

16 xn=var;
17 x=[x(2),xn];
18

19 ifabs(xn-var)<tol
20

21 sol=xn;
22 approx(it)=xn;
23

24 break
25 end
26

27 end
28

29 fun=inline(x-0.2.*sin(4.*x)-1/2);outPut=[sol,fun(sol)];
30 formatlong
31 %%%%%%%%%%%%%%%%%%%%%%%%affichagegraphique%%%%%%%%%%%%%%%%%%%%%%%%
32

33 b=4;a=-2;n=1000;dx=(b-a)/n;x=a:dx:b;
34

35 figure(color,[111])
36 plot(x,fun(x),LineWidth,1);holdon
37 plot(outPut(1),outPut(2),ro,MarkerSize,12,LineWidth,2);
38 holdon;plot(outPut(1),outPut(2),rx,MarkerSize,12,LineWidth
,2)
39 holdon;plot(approx,fun(approx),kx,MarkerSize,10,LineWidth
,1.5)
40 holdon;plot(approx,fun(approx),ko,MarkerSize,10,LineWidth
,1.5)
41 holdon;
42

43 line(x,zeros(1,length(x)),LineStyle,-.,Color,k,LineWidth
,1)
44 xlabel(x);ylabel(f(x));
45 title(RACINEDEf(x)PARLAMETHODEDELASECANTE)
46

47 %%%%%%%%%%%%%%%%%%%%%%AFFICHAGESURLAFIGURE%%%%%%%%%%%%%%%%%%%%%%
48 text(Interpreter,latex,String,$x-\:0.2.*sin(4.*x)-\:1/2
$,Position,[-3/22],FontSize,15)
49

50 text(sol,2*sol,[sol=,num2str(sol)],Position,[-1/21/2],...
51 BackgroundColor,[111]);

@ Samir Kenouche 25
Solution dquations non linaires

Les rsultats des diffrents calculs sont ports sur la figure suivante

Figure 7: Racine de par la mthode de la Scante

@ Samir Kenouche 26
Mthodes dinterpolation

4. Mthodes dinterpolation
Mthode de Lagrange

Introduction
Soient + 1 couples de donnes { , }, avec des nuds diffrents . On peut
associer (relier) ces donnes un seul et unique polynme dinterpolation des aux
nuds , ayant un degr infrieur ou gal . Dans le cas gnral ce polynme
est donn par :



() = ( ) (), avec () = (20)
=0

=0
=

Cette relation est appele formule dinterpolation de Lagrange et les polynmes


sont ses polynmes caractristiques. Le but de linterpolation consiste, entre autre,
substituer une fonction () (connue analytiquement ou non) par une fonction plus
simple afin de procder une intgration numrique ou un calcul de la drive.
Linterpolation sert aussi construire une reprsentation synthtique de donnes
exprimentales quand leurs nombre devient trs lev.

nonc du TP + r
Construire, selon la mthode de Lagrange, le polynme dinterpolation 2 ()
de degr deux qui interpole les points : (0 , 0 ) = (0, 1) ; (1 , 1 ) = (1, 2) et
(2 , 2 ) = (2, 5).

1. Dterminer dabord ce polynme de faon analytique.


2. crire un algorithme Matlab permettant limplmentation de la mthode de
Lagrange. Dterminer ce polynme.
3. Tracer, sur la mme figure, le polynme et les points dinterpolation.

@ Samir Kenouche 27
Mthodes dinterpolation

Rsolution analytique
Dans un premier temps, nous dterminerons analytiquement le polynme 2 ().
Ainsi, tenant compte de lquation (20) et pour = 0, 1, 2, il vient :

2 () = 0 0 () + 1 1 () + 2 2 () (21)

1 2
0 () = (22)
0 1 0 2
0 2
1 () = (23)
1 0 1 2
0 1
2 () = (24)
2 0 2 1

En substituant les quations (22), (23) et (24) dans (21), on obtient :

( ) ( ) ( )
1 2 0 2 0 1
2 () = 0 +1 +2
0 1 0 2 1 0 1 2 2 0 2 1

( ) ( ) ( )
( 1)( 2) ()( 2) ()( 1)
= 2 () = 1 +2 +5
(1)(2) (1)(1) (2)(1)

(2 3 + 2) (2 2 ) (2 )
( ) ( ) ( )
= 2 () = 2 +5
2 1 2

2  + 2 4 2 +  + 5 2 
( )
3 8 5

= 2 () =
2

= 2 () = 2 + 1 (25)

Rsolution algorithmique
partir de ce calcul, on comprend que le calcul analytique montre ses limites pour
des degrs levs. Par consquent, il est ncessaire de dvelopper un algorithme
permettant limplmentation de la mthode de Lagrange afin de dterminer les
polynmes quelque que soit le degr .

@ Samir Kenouche 28
Mthodes dinterpolation

................ Script Matlab ................


1 clearall;closeall;clc;
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 %@copyright02/12/2015SamirKENOUCHE:ALGORITHMEPERMETTANT
4 %LIMPLEMENTATION,SOUSMATLAB,DELAMETHODEDELAGRANGEPOUR
5 %LINTERPOLATIONPOLYNOMIALE
6 x(1)=0;x(2)=1;x(3)=2;n=3;%POLYNOMEDEDEGRE2
7 y(1)=1;y(2)=2;y(3)=5;interv=1000;dx=(x(3)-x(1))/
interv;
8 xvar=x(1):dx:x(3);polyn=0;
9

10 col={+k,+r,+m};
11

12 fori=1:n
13

14 lag=1;
15

16 forj=1:n
17

18 if(i~=j)
19

20 lag=(xvar-x(j))./(x(i)-x(j)).*lag;
21

22 end
23 end
24

25 figure(1);plot(x(i),y(i),col{i},MarkerSize,12,LineWidth,2);
holdon;
26 polyn=polyn+lag.*y(i);
27 end
28

29 holdon
30 plot(xvar,polyn,LineWidth,1);holdon;xlabel(x);ylabel(y)
31 axis([-0.52.5-0.55.5])
32

33 title(Interpolation:selonLagrange)
34

35 p=2;coeff=polyfit(xvar,polyn,p)%COEFFICIENTSDUPOLYNOMED
INTERPOLATION.AINSI,%coeff(1)CONTIENTLECOEFFICIENT
xpuissance(p),coeff(2)CELUIDExpuissance(p-1),...%CEST-A-
DIRE,DANSNOTRECAScoeff(1)*xpuissance(2)+coeff(2)*x+coeff
(1)=xpuissance(2)+1.

@ Samir Kenouche 29
Mthodes dinterpolation

Ci-dessous, le graphique reprsentant le polynme interpolant et les points dinterpo-


lation.

Figure 8: Interpolation selon Lagrange

@ Samir Kenouche 30
Mthodes dinterpolation

5. Mthodes dinterpolation
Mthode de Hermite

Introduction
Linterpolation de Hermite est une gnralisation de celle de Lagrange en faisant
concider non seulement () et aux nuds , mais galement leurs drives
dordre aux nuds . Soient 0 , 1 , ...., , (n + 1) points distincts de lintervalle
[ ] et = () une fonction dfinie sur le mme intervalle admettant les drives

(0 , 0 ), (1 , 1 ), ...., ( , ). Dans ce cas, il existe un seul et unique polynme

tel que ( ) = et ( ) = , avec = 2 + 1 et = 0, 1, 2, ..., . Le
polynme de Hermite est donn par :

( )


() = () + ( ) ( ())2 (26)
=0

Avec,


1
() = = () = 1 2( ) (27)

=0 =0

= =

Signalons au passage que linterpolation de Lagrange (voir le TP prcdent) est un


cas particulier de celle de Hermite (0 = 1 = .... = = 0).

nonc du TP + r
Construire, selon la mthode de Hermite, le polynme dinterpolation 2 () de degr
deux qui interpole les points : (0 , 0 ) = (0, 1) ; (1 , 1 ) = (1, 2) et (2 , 2 ) = (2, 5).

1. crire un algorithme Matlab permettant limplmentation de la mthode de


Hermite. Dterminer ce polynme.
2. Tracer, sur la mme figure, le polynme et les points dinterpolation.

@ Samir Kenouche 31
Mthodes dinterpolation

................ Script Matlab ................


1 clearall;closeall;clc;
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 %@copyright03/12/2015SamirKENOUCHE:ALGORITHMEPERMETTANT
4 %LIMPLEMENTATION,SOUSMATLAB,DELAMETHODEDEHERMITEPOUR
5 %LINTERPOLATION
6

7 x=[0,1,2];n=3;%POLYNOMEDEDEGREn-1.
8 y=[1,2,5];interv=1000;dx=(x(3)-x(1))/interv;
9 yder=[y(1),(y(2)-y(1))/(x(2)-x(1)),(y(3)-y(2))/(x(3)-x(2))];
10

11 xvar=x(1):dx:x(3);polyn=0;
12 col={+k,+r,+m};
13

14 fori=1:n
15 lag=1;
16 ci=0;
17

18 forj=1:n
19

20 if(i~=j)
21

22 lag=(xvar-x(j))./(x(i)-x(j)).*lag;
23 ci=ci+(1/(x(i)-x(j)));
24 end
25 end
26

27 Di=1-2.*(xvar-x(i)).*ci;
28 polyn=polyn+(y(i).*Di+yder(i).*(xvar-x(i))).*(lag).^2;
29 figure(2);plot(x(i),y(i),col{i},MarkerSize,12,LineWidth,2);
30 holdon;
31 end
32

33 holdon
34 plot(xvar,polyn,b,LineWidth,1);holdon;xlabel(x);ylabel(
y)
35 axis([-0.52.5-0.55.5])
36 title(Interpolation:selonHermite)
37

38 p=2;coeff=polyfit(xvar,polyn,p);%EVALUATIONDES
COEFFICIENTS
39 evalp=polyval(coeff,xvar);%EVALUATIONDUPOLYNOME

@ Samir Kenouche 32
Mthodes dinterpolation

Ci-dessous, le graphique reprsentant le polynme interpolant et les points dinterpo-


lation.

Figure 9: Interpolation selon Hermite

@ Samir Kenouche 33
Mthodes dinterpolation

6. Mthodes dinterpolation
nuds de Tchebychev

Introduction
Nous avons vu prcdemment, dans le cas de linterpolation de Lagrange et celle de
Hermite, que lutilisateur a la libert de choisir les nuds dinterpolation { }. En
revanche, linterpolation de Pafnouti Tchebychev, impose un choix des nuds
(voir, Eqs. (29) ou (30)) dans lintervalle [, ], appels points de Tchebychev.
Il sagit donc dune interpolation de Lagrange mene en des points particuliers.
Tenant compte de cette rpartition particulire des nuds, on peut montrer que, si
() est drivable sur [, ], alors () converge vers () quand pour
tout [, ]. Ainsi, les nuds de Tchebychev sont dtermins par minimisation
de la quantit :




[,] ( ) (28)


=0

En effet, lquation (28) est minimale pour les nuds qui annulent les polynmes de
Tchebychev, soit :

( ) ( ) ( )
+ (2 ( ) + 1)
= + cos avec = 0, 1, ..., (29)
2 2 2

Il existe galement une autre rpartition non uniforme des nuds dinterpolation,
ayant les mmes caractristiques de convergence que les nuds de Tchebychev, dfinie
par les nuds de Tchebychev-Gauss, soit :

( ) ( ) ( )
+ (2 + 1)
= cos avec = 0, 1, ..., (30)
2 2 ( + 1) 2

Lattrait de choisir les nuds de Tchebychev, est de se prmunir (lutter) contre le


phnomne de Runge. Dans ce qui suit nous nous attellerons de rappeler ce phnomne.

@ Samir Kenouche 34
Mthodes dinterpolation

Interprtation
Intuitivement on est tent de croire que plus lcart entre les points dinterpolation
est rduit meilleure sera la convergence du polynme de Lagrange. Les choses ne se
prsentent pas sur cet aspect, ainsi, Carl Runge a mis en vidence le fait que plus
plus le polynme de Lagrange diverge aux bords de lintervalle [, ]. On
comprend dans ce cas, que la convergence nest pas rgulire. Cette irrgularit de
convergence est rsolue en procdant linterpolation aux points de Tchebychev.
Nous allons illustrer ce phnomne de Runge par lexample suivant :
1
Soit la fonction () = , avec [5, 5]. Nous allons considrer les nuds
1 + 2
dinterpolation suivants : 0 = 5, 1 = 4, 2 = 3, 3 = 2, 4 = 1, 5 = 0,
6 = 1, 7 = 2, 8 = 3, 9 = 4, 10 = 5.

Figure 10: Illustration du phnomne de Runge

partir de la fig. (10), on constate une divergence, au voisinage des bornes de


lintervalle, entre le polynme interpolateur de Lagrange et la courbe (). Par ailleurs,
plus le degr de ce polynme est lev plus la divergence (oscillations sur les bords de
[, ]) aux bords de lintervalle est grande. Ceci est typique dune convergence irrgulire.
Cet exemple illustre trs bien le phnomne de Runge. Ceci peut tre dmontr en calcu-
lant le maximum de () et de ses drives jusqu lordre 25 avec le code Matlab suivant :

1 clearall;clc;formatlong;
2 xvar=-5:0.01:5;symsx;n=24;fun1=1/(1+x.^2);
3 forik=1:n+1
4 dfun1=diff(fun1,ik);fun=subs(dfun1,xvar);
5 maxdfun1(ik)=max(abs(fun));end

@ Samir Kenouche 35
Mthodes dinterpolation

Aprs excution, les maximums des valeurs absolues de ()() pour k = 22 25 sont :

maxdfun1([22, 23, 24, 25]) = 1.0e+25 *


0.00011240007277 0.00245438057646 0.06204484017332 1.48020670296177

Figure 11: Attnuation du phnomne de Runge aux nuds de Tchebychev


En revanche, dans linterpolation de Tchebychev (fig. (11)), la convergence est uniforme.
De plus, lorsque le nombre de nuds dinterpolation augmente, la courbe polynomiale se
confond avec la fonction (fig. (12)).

Figure 12: Effet du nombre de points dinterpolation selon Tchebychev

@ Samir Kenouche 36
Mthodes dinterpolation

nonc du TP + r
Construire, sous Matlab, le polynme dinterpolation de Tchebychev de la fonction
1
() = . Les nuds dinterpolation sont les suivants : 0 = 5, 1 = 4,
1 + 2
2 = 3, 3 = 2, 4 = 1, 5 = 0, 6 = 1, 7 = 2, 8 = 3, 9 = 4, 10 = 5.

1. Dterminer ce polynme pour = 10 et = 20. Conclure


2. Afficher les nuds de Tchebychev
3. Tracer, sur la mme figure, le polynme de Tchebychev, les points dinterpo-
lation et la fonction ().

................ Script Matlab ................


1 clearall;closeall;clc;
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 %@copyright03/12/2015SamirKENOUCHE:ALGORITHMEPERMETTANT
4 %LIMPLEMENTATION,SOUSMATLAB,DELAMETHODEDETCHEBYCHEV
5 formatlong
6

7 x(1)=-5;x(2)=-4;x(3)=-3;n=11;%POLYNOMEDEDCEGREn-1
8 x(4)=-2;x(5)=-1;x(6)=0;x(7)=1;x(8)=2;x(9)=3;
x(10)=4;x(11)=5;y=1./(1+x.^2);
9

10 interv=1000;dx=(x(11)-x(1))/interv;
11 xvar=x(1):dx:x(11);polyn=0;
12

13 x=(x(11)+x(1))/2+((x(11)-x(1))/2)*cos((2*(n-(1:n))+1)*pi/(2*n));
14 xChe=x;%LESNOEUDSxiANNULANTLESPOLYNOMESDETCHEBYCHEV:
CECIAFINDEMINIMISERLECARTENTREPn(x)ETLAFONCTIONf(x)A
INTERPOLER
15

16 fori=1:n
17

18 lag=1;
19

20 forj=1:n
21

22 if(i~=j)
23

24 lag=(xvar-xChe(j))./(xChe(i)-xChe(j)).*lag;
25

26 end

@ Samir Kenouche 37
Mthodes dinterpolation

27 end
28

29 figure(1);plot(xChe(i),y(i),+k,MarkerSize,12,LineWidth,1);
holdon;
30 polyn=polyn+lag.*y(i);
31 end
32

33 holdon
34 plot(xvar,polyn,b,LineWidth,1);holdon;xlabel(x);ylabel(
y)
35 title(Interpolation:selonLagrange)
36 p=10;coeff=polyfit(xvar,polyn,p);
37

38 evalp=polyval(coeff,xvar);holdon;
39 plot(xvar,1./(1+xvar.^2),r)

Les graphiques gnrs par ce script Matlab, sont reprsents ci-dessous

Figure 13: Interpolation aux nuds de Tchebychev pour = 10

@ Samir Kenouche 38
Mthodes dinterpolation

Figure 14: Interpolation aux nuds de Tchebychev pour = 20

@ Samir Kenouche 39
Rsolution numrique dquations diffrentielles

7. Rsolution numrique dquations


diffrentielles
Problme de Cauchy

Introduction
On dsire calculer la solution () sur lintervalle = [, ] du problme de Cauchy

= (, ()) avec (0 ) = 0
() (31)
On comprend, ainsi, quune quation diffrentielle est une quation dpendant
dune variable et dune fonction () et qui contient des drives de (). Elle
peut scrire comme :

()
, (), (1) (), (2) (), ..., () () = 0 () () =
( )
(32)

Pour = 2, lquation ci-dessus peut se mettre sous la forme diffrentielle :

[ ] [ ]
1
= (, ()) = 1 (33)
2 2
Lexistence dune solution unique de lquation diffrentielle est tributaire de limpo-
sition de certaines conditions limites sur () et de ses drives. Dans lquation (32),
les conditions initiales sont les valeurs de (), (1) (), (2) (), ..., (1) (). Dun
point de vue pratique, linconnue () est un vecteur ayant fonctions inconnues
avec pour conditions initiales le vecteur () (ou (0 )). Par ailleurs, il faut noter
que trs souvent la solution analytique nexiste pas, et on doit par consquent
approcher la solution exacte () par des mthodes numriques.

7.1 Mthodes un pas


Ces mthodes sont bases sur un dveloppement en srie de Taylor suivant un ordre
plus au moins lev. Elles sont qualifies un pas, car le calcul de +1 ne rclame
que la valeur de linstant prcdent. Une mthode deux pas utilisera la fois
et 1 . Les schmas numriques des mthodes dEuler explicite, de Heun (ou de

@ Samir Kenouche 40
Rsolution numrique dquations diffrentielles

Runge-Kutta dordre 2) et de Runge-Kutta classique dordre 4 sont donns dans ce


qui suit

7.1.1 Mthode dEuler


Afin datteindre la solution (), sur lintervalle [, ], on choisit + 1 points
dissemblables 0 , 1 , 2 , ..., , avec 0 = et = et le pas de discrtisation est dfini
par = ( )/. La solution estimer peut tre approche par un dveloppement
limit de Taylor

( )
( + ) = ( ) + (+1 ) + ... (34)

( )
Puisque = ( , ( )) et = +1 , on obtient ainsi le schma numrique

dEuler :
{
0 = valeurs initiales
(35)
+1 = + ( , ), avec = 0, 1, ..., 1.

Cette mthode est dordre 1, cela veut dire que lerreur est proportionnelle au carr
du pas () de discrtisation. Intuitivement, on comprend que pour amliorer la prcision
cette mthode, il suffira de rduire . Cette rduction du pas de discrtisation aura pour
incidence laccroissement du temps de calcul ( 1/). Par ailleurs, lavantage de la
mthode dEuler, tire son origine du fait quelle rclame uniquement lvaluation de la
fonction pour chaque pas dintgration.

7.1.2 Mthode de Heun


La Mthode de Heun est une version amliore de celle dEuler. Lerreur du rsultat
gnr par cette mthode est proportionnelle 3 , meilleur que celui de la mthode
dEuler. Nanmoins, la mthode de Heun rclame une double valuation de la fonction
.

{
0 = valeurs initiales
+1 = + 2 ( ( , ) + (+1 , + ( , ))) ,
avec = 0, 1, ..., 1.
(36)
Le schma numrique de cette mthode rsulte de lapplication de la formule de
quadrature du trapze. Notons galement que la mthode de Heun fait partie des mthodes
de Runge-Kutta explicites dordre deux.

7.1.3 Mthode de RungeKutta, dordre 3


Les mthodes de type Runge-Kutta permettent dobtenir une plus grande prcision
(elles gnrent des solutions numriques plus proches des solutions analytiques) que les
deux mthodes prcdentes.

@ Samir Kenouche 41
Rsolution numrique dquations diffrentielles

0 = valeurs initiales
( )

+1 = + ( , ) + 4 ( + , + ) + ( + , + (2 2 1 )

2 2

avec = 0, 1, ..., 1 et
(37)
{
1 = ( , )
(38)
2 = ( + 2 , + 1 2 )

Cest la mthode de Runge-Kutta explicite trois niveaux.

7.1.4 Mthode de Runge-Kutta, dordre 4


La mthode de Runge-Kutta (classique) dordre 4, est une mthode explicite trs
populaire. Elle calcule la valeur de la fonction en quatre points intermdiaires selon :




0 = valeurs initiales
( )

+1 = + ( , 1 ) + 2 ( + , 2 ) + 2 ( + , 3 ) + (+1 , 4 )

6 2 2

avec = 0, 1, ..., 1 et
(39)


1 =
= + ( , )

2 2 1
(40)

3 = + 2 ( + 2 , 2 )

= + ( + , )

4 2 3

Notons que le nombre de termes retenus dans la srie de Taylor dfinit lordre de la
mthode de Runge-Kutta. Il vient que la mthode Runge-Kutta dordre 4, sarrte au
terme (4 ) de la srie de Taylor.

@ Samir Kenouche 42
Rsolution numrique dquations diffrentielles

nonc du TP + r
1. Rsoudre numriquement, par le biais des mthodes de Euler, de Heun et de
Runge-Kutta dordre 4, lquation diffrentielle du premier ordre suivante :


2 2 + 2
=

1 3 (41)
(0) = 1

2. Afficher sur la mme figure, la solution des trois mthodes.


3. Analyser lerreur en fonction du pas de discrtisation pour la mthode de
Runge-Kutta dordre 4.
4. Connaissant la solution exacte de lquation diffrentielle ci-dessous. Proposer
une dmarche permettant la dtermination de lordre de convergence de la
mthode de Runge-Kutta. On donne :



=

2 (42)
(0) = 1

La solution exacte est : 3 (/2) + 2


5. Tracer le graphique donnant lerreur relative, pour chaque pas de discrtisation,
en fonction du nombre ditrations.
6. Tracer le graphique donnant le maximum de lerreur relative en fonction du
pas de discrtisation.

................ Script Matlab ................


1 clearall;closeall;clc;
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 %@copyright13/12/2015SamirKENOUCHE:ALGORITHMEPERMETTANT
4 %LIMPLEMENTATION,SOUSMATLAB,DEMETHODESNUMERIQUES(Euler,Heun,
5 %Runge-Kutta)POURLARESOLUTIONDEQUATIONSDIFFERENTIELLES
6

7 %%%%%%%%%%%%%%%%%%%METHODEDERunge-Kuttadordre4%%%%%%%%%%%%%%%%
8

9 dydt=inline((-y.*t.^2-y.^2+2.*t)./(1-t.^3),t,y);
10 a=0;b=1;n=70;h=(b-a)/n;t=a:h:b;
11

12 epsilon=0.0001;u(1)=1+epsilon;
13

14 fori=1:n-1

@ Samir Kenouche 43
Rsolution numrique dquations diffrentielles

15

16 u1(i)=u(i);u2(i)=u(i)+h/2*dydt(t(i),u1(i));
17

18 u3(i)=u(i)+h/2*dydt(t(i)+h/2,u2(i));u4(i)=u(i)+h*dydt
(t(i)+h/2,u3(i));
19

20 u(i+1)=u(i)+h/6*(dydt(t(i),u1(i))+2*dydt(t(i)+h/2,...
21 u2(i))+2*dydt(t(i)+h/2,u3(i))+dydt(t(i+1),u4(i)));
22

23 end
24

25 figure(color,[111])
26 plot(t(1:end-1),u,o-g)
27

28 %%%%%%%%%%%%%%%%%%%%%%%%%%METHODEDEHeun%%%%%%%%%%%%%%%%%%%%%%%%%%
29 clearall;clc;
30

31 dydt=inline((-y.*t.^2-y.^2+2.*t)./(1-t.^3),t,y);
32 a=0;b=1;n=70;h=(b-a)/n;t=a:h:b;
33

34 epsilon=0.0001;u(1)=1+epsilon;
35

36 fori=1:n-1
37

38 u(i+1)=u(i)+h/2*(dydt(t(i),u(i))+dydt(t(i+1),...
39 u(i)+h*dydt(t(i),u(i))));
40 end
41

42 tn=t(1:end-1);
43 holdon;plot(tn,u,o-r);
44 %%%%%%%%%%%%%%%%%%%%%%%%%%%METHODEDEuler%%%%%%%%%%%%%%%%%%%%%%%%%
45

46 clearall;clc;
47 dydt=inline((-y.*t.^2-y.^2+2.*t)./(1-t.^3),t,y);
48

49 a=0;b=1;n=70;h=(b-a)/n;t=a:h:b;
50 epsilon=0.0001;u(1)=1+epsilon;
51

52 fori=1:n-1
53

54 u(i+1)=u(i)+h/2*(dydt(t(i),u(i)));
55

56 end
57

@ Samir Kenouche 44
Rsolution numrique dquations diffrentielles

58 holdon
59 plot(t(1:end-1),u,o-b)
60

61 legend(Runge-Kutta,Heun,Euler)

Figure 15: Solutions numriques obtenues par les mthodes de Euler, de Heun et
de Runge-Kutta dodre 4

................ Script Matlab ................


1

2 clearall;closeall;clc;
3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 %@copyright14/12/2015SamirKENOUCHE:ANALYSEDELERREUREN
5 %FONCTIONDUPASDEDISCRITISATIONDANSLECADREDELAMETHODEDE
6 %Runge-KuttaDORDRE4
7

8 dydt=inline((t-y)/2,t,y);%EQUATIONDIFFERENTIELLE
9 funex=inline(3*exp(-t/2)-2+t,t);%SASOLUTIONEXACTE
10 a=0;b=6;ik=0;epsilon=0.0001;u(1)=1;
11 col={k,b,r,m,c,g};
12

13 forn=60:10:100
14

15 h=(b-a)/n;t=a:h:b;
16

17 fori=1:n-1

@ Samir Kenouche 45
Rsolution numrique dquations diffrentielles

18

19 u1(i)=dydt(t(i),u(i))+2*dydt(t(i)+h/2,...
20 u(i)+h/2*dydt(t(i),u(i)));
21

22 u2(i)=dydt(t(i)+h/2,u(i)+h/2*dydt(t(i)+h/2,...
23 u(i)+h/2*dydt(t(i),u(i))));
24

25 u3(i)=dydt(t(i+1),u(i)+h*dydt(t(i)+h/2,...
26 u(i)+h/2*dydt(t(i)+h/2,u(i)+h/2*dydt(t(i),u(i)))));
27

28 u(i+1)=u(i)+h/6*(u1(i)+2*u2(i)+u3(i));
29

30 end
31

32 ik=ik+1;
33 t=t(1:end-1);
34 err=abs((funex(t)-u)./funex(t));
35

36 max_err(ik)=max(err);pas(ik)=h;
37 figure(1);holdon;plot(err,col{ik},LineWidth,1);
38 xlabel(NOMBREDITERATIONS);ylabel(ERREURRELATIVE)
39

40 end
41

42 figure(3);plot(t,u,o-);holdon
43 plot(t,funex(t),o-r)
44

45 forp=1:6
46

47 [coeff,s]=polyfit(pas,max_err,p);%sETANTLERREUR
48 %DINTERPOLATION,POURUNDEGREp,GENEREEPARLAFONCTION:polyfit
49 evalp=polyval(coeff,pas);
50

51 err_iterpolation(p)=max(abs(evalp-max_err));
52

53 end
54

55 [min_err_interp,degre_interp]=min(err_iterpolation);
56 coeff_opt=polyfit(pas,max_err,degre_interp);
57 eval_opt=polyval(coeff_opt,pas);
58

59 figure(color,[111])
60 plot(pas,max_err,r+,MarkerSize,10,LineWidth,1)
61 holdon;plot(pas,eval_opt);axis([0.050.1107e-08])

@ Samir Kenouche 46
Rsolution numrique dquations diffrentielles

62 xlabel(PASDEDISCRETISATION);ylabel(MAXIMUMDELERREUR
RELATIVE)
63

64 str1={CETTEMETHODEESTDORDRE:,num2str(degre_interp)}
65 uicontrol(Style,text,Position,[2608015060],...
66 BackgroundColor,[111],String,str1);

Figure 16: volution de lerreur relative en fonction du pas de discrtisation

s(p = 1) : normr = 9.3851e-09 ; s(p = 2) : normr = 7.4149e-10 ; s(p


= 3) : normr = 1.6060e-11 ; s(p = 4) : normr = 9.9262e-24 ; s(p = 5) :
normr = 1.9921e-23 ; s(p = 6) : normr = 2.8892e-23.

@ Samir Kenouche 47
Rsolution numrique dquations diffrentielles

Do le choix p = 4, quon retrouve galement avec une dmarche similaire en


posant err_iterpolation = max(abs(evalp - max_err)) et [min_err_interp,
degre_interp] = min(err_iterpolation). Il en ressort que degre_interp = 4.
Avec un raisonnement analogue on peut aisment obtenir lordre des mthodes dEuler
et de Heun.

7.2 Au moyen de commandes Matlab


Introduction
Matlab comprend un certain nombre de solveurs destins la rsolution dquations
diffrentielles. Les plus utiliss sont ode23 et ode45, qui sont bass sur la mthode
de Runge-Kutta explicite un pas. Le solveur ode113, utilise la mthode de
Adams-Bashforth-Moulton multi-pas. Les autres solveurs sont ode15s, ode23s,
ode23t, ode23tb. Ils ont tous la mme syntaxe :

[t, y] = solveur(eqs, [ti ; tf], yinit, opts). Cette syntaxe renvoie la


solution y au temps t. Largument eqs est le systme dquations diffrentielles.
Ce systme peut tre dfini de plusieurs manire. Soit travers un fichier
m-file, dans ce cas on doit rajouter lidentifiant @eqs. Soit travers une
commande inline ou bien au moyen de la fonction anonyme. Ce systme
dquations diffrentielles est rsolu sur lintervalle [ti ; tf], avec les conditions
initiales yinit = [y(ti) ; y(tf)]. Largument dentre opts, de type srtucture,
compte les options doptimisation indiques dans odeset, sa syntaxe est donne par :

opts = odeset(Property1, value1, Property2, value2, ...). Ainsi,


chaque proprit est suivie de sa valeur. titre illustratif, la proprit
(Stats,on, ...) affiche, la fin de lexcution, des statistiques relatives au
calcul effectu. Pour plus dinformations sur les paramtres doptimisation, taper
help odeset, dans la fentre des commandes de Matlab.

nonc du TP + s
1. Rsoudre symboliquement et numriquement au moyen du solveur ode23,
lquation diffrentielle du second ordre suivante :
{
() + 3 = 4 sin() + exp()
(43)
(0) = 1, (0) = 1

2. Afficher sur la mme figure, la solution numrique et la solution analytique.

@ Samir Kenouche 48
Rsolution numrique dquations diffrentielles

................ Script Matlab ................


1 clearall;clc;closeall;
2

3 %%%%%%%%%%%%%%%%%%%%%%%%SOLUTIONSYMBOLIQUE%%%%%%%%%%%%%%%%%%%%%%%%
4 symst
5

6 ySym=dsolve(D2y+3*y=4*sin(t)+exp(-t),y(0)=1,Dy(0)=1
,t);
7

8 %%%%%%%%%%%%%%%%%%%%%%%%SOLUTIONNUMERIQUE%%%%%%%%%%%%%%%%%%%%%%%%%
9 a=0;b=10;n=200;h=(b-a)/n;tn=a:h:b;
10 y=[1;1];
11

12 eqs=@(tn,y)[y(2);-3*y(1)+4*sin(tn)+exp(-tn)];
13 opts=odeset(Stats,on,RelTol,1e-3);
14 [tn,ysol]=ode23(eqs,[tn(1);tn(end)],y,opts);%SOLVEURode23
15

16 figure(color,[111]);
17 plot(tn,ysol(:,1),o-,LineWidth,1);holdon;
18 plot(tn,double(subs(ySym,t,tn)),o-r,LineWidth,1)
19 xlabel(t,FontSize,12);ylabel(y(t),FontSize,12);
20 ih1=legend(SOLUTIONNUMERIQUE,SOLUTIONANALYTIQUE);
21 set(ih1,Interpreter,none,Location,NorthWest,Box,off,
Color,none)

Figure 17: Comparaison entre la solution analytique et la solution numrique


gnre par le solveur ode23

@ Samir Kenouche 49
Rsolution numrique dquations diffrentielles

Un autre faon de faire est de crer des fonctions imbriques dans un fichier m-file,
selon la syntaxe suivante :

1 function[]=eqs_sol(t,y)
2

3 tsol=[t(1);t(end)];
4

5 opts=odeset(Stats,on,RelTol,1e-3);
6 [t,ysol]=ode23(@eqs,tsol,y,opts);
7 plot(t,ysol(:,1))
8 functiondydt=eqs(t,y)
9 dydt=[y(2);-3*y(1)+4*sin(t)+exp(-t)];
10

11 end
12 end

Quil faudra ensuite appeler, en tapant dans la fentre des commandes : eqs_sol(t,
[1 ; 1]). Cette fonction accepte deux arguments en entre, le vecteur t et les conditions
initiales [1 ; 1]. Le fichier doit tre sauvegard sous le nom eqs_sol.m. Nous allons
dsormais rsoudre une quation diffrentielle du second ordre avec paramtre variable,
not :

nonc du TP + s
1. Rsoudre numriquement au moyen du solveur ode45, lquation diffrentielle
du second ordre suivante :
{
() (1 2 ) =
(44)
(0) = 1, (0) = 0

2. Afficher sur la mme figure, la solution numrique pour diffrentes valeurs de


. Il en est de mme pour les fonctions drives. Avec, le paramtre qui
prend ses valeurs de 1.5 4 par pas de 0.5.

................ Script Matlab ................


1 clc;clearall;closeall;
2 a=1;b=25;n=100;h=(b-a)/n;t=a:h:b;
3 y=[1;0];alpha=[1.5;2.0;2.50;3.0;3.5;4.0];
4 col={o-k,o-m,-co,o-g,o-,o-r};
5

6 forik=1:numel(alpha)
7 eqs=@(t,y)[y(2);alpha(ik)*(1-y(1).^2)*y(2)-y(1)];
8 opts=odeset(Stats,on,RelTol,1e-3);

@ Samir Kenouche 50
Rsolution numrique dquations diffrentielles

9 [t,ySol]=ode45(eqs,[t(1);t(end)],y,opts);
10

11 ysol=squeeze(ySol(:,1));ysolDer=squeeze(ySol(:,2));
12 figure(1);plot(t,ysol,col{ik});holdon;%SOLUTIONS
13 xlabel(t,FontSize,12);ylabel(y(t),FontSize,12)
14 figure(2);plot(t,ysolDer,col{ik});holdon;%DERIVEES
15 xlabel(t,FontSize,12);ylabel(y^{}(t),FontSize,12)
16 end

Figure 18: Solution numrique () pour diffrentes valeurs de

Figure 19: Drive premire de la solution numrique () pour diffrentes valeurs


de

@ Samir Kenouche 51
Rsolution numrique dquations diffrentielles

@ Samir Kenouche 52

Vous aimerez peut-être aussi