l'analyse numériquemathenjeans.free.fr/amej/edition/actes/actespdf/95105120.pdf · ANALYSE...

16
l'analyse numérique par Philippe Souplet, Institut Galilée, Université Paris XIII, CNRS URA 742 introduction — définition, historique, classification principe d'une méthode numérique origine des problèmes — exemples mise en équations construction du problème approché calcul sur ordinateur validité de la méthode cohérence — convergence & stabilité performance — temps & mémoire aperçu de quelques autres méthodes dimension 2 — domaine — exemple différences finies — système linéaire éléments finis ordres de grandeur complexité calcul parallèle Merci de m'accueillir ici. Je vais donc vous parler d'analyse numérique. Je vais essayer de vous dire en quelques minutes ce que c'est et à quoi ça sert, et pourquoi c'est devenu si important depuis une période récente. introduction — définition, historique, classification D'abord, qu'est-ce que c'est que l'analyse numérique ? L'analyse numérique, c'est une branche des mathématiques, des mathématiques appli- quées, dont le but est de mettre au point et d'étudier des méthodes de résolution numé- rique — on va calculer véritablement des nombres qui vont représenter des phéno- mènes physiques — pour résoudre numéri- quement des équations qui sont issues de pro- blèmes posés par la physique ou par les sciences appliquées. C'est quelque chose qui a eu un développe- ment très récent. Pour quelles raisons ? Parce que l'analyse numérique et le calcul scientifique sont tributaires de la puissance des ordinateurs. D'abord l'ordinateur est quand même un objet récent : ça a tout juste cinquante ans. Ça a été mis au point en gros aux alentours de la seconde guerre mondiale, pour les besoins de la bombe atomique — on peut bien le dire, au départ, en partie, même si l'idée était dans l'air — et les moyens de calcul n'ont véritablement commencé à se développer qu'à partir des années cinquante. Et qu'est-ce que ça a changé ? Ça a changé le point essentiel suivant : avant, lorsqu'on voulait mettre au point un objet technologique, une aile d'avion, un moteur, une structure en génie civil, on était obligé de faire de l'expérimentation avec les mains. Avec la physique, on était obligé d'avoir des souffleries, de casser des avions, de casser des ailes, et ça coutait extrêmement cher, c'était extrêmement lourd à mettre en oeuvre. page 105 “MATh.en.JEANS” en 1995

Transcript of l'analyse numériquemathenjeans.free.fr/amej/edition/actes/actespdf/95105120.pdf · ANALYSE...

l'analyse numériquepar Philippe Souplet, Institut Galilée,Université Paris XIII,CNRSURA 742

intr oduction — définition, historique,classification

principe d'une méthode numérique

origine des problèmes — exemplesmise en équationsconstruction du problème approchécalcul sur ordinateur

validité de la méthode

cohérence — convergence & stabilitéperformance — temps & mémoire

aperçu de quelques autres méthodesdimension ≥ 2 — domaine — exemple

dif férences finies — système linéaireéléments finis

ordres de grandeur

complexitécalcul parallèle

Merci de m'accueillir ici. Je vais donc vousparler d'analyse numérique. Je vais essayer devous dire en quelques minutes ce que c'est età quoi ça sert, et pourquoi c'est devenu siimportant depuis une période récente.

intr oduction — définition, historique,classification

D'abord, qu'est-ce que c'est que l 'analysenumérique ?

L'analyse numérique, c'est une branche desmathématiques, des mathématiques appl i -quées, dont le but est de mettre au point etd'étudier des méthodes de résolution numé-rique — on va calculer véri tablement desnombres qui vont représenter des phéno-mènes physiques — pour résoudre numéri-quement des équations qui sont issues de pro-bl èmes posés par l a physi que ou par lessciences appliquées.

C'est quelque chose qui a eu un développe-ment très récent. Pour quelles raisons ?

Parce que l 'analyse numérique et le calculscientif ique sont tributaires de la puissancedes ordinateurs. D'abord l 'ordinateur estquand même un objet récent : ça a tout justecinquante ans. Ça a été mis au point en grosaux alentours de la seconde guerre mondiale,pour les besoins de la bombe atomique — onpeut bien le dire, au départ, en partie, mêmesi l'idée était dans l'air — et les moyens decalcul n'ont véri tablement commencé à sedévelopper qu'à partir des années cinquante.

Et qu'est-ce que ça a changé ?

Ça a changé le point essentiel suivant : avant,lorsqu'on voulai t mettre au point un objettechnologique, une aile d'avion, un moteur,une structure en génie civil, on était obligé defaire de l'expérimentation avec les mains.

Avec la physique, on était obligé d'avoir dess o u ff leries, de casser des avions, de casserdes ai les, et ça coutai t extrêmement cher,c'était extrêmement lourd à mettre en œuvre.

page 105

“MATh.en.JEANS” en 1995

Et à parti r des années cinquante, grâce à lapuissance de calcul des ordinateurs, est appa-rue la possibilité de simuler tout ça sur ordi-nateur … On commence par mettre le pro-blème en équations et on lui fait subir tout untrai tement, un traitement particulier qui estjustement donné par l 'analyse numérique.C'est la tâche de l'analyse numérique, de fairesubir ce traitement aux équations, ce qui per-mettra ensuite de faire faire les calculs parl ' o r d i n a t e u r. Donc voilà en très gros ce quec'est que l'analyse numérique et maintenant jevais pouvoir entrer dans les détails …

Je vais articuler mon exposé en quatre par-t i e s .Je vais d'abord vous donner le principed'une méthode numérique. Il y a beaucoup deméthodes numériques, mais je vais en choisirune, la plus simple — tellement simple qu'enfai t el le n'est même pas employée en pra-tique, mais elle réunit toutes les caractéris-tiques de ce qu'est une méthode numérique etelle est suffisamment simple pour qu'on puis-se dire pas mal de choses dessus. Donc, jevais en exposer le principe.

Ensuite, un point très important de l'analysenumérique, c'est la deuxième partie de cettedisci pl ine, c'est : établ i r l a val idi té desméthodes. Il ne suffit pas d'avoir un moyende transformer un problème mathématique enun problème informatique ; i l faut encoremontrer que la méthode qu'on va mettre enplace va être valable, au sens où elle va s'ap-procher réellement du problème concret etcalculer quelque chose de raisonnable parrapport au problème physique.

Ensuite, j'essaierai de donner un aperçu rapi-de de quelques autres méthodes — sansentrer trop dans le détail parce que ça se com-plique assez vite — mais ça vaut le coup d'endire quelques mots.

Enfin, pour terminer — et ça sera aussi unepartie assez importante — je voudrais vousdonner quelques ordres de grandeur relatifsau calcul numéri que. Parce que c'est unconcept qui est très important en analysenumérique, ce concept d'ordre de grandeur.

principe d'une méthode numérique

origine des problèmes — exemples

Pourquoi fait-on des méthodes numériques, àquels problèmes s'intéresse-t-on ?

Les problèmes sont issus des sciences appli-quées, c'est-à-dire physique, chimie, biologie,ingénierie, enfin toutes les sciences de lanature, qu'on commence dans un premiertemps, par mettre en équations.

On prend un problème physique. On va lesimpl if ier beaucoup : on va en extraire lescaractéristiques essentielles, et on va faire deshypothèses qui vont rendre le problème abor-dable.

Un vrai problème physique, c'est un problè-me qui a énormément de paramètres, qui aénormément de composantes et il est impen-sable de traiter tous les aspects en détail : il ya forcément une première phase — qu'onappelle la modélisation — qui consiste à sim-plifier le problème en faisant des hypothèses.

Ça devient donc un problème mathématiqueen termes d'équations — on verra de queltype d'équations il s'agit.

Ce problème mathématique, si on veut le trai-ter numériquement, il faut le traduire, parceque l'ordinateur ne sait pas ce que c'est qu'uneéquation — si vous donnez la fonction sinus,l'ordinateur ne sait pas ce que c'est, il faut luidonner une représentation de la fonctionsinus. Il y a donc une phase de traduction.

Et enfin, une fois que le problème est traduit,on peut le soumettre à l 'ordinateur : çadevient un problème d'informatique, un pro-blème de calcul.

Voilà comment s'articulent les quatre disci-pl ines que sont les sci ences appl i quées,les mathématiques, l'analyse numérique etl 'informatique. Voilà comment on articule leproblème qui nous intéresse autour de cesdisciplines :

page 106

“MATh.en.JEANS” en 1995

Une chose dont je ne parlerai pas en détail,qui est parallèle à l'analyse numérique, c'estcette petite flèche que j'ai mise sur la droite.Il faut dire que la mise en équation, la modé-l isation des problèmes issus des sciencesappliquées, soulève des problèmes spécif i-quement mathématiques, non numériques,qui sont très intéressants en soi , et qui sontessentiels également pour mesurer la validitédes méthodes qu'on va appliquer. Ce sont desproblèmes théoriques liés aux équations parlesquelles on modélise les phénomènes : cesont les questions d'existence des solutions,d'unicité des solutions, et d'autres propriétésqualitatives de ces solutions.

Il est clair que dans la réali té, le problèmephysique qui se pose à nous, ce problème aune solution unique : l'écoulement de l 'airautour d'une aile d'avion … il est ce qu'il est,et physiquement on est bien obl igé de lesubir. Si on veut être cohérents avec la phy-sique, il faudra aussi que l'équation ait, danscertaines conditions, une seule solution :qu'elle existe et qu'il n'y en ait pas plusieurs,là où la physique en impose une seule.

Ça, ce sont des problèmes qui ne sont pasréellement de l 'analyse numérique, qui fontpartie des mathématiques appliquées, et quisont importants aussi.

Je vais commencer par vous énumérer un cer-tain nombre de problèmes auxquels la modé-l isation s'appl ique. En fai t, pratiquementtoutes les branches des sciences appliquéessont concernées par le calcul scienti f ique.Dans des disciplines où on faisait encore ducalcul empirique, de plus en plus, et pour des

raisons économiques, pour des raisons decommodité, et parce que maintenant les ordi-nateurs le permettent, le trai tement par desméthodes informatiques, par la simulationnumérique est devenu possible.

Qu'est-ce qu'on peut citer ?

Des problèmes de mécanique bien sûr. Jedonnerai quelques modèles précis après, maisje donne juste une idée de quels sont les phé-nomènes physiques qu'on met en équations.Mouvement des planètes, balistique (c'est-à-dire trajectoire des fusées, des satellites etc),déplacement des véhicules … des problèmesd'évolution, c'est-à-dire des problèmes où letemps joue un rôle, et où parfois on calculeune seule fonction en fonction du temps.

Par exemple, pour le mouvement d'une planè-te, l'approximation qu'on fera c'est que la pla-nète est représentable par un point, son centrede gravité, et qu'on va simplement étudierl'évolution de la position du centre de gravitéde la planète au cours du temps.

Vous avez des problèmes dits statiques, desproblèmes d'équilibre, où le temps n'apparaîtpas, où seulement une variable d'espace inter-vient, par exemple la forme d'un câble, d'uncâble élastique, soumis à certaines forces.

En électrocinétique aussi, vous avez tousentendu parler du circui t R L C — sinon, jevous dirai en deux mots ce que c'est, tous lescircui ts électroniques courants, ce sont engros des circuits R L C, avec des résistances,des inductances, des condensateurs, avec desgénérateurs. C'est modél isé en fonction dutemps : on va chercher l'évolution d'une cer-taine quanti té physique au cours du temps,par exemple le courant électrique, la charge,la tension.

Vous avez des problèmes intéressants, facile-ment modélisables aussi, issus de la cinétiquechimique : on a une réaction, on cherche àsavoir comment la concentration du réacti f,ou du produit, va évoluer au cours du temps.Donc ce sont des problèmes d'évolution.

SCIENCES APPLIQUEES(Physique, Chimie, Biologie, Ingénierie, …)

MATHEMATIQUES

ANALYSE NUMERIQUE

INFORMATIQUE

Problème de départ

Mise en équations(modélisation)

Discrétisation

Calcul surordinateur

Problèmesthéoriques(existence etunicité de lasolution)

page 107

“MATh.en.JEANS” en 1995

Pour l'instant, je vous cite les problèmes lesplus simples : des problèmes en une dimen-sion. Et le type d'équations auxquelles ça vadonner lieu, c'est ce qu'on appelle des équa-tions différentielles. Vous avez certainemententendu parler des équations di ff é r e n t i e l l e s ,vous ne savez peut-être pas très concrètementce que c'est.

C'est une équation où on s'intéresse à la vites-se de quelque chose par rapport au temps.Dans le cas de la mécanique — d'une planèteou d'un mobile — c'est bien la vitesse, maispour la chimie ça peut être le taux de varia-tion de la concentration d'un produit dans unesolution, pour la biologie ou la démographie,l'évolution d'une population.

On a une équation qui rel i e la vi tesse dequelque chose avec l e temps, avec laposition, avec les forces, etc.Tout se passe enune seule dimension — soi t une dimensionde temps, soi t une dimension d'espacecomme dans l e deuxième problème.J'essaierai de vous dire en deux mots, defaçon un peu plus précise, ce qu'est une équa-tion différentielle.

Vous avez aussi des problèmes pluscompliqués, où plusieurs dimensions inter-viennent en même temps — soi t plusieursdimensions d'espace, soi t dimensionsd'espace et de temps à la fois — et on aboutità un type d'équations pl us compl iquées,qu'on appelle les équations aux dérivées par-tielles.

La foncti on qu'on cherche ne dépendmaintenant pl us d'une variable, mai s deplusieurs à la fois.

Il y a des vitesses par rapport aux différentsparamètres — par rapport au temps,par rapport aux différentes variables d'espace— et c'est plus compliqué.

On n'aura pas le temps d'en dire grand-chose,mais sachez qu'en pratique, dans les pro-blèmes industriels, on a plus souvent affaire àplusieurs dimensions qu'à une seule.

Donnons quelques exemples.

On a des problèmes d'espace, en plusieursdimensions d'espace x, y par exemple. O npeut s'intéresser à calculer des structures élas-tiques, des pl aques, des membranes, descoques … tout ça a une importance capitalepour tout ce qui est génie civil, constructionde bâtiments, aéronautique, …

Il y a des phénomènes où on a espace plust e m p s .Par exemple des phénomènes devibrati ons, de propagati on d'ondes, parexemple en acoustique.

Et encore un dernier exemple où le tempsintervient aussi : en thermodynamique, vousavez les phénomènes de transfert de chaleur.

Voilà un petit aperçu.

mise en équations

Pour comprendre ce que c'est qu'une équationd i fférentielle, il faut d'abord comprendre ceque c'est que la dérivée d'une fonction.

On a simplifié le problème, c'est la premièreétape : on a ramené le problème physique àune géométrie très simple où on va chercherl'évolution d'une fonction.

Par exemple, la variation de la concentrationd'un réacti f dans une réaction chimique vadépendre de la quantité de réactif que vousavez encore en présence.

Dans une réaction chimique, plusla quantité de molécules dans lasolution est importante, plus ça varéagir facilement.

Bien entendu plus ça réagit, plusle réactif disparaît.

Et plus le réactif disparaît, plus lavitesse diminue.

Donc il y a une relation intime entre la vites-se de réaction et la concentration en présence.

page 108

“MATh.en.JEANS” en 1995

Le type d'équation auquel ça va donner lieu,ce sont des équations où on exprime la vites-se de quelque chose, la variation de quelquechose au cours du temps, par rapport à lavaleur qu'elle a à l'instant présent. La varia-tion, ou le taux d'accroissement, ce qu'onappel le en fai t rigoureusement la dérivée,qu'est-ce que ça représente ?

Imaginez que vous ayez une fonction f de x,représentée par une certaine courbe, et vousvous intéressez à l'accroissement de la fonc-tion au voisinage du point x0. Vous avez x0,f(x0). Imaginez que x ce soit le temps et quef(x) ce soit la position de quelque chose parrapport au temps.

Qu'est-ce c'est que la vi tesse du mobile aupoint x0, ou au temps x0 ? Eh bien, ça va êtrela pente de la tangente à la courbe.

La tangente c'est l'unique droite qui coupe lacourbe en un seul point. Comment obtient-oncette droite en pratique ?On prend un point xvoisin de x0, qui sera représenté par les troispoints que j'ai mis à droite, et plus le point xva se rapprocher de x0, plus on espère que ladroite qui joint ces deux points va se rappro-cher de la tangente. Ça s'exprime de façonrigoureuse sous la forme d'une limite : c'estsimplement la mise en forme mathématiquede ce concept-là, mais en gros, c'est la tan-gente, c'est la tangente à la courbe.

Revenons au cas d'une réaction chimique. Laréaction chimique la plus simple, c'est celleoù un composé A se transforme en un compo-sé B.

A → B

En pratique, c'est une réaction de radioactivi-té : vous avez du plutonium qui se transmuteen de l'uranium, spontanément, en un certaintemps.Simplement, un réactif donne un pro-duit. Si vous appelez u(t) la concentration deA, la réaction est représentée par une certaineconstante, une constante de vi tesse.

A →k B

Et la variation à un instant t, la vitesse de dis-parition du composé est proportionnelle à laconcentration que vous avez dans la solution,ou dans le milieu — ce n'est pas forcémentune solution, liquide.

Il y a un signe – parce que cette vitesse estnégative : le composé disparaît. Ça, c'estl 'équation différentielle la plus simple qu'onpuisse imaginer : la dérivée est égale, à uneconstante près, à la valeur de la fonction.

Un autre exemple d'équation di ff é r e n t i e l l e ,quelque chose qui vous sera certainementfamilier : vous avez un ressort, avec une peti-te tige qui l'obl ige à rester horizontal , unepetite masse à l'extrémité du ressort. Le res-sort a une certaine raideur.

Et vous appliquez en fonction du temps unecertaine force, qui est variable : par exemple,vous utilisez un moteur, avec un piston, quipousse et qui ti re alternativement, avec uneforce variable.Et vous cherchez à savoir quelva être le mouvement de la masse, au bout du

xx0

f(x)

f(x0)

dudt

= – k u(t)

mk

page 109

“MATh.en.JEANS” en 1995

ressort, en fonction du temps et en fonctionde la force que vous lui appliquez.

Vous appliquez ce qu'on appelle l'équation dela dynamique, l'équation de Newton — vousavez certainement vu ça, pour certains d'entrevous, en physique — qui vous di t que lamasse fois l'accélération de la masse est égalà la somme des forces que vous appliquez àvotre masse.

Il y a la force d'entraînement, la force devotre moteur, F, et la force de rappel du res-sort : quand vous tirez dessus, il a tendance àtirer dans l'autre sens.

L'accélération, c'est ce terme-là, c'est unedérivée seconde. C'est un petit peu plus com-pliqué, mais vous n'avez pas besoin de com-prendre ce que c'est, parce que dans le modè-le qu'on étudiera tout à l'heure, on n'aura quedes dérivées premières, puisqu'on ne s'inté-ressera qu'à la réaction chimique — maisdérivée seconde, ça veut dire qu'on prend lafonction dérivée, la vi tesse, et on la dériveencore une fois ; autrement dit, l'accélération,c'est le taux de variation de la vitesse.

Donc : il y a la force F, et puis k x, c'est laforce d'élasticité : plus le ressort est allongé,plus la force qu'il exerce en sens contraire estélevée ; elle est même proportionnelle à l'al-longement — x est la différence de longueurentre le ressort au repos et le ressort allongé.On a un exemple d'un deuxième type d'équa-

tion différentielle.Un autre exemple : le cir-cui t électrique donne l ieu au même typed'équation différentielle.Vous avez une résis-tance, une bobine, un condensateur, avec ungénérateur qui applique une tension variable.

Si vous voulez savoir comment varie le cou-rant dans ce circui t, c'est pareil , c'est uneéquation différentielle — q c'est la charge —qui ressemble à l'équation du ressort :

Dernier exemple, ce n'est plus un problèmed'évolution dans le temps, comme ceux qu'onvient de voir, c'est un problème de statique :vous avez un câble élastique, tendu entredeux murs, et vous lui appliquez un charg e-ment — ça peut représenter une grue, ou desmarionnettes, ou ce que vous voulez — vousaccrochez quelque chose au câble ; ça tiredessus, et vous voulez savoir quelle va être laforme du câble à l'équilibre — une fois queça s'est stabilisé. C'est une équation différen-tiel le assez simple, où la dérivée secondeintervient encore. L'accélération, si on peutdire, c'est la courbure du câble, elle est pro-portionnelle à la force que vous appliquez aupoint x.

mk

x(t)

F(t)

m d2x

dt2 + k x(t) = F(t)

x(0) = a

U(t)

R

C

L

L d2q

dt2 + R

dqdt

+ 1C

q(t) = U(t)

u

u(x)

x

f(x)

0 1

d2udx2

= – K f(x)

u(0) = 0 ; u(1) = 0

page 110

“MATh.en.JEANS” en 1995

Le modèle sur lequel on va se fixer, c'est àpeu de choses près celui de la réaction chi-mique, parce qu'i l a l 'avantage d'être trèssimple.

A →k B

Vous voyez que là, la première démarche, lamodélisation a été effectuée de façon vrai-ment radi cal e, parce qu'i l y a de forteschances que dans une situation physique réel-le, le problème soit beaucoup plus compliquéque ça : dans la solution, il n'y aura pas seule-ment le produit A, il y aura autre chose — il yaura des perturbations du milieu ambiant, il yaura des parasites. Donc, en fait, on extrai tjuste le phénomène principal, et on espèreque les perturbations extérieures n'auront pastrop d'importance — on verra tout à l 'heurecomment ça doit se justifier, mais on a beau-coup simplifié.

Et il faut encore autre chose, pour que le pro-blème soit complet : il ne suffit pas de savoircomment varie la concentration en fonctionde sa valeur présente, mais il faut aussi savoirde quelle concentration initiale on part. Vousavez toujours besoin, dans un problème dephysique, des conditions initiales, ou de cequ'on appelle les conditions aux limites.

Dans le cas d'une réaction chimique, le pro-blème est bien déterminé si on sait combienon a de réactif dans la solution au départ ; sion ne le sait pas, on est sûr qu'on n'arrivera àrien calculer.

On peut démontrer que si on a l 'équationd'évolution et la valeur initiale, en général çase passe bien : mathématiquement, il y a uneseule solution. Dans cet exemple, le tempsintervient, donc on a ce qu'on appelle unecondition initiale.Dans le cas d'un problèmeoù le temps n'intervient pas, où c'est unique-ment un problème de statique — on cherchela forme de quelque chose à l'équilibre —ilfaut donner des conditions non pas initiales,

mais des conditions aux limites — il faut toutsimplement dire que la corde est accrochée àses deux extrémités.

Mathématiquement, ça se traduit par le fait defixer les valeurs — il faut autant de valeursqu'il y a de bords. Là, il y a deux extrémités,on dit que le déplacement, c'est-à-dire la dif-férence de hauteur de la corde sous l'actiondes forces, le déplacement est nul ; ça nebouge pas aux extrémités — c'est normalpuisque c'est attaché.

Ça se traduit par u(0) = 0 et u(1) = 0.

Donc il faut toujours des conditions, soit ini-tiales, soit aux limites.

le problème modèle

On va maintenant exl iquer ce qu'est uneméthode numérique pour traiter un problèmecomme celui de la réaction chimique. En fait,on prend un problème légèrement plus géné-ral ; ça ne va rien changer, ce n'est pas pluscompliqué, c'est le problème suivant :

Le taux de variation de la fonction que vouscherchez, est égal à une certaine fonction desa valeur présente. Si vous avez une certainevaleur u à l'instant t, le taux de variation seraune certaine fonction de u. On avait une fonc-tion très simple tout à l'heure puisque c'étaitune fonction linéaire de u (c'était –ku). On vaprendre une fonction un peu plus générale,une fonction de u qui n'est pas forcémentl inéaire. Et en plus, on ajoute une conditioninitiale, comme on a dit.

Quels sont les problèmes qui vont se poser ànous lorsqu'on voudra calculer la solution dece genre d'équation sur ordinateur ?

dudt

= – k u(t)

d2udx2

= – K f(x)

u(0) = 0 ; u(1) = 0

dudt

= f(u(t)) ; 0 ≤ t ≤ T

u(0) = a

page 111

“MATh.en.JEANS” en 1995

Une première chose qu'il faut se dire, c'estque pour une équation aussi simple, en géné-ral, il n'y a pas besoin de faire appel à l'ordi-n a t e u r, on sait trouver des solutions mathé-matiques, ce qu'on appelle des solutions ana-lytiques.On a une fonction usuelle, de cellesque vous connaissez — un polynome, unsinus, l'exponentielle, une puissance, … enfinles fonctions vraiment bien familières — àpartir desquelles en général on sait exprimerla soluti on tant que le problème est trèssimple. Mais f inalement, il y a très peu deproblèmes réels pour lesquels on a vraimentune solution expl ici te ; et dès qu'on a unmodèle physique un petit peu réaliste, on nepeut plus calculer, on n'a plus les solutionssous la forme d'une fonction usuelle et doncon est obligé de faire du calcul numérique.

Il s'agit non plus de trouver l'expression géné-rale de la fonction, mais ses valeurs en toutpoint. Donc on va être obligé de chercher,numériquement, en tout point t ou x combienva valoir la solution. Comment fait-on ?

construction du problème approché

La première difficulté, c'est qu'il y a une infi-nité de points en général. Si votre problèmedépend du temps, comme le temps variecontinûment, vous avez une infinité de temps,et on ne sai t pas manipuler une infinité denombres.Et l'ordinateur ne sait pas plus quen o u s .Donc, on est obl igé de faire une pre-mière chose, ce qu'on appel le la discrétisa-tion.

Si vous voulez chercher numériquement l'al-lure d'une certaine fonction, la fonction u(t)dans un certain intervalle, vous êtes obligésde fixer un certain nombre de points, pourcertaines valeurs du temps, et de calculer uni-quement en ces points-là : on va faire undécoupage de l'intervalle, en général en par-ties égales.

Vous allez découper votre intervalle, et vousallez vous dire : « je vais chercher à calculerla valeur en 0, en h, en 2 h, 3 h, 4 h, et caeterajusqu'au bout ; et si h est suffisamment petit,

si les points sont suffisamment rapprochés, çame donnera le profi l de la solution ». Oncoupe en n interval les égaux, donc la lon-gueur de chaque intervalle, c'est T/n, où T estle temps maximal qui nous intéresse.

h = T/nt0 = 0, t1 = h, t2 = 2h, … , tn = nh= T

tk = kh k = 0, 1, 2, … , n

C'est la première étape d'une méthode numé-rique : la discrétisation. Comment passer d'unproblème où il y a une infinité de valeurs à unproblème où il y a un nombre fini de valeurspour pouvoir les calculer. Notre problèmemodèle — vous savez que la dérivée peuts'appeler u' — notre problème était :

Au lieu de faire varier le paramètre t entre 0et T, avec une infinité de valeurs, on se res-treint à un nombre fini de valeurs, et notreproblème devient u'(tk) = f(uk) :

tk, qu'est-ce que c'est ? C'est le kè m e point denotre discrétisation, le kè m e point de notremaillage, et puis uk, c'est la valeur cherchéede la solution en ce temps-là, au temps tk.C'est u(tk), qu'on note uk pour simplifier.

u(t)

a

t0 nh4h3h2hhT

0 ≤ t ≤ T

k = 0, 1, … , n

k = 0, 1, … , n-1

u'(t) = f(u(t))

u'(tk) = f(uk)

uk+1 – uk = f(uk)h

0 ≤ t ≤ T

k = 0, 1, … , n

k = 0, 1, … , n-1

u'(t) = f(u(t))

u'(tk) = f(uk)

uk+1 – uk = f(uk)h

page 112

“MATh.en.JEANS” en 1995

Maintenant, il y a un deuxième problème,c'est que la dérivée n'est pas quelque chose debien palpable, et pour un ordinateur non plus.La dérivée, c'est une limite, c'est une tangen-te, c'est une espèce d'objet un peu évanescent,dont on n'a pas vraiment d'idée concrète ; etdonc on est obligé de donner une approxima-tion de la dérivée.

Par quoi va-t-on approcher la dérivée ? Si onrevient à la définition de la dérivée, on a uneassez bonne idée de ce qu'on va pouvoir faire.

Puisque la tangente s'obtient à la limite avecun point qui se rapproche indéfiniment, aulieu de prendre un point qui se rapprocheindéfiniment, on va prendre un point relative-ment proche du point qui nous intéresse, eton va remplacer la tangente par une sécante,c'est-à-dire une droite qui passe par ces deuxpoints-là. Au lieu de calculer la tangente, oncalcule la pente de cette droi te-là. Donc onfait une approximation. C'est ce qu'on appelleune différence finie : on va calculer la pentede la droite qui représente la différence entre

ces deux points-là. Elle est f inie au sens oùelle n'est pas infiniment petite.C'est ce qu'onappel le un schéma aux di fférences finies :c'est comment approcher la dérivée. Quelleformule ça donne ?

Au lieu de prendre u' au point, on prend lapente d'une droite voisine. On obtient la penteen faisant la différence des valeurs sur la dif-férence des abscisses — la di fférence desordonnées sur la di fférence des abscisses.

C'est cette formule-là qui donne la base duschéma de di fférences finies. Quand on laréécri t de manière un peu di f férente, ons'aperçoit qu'en multipliant par h et en faisantpasser uk de l'autre côté, on obtient cette for-mule :

u0 = u(0) = auk+1 = uk + h f(uk)

k = 0, 1, … , n–1

uk+ 1 ce sera uk plus quelque chose quidépend de la valeur uk. Si on sait calculer lasolution au kème temps, on pourra en déduire lasolution au k+1ème temps par une formule derécurrence très simple. C'est typiquement unerécurrence, puisque vous connaissez la valeurinitiale — on garde comme valeur initiale lavaleur ini tiale physique du problème — etpuis, de proche en proche, on calcule u1, u2,u3, jusqu'à un, et on calcule explicitement.

C'est un schéma possible, c'est le schémad'Euler — le même Euler que celui de la for-mule pour les sommets d'un graphe ou d'unpolyèdre. C'est le schéma le plus simple ; il yen a d'autres plus compliqués, mais celui-làdonne déjà une bonne idée de ce qu'on fait.

xx0

f(x)

f(x0)

u(t)

a

t0 nh4h3h2hhT

0 ≤ t ≤ T

k = 0, 1, … , n

k = 0, 1, … , n-1

u'(t) = f(u(t))

u'(tk) = f(uk)

uk+1 – uk = f(uk)h

page 113

“MATh.en.JEANS” en 1995

calcul sur ordinateur

Maintenant qu'on a une formule numériquepour calculer point par point la solution, onva donner ça à un ordinateur … qu'est-ce quec'est, un ordinateur ?

Un ordinateur, c'est un machinqui est relié àdifférents modules à l'extérieur :

un module où on stocke les données, un module où on stocke les résultats, et un module où on fait les calculs.

Et au milieu, on a une boîte, un fichier, où onmet ce qu'il faut faire.

Vous allez envoyer vos données à l 'ordina-teur. Pour le problème qu'on vient de montrer,les données ce sera : le temps jusqu'auquelvous voulez calculer la solution, la valeur ini-tiale de la solution, le nombre de points dediscrétisation — en combien de morceaux jevais découper mon i nterval le — et uneexpression de la fonction qui définit l'équa-tion, f qui apparaît au second membre del'équation.

Vous faites démarrer votre programme ; i serale compteur, pour compter à quelle étape onen est, on commence à i = 0, et y sera unevariable où on va mettre la valeur de la solu-tion au point qu'on est en train de calculer.

On démarre comme ça, et on itère, on fait uneboucle. On calcule f(y) : rappelez-vous quel'équation une fois discrétisée, c'était :

uk+1 = uk + h f(uk)

On calcule cette expression-là, et ça nousdonne une valeur qu'on appelle z.

A parti r de la solution au kè m e temps, on endéduit la solution au k+1ème temps et on faittourner l'ordinateur en bouclant, jusqu'à cequ'il ait parcouru tout l'intervalle.

Et au fur et à mesure, on stocke les résultatssur un fichier. Une fois qu'on a fait ça, on aune méthode qui tourne.

Elle tourne, mais le résultat qu'elle donne est-i l satisfaisant ? C'est la question à se poser.Parce que dans tout ça, il peut y avoir deserreurs.

Fichier d'instructions(programme)

processeur(unité decalcul)

Fichier dedonnées Fichier de

résultats

écran

imprimante

réseau

lecture des données : T, a, n, f

démarrage : i = 0y = a

INITIALISATION

lecture des données : T, a, n, f

démarrage : i = 0y = a

INITIALISATION

BOUCLE D'ITERATION

Incrémenter :y ← z

i ← i+1

Calculer : f(y)

Calculer : z = y + h f(y)

Stocker surfichier derésultats

page 114

“MATh.en.JEANS” en 1995

validité de la méthode

En fait, on a découpé notre problème en plu-sieurs étapes : on part d'un problème phy-sique, qui est le phénomène observé, qui cor-respond à des mesures ; on fai t des hypo-thèses simplificatrices pour obtenir un modè-le mathématique qu'on appelle continu, où letemps prend toutes les valeurs — une infinitéde valeurs — de tout l'intervalle ; ensuite onprend un schéma discret, celui qu'on vient dem o n t r e r, où on va découper l'intervalle enmorceaux ; et enfin, on va calculer sur ordi-nateur.

A chacune de ces transformations, il y a dessources d'erreurs possibles.

Il y a d'abord les erreurs dues à la simplifica-tion de la physique du problème. On supposepar exemple qu'une planète est réduite à soncentre de gravité et on fait comme si toutesles forces s'exerçaient sur le centre de gravité.Evidemment, une planète n'est jamais parfai-tement sphérique, et il y aura toujours dese ffets parasites, des forces complémentairesqu'on néglige, et ce n'est donc pas obligatoireque le modèle soit fidèle à la réalité.

Ensuite il y a des erreurs possibles sur lesdonnées : la position initiale de la planète, oula concentration initiale du composé, c'esttoujours le résultat d'une mesure physique, etsur cette mesure il y a toujours une erreur, onn'a jamais de précision absolue sur un appa-reil de mesure.

Quand on va passer de la solution dite exacte,la solution du modèle mathématique continu,à la solution du schéma discret, i l y a deserreurs qui sont l iées aux approximationsqu'on a faites. D'abord, on ne calcule pas entout point, mais seulement en un nombre finide points, et pour faire ces calculs, on estobligé de faire des approximations, de négli-ger des choses, puisqu'on a dit que la dérivée,c'était quelque chose qui est à peu près égal àla dérivée, mais pas strictement égal, puis-qu'on a pris une pente entre deux points voi-sins, mais pas la véritable tangente. Tout ça,ce sont des approximations qui peuvent setraduire par des erreurs potentielles dans leschéma.

Enfin, au niveau du calcul sur ordinateur, il ya un troisième type d'erreur : les erreurs d'ar-rondi. Pourquoi ? On a vu que notre program-me tournai t en boucle. A chaque tour de

boucle, l 'ordinateur représente ces nombrespar un certain nombre de décimales, et quandil arrive à la dernière décimale, il est obligéde faire une approximation — s'il y a encoredes décimales après, il est obligé d'arrondir àla décimale inférieure ou à la décimale supé-r i e u r e .Sur une étape, ce n'est pas grave,parce qu'i l y a douze décimales, ou quinzedécimales, on n'est pas à ça près. Mais s'il y abeaucoup d'étapes, s'il y a mille points ou dixmille points pour découper votre intervalle, ilva faire dix mille fois des erreurs d'arrondis.Et on ne sait pas du tout ce que ça peut don-ner, dix mille fois quelque chose de tout petit.Ça peut donner quelque chose de très grand.

Problèmephysique

Modèlemathématique

(continu)

Schémadiscret

Calculsur

ordinateur

erreurs liées àl'approximation

erreursd'arrondi

solutionapprochéecalculée

solutionapprochée

“théorique”

solutionexacte

phénomèneobservé

(mesures)

• erreurs duesà la

modélisation(hypothèses

simplificatrices)

• erreurs surles données

lecture des données : T, a, n, f

démarrage : i = 0y = a

INITIALISATION

BOUCLE D'ITERATION

Incrémenter :y ← z

i ← i+1

Calculer : f(y)

Calculer : z = y + h f(y)

Stocker surfichier derésultats

page 115

“MATh.en.JEANS” en 1995

Donc la propagation des erreurs d'arrondisrisque de rendre la solution numérique trèsloin de la réalité. Même dans l'hypothèse oùles erreurs précédentes auraient pu être négli-g é e s .Donc toutes ces erreurs sont impor-tantes à prendre en compte.

Il y a deux notions en analyse numérique surlesquelles on doit beaucoup travailler, pourprouver la validité d'une méthode : • la cohérence de la méthode, le fait qu'onsoit proche de la réalité, • et la performance de la méthode, c'est-à-direque le nombre de calculs, qu'il faut soumettreà l 'ordinateur pour avoir un résultat accep-table, doit rester dans des proportions raison-nables. Faire tourner l'ordinateur pendanttrente jours pour avoir un résultat, ce n'est passatisfaisant.

cohérence — convergence & stabilité

Donc, en fai t, au niveau de la cohérence,vous avez deux types de problèmes ; d'abordla convergence.

En gris, ce qui est supposé être la solutionexacte du problème, et au dessus est figuréela solution approchée :

Elles partent toutes les deux du même point.Si on est suffisamment précis, si on découpel'intervalle en un nombre suffisamment grandde peti ts bouts, on espère que l es deuxcourbes ne vont pas être trop éloignées l'unede l'autre. Et à la limite, lorsque n va devenirtrès grand, lorsqu'on va prendre beaucoup,beaucoup de points, on aimerai t que ça serapproche indéfiniment de la courbe réelle.

C'est ce qu'on appelle la converg e n c e .M a i svous avez un deuxième critère, qui est toutaussi important, pour le contrôle des erreurs,qui est ce qu'on appelle la stabilité. Qu'est-ceque c'est ?

En pratique, on ne partira jamais exactementde l a bonne donnée i ni ti ale, à cause deserreurs de mesure que j'ai mentionnées tout àl'heure. Donc si on ne part pas exactement dela donnée initiale, il se pourrait très bien quela courbe qu'on obtient pour des valeurs légè-rement différentes parte complètement dansle décor.

La courbe du bas, c'est le prototype d'un phé-nomène instable, ou d'un schéma instable :pour une valeur même très proche de lavraie valeur de départ, l 'accumulation deserreurs — aussi bien erreurs d'arrondis queerreurs d'approximation — va faire que lasolution part complètement ailleurs que là oùon veut qu'el l e ai l l e, et donc ça n'a plusaucun rapport avec la réali té. Au contraire,dans l a courbe supéri eure, l à, on a unschéma stable : si on part raisonnablementprès de la donnée ini tiale, on ne s'éloignepas trop au cours du temps de la vraie solu-tion.

u(t)

a

t0 T

a+ε

u(t)

a

t0 T

stable

instable

page 116

“MATh.en.JEANS” en 1995

Ce sont des techniques mathématiques assezsophistiquées en général qui permettent deprouver vraiment que l'algori thme va êtrec o n v e rgent et stable. Et en fait, si ce n'étai tpas le cas, s'il n'était pas convergent, ou passtable, ça n'aurait aucun intérêt. Vous voyezqu'on calculerai t des choses qui n'ont rien àvoir avec la physique du problème.

Vous voyez qu'il y a deux activités en analysenumérique : mettre au point des schémas etensuite, s'assurer que les schémas soientcohérents, qu'ils soient convergents et stables.

performance — temps & mémoire

La performance est liée à l'informatique algo-ri thmique ; elle dépend de la puissance del'ordinateur mais surtout de l'ingéniosité de laméthode. On cherche à faire des algorithmesqui minimisent :— le temps de calcul : nombre d'opérations(boucles) ;— la place mémoire : pour le stockage desdonnées et des résultats.

aperçu de quelques autres méthodesdimension ≥ 2 — domaine — exemple

Comment passer d'un schéma très simple àun schéma plus compliqué ? J'aurais voulu endire un peu plus, avec l'exemple d'une mem-brane élastique qui conduit à une EDP :

Suivant la géométrie du domaine, on obtientla méthode des différences finies (pour unegéométrie simple) ou la méthode des élé-ments finis (pour une géométrie plus compli-quée).

dif férences finies — système linéaire

On util ise des calculs de moyennes sur lespoints voisins :

conduit à résoudre des systèmes linéaires …

éléments finis

Je voulais vous parler des autres méthodesd'approximation : d'éléments finis, de géomé-tries plus compl iquées. Je ne donne doncjuste que l'idée en général. Pour un problèmeoù plusieurs variables interviennent, le petitdécoupage d'un intervalle en tranches ne suf-fit plus. On est obligé d'avoir tout un domaineen deux, en trois dimensions, et de le décou-per de façon plus compliquée. On peut fairepar exemple des découpages en triangles.

Pour une aile d'avion autour de laquelle onveut calculer l'écoulement fluide, on découpeen triangles ; on approche la solution parcertains types de fonctions sur chaque tri -angle ; et par des techniques mathématiquesassez compliquées, on essaie de prouver queça se rapproche de la solution. Avec une géo-

x

y

u(x, y)

f(x, y)

0

1

1

∂2u

∂x2 +

∂2u

∂y2 = – K f (x, y)

u = 0 aux bords

i+1i

i–1

j+1jj–1

uj +1i + uj–1

i – 2 uji

h2 +

uji+1 + uj

i –1 – 2 uji

h2 = Fj

i

page 117

“MATh.en.JEANS” en 1995

métrie plus compl iquée, par exemple unepièce mécanique, vous êtes obl igés de fairedes choses mixtes, il y a des rectangles, destriangles, un peu dans tous les sens.Et le findu fin :

Là on a un mélange compliqué de géométriescompliquées : des plaques, des arrondis, desformes très variables.

ordres de grandeur

Ce dont je voudrais vous parler, c'est de cesfameux ordres de grandeur.

Tous les schémas numériques reviennent àeffectuer un certain nombre de boucles sur uno r d i n a t e u r. On systématise l 'opération, on aquelque chose de récurrent : si on sait faire àl'étape k, on sait faire à l'étape k+1, et ça setraduit par des boucles. L'ordinateur est trèsrapide, lui, mais malgré tout, il met un temps

non nul pour faire une opération. Si danschaque boucle, i l y a un certai n nombred'opérations à faire, il faut évaluer sur l'en-semble du programme quel est le temps totalque l'ordinateur va mettre.

Actuel lement, on a des ordinateurs qui fontune opération, une multiplication — les opé-rations qu'on est amené à faire dans le sché-ma d'Euler — en un temps très faible. Çadépend un peu des machines : les machinesles plus puissantes font une opération en 10–9

seconde, un milliardième de seconde. Ça c'estpour un Cray ; en une seconde, il peut faireun milliard de multiplications. Ça a l'air énor-me, mais on va voir que ce n'est pas si énor-me que ça. Sur une machine moyenne, vousfaites un million d'opérations à la seconde : ilfaut un millionnième de seconde pour faire lamultiplication.

complexité

On a donc l'impression qu'on peut calculerdes choses extravagantes. Mais les problèmesqu'on traite ont beaucoup de paramètres. S ivous voulez une bonne précision, vous êtesobligé de découper l'interval le ou la surfaceen beaucoup de points. Et le nombre depoints par lesquels on découpe, dans l'indus-trie, c'est couramment dix mi lle voire centmi lle points. Dix mi lle points, c'est un bonordre de grandeur. Si vous voulez calculerquelque chose de précis sur une aile d'avion,une coque, il faut dix mille points.

Dans les méthodes modernes, les opérationsqu'on va demander à l'ordinateur, ce ne sontpas simplement des récurrences (où on calcu-le des choses les unes après les autres), cesont souvent des résolutions de systèmesl inéaires. Vous connaissez certainement lesystème l inéaire le plus simple qui soit, lesystème linéaire à deux équations et deuxinconnues. Vous avez deux équations, et lasolution est donnée en ajoutant les deuxl ignes et ensuite en les retranchant ; onobtient x1 et x2 en fonction des données dusecond membre.

page 118

“MATh.en.JEANS” en 1995

Pour les méthodes sophistiquées, une foisqu'on a transformé le problème, le problèmedevient équivalent à résoudre un systèmelinéaire qui n'a plus deux équations et deuxinconnues, mais autant d'équations et autantd'inconnues qu'i l y a de points dans votremai llage. Autrement di t n. Donc la formegénérale, ça va être une certaine combinaisonde x1, x2, x3, … , xn égale quelque chose, nfois.

On a n combinaisons des inconnues égales àn valeurs, et il faut calculer x1, x2, … , xn enfonction de ces valeurs. Pour ça, on a desméthodes à notre disposition ; il y en a unedont vous avez certainement entendu parler,le pivot de Gauss, qui est une méthode déjàintéressante.

Avec le pivot de Gauss, s'il y a n points, doncn équations, n inconnues, i l va vous fal loirenviron n3 opérations pour résoudre le systè-me linéaire ; quand on analyse le programme,on s'aperçoit qu'il faut environ n3 opérations.Mais vous avez d'autres algorithmes, pourdifférents problèmes, qui tournent en n2 opé-rations. C'est déjà mieux. n4 c'est très mau-vais, on ne peut pas en faire grand chose, n3

c'est très moyen ; plus la puissance de n e s timportante, plus le nombre de multiplicationscorrespondant est important.

Dans ce tableau, je vous ai mis en horizontalela tail le du problème, le nombre de pointsdans votre maillage, et je vous ai mis en ver-ticale, ce qu'on appelle la complexité du pro-gramme : le nombre de multiplications qu'ilfaut pour arriver au résultat, pour résoudre lesystème linéaire, par exemple.

La méthode de Gauss, j'ai di t que c'était enn3. I l peut y avoir des méthodes en n2 ( p a spour résoudre le système, mais d'une manièregénérale) ou en n4 — ça c'est vraiment trèsmauvais. Vous pouvez facilement faire descalculs d'ordre de grandeur pour voir com-bien de multiplications ça représente pourl'ordinateur, en fonction de la taille du problè-m e .Et comme vous savez qu'une machinemoyennefait environ un million d'opérationsà la seconde, vous pouvez facilement faire cegenre de calcul.

Vous voyez ainsi que s'il y a cent points avecune méthode en n2, il faut moins d'une secon-de, j usqu'à mi l le poi nts c'est toujours del'ordre d'une seconde — c'est très satisfaisant.Si maintenant vous avez dix mil le points,avec n2, deux minutes : ça va. S'il y a centmille points, trois heures.

Trois heures, ça va encore, mais vous voyezque rapidement, ça grimpe.

Maintenant, vous prenez le pivot de Gauss,par exemple, vous voulez inverser un systè-me linéaire. Jusqu'à cent équations, ça faitmoins d'une seconde. Mais si vous arrivez àmille équations, ça prend vingt minutes, dixmi lle équations, dix jours, cent mille équa-tions, trente ans.

Imaginez la machine qui tourne pendant tren-te ans pour calculer une aile d'avion … il nerisque pas de voler !

x1 + x2 = b1x1 – x2 = b2

(1) + (2) → x1 = b1 + b22

(1) – (2) → x2 = b1 – b2

2

x1 + … + xn = b1…

x1 + … + xn = bn

C(n)

n2

n3

n4

10

102

< 1 s

103

104

< 1 s

< 1 s

102

104

106

108

1 s

2 mn

103

106

1 s

109

1012

20 mn

10 j

104

108

2 mn

1012

1016

10 j

300 ans

105

1010

3 h

1015

1020

30 ans

3 Ma

n

premières lignes = nombre d'opérationssecondes lignes = temps de calcul

page 119

“MATh.en.JEANS” en 1995

En principe, on ne fera jamais tourner unalgorithme en n4, parce que c'est rédhibitoire.Pour mi l le équations, on serai t déjà à dixjours ; pour dix mille, trois cents ans ; et pourcent mille, trois millions d'années.

calcul parallèle

Ces chi ffres un peu amusants sont là pourvous faire senti r que la notion d'ordre degrandeur dans un schéma numérique estquelque chose d'essentiel.

Et même si maintenant on a des machinesdites parallèles, même si on fait tourner plu-sieurs processeurs, plusieurs ordinateurs enmême temps, pour diminuer les temps de cal-culs, on n'aura jamais que quelques dizainesou quelques centaines de processeurs, et çane rattrappera jamais le retard que vous pou-vez accumuler si vous ne disposez que d'uneméthode en n4 par rapport à une méthode enn3.

D'où l 'importance d'avoir des méthodesnumériques et des algorithmes les plus astu-cieux et les plus efficaces possibles.

Voilà, je vous remercie.

[applaudissements]

[NDLR : vu dans la revue du Palais de ladécouverte du mois de février 1996, n° 235,pages 27-41, l'article « introduction aux expé-riences numériques » d'Emmanuel Dormy,moniteur au Palais de la découverte ; outrel'article destiné au grand public, on trouveraen couverture une illustration en couleurs, surun test de col lision et sa simulation numé-rique.]

page 120

“MATh.en.JEANS” en 1995