Vous êtes sur la page 1sur 7

Equation de la chaleur : traitement num erique

Position du probl` eme

Nous nous int eressons ici au traitement num erique de l equation de la chaleur : u 2 u =0 t x2 Ce probl` eme, avec en outre une condition initiale (la donn ee de u(0, x) pour tout x), est ` a lorigine de nombreux probl` emes souvent diciles, et pourrait nous faire couler beaucoup dencre. Pour etre plus concret dans ce qui suit, nous allons nous restreindre ` a un exemple pr ecis, dans lequel on conna t bien la solution exacte. Ainsi, nous serons ` a m eme de comparer les r esultats num eriques donn es par les di erentes m ethodes pr esent ees ` a la solution exacte, et donc dapr ecier leur ecacit e et leur pr ecision. Nous consid erons ce probl` eme sur un domaine born e en espace (0 x 1), et pour des temps positifs (t 0). Nous allons egalement nous placer dans des conditions initiales relativement simples : 2 x [ 0 ; 1 ] , u(0, x) = sin(x)

On impose egalement les conditions de bord : t 0, u(t, 0) = u(t, 1) = 0

On v erie alors ais ement que la fonction (t, x) et sin(x) est solution de notre probl` eme. Nous pourrons donc comparer les solutions approch ees que nous allons calculer ` a cette fonction de r ef erence. N.B. Sil est ais e de v erier par d erivation que notre fonction v erie bien l equation de la chaleur, et quelle satisfait par ailleurs aux conditions initiales et aux conditions de bord impos ees, lunicit e dune telle solution est un probl` eme autrement plus complexe. Par ailleurs, pour des donn ees initiales moins r eguli` eres, on construit sans trop de probl` eme une solution, mais l` a encore lunicit e d epend dun certain nombre de param` etres, notamment de r egularit e de la condition initiale.

R esolution num erique de l equation

Bien que nous connaissions ici la solution exacte du probl` eme, ou plut ot justement parceque nous la connaissons, il est instructif de voir comment lon peut la calculer num eriquement, ou plus exactement lapprocher num eriquement.

Aussi puissant que soit votre ordinateur, un programme de calcul num erique ne pourra jamais calculer quune quantit e nie de valeurs de la fonction solution du probl` eme. Il nous faut donc comme toujours discr etiser le probl` eme en espace ET en temps. On se donne donc un pas spatial h, cest-` a-dire que lon cherche ` a calculer les valeurs de notre solution u aux points dabscisse x = 0, h, 2h, . . . , 1. On doit aussi se restreindre ` a un ensemble discret dinstants auxquels on pr etend calculer ces valeurs, on xe donc un pas temporel k et lon cherchera ` a calculer les valeurs de u aux instants t = k, 2k, 3k, . . . . Dans toute la suite, nous noterons ui ee (approch ee) de la n la valeur calcul 1 etiser solution u ` a linstant nk (n > 0) et au point dabscisse ih (0 i ). Discr h l equation, cest alors transformer ses termes en des expressions faisant intervenir uniquement nos valeurs ui n.

2.1

Un premi` ere m ethode

u au point (nk, ih) peut etre approch ee par le rapt u ((n + 1)k, ih) u (nk, ih) port . En eet, un d eveloppement limit e` a lordre 1 k nous donne : u ((n + 1)k, ih) u (nk, ih) u (nk, ih) + o (1) = k t Rempla cant les valeurs de la fonction u ((n + 1)k, ih) et u (nk, ih) par leurs u i valeurs approch ees ui (nk, ih) par le rapport n+1 et un , on approchera donc t i i un+1 un . k De m eme, un d eveloppement limit e` a lordre 2 par rapport ` a la variable x au point (nk, ih) nous donne : La d eriv ee temporelle u (nk, (i + 1)h) = u (nk, ih) + h u x u x (nk, ih) + h2 2 u (nk, ih) + h2 o (1) 2 x2 h2 2 u (nk, ih) + h2 o (1) 2 x2

et u (nk, (i 1)h) = u (nk, ih) h Par sommation, on trouve donc :

(nk, ih) +

u (nk, (i + 1)h) + u (nk, (i 1)h) 2u (nk, ih) 2u = (nk, ih) + o (1) 2 h x2 Do` u lid ee, encore une fois, de remplacer le terme rapport 2u de l equation par le x2

+1 1 ui + ui 2ui n n n . 2 h On obtient, pour tous les couples dindices (n, i), l equation approch ee : i 1 ui ui+1 + ui 2ui n+1 un n n n =0 k h2

(1)

Gr ace a ` ce sch ema, on peut calculer de proche en proche les valeurs de 1 sans trop de dicult es : connaissant toutes ces valeurs ` a linstant (ui ) n 0i h nk , chacune de ces equations (pour une valeur de i donn ee) nous permet de 1 i calculer un+1 . Seul se pose un petit probl` eme pour i = 0 et i = , valeurs pour h 1 +1 lesquelles ui et ui respectivement ne sont pas d enies. Mais comme nous n n avons impos e u(t, 0) = u(t, 1) = 0 pour tout t, il sut ` a chaque etape de calcul
h esoudre les equations pour i variant de 1 ` a de poser u0 n+1 = un+1 = 0 et de r 1 1 uniquement. . . h Cest ce proc ed e de calcul quutilise le programme chaleurexpl. Voyons ce 1 1 quil donne, pour h = et k = par exemple. Apr` es 10 etapes de calculs 100 100 (t = 0, 1 donc), ca commence ` a devenir franchement anarchique : 1

1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

(voir egalement lanimation java) Conclusion : m eme si les premiers pas de calcul sont relativement satisfaisant, on se rend compte quau bout de quelques temps, ca ne marche plus du tout ! Et ceci quel que soient les pas h et k choisi. En ranant ceux-ci, on peut au mieux retarder le moment o` u la solution diverge compl` etement.

2.2

Essayons autre chose

2u semble assez satisfaisante car apr` es tout x2 u tr` es sym etrique, il nen va pas de m eme pour le terme : pourquoi lapprot Si lapproximation du terme 3

ui ui ui ui n n1 cher par le rapport n+1 plut ot que par n ? Testons donc cette k k solution. Elle nous conduit aux equations :
i 1 ui ui+1 + ui 2u i n un1 n n n =0 2 k h cest-` a-dire, en rempla cant n par n + 1 (i.e. en changeant de point) :

1 i i ui+1 + ui ui n+1 un n+1 2un+1 n+1 =0 2 k h

(2)

1 ` 1 est Cette fois, le calcul des valeurs (ui a partir des (ui n )0i h n+1 )0i h un peu plus compliqu e : chaque equation fait intervenir trois inconnues. Nous sommes donc face ` a un syst` eme ` a r esoudre, ou ce qui revient au m eme, face a une matrice ` ` a inverser. Heureusement, de nombreux algorithmes font ca de mani` ere assez ecace, et lon peut donc programmer cette m ethode sans trop de dicult es. Cest le proc ed e quutilise le programme chaleurimpl. Pour que la comparaison avec le pr ec edent ait un sens, prenons les m emes valeurs pour les pas 1 h et k (toujours ). Au temps t = 0, 1, soit apr` es 10 etapes de calcul, ler100 reur maximale par rapport ` a la solution exacte est de seulement 4, 57.104 , elle 3 est denviron 2.10 apr` es 100 etapes de calcul. Rien ` a voir donc avec le comportement anarchique de la solution trouv ee par la premi` ere m ethode ! (voir egalement lanimation java) Conclusion : Bien que l equation semble ` a premi` ere vue tr` es semblable a ` la pr ec edente, encore quun peu plus dicile ` a r esoudre, cette m ethode est autrement plus ecace et pr ecise. On saper coit que l ecart ` a la solution exacte est plus que raisonnable, et ce pendant tr` es longtemps. Bien s ur, les erreurs dapproximation dans les calculs saccumulant (le terme en o(h2 ) n eglig e lors de lapproximation plus des erruers num eriques dues au fait que lordinateur ne prends en compte quun nombre ni de d ecimales), on va peu ` a peu s ecarter (en relatif) de la solution exacte de l equation de la chaleur, mais cette m ethode permet dobtenir des r esultats tout ` a fait exploitables. N.B. En r ealit e, on reste assez proche. En eet, la solution num erique, tout comme la solution exacte, tend exponentiellement vers 0. M eme pour des temps tr` es grands, elles ne se s eparent donc que tr` es peu...

2.3

Pourquoi cette di erence ?

La question est tout ` a fait l egitime : dans un cas comme dans lautre, on ui ui n et la approxime la d eriv ee temporelle par une expression du type n+1 k i+1 i1 i u + u n 2u n d eriv ee seconde en espace par quelquechose du type n . Les h2 deux equations obtenues sont apr` es tout tr` es semblables, ` a quelques indices pr` es... Transformons l eg` erement les equations obtenues. Convergence de la premi` ere m ethode : L equation (1) se r e ecrit en
i ui n+1 = un +

k 1 ui+1 + ui 2ui n n 2 h2 n 2k k i+1 1 1 2 2 ui + ui n + 2 2 un n h h 4

Cette m ethode est dite explicite, car elle fournit des formules explicites pour 1 le calculs des valeurs ui a partir des valeurs de ui ). n (0 i n+1 ` h 2k Lorsque les pas k et h v erient la condition 2 2 < 1, aucun probl` eme. La h i valeur un+1 est alors une combinaison convexe (i.e. un barycentre ` a coecients 1 i i+1 positifs) des valeurs ui n , un et un . Comme nous partons dune fonction positive, la solution calcul ee reste constamment positive, on peut alors passer aux valeurs absolues et lon obtient :
i1 i+1 ui , ui n , un n+1 max un

et donc

max ui n+1
i

max ui n
i

cest-` a-dire que notre solution calcul ee d ecroit, tout comme la solution exacte. Par ailleurs, on a n ecessairement une courbe lisse, ui etant une combinaison n+1 1 i i+1 convexe des valeurs ui , u et u . n n n Mais cette condition sur h et k est pour le moins dicile ` a r ealiser. En eet, il est naturel de prendre un pas spatial (h) petit, pour avoir de bonnes 1 . Il approximations de la d eriv ee seconde selon x. Ici, nous avons pris h = 100 faudrait donc prendre un pas temporel k v eriant : 104 2 5.104 2 Pour un tel pas, le calcul de la solution approch ee avance pour le moins lentement... Et si k ne v erie pas cette condition, on a des barycentre ` a coecients n egatifs et tous nos calculs peuvent diverger assez rapidement. k< a la seconde m ethode, dite impliConvergence de la seconde m ethode : Passons ` cite. L equation (2) se r e ecrit en : 1+ 2k 2 h2 ui n+1 k 1 i ui+1 + ui n+1 = un 2 h2 n+1

On obtient cette fois les coecients ui esolvant un syst` eme de la n+1 en r forme : k In + 2 2 A Un+1 = Un h
1 ; et la o` u In est la matrice identit e, Um le vecteur de coordonn ees (ui m )0i h matrice A est la matrice tridiagonale ayant des 2 sur la diagonale et des 1 sur ` lexception du premier et du dernier la sur-diagonale et la sous-diagonale. (A

0 h h coecient de chacune de ces diagonales, car u0 n = un = un+1 = un+1 = 0, donc ces coecients sont des 0). k La matrice In + 2 2 A est une matrice ` a diagonale dominante, on montre h quelle est inversible et que son inverse est ` a coecients positifs (voir en annexe). Cest-` a-dire que cette fois, quels que soient les valeurs de h et k , les nombres j 1 . ui n+1 sont des combinaisons convexes des (un )0j h On a donc cette fois aussi, et sans conditions sur h et k , une propri et e du type :

max ui n+1
i

max ui n
i

cest-` a-dire une solution qui d ecro t, tout comme la solution exacte. Un autre point de vue : Une fa con plus simple, mais un peu moins compl` ete, d etudier la di erence entre ces deux m ethodes est dintroduire la quantit e
1/h

a(n) =
i=0

(1) ui ere m ethode, en sommant terme ` a n . Dans le cas de la premi` a(n + 1) a(n) 4a(n) = k 2 h2

terme toutes les equations (1) (multipli ee respectivement par (1)i ), on trouve :

et donc

a(n + 1) = a(n) 1

4k 2 h2

2 h2 pour que ce facteur multiplicatif soit inf erieur 2 a 1 en valeur absolue. Dans le cas contraire, on a une suite (a(n))nN qui diverge, ` et donc la solution approch ee ne peut pas rester tr` es longtemps proche de la solution exacte, qui tends elle vers 0. Notons dailleurs que de grandes valeurs de la suite a indiquent de fortes oscillations de la solution calcul ee. On retrouve la condition k < Dans le cas de la seconde m ethode, en eectuant la m eme somme, on trouve : a(n + 1) a(n) 4a(n + 1) = k 2 h2 a(n) 4k 1+ 2 2 h L` a, aucun probl` eme. Quelle que soient les valeurs de h et k , la quantit e a(n) d ecro t, ce qui est compatible avec le fait que la solution tends vers 0, et que notre courbe reste ` a peu pr` es lisse, sans grandes oscillations. cest-` a-dire a(n + 1) = Conclusion : Attention, ceci nest pas une preuve du fait que la m ethode implicite marche forc ement, mais seulement du fait quelle est meilleure que la m ethode explicite. . .Ces deux m ethodes sont illustr ees par des animations graphiques disponibles sur ce site (tout comme les deux programmes chaleurexpl et chaleurimpl mentionn es, en versions matlab et scilab), ` a laddresse : http ://www.dma.ens.fr/culturemath/maths/html/chaleur/chaleur.html

Annexe : matrices ` a diagonale dominante


k Ecrivons tout dabord notre matrice B = In + 2 2 A. Pour simplier les h k notations, nous allons poser ici c = 2 2 (c est donc un r eel positif). Notre h matrice s ecrit :

1 0 . . . . . . . . . 0

0 . . 1 + 2c c . . .. .. . . . c . . .. .. . . . c . c 1 + 2c 0 ... ... ... 0 1 0 ... ... ...

Nous allons montrer que cette matrice B v erie la propri et e suivante : si X est un vecteur tel que BX a toutes ses coordonn ees positives, alors il en est de m eme pour X. Soit en eet X un tel vecteur, de coordonn ees x1 , . . . , xn , et i0 lindice v eriant xi0 = min xi . (En cas d egalit e, on prend le plus petit i0 v eriant
1in

cette propri et e). Supposons xi0 < 0. Les cas i0 = 1 et i0 = n sont imm ediatement exclus. En eet, la premi` ere (resp derni` ere) coordonn ee de BX est x1 (resp xn ), positif par hypoth` ese. Supposons 3 i0 n 2. Alors lhypoth` ese de positivit e des coecients de BX nous donne, pour le i0 -i` eme : cxi0 1 + (1 + 2c) xi0 cxi0 +1 0 Or, par d enition de i0 , on a 2cxi0 c (xi0 1 + xi0 +1 ) 0. Dautre part, on a suppos e xi0 < 0. On obtient par sommation : cxi0 1 + (1 + 2c) xi0 cxi0 +1 < 0 ce qui est absurde. Les cas i0 = 2 et i0 = n 1 se traitent bien s ur de la m eme fa con. Le coecient xi0 , minimal, est donc positif, et donc X est ` a coecients positifs. De cette propri et e de la matrice B, on d eduit que B est inversible et que B1 est ` a coecients positifs. En eet, B est injective : si X1 et X2 sont deux vecteurs de m eme image par B, alors on a B(X1 X2 ) = 0. Donc B(X1 X2 ) est un vecteur de coordonn ees positives, donc X1 X2 egalement. Sym etriquement, on obtient que les coordonn ees du vecteur X2 X1 sont aussi positives, pour les m emes raisons. Et donc, n ecessairement, X1 = X2 , cest-` a-dire que la matrice B est injective. Elle est donc aussi bijective, donc inversible. Son inverse B1 transforme tout vecteur ` a coordonn ees positives en un vecteur ` a coordonn ees positives. Cest le cas en particulier des vecteurs de la base canonique, donc les vecteurs colonne de B1 sont ` a coordonn ees positives, cest-` a-dire que B1 est ` a coecients positifs.

Vous aimerez peut-être aussi