analyse numerique smp4

download analyse numerique smp4

If you can't read please download the document

Transcript of analyse numerique smp4

  • 1. SCIENCES SUPExercices & Problmes Licence coles dingnieurs ANALYSE NUMRIQUE AVEC MATLABRappels de coursMthodesExercices et problmesavec corrigs dtaillsJean-Louis Merrien

2. Table des matires Introduction 1 Chapitre 1Petits rappels sur les commandes Matlab . . . . . . . . . . . . . . . . . . . . . . . .31.1Premires commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31.2Matrices, vecteurs, tableaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41.3Quelques exemples lmentaires de graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Chapitre 2Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Rappel de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7noncs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.1Premiers calculs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2Valeurs propres et puissances, un exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92.3Mthode de la puissance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Du mal dmarrer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11Corrigs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Dunod La photocopie non autorise est un dlit Chapitre 3Matrices, normes et conditionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Rappel de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17nonces des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183.1Premiers calculs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183.2Conditionnement et erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.3Conditionnement et valeurs propres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193.4Conditionnement et dterminant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203.5Norme 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.6Approximation polynmial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 3. ivTable des matires Du mal dmarrer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Corrigs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24Chapitre 4Interpolation polynmiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 Rappel de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 noncs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.1Changement de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.2Interpolation de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 4.3Drivation approche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4Splines cubiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Du mal dmarrer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Corrigs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41Chapitre 5Valeurs approches dintgrales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 Rappel de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 noncs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.1Premiers calculs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.2Mthode des trapzes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.3Extrapolation (Mthode de Romberg) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.4quation intgrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Du mal dmarrer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Corrigs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64Chapitre 6Moindres carrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71 Rappel de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 noncs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.1Mise en quation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.2Droite et parabole de rgression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.3Signal priodique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73 6.4Mthode du ltre de Savitsky-Golay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4. Table des matiresv 6.5quation diffrentielle et moindres carrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79 Du mal dmarrer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 Corrigs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Chapitre 7 Courbes de Bzier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 noncs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 7.1Algorithme de de Casteljau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 7.2Polynmes de Bernstein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91 7.3Raccords entre des courbes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92 7.4Contraintes de formes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.5Dtermination du polygone de contrle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Du mal dmarrer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95 Corrigs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Chapitre 8 quations diffrentielles, mthodes un pas. . . . . . . . . . . . . . . . . . . .107 Rappel de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 noncs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 8.1Conditions initiales et pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109 8.2quation linaire du second ordre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110 8.3Erreur dans la mthode de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 8.4Systme diffrentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 8.5Mthode de tir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Dunod La photocopie non autorise est un dlit Du mal dmarrer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Corrigs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119 Chapitre 9 Mthodes multipas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 noncs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 9.1Conditions initiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 9.2Intgration numrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128 9.3Une mthode multipas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 9.4Programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131 5. vi Table des matiresDu mal dmarrer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134Corrigs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134Chapitre 10 Diffrences nies en dimension 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143Rappel de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143noncs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14410.1 Flexion dune poutre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14410.2 Oscillations dun pendule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14510.3 Schma de Numerov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15010.4 quation de convection-diffusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Du mal dmarrer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160Corrigs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161Chapitre 11 Problmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173noncs des problmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17311.1 Diffrences nies en dimension 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17311.2 quation de la chaleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17911.3 lments nis lmentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185Corrigs des problmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189Bibliographie 205Index 207Index des mots cls Matlab209 6. Introduction Cet ouvrage sadresse aux tudiants en licence de mathmatique applique ou en formation dingnieur. Son objectif est de donner au lecteur un outil lui permettant de travailler de manire autonome laide de questions dtailles et progressives, et dune construction pas pas des programmes. Ce choix de faire de la thorie avant de commencer la programmation est indispensable pour apprhender les notions danalyse numrique mais aussi pour amliorer ses capacits de programmeur ; la programmation demande un peu dme... Cette prparation ne dispense pas dune rexion sur la manire de programmer une mthode. cette n, les exercices en Matlab proposent une programmation sous forme de poupes russes. chaque question, le programme prcdent est amlior et complt. Les rsultats intermdiaires sont donns pour valider cette programmation par morceaux. En n de chapitre, les solutions compltes et les programmes sont systmatiquement donns. Naturellement, un livre de cours danalyse numrique est utile en complment de cet ouvrage et la bibliographie en propose quelques-uns. Quatres rubriques sont destines amliorer et faciliter la recherche des exercices ainsi que leur comprhension : une rubrique Rappel de cours ; une rubrique Du mal dmarrer ? donne des pistes pour commencer un exercice ; une rubrique Commentaire indique par ; une rubrique Ce quil faut retenir de cet exercice . En n de volume, deux index permettent dobtenir rapidement de linformation : un index Dunod La photocopie non autorise est un dlit gnral et un index des commandes Matlab. Pour ce dernier, chaque mot cl a au plus trois rfrences, mme si la commande est utilise beaucoup plus souvent. Les premiers chapitres peuvent tre considrs comme une initiation. Le premier chapitre rappelle les commandes utiles de Matlab pour grer des tableaux et les commandes lmentaires. Il sagit donc de savoir utiliser au mieux les tableaux et de sinitier aux premires commandes du graphisme. Ces commandes ncessaires sont insufsantes pour progresser dans la programmation et il ne faut pas hsiter consulter frquemment laide en ligne de Matlab. Dans les deuxime et troisime chapitres est aborde la notion centrale de lanalyse numrique : les matrices. En effet, beaucoup de mthodes numriques conduisent la rsolution dun systme linaire. Les mthodes de rsolution de systme linaire ne sont pas dtailles ici. Nanmoins les quelques exercices proposs peuvent servir de base. Plutt que de multiplier ces exercices dans le 7. 2 Introductionchapitre, certains ont t placs dans dautres chapitres ; lindex permet de les retrouver. Ensuite,on a choisi de privilgier la notion de conditionnement car les rsolutions de systmes linairespeuvent conduire de grosses erreurs numriques. Les exercices proposs permettent de constaterque le conditionnement est une notion originale qui na rien voir avec les notions de dterminantou de valeur propre.Le chapitre 4 est consacr linterpolation ou comment faire passer une courbe par des donnesmesures. La premire rponse est donne par linterpolant de Lagrange. Mais le phnomne deRunge montre quen plus de passer par les points, le cahier des charges peut aussi imposer uneapproximation convenable pour les autres points (lorsquon part dune fonction chantillonnepar exemple). Ce chapitre propose donc une tude des splines cubiques qui rpond mieux cettequestion.Dans le chapitre 5, une tude derreur est propose. Il sagit dune notion essentielle en analysenumrique o, traditionnellement, la premire tape est de montrer lexistence dune solutionunique un problme sans forcment savoir la calculer, puis, la seconde de construire un problmeapproch dont la solution est cette fois-ci calculable ; pour nir on majore lerreur entre lessolutions exacte et approche. Dans certains cas particuliers, les deux solutions peuvent trecalcules. Lerreur est connue exactement ; on peut alors mesurer si la majoration est optimale.Matlab permet ainsi destimer lordre dune mthode.Dans le chapitre 6, nous rpondons la question : comment approcher des donnes mesurespar une courbe ? La notion est diffrente de celle de linterpolation et on se gardera donc de lesconfondre. Comme les mesures ne sont pas toujours linaires, on verra quau del de la rgressionlinaire, diffrentes bases peuvent tre utilises.Sajoute un chapitre, moins classique dans les cours danalyse numrique, sur les courbesde Bzier et les polynmes de Bernstein, introduction au dessin et la conception assists parordinateur (DAO, CAO). Le cours y est propos sous forme dexercices.Dans la suite, dautres outils traditionnels de lanalyse numrique sont abords : mthodes pourles quations diffrentielles ou mthodes lmentaires pour les quations aux drives partielles.Encore une fois, la prsentation est loin dtre exhaustive. Au contraire, elle se propose de mettreen avant quelques problmes thoriques ou numriques.Enn, dans le dernier chapitre, on trouvera des problmes qui combinent souvent plusieurs destechniques proposes prcdemment.La plupart de ces exercices ont t tests par les tudiants de lInsa de Rennes. La majorit estmme extraite des sujets dexamens quon peut raliser en deux heures avec un peu dentranement.Je remercie mes collgues de lINSA de Rennes qui ont particip llaboration ou lacorrection dune bonne partie de ces exercices. 8. Petits rappels 1sur les commandes MatlabLobjet de ce chapitre est de mettre ou remettre en mmoire quelques commandes Matlab. Enparticulier, on sintresse la gestion des tableaux et matrices et on rappelle quelques commandesgraphiques. Il est fortement conseill de ne pas ngliger ce chapitre qui donne des astuces etdes mthodes pour la suite mme sil peut paratre un peu fastidieux ou sapparentant de ladactylographie. Par ailleurs, un petit exemple permet de comparer le traitement vectoriel deMatlab un programmation laide de boucles.1.1 PREMIRES COMMANDESOn peut taper plusieurs commandes Matlab sur une mme ligne, en les sparant par une virgule.Quelques exemples lmentaires tester : Oprations numriques >> 5*6, 2^5>> 3+5*2^5 Comment dclarer des variables (signe =) >> x=2>> y=x^5>> y/x Les variables peuvent safcher sous diffrents formats >> a=sqrt (3)>> format long , b=sqrt (3)>> a-b>> format short>> who>> clear>> who 9. 4 1 Petits rappels sur les commandes MatlabLes variables apparaissent aussi dans la fentre Workspace. Cette fentre permet aussi en cas deproblme dans la programmation de connatre les dimensions dune variable tableau pour voir sielles sont conformes aux prvisions... Erreurs darrondiDcouvrez eps en tapant tapant (>> help eps). Taper : >> 1+eps -1>> 1+ eps /2-1 1+eps apparat comme le plus petit nombre machine strictement suprieur 1.1.2 MATRICES, VECTEURS, TABLEAUXEn fait Matlab est avant tout un outil matriciel ; il considre un nombre rel comme une matrice1x1. Tout est donc tableau, et Matlab est particulirement adapt aux calculs numriques dalgbrelinaire.Voici tout dabord diffrentes possibilits pour crer ou modier une matrice : >> a=[1 ,2 ,3;4 5 6]>> a(1 ,2), a(2 ,3)>> a(2 ,3) =10>> a>> rand (1 ,3), rand (2)>> zeros (3) , ones (3 ,2)>> eye (3) , eye (2 ,3)>> magic (3)>> b=[1 4 5], diag(b)>> whos Dcouvrez laide en ligne soit en utilisant help dans le menu soit en tapant par exemple helpmagic dans linterprteur. Un peu danglais est parfois utile... noter que lafchage peut tre supprim en terminant la commande par un point-virgule. Cestutile quand on travaille avec de grosses matrices. >> s1=zeros (20 ,25) ; s2=zeros (2 ,3) Loprateur : est trs utile pour construire un tableau ou en extraire une partie, une ligne ouune colonne. Testez : >> -3:3>> x= -3:.3:3>> x(2:12)>> x(9: -2:1)>> x =10:100; x (2) , x(10)>> x (40:5:60) 10. 1 Petits rappels sur les commandes Matlab 5 >> a=[1:6 ; 2:7 ; 4:9] >> a, a(1, :), a(:, 2) >> s=rand (20 ,5); s(6:7 , 2:4) Premier exemple de boucle >> for i =1:2000 for j =1:1000 t(i,j)=i/j ; end end Matlab effectue du calcul vectoriel et ce genre dopration peut tre effectu beaucoup plus rapidement. Pour comparer, tapez >> i =(1:2000) ; >> j =1./(1:1000); >> t2=i *j; Cest bien la mme matrice aux erreurs darrondis prs ; on le vrie avec (>> max(max((abs(t2-t))))). Calcul matriciel Aprs avoir entr les donnes, on peut essayer deffectuer les oprations ci-dessous : >> a=[1 2 3; 4 5 6; 7 8 10] , b=[1 1 1] >> 2*a , a/4 >> a+[b,b,b] >> a*b >> b*a >> b*a >> b*b , b*b >> a^2 Dunod La photocopie non autorise est un dlit mais aussi ces oprations tranges. >> a+1, b+2 >> a.^2, a.*a >> a.*b >> 1./a, 1./a.^2 Systmes linaires Un systme linaire ax=b peut tre rsolu en une seule petite commande ; dans lexemple choisi ici le systme admet une solution unique. >> x=ab 11. 61 Petits rappels sur les commandes MatlabVriez en calculant : (>> a*x , a*x-b)Ressayez avec un autre second membre :>> b=[1 1 0]>> x=ab , a*x , a*x-bOn peut aussi rsoudre le systme linaire ya=b par (>>y=b/a)Bien sr linstruction (>> y=b/a) donne un message derreur. Dautres fonctions matricielles>> det(a), rank(a), inv(a), eig(a)1.3 QUELQUES EXEMPLES LMENTAIRES DE GRAPHIQUES Fonctions dune variable relle>> x = -10: .001:10 ;>> plot( x.^2)>> figure>> plot( x, x.^2)>> plot( x, x.* sin(x) )>> plot(x.* cos(x),x.* sin(x) )>> comet(x.* cos(x),x.* sin(x) )>> title(cest joli ); Fonctions de deux variables relles>> [x,y]= meshgrid ([0:1:3] ,[1:0.5:2])>> [x y]= meshgrid ( -3:0.1:3 , -4:0.2:5);>> z = x.^2 + y.^2;>> mesh (x,y,z)>> surf(x,y,z)>> xlabel(x)>> contour(x,y,z) 12. Matrices2 RAPPEL DE COURSSoit A = (ai j ) une matrice de Rnn (ou Cnn ). A est inversible sil existe B Rnn (ou Cnn )telle que AB = B A = I , notation B = A1 .Le rang de A est le nombre de vecteurs colonnes (ou lignes) indpendants ; notation rg(A). Lerang est la dimension de la plus grande matrice carre de dterminant non nul extraite de A.Le noyau de A est lensemble des vecteurs X tels que AX = 0 ; notation Ker(A).Un rel ou un complexe l est une valeur propre de A et V Rn (ou Cn ), V non nul, unvecteur propre associ si AV = lV . Les valeurs propres de A sont les racines du polynmedet(A X I ) = 0. Lensemble des valeurs propres de A est le spectre de la matrice ; notations(A).A Cnn est inversible lune des conditions ncessaires et sufsantes suivantes : 0 nest pasvaleur propre ou det( A) = 0 ou Ker(A) = {0} ou rang(A) = n.A est diagonalisable dans C sil existe une matrice inversible P Cnn et une matrice diagonaleD dans Cnn telles que P 1 A P = D. Dans ce cas les valeurs propres de A sont sur la diagonalede D, les vecteurs propres sont les colonnes de P. A peut tre diagonalisable dans R si D et Psont dans Rnn . A est diagonalisable si et seulement si il existe une base {u 1 , . . . , u n } de vecteurspropres.Dcomposition de Jordan : Soit A Cnn , il existe une matrice P Cnninversible telle que l 1 0... 0 Jk1 (l1 ) 0 ... 0 .. . .. . 0 l1. . . 0 Jk2 (l2 ). . . . . P 1 A P = .. .. .. . ...., o Jk (l) = . .... 0 et les li .. .0 . .... .l 1 0 ...0 Jk (l )0 ... ...0 lsont les valeurs propres de A.A est symtrique si A T = A ou encore ai j = a ji pour tout i et j de 1, . . . , n.Si A Rnn est symtrique, alors ses valeurs propres sont relles, A est diagonalisable dansR et on peut choisir une base orthonorme de vecteurs propres ; dans ce cas P est unitaire i.e.P 1 = P T et P T A P = D. 13. 82 MatricesA Rnn est dnie positive si pour tout X Rn , X T AX 0 et X T AX = 0 X = 0. Si Aest dnie positive alors A est inversible.Mthode de Gauss : Si A Rnn (ou Cnn ) est inversible, il existe une matrice de permutation(inversible) P et 2 matrices L et U , L tant triangulaire infrieure diagonale unit, U tanttriangulaire suprieure, telles que P A = LU . Le systme AX = b se transforme en LU X = Pbet on rsout successivement LY = Pb puis U X = Y .Factorisation de Cholesky : Si A Rnn est symtrique et dnie positive, il existe une uniquematrice C triangulaire suprieure coefcients diagonaux strictement positifs telle que A = C T C.Sil est impossible de donner un rappel complet du cours sur les matrices en quelques lignes,on retrouvera aussi des proprits dans les chapitres suivants : changement de base, localisationdes valeurs propres dans les disques de Gershgorin, matrices tridiagonales, matrices diagonaledominante, mthodes itratives de rsolution des systmes (problme 11.1) etc.NONCS DES EXERCICESLe premier paragraphe ci-dessous est une liste de petits exercices qui, sans faire le tour de laquestion, permet de se (re)familiariser avec le calcul matriciel. Dans le deuxime, on utiliseMatlab pour diagonaliser une matrice et calculer ses puissances. Enn le dernier illustre lamthode de la puissance qui permet gnralement dapprocher la plus grande valeur propre enmodule. Il sagit nouveau de dcouvrir un certain nombre doutils de Matlab.2.1 Premiers calculs1. Inversion 1 20... 0 . 0 12 0 .. Soit A = . . . . . ... ... . 0 R .nn . . .0 1 20 ... ... 0 1 1 2 4 . . . (2) j1 . . . (2)n10 1 2 4 .... . . (2)n2 ... .. .. ... ...... Montrer que A1 .= . 01 (2) ji . . . (2)ni ... .. .. . .. ...012 0...00 1 14. noncs des exercices9 2. Matrice triangulaire inversible Si A Rnn est inversible et triangulaire suprieure, montrer que A1 est triangulaire suprieure. Prciser la diagonale. 3. Inverse dune matrice et valeurs propres Montrer que si A Rnn est inversible, les valeurs propres de A1 sont les inverses des valeurs propres de A. 4.Dcomposition de Cholesky4 0 2 0 0 4 0 2 Montrer que la matrice A = 2 0 5 0 est dnie positive. Dterminer la dcomposition de0 2 0 5 Cholesky. Vrier avec Matlab. Tester aussi la dcomposition de Schur avec Matlab. 5. Matrice dnie positive et valeurs propres Montrer que si A Rnn est symtrique et dnie positive, ses valeurs propres sont strictement positives. 6. Perturbation du second membre dun systme1 00 0 Soient A =et DA = o = 1010 ; DA est une perturbation de A. Si1 2 1 b= , on dnit X et X + DX par AX = b et (A + DA)(X + DX ) = b. Calculer X et montrer 10 que DX.1Des dtails sur ces perturbations sont donns au chapitre suivant. 2.2 Valeurs propres et puissances, un exemple Dunod La photocopie non autorise est un dlit 0 1 3 4 4 Soit la matrice A = 3 0 1 . laide de Matlab, 4 4 1 3 4 4 0 1. Dterminer les valeurs propres et les vecteurs propres de A. Les noms anglais sont eigenvalues et eigenvectors... et on peut consulter laide en ligne. 2. Construire une matrice de passage qui rend A diagonale. 3. Calculer linverse de la matrice de passage. 4. Vrier la diagonalisation en effectuant des produits matriciels. 5. En dduire limn An . 6. Le vrier en calculant A100 directement. 15. 102 Matrices2.3 Mthode de la puissanceRappel : Nous supposons que A Rnn est diagonalisable dans R ou C et que ses valeurspropres vrient |l1 | > |l2 | ... |ln |. noter que l1 R ; sinon l1 serait aussi valeur n propre avec |l1 | = |l1 |. Nous choisissons la norme 2 sur Rn ou Cn note . i.e X =|xi |2 . i=1Soit u 1 , . . . , u n une base de vecteurs propres. Nous partons dun vecteur x0 qui ne soit pas dans lesous-espace engendr par u 2 , . . . , u n . laide de lalgorithme ci-dessous, nous construisons lessuites (mi ), (xi ), (qi ) : x0 q0 = x0Pouri = 1, 2, . . . , xi = Aqi1 , xi qi = , xi mi = qiT AqiAlors la suite (mi ) converge vers l1 . 1. Partant dune matrice alatoire A de dimension 10 et dun vecteur x 0 alatoire, programmerlalgorithme. Prvoir maxiter tapes. Enregistrer le programme sous puiss1.m. Test maxiter =20. 2. Ajouter ce programme le calcul de la valeur propre de plus grand module par Matlab laide des fonctions eig, abs, max. Enregistrer le programme sous puiss2.m. Mme donnestest.3.Ajouter un graphe reprsentant m(i) en fonction de i. Enregistrer le programme souspuiss3.m. Mme donnes test. >> puiss3lambda1 =4.7924 (Cf. gure page suivante.) Du fait du tirage alatoire, la valeur propre de module maximum et la gure seront diffrentes. 1 12 1 1 24. Remplacer la matrice alatoire par A1 = 0 11 puis A2 = 0 1 1 avec0 0 0.99 0 0 0.1maxiter=100. 16. Du mal dmarrer ? 114.7984.7964.7944.792 4.794.7884.7860510 1520 iterationPour A1 , la suite (mi ) semble encore converger vers l1 , ce nest pas le cas pour A2 . Leshypothses ne sont pas vries dans les deux cas ; le premier semble montrer que lesconditions de convergence de la suite (mi ) sont seulement sufsantes.DU MAL DMARRER ? 2.1 Premiers calculs 1. On peut commencer par une matrice 4 4 et calculer le produit des deux matrices. 2. On peut commencer par une matrice 2 2 puis procder par rcurrence. Dunod La photocopie non autorise est un dlit 3. crire AX = lX . x1x2 4. Calculer x1 x2 x3 x4A . Pour la dcomposition, crire A = C T C et procderx3 x4 par ligne de C ou par colonne. 2.2 Valeurs propres et puissances 2. laide de lditeur, on peut crer le chier mat1.m qui regroupe les commandes. Il suft ensuite de le lancer en tapant >> mat1 dans linterprteur. 17. 122 Matrices CORRIGS DES EXERCICES2.1 Premiers calculs1. Inversion 1 2 4 . . . (2) j1 . . . (2)n1 12 0 ... 0 0 1 2 4... . . . (2)n2 . . . .. .. .. .. . 01 20 . .... . . .. .. .. . . . . . . 0 . jini = I . .01 (2). . . (2) . .. .... . .. 01 2 .... . 0 ... ... 0 1 0 12 0...0 0 12. Matrice triangulaire inversibleSi A = (ai, j ) est inversible et triangulaire suprieure, ses coefcients diagonaux sont non nuls. n 1Notons A= B = (bi j ). Puisque B A = I , nous avons bi,k ak, j = di j . Remarquons quek=1puisque la matrice est triangulaire suprieure, ak, j = 0 si k > j si bien quejbi,k ak, j = di j .(2.1)k=1Nous allons montrer par rcurrence sur j que bi j = 0 si i > j et b j j = 1/a j j .Pour j = 1, (2.1) devient bi,1 a1,1 = di1 qui permet dobtenir bi,1 = 0 si i = 1 et b1,1 = 1/a1,1 .Supposons que pour j donn infrieur ou gal n 1 et pour tout kj, bi,k = 0 ds que i > k.Pour i > j + 1, bi,k = 0 pour k = 1, . . . , j, si bien que (2.1) bi, j+1 a j+1, j+1 = di j+1 . Commea j+1, j+1 = 0, on en dduit que bi, j+1 = 0 si i > j + 1 et b j+1, j+1 = 1/a j+1, j+1 .Ce qui achve la dmonstration.3.Inverse dune matrice et valeurs propresSi l est une valeur propre de A de vecteur propre associ V , alors AV = lV . Si A est inversible,on multiplie cette quation gauche par A1 , il vient V = A1 lV = lA1 V . Puisque l est nonnul, on divise par l et on obtient que V est vecteur propre de A1 pour la valeur propre 1/l. 18. Corrigs des exercices 13 4. Dcomposition de Cholesky Soit X = (x1 , x2 , x3 , x4 )T , alors 4 0 2 0 x1 0 4 0 2 x 2 X T AX=x1 x2 x3 x4 2 0 5 0 x 3 0 2 0 5 x4 4x1 + 2x34x2 + 2x4 =x1 x2 x3 x4 2x1 + 5x3 2x2 + 5x4 22 22 = 4x1 + 4x1 x3 + 5x3 + 4x2 + 4x2 x4 + 5x4 = (2x1 + x3 )2 + 4x3 + (2x2 + x4 )2 + 4x422 Donc X T AX0 et si X T AX = 0, alors 2x1 + x3 = 0, x3 = 0, 2x2 + x4 = 0, x4 = 0, systme dont lunique solution est X = 0. La matrice est dnie positive.c11 c12 c13 c14 0 c22 c23 c24 Dterminons C telle que C = 0 et C T C = A.0 c33 c34 000 c44 2 c11c12 c11 Remarquons que la premire colonne de C T C est c13 c11 . Sachant que c11 > 0, on en dduitc14 c11 c11 = 2, c12 = 0, c13 = 1, c14 = 0. La premire ligne de C est dtermine. laide de ces informations, la deuxime colonne de C T C est Dunod La photocopie non autorise est un dlit 20 0 02 + c 2 422 1 0 + c23 c22 = 0 .0 0 + c24 c22 2 Puisque c22 > 0, on en dduit c22 = 2, c23 = 0, c24 = 1. On remarque aussi quil sufsait de sintresser aux trois dernires lignes C T C. 2 1 + c33 5 Dans la troisime colonne, les deux dernires lignes vrient = . Puisque c33 > 0, c34 c33 0 on en dduit c33 = 2, c34 = 0.2 Enn la dernire ligne multiplie par la dernire colonne donne 1 + c44 = 5, soit c44 = 2. 19. 14 2 Matrices >> A=[4 0 2 0;0 4 0 2;2 0 5 0; 0 2 0 5];>> T=chol(A)T =2 0 100 2 010 0 200 0 02>> [U,S] = schur(A)U =-0.7882 0 0-0.615400.78820.61540 0.6154 0 0-0.78820 -0.61540.78820S =2.4384 00 0 02.43840 0 0 0 6.5616 0 0 006.5616 5. Matrice dnie positive et valeurs propresSi A Rnn est symtrique, ses valeurs propres sont relles. Soit l une valeur propre et X Rnun vecteur propre associ. On a donc AX = lX soit en multipliant par X T , X T AX = lX T X . Sin TA est dnie positive, alors puisque X = 0, X AX > 0. Par ailleurs X X =T xi2 > 0, donc i=1l > 0.6. Perturbation du second membre dun systme1 01 1 1 01SiX= , alors X = et si(X + DX ) = , alors X + DX =1 1 0 1 + 2 110, soit DX .1/(1 + )1 Une petite perturbation de la matrice peut entraner une perturbation importante de la solution du systme.2.2 Valeurs propres et puissances, un exempleLe programme ci-dessous calcule les valeurs propres de A qui sont donc l1 = 1, l2 = 0.5000 + 0.4330i, l3 = l2 aux erreurs darrondi prs. Donc A est diagonalisable et il existe P C33telle que A = P 1 D P. On en dduit que An = P D n P 1 . Puisque pour i = 2, 3, on a |li | < 1, 1 0 01 0 0lim D n = 0 0 0 et lim An = P 0 0 0 P 1 .n+ n+0 0 00 0 0 20. Corrigs des exercices 15 mat1.m A=[0 1/4 3/4;3/4 0 1/4;1/4 3/4 0] [P,D] = eig(A) W=inv(P); W*A*P limAn=P*[1 0 0;0 0 0;0 0 0]*W A^100 2.3 Mthode de la puissance puiss3.m maxiter =20; tol =1e -5; A=rand (10); %A=[1 1 -2;0 1 -1;0 0 -0.99]; %A=[1 1 -2;0 -1 -1;0 0 0.1]; X=rand(length(A) ,1); Q=X/norm(X); for i=1: maxiterX=A*Q;Q=X/ norm(X);mu(i)=Q*A*Q; end; valp=eig(A); [lambda1 ,i]= max(abs(valp)); lambda1= valp(i) plot (1: maxiter ,mu) xlabel(iteration ,FontSize ,16) ylabel(mu,FontSize ,16) Ce quil faut retenir de cet exerciceOn notera la boucle sans test de convergence, ce qui nest pas satisfaisant. dfaut dun vrai Dunod La photocopie non autorise est un dlittest de convergence, on peut contrler la diffrence entre deux itrs avec la boucle : tol = 1 e -10;j=1;while (erreur >tol)&(j maxiter) disp(methode non convergente ); end; 21. Matrices, normes3et conditionnement RAPPEL DE COURSNous vous proposons dtudier les normes matricielles et le conditionnement qui permet demajorer les variations de la solution dun systme linaire quand on modie le second membreou la matrice. Rappelons que si est une norme sur Rn (ou Cn ) alors la norme matricielle AXsubordonne est dnie pour A Rnn (ou Cnn ) par A = sup X =0 . Par linarit, elleXconcide avec sup AX . Alors AB A B pour A matrice et B vecteur ou matrice. X =1Pour les normes usuelles de Rn (ou Cn ), si X = (x1 , . . . , xn )T et A = (ai j ) Rnn (ou Cnn ), onmontre (excellents exercices) que nn Si X1 = |xi | alors A 1 = max|ai j |, j=1,...,ni=1i=1 n Si X = max |xi | alors A = max|ai j |,i=1,...,n i=1,...,nj=1n1/21/2 Si X2 =|xi | 2 alors A2= r(A A) avec A = A T , o r(B) dsigne le i=1rayon spectral de B, cest--dire la plus grande valeur propre en module.Enn, pour une norme donne, le conditionnement dune matrice A Rnn (ou Cnn ) inversibleest dni par cond(A) = A A1 .Si A Rnn (ou Cnn ) est inversible, si b et db sont deux vecteurs de Rn (ou Cn ) et que AX = b,A(X + dX ) = b + db, alorsdXdbcond(A) .(3.1) X bDmonstration dans lexercice 3.2. 22. 183 Matrices, normes et conditionnementSi A, A + DA Rnn (ou Cnn ) sont inversibles, si b est un vecteur de Rn (ou Cn ) et que AX = b,(A + dA)(X + DX ) = b, alorsDXDAcond(A).(3.2)X + DX A NONCES DES EXERCICESDans ce chapitre, aprs quelques calculs lmentaires, nous avons volontairement ml les exer-cices thoriques et les utilisations de Matlab. Il sagit parfois de vrier numriquement un rsultatdj dmontr ou encore de calculer numriquement avant de dmontrer, ce qui est souvent ladmarche en analyse numrique. Le dernier exercice est plus classique dans sa dmarche ; unemthode numrique est rapidement dcrite puis programme.Le premier exercice calcule une norme de matrice, puis compare norme et rayon spectral. Lesecond relie conditionnement et erreur et les deux suivants montrent quil ny a pas de lien directentre conditionnement et valeurs propres ou dterminant. Le quatrime permet de revenir sur uneingalit obtenue dans le premier exercice qui peut systmatiquement se transformer en galit.Le dernier exercice prend un peu davance sur les techniques de moindres carrs mais permet,sans doute, dillustrer de manire pertinente la question du conditionnement.3.1 Premiers calculs1. Calcul de norme 1 20 ... 0 . 0 1 20 .. . ... .. Soit A = . . . . .. 0 R . Dterminer A 1 , A nn 1 1 et cond1 (A). . ..01 20 ... ... 0 12. Norme et rayon spectralSoit . une norme sur Rn . Si A Rnn , montrer que r(A) Ao r(A) = max{|li | : li valeur propre de A}.3.2 Conditionnement et erreurOn choisit une norme sur Rn . Soient b et db 2 vecteurs de Rn avec b = 0 et A = (ai j ) Rnnune matrice inversible. Puisque A est inversible, soient X lunique solution de AX = b et X + dXla solution de A(X + dX ) = b + db.1. Montrer que bA X puis que dX A1 db . 23. nonces des exercices19 2. En dduire que :dXdb cond(A) . X b On majore ainsi lerreur relative sur la solution en fonction de lerreur relative sur le second membre.3. Le pire (cas dgalit) peut parfois arriver. Ainsi dans lexemple propos par R.S. Wilson et repris dans [18] 107 8 7 320, 01 7 5 6 5 A= , b = 23 , db = 0, 01 . 8 6 10 9 33 0, 0175 9 1031 0, 01 (a) laide de Matlab, rsoudre les systmes AX = b et AY = b + db. (b) valuer numriquement Y X / X , cond (A), Y X / X cond (A). db / b . (c) Mmes questions avec 2. 3.3 Conditionnement et valeurs propres 1 On dnit f (x0 , ..., xn ) = (x0 + x1 t + ... + xn t n )2 dt, xi R, i = 0, . . . , n. 0 1. Montrer que f (x0 , ..., xn ) = X T AX avec 1 Dunod La photocopie non autorise est un dlit X T = (x0 , ..., xn ) et A = (ai j )0i, j n o ai j = 1+i + j 2. En dduire que A est une matrice symtrique, dnie positive. 3. Montrer que si l est valeur propre de A alors l est relle et pour toute norme sur Rn+1 , 1 l A .(3.3)A1 4. Pour un n x, laide de Matlab (et sans boucle) construire A et calculer A1 . 5. Calculer numriquement A et A1 . 24. 203 Matrices, normes et conditionnement n =5 nA = 2.4500 ninvA = 1.1865e+007 6. Majorer les valeurs propres laide de (3.3) et calculer numriquement le conditionnementde A pour . conditionnement = 2.9070e+007 7. Avec n = 5, pour rsoudre AX = b, on connat b avec 5 chiffres signicatifs (cest--dire db 105 ). Avec combien de chiffres signicatifs est-on assur de connatre X (cest-b dX -dire)? X 3.4 Conditionnement et dterminantSoient E et U des matrices carres dordre n et f Rn dnis par 0 01 11 1 0 0 0 1 1 1 . . , U = . ... ..... , f = . .E = 0 1 0 . .. . . . .. .. .. . .. .. . 1 ... .. .... .. 0 01 0 0 0 11et 22 211 1 1 0 1 1 1 , I est la matrice identitA= . .. ..... ..... . .0 01 11. Vrier que A = U E + e1 f T o e1 est le premier vecteur de la base canonique.2. Montrer que A = (2I E) U . En dduire det(A).3. Calculer E 2 , E 3 ,..., E n .E 1 E E2E n14. Montrer que U 1 = I E T puis que (I ) =I+ + + ... + n1 .2242 25. nonces des exercices21 1 5. En dduire A1 et montrer que A1=1 . 2n 6. Montrer alors que cond (A) 2n. 3.5 Norme 2 1. laide de Matlab construire une matrice carre alatoire A de dimension 10. 2. Calculer S = A T A et dterminer les valeurs propres de S. (Montrer directement que les valeurs propres de S sont relles et positives ou nulles). Dterminer la plus grande valeur propre l 1 de S et la plus petite m. Comparer A 2 et l puis A1 2 et . Faire plusieurs tests.m On a ainsi vri numriquement le calcul de la norme matricielle 2. 3. partir de la matrice A prcdente ou dune autre matrice alatoire : (a) On construit b = AX o X = (1 . . . 1)T . (b) On construit un vecteur alatoire db et on dtermine dX tel que A(X + dX ) = b + db. db 2 dX2 db 2 (c) Comparer numriquement , et A 2 A12 .b 2 X2b 2 On a ainsi vri numriquement lingalit (3.1). 4. Le pire arrive..., cas dgalit. On reprend la matrice prcdente et S = A T A. La plus grande valeur propre de S tant l, soit U un vecteur propre associ. De mme le couple (m, V ) correspond la plus petite valeur propre et un vecteur propre associ. On dnit b = AU et db = AV , donc X = U et dX = V . Dunod La photocopie non autorise est un dlit dX 2db 2 Comparer et A 2 A1 2 ; on pourra utiliser les instructions [V,D] = eig(S)X 2 b 2 et [C,I] = max(...) qui prcise la position I du maximum. Tester sur plusieurs exemples. 5. Dmontrer dans ce cas lgalitdX 2 db 2 = cond(A). X 2b 2 3.6 Approximation polynmial Cet exercice pourrait tre plac dans le chapitre 6 ; on pourra dailleurs commencer par en tudier le premier exercice. Il sagit dune mthode de moindres carrs. 26. 223 Matrices, normes et conditionnement IntroductionSoit f une fonction continue sur [0, 1]. On cherche approcher f par une suite de polynmes dedegr n. Pour n donn, on minimise12 E( p) =f (t) p(t)t dt, p Rn [X ].0 nESi pn (x) =ai x i , le minimum est atteint lorsque= 0 pour i = 0 n ce qui donne leaii=0systme : Ma = bo1 1 M = (m i j )i=0,...,n, j=0,...,n , avec m i j =t i+ j+1/2 dt = ,0 i + j + 3/2 1i+1/2 b = (bi )i=0,...,n , avec bi =f (t)t dt, 0a = (a0 , a1 , ..., an )T , coefcients de pn . Programmation1. f est donne par un chier f1.m que vous construisez. Exemple f 1(x) = sin px. Calculerf1([1/4 -1]). >> f1 ([1/4 -1])ans =0.7071-0.0000 2.Construire la matrice M R(n+1)(n+1) ; attention les indices Matlab vont de 1 n + 1.Sauvegarde sous approx1.m. Test avec n = 4. >> approx1M =0.66670.4000 0.28570.22220.18180.40000.2857 0.22220.18180.15380.28570.2222 0.18180.15380.13330.22220.1818 0.15380.13330.11760.18180.1538 0.13330.11760.1053 3. Construire le second membre laide des chiers sndmemb.m et fonctj.m ci-dessous ;lappel se fait par b=sndmemb(f,n) o f est le nom du chier contenant la fonction. Ceschiers permettent de calculer une approximation de lintgrale laide de la fonction quadl.m.Test avec f=f1 et n = 4. 27. Du mal dmarrer ?23 function y= fonctj(x,nomf ,j); y= feval(nomf ,x).*x.^(j+1/2); function b= sndmemb(nomf ,n); for i=1:n+1 b(i)=quadl(fonctj ,0,1,[ ],[ ],nomf ,i -1); end; >> sndmemb(f1 ,4) ans = 0.43740.24160.15210.1041 0.0755 4.Une fois la solution a dtermine, le polynme se calcule laide de polyval (attention lordre des coefcients). Calculer a et tracer le graphe de f puis celui du polynme pn . Sauvegarde dans approx2.m. Test avec n = 4, f1. >> approx2 Coefficients du polynome a =0.00223.07650.5720 -7.29213.6428 5. Faire varier n. Changer la fonction. Que se passe-t-il quand n augmente (n 20) ? Exemples f 1(x) = sin px ; f 2(x) = sin 4px ; f 3(x) = |x1/2| ; n = 2, 3, 5, 10, 15, 20... Dunod La photocopie non autorise est un dlitDU MAL DMARRER? 3.1 Premiers calculs 1. noter que A1 est donne dans lexercice 2.1. 2. Si U vecteur propre, crire lU = AU et majorer la norme. 3.2 Conditionnement et erreur Utiliser la forme f (x0 , . . . , xn ) 0. 28. 243 Matrices, normes et conditionnement3.4 Conditionnement et dterminant1.Commencer par des matrices 4 4.2.Pour montrer N = M 1 , on peut montrer que M N = I3.5 Norme 25.On pourra commencer par montrer que b T b = lX T X en partant de S X = lX CORRIGS DES EXERCICES3.1 Premiers calculs 1 2 4 . . . (2) j1 . . . (2)n1 1 20 ... 00 1 2 4... . . . (2)n2 . . ... .. .... . 0120 . ... . . .1. A = . .... .. ..... 0 et A1 = . .01 (2) jini .. . . (2) . .... ... ..01 2 . ... . 0 ... ... 0 1 01 2 0... 001On a alors A1 = 3 et A1 1 = 1+2+4+. . .+2n1 = 2n 1 si bien que cond1 (A) = 3.(2n 1).2. Si l est une valeur propre de A de vecteur propre associ U , alors AU = lU .Donc lU = |l|. UA . U . Puisque U = 0, on a U > 0, do |l| A . Laproprit est vrie pour toute valeur propre donc en particulier pour la plus grande en module sibien que r(A) A .3.2 Conditionnement et erreurSachant que AX = b et A(X + dX ) = b + db, par diffrence, on obtient AdX = db dodX = A1 db. AX = b b A X , 1dX = A db dXA1 db .En multipliant les deux ingalits, il vient b dX A A1 X db . Sachantque b = 0 par hypothse et que X = 0 sinon on aurait b = 0, on dduit la majoration (3.1).Programme erreur.m. On notera la rsolution de systme qui se fait en une seule commande,ainsi que lappel aux fonctions norm et cond. A=[10 7 8 7;7 5 6 5; 8 6 10 9;7 5 9 10];b=[32 23 33 31] ;deltab =[0.01 -0.01 0.01 -0.01] ; 29. Corrigs des exercices25 X=A b; Y=A (b+ deltab); r1=norm(Y-X,inf); r2=r1/norm(X,inf); c=cond(A,inf); r3=r2 -c*norm(deltab ,inf)/norm(b,inf); On trouve r 3 = 2.1894 10013 , trs proche de 0. Lingalit (3.1) est donc quasi une galit. En modiant le programme (remplacer norm(.,inf) par norm(.,2)), on saperoit que pour la norme 2, lingalit reste stricte (r 3 = 0.1744). 3.3 Conditionnement et valeurs propres Notons que 1nnn n 1n ni j i+ j 1f (x0 , . . . , xn ) = ( xi t )( x j t )dt = xi x j tdt = xi x j. 00i + j +1 i=0 j=0 i=0 j=0i=0 j=0 Cette dernire expression scrit X T AX o X = (x0 , . . . , xn )T et A = (ai j )i, j=0,...,n avec ai j = 1. i + j +1 Sachant que ai j = a ji , A est symtrique. De plus par dnition de f , n T f (x0 , . . . , xn ) = X AXT 0 et si X AX = 0 alors xi t i = 0 (continuit et positivit de lai=0 fonction intgrale nulle). Si le polynme sannule sur [0, 1], on en dduit que ces coefcients sont nuls donc X = 0. Finalement A est dnie positive. Comme A est symtrique, ses valeurs propres sont relles. De plus elles sont strictement positives puisque A est dnie positive. Si l est une valeur propre de vecteur propre associ X = 0 i.e.AX 1 AX = lX alors= l. On en dduit l A . Par ailleurs X = A1 X et on obtient ainsiXl Dunod La photocopie non autorise est un dlit 1 1A1 do la double ingalit demande :l A . lA1 condvalp.m. On notera la construction de A en une seule commande. n=5 A =1./((0: n) *ones (1,n+1)+ones(n+1 ,1) *(0:n)+1); invA=A^( -1); nA=norm(A,inf) ninvA=norm(invA ,inf) conditionnement =cond(A,inf) Sachant que pour n = 5, le conditionnement est 2.9070 10+007 , la prcision relative garantie pour X est donc de 2.9 102 puisque celle de b est de lordre de 105 . En conclusion, mme avec des valeurs propres raisonnables , on peut avoir un trs mauvais conditionnement. 30. 263 Matrices, normes et conditionnement3.4 Conditionnement et dterminantsLes premires questions sont des calculs sur les matrices. En cas de difcult, on pourra commen-cer par des matrices 4 4 par exemple. Noter que det A = det(2I E) det U et que, commeles matrices sont triangulaires, ce dterminant vaut 2n .Pour montrer les rsultats suivants, on calcule U (I E T ) puisEE E2E n1(I ) (I + + + ... + n1 ). Dans ce calcul on valuera les puissances successives de E22 4 2et on notera en particulier que E n = 0 puisque la sous-diagonale de 1 descend dun cran chaquepuissance E k .Puisque A = 2(I E/2) U , on en dduit 11 E E2E n1A1 = U 1 (I E/2)1 = (I E T ) (I + + + ... + n1 ). 22 242Do 1/2 1 00 ... 0 1/41/2 1 0 . . . 0 .. . . 1 1/81/4 1/2 1. . A1 = . 2 . . ... ...... ... 0 n1 1/21/2n2 . . . . . . 1/2 11/2n1 1/2n2 . . . . . . 1/2 1Ceci nous permet de calculer A = 1 1/2n puis cond (A) = 2n.(1 2n ) 2n. On voitdonc que le dterminant et le conditionnement ne sont pas du mme ordre de grandeur.3.5 Norme 21. 2.Si S = A T A alors S T = A T (A T )T = A T A = S si bien que S est symtrique. Donc sesvaleurs propres sont relles. Soit l une valeur propre et X un vecteur propre associ. En multipliantS X = lX par X T gauche, il vient X T A T AX = lX T X soit (AX )T (AX ) = lX T X . Puis quenn TX = 0, X X =xi2T> 0. Par ailleurs (AX ) (AX ) = (AX )i2 0 et donc l0. i=0i=0 laide du programme ci-dessous, on vrie numriquement que A 2 = l o l est la plusgrande valeur propre de S = A T A et de mme pour A1 2 .valp.mA=rand (10);S=A*A;Lambda=eig(S)lmax=max( Lambda)lmin=min( Lambda)normA=norm(A ,2) 31. Corrigs des exercices 27 raclambda =sqrt(lmax) normAm1=norm(A^( -1) ,2) unsurracmu =1/ sqrt(lmin) 3.Le programme suivant permet de vrier numriquement lingalit (3.1). erreur.m A=rand (10); X=ones (10 ,1); b=A*X; deltab=rand (10 ,1); deltaX=A deltab; nb=norm(b ,2); ndeltab=norm(deltab ,2); nX=norm(X ,2); ndeltaX=norm(deltaX ,2); rb= ndeltab/nb rX= ndeltaX/nX cond(A ,2)*rb 4. Le programme ci dessous permet de dterminer un cas dgalit dans (3.1). Cette galit est obtenue aux erreurs machine prs, de lordre de 1015 . egalite.m A=rand (10); S=A*A; [P,D]= eig(S); tlambda=max(D) % tableau des valeurs propres [lambdamax ,imax ]= max( tlambda); % valeur propre max et position [lambdamin ,imin ]= min( tlambda); % valeur propre min et position U=P(:, imax); V=P(:, imin); b=A*U; deltab=A*V; Dunod La photocopie non autorise est un dlit X=U; deltaX=V; nb=norm(b ,2); ndeltab=norm(deltab ,2); nX=norm(X ,2); ndeltaX=norm(deltaX ,2); rb= ndeltab/nb rX= ndeltaX/nX cond(A ,2)*rb -rX Ce quil faut retenir de cet exerciceOn notera que pour la fonction max de Matlab, non seulement on trouve le maximum maisaussi la position de ce maximum. 32. 283 Matrices, normes et conditionnement5.Montrons ce cas dgalit. Rappelons que l = r(S)1/2 = A 2 et de mme1/ m = A1 2 . Nous avons alors A T AX = lX donc, en multipliant gauche par X T2 X T A T AX = (AX )T (AX ) = AX2 2 = lX T X = l X 2 . b 2Puisque AX = b, on en dduitl = . De mme sachant que A T AdX = mdX , onX 2 db 2obtientm=. En divisant la premire galit par la seconde, on dduit le rsultat voulu :dX 2dX 2l db 2 db 2 == cond(A). X 2 m b 2b 23.6 Approximation polynmialeapprox.mn=4;nomf=f1;M =1./((0: n) *ones (1,n+1)+ones(n+1 ,1) *(0:n)+3/2);b= sndmemb(nomf ,n);a=Mb; %coeff du polynomedisp(Coefficients du polynome )ax =[0:0.01:1];y=feval(nomf ,x);appr= polyval(a(length(a): -1:1) ,x);plot(x,y,x,appr ); Quand n augmente, lapproximation se dgrade, ce qui est thoriquement impossible. En fait, plus n augmente, plus la matrice M est mal conditionne ; dailleurs Matlab le signale. Dautre part, le second membre a t approch. Tout ceci explique les erreurssur les coefcients a et les graphes catastrophiques des polynmes dapproximation. Ce quil faut retenir de cet exercice Matlab a prcis dans linterprteur que les matrices taient mal conditionnes tout en pour- suivant les calculs. Quand la machine donne des commentaires, cest lutilisateur de savoir en tenir compte... 33. Interpolation polynmiale4 RAPPEL DE COURStant donns n + 1 couples de rels (xi , yi ), il sagit de trouver une fonction f telle que f(xi ) = yipour i = 0, . . . , n. f peut tre un polynme (Interpolation de Lagrange), un polynme trigonom-trique ou une fonction rgulire polynmiale par morceaux (spline). On dsigne par Pk lespacedes polynmes de degr infrieur ou gal k ainsi que lespace des fonctions polynmialescorrespondantes.Interpolation de Lagrange : Soient x0 < x2 < ... < xn , n + 1 rels distincts et n + 1 rels yi . Ilexiste un unique polynme p Pn tel que p(xi ) = yi pour i = 0, . . . , n.On suppose que yi = f (xi ) o f est une fonction dnie et de classe C n+1 sur un intervalle fermI = [a, b] contenant tous les xi . Soit x I . Alors il existe j appartenant au plus petit intervalleouvert contenant x et les xi tel que n1f (x) p(x) =(x x j ) f (n+1) (j) (n + 1)!j=0Ces rsultats ainsi que lexpression de p dans deux bases de polynmes sont montrs danslexercice 4.2.Interpolation dHermite : Soient x0 , ..., xk , k + 1 rels distincts dun intervalle [a, b] ; on sedonne k + 1 entier naturels a0 , . . . , ak et on pose n = k + a0 + . . . + ak . Si f est une fonctiondnie sur [a, b] admettant des drives dordre ai aux points xi , il existe un unique polynmep Pn tel que p ( j) (xi ) = f ( j) (xi ) pour i = 0, . . . , n et j = 0, . . . , a j . Si f C n+1 ([a, b]) etx [a, b], alors il existe j appartenant au plus petit intervalle ouvert contenant x et les xi tel que k1f (x) p(x) =Pn (x) f (n+1) (j), o Pn (x) =(x xi )ai +1 (n + 1)! i=0Splines cubiques de classe C 2 : Soient a = x0 < x2 < ... < xn = b, n + 1 rels distincts. Pourtout ensemble de n + 3 donnes y0 , y0 , ..., yn , yn , il existe une unique fonction S deP2 = f C 2 ([a, b]) : f[xi ,xi+1 ] P3 , 0 i n 1 vriant :3 S(xi ) = yi , 0 in, S (x0 ) = y0 , S (xn ) = yn 34. 304 Interpolation polynmiale Si yi = f (xi ) pour i = 0, . . . , n, et y0 = f (x0 ), yn = f (xn ) o f est une fonction de C 4 ([a, b]), 5h 4alors pour tout x de [a, b], |S(x) f (x)|max f (4) (t)o h = max(xi+1 xi ).t[a,b]384Matlab propose un certain nombre de mthodes pour raliser linterpolation de donnes. tantdonns deux tableaux x et y, abscisses et ordonnes, linstruction interp1 dtermine linterpolaux points du tableau x par plusieurs mthodes. Laide en ligne prcise les choix de method.On pourra aussi utiliser linstruction yy = spline(x,y,xx) base sur une spline cubique not aknot propose par [7] et dcrite dans lexercice 4.4. La fonction interp2 permet de raliser desinterpolations en dim 2. NONCS DES EXERCICESDans ce chapitre, aprs un exercice de changement de base qui permet de retrouver les matrices,nous tudions linterpolation de Lagrange et deux bases de polynmes sont proposes : Lagrangeet Newton. Ensuite, nous tudions lerreur dapproximation. Le phnomne de Runge permet devisualiser la diffrence entre interpolation (on impose de passer par un certain nombre de points)et approximation (on cherche une approche globale). Dans la partie suivante, nous proposons unemthode numrique pour une drivation approche. Nous tudions ensuite la construction dessplines cubiques avec une tude numrique de lerreur.4.1 Changement de baseNous tudions trois bases de P3 . Sur [0, 1], nous dnissons B0 (t) = (1 t)3 , B1 (t) = 3t(1 t)2 , 3 3B2 (t) = 3t 2 (1 t), B3 (t) = t 3 . 331. Montrer que {Bi3 }i=0,1,2,3 forme une base de P3 . Cest la base de Bernstein de degr 3.2.Montrer quon peut dnir quatre fonctions polynmiale Hi3 (t) interpolant les donnesdHermite au bords :333 3 H0 (0) = 1, (H0 ) (0) = 0, (H0 ) (1) = 0, H0 (1) = 0,333 3 H1 (0) = 0, (H1 ) (0) = 1, (H1 ) (1) = 0, H1 (1) = 0,333 3 H2 (0) = 0, (H2 ) (0) = 0, (H2 ) (1) = 1, H2 (1) = 0,333 3 H3 (0) = 0, (H3 ) (0) = 0, (H3 ) (1) = 0, H0 (1) = 1.3. Montrer que {Hi3 }i=0,1,2,3 forme une base de P3 (base dHermite).4. Dterminer linterpolant dHermite des 4 donnes f (0), f (0), f (1), f (1). 35. noncs des exercices 31 3 B0 (t)1 B 3 t) t 5. crire la base {Bi3 }i=0,1,2,3 dans la base canonique sous la forme : 3 = A 2 o 1 B2 (t)t 3B3 (t)t3 A R44 . De mme crire la base {Hi3 }i=0,1,2,3 dans la base canonique. 6. En dduire lexpression des polynmes Hi3 dans la base de Bernstein. 7.Dterminer linterpolant dHermite des quatre donnes f (0), f (0), f (1), f (1) dans la base de Bernstein. 8. laide de Matlab, tracer les fonctions polynmiale {Bi3 }i=0,1,2,3 puis {Hi3 }i=0,1,2,3 sur [0, 1].base de Bernstein base dHermite 1 1.2 H30.91 0H330.8 B3B3 3 00.70.80.6 0.60.5 B3 B32 1 0.40.40.30.2 H310.200.1 H32 00.20 0.20.4 0.60.8 100.20.4 0.60.8 1 4.2 Interpolation de Lagrange Dunod La photocopie non autorise est un dlit Soit a = x1 < x2 < ... < xn+1 = b une subdivision de lintervalle [a, b]. On se donne n + 1 rels yi . 1. Existence et unicitn+1x xj Pour i = 1, . . . , n + 1, on dnit i (x) =. Montrer que { 1 , 2 , ..., n+1 } est une basexi x jj=1j=i de Pn = Rn [X ]. On lappelle base de Lagrange de Pn . 2. Montrer quil existe un unique polynme p de degr infrieur ou gal n tel que p(x j ) = y j pour j = 1 n + 1. 3.Changement de base On note pk le polynme dinterpolation des k + 1 premires donnes, i.e. (x j , y j ), j = 1 k + 1. 36. 32 4 Interpolation polynmiale(a) Montrer que pk (x) pk1 (x) = [y1,..., yk+1 ](x x1 ) (x xk ) o [y1 , . . . , yk+1 ] est le coefcient de x k dans pk (x).(b) En dnissant [y j ] = y j , j = 1 n + 1, montrer que k 1,[y2 , ..., yk+1 ] [y1 , . . . , yk ] [y1 , . . . , yk+1 ] =.xk+1 x1(c) Dduire de (a) quen pn (x) = [y1 ] + [y1 , ..., yk+1 ](x x1 )...(x xk ) k=1{1, x x1 , (x x1 )(x x2 ), . . . , (x x1 ) . . . (x xn )} sappelle la base de Newton. Lesexpressions [y1 , ..., yk+1 ] sont les diffrences divises .(d) Exemple x j = 3 + j , j = 1 5, y j = (1) j . Dresser le tableau suivant : x1 y1[y1 , y2 ] x2 y2[y1 , y2 , y3 ][y2 , y3 ][y1 , y2 , y3 , y4 ] x3 y3[y2 , y3 , y4 ][y1 , y2 , y3 , y4 , y5 ][y3 , y4 ][y2 , y3 , y4 , y5 ] x4 y4[y3 , y4 , y5 ][y4 , y5 ] x5 y54. Erreur dapproximationOn suppose que les donnes rsultent de lchantillonnage dune fonction f C n+1 ([a, b]),f (x j ) = y j , j = 1 n + 1. On dsigne lerreur par e(x) = f (x) p(x). Naturellement e(xi ) = 0.Si x = xi i = 1, . . . , n + 1, on dnit la fonction g par n+1 (t x j ) g(t) = f (t) p(t) e(x) . (x x j ) j=1 37. noncs des exercices 33 noter que si f est dnie en dehors de [a, b] et rgulire, on peut aussi choisir x en dehors de cet intervalle. (a) Montrer que g(x1 ) = g(x2 ) = = g(xn+1 ) = 0 et g(x) = 0. 111En dduire quil existe x1 < x2 < < xn+1 tel que 1 1 1 g (x1 ) = g (x2 ) = = g (xn+1 ) = 0n+1 (b) Montrer quil existe un point x1 = j tel queg (n+1) (j) = 0 (c) En dduire quil existe j appartenant lintervalle ouvert contenant x et les xi tel que n+1 1 e(x) =(x x j ) f (n+1) (j)(4.1)(n + 1)! j=1 5.Le phnomne de Runge1j On chantillonne f (x) =en n + 1 points quidistants sur [5, 5] ; x j = 5 + 10 pour1 + x2 n j = 0, . . . , n. crire un programme laide de Matlab pour complter un tableau tabl contenant une suite de valeurs de n, les valeurs de f , p et e au point xn 1 = 5 5/n. Pour n donn, on pourra 2 aussi tracer le graphe de f et celui de p. Pour obtenir linterpolant, utiliser successivement les instructions coeff=polyfit(x,y,n) qui donne les coefcients du polynme de degr n approchant les n + 1 points (xi , yi ) au sens de moindres carrs, donc le polynme de Lagrange, pn , puis polyval(coeff,t) pour calculer la valeur de pn en un ou des points t. Test avec les valeurs Dunod La photocopie non autorise est un dlit de n contenues dans le tableau tabn = 2 : 2 : 20. >> tabl = 2.00000.13790.75960.6217 4.00000.0664 -0.35680.4232 6.00000.05450.60790.5534 8.00000.0497 -0.83100.880710.00000.04711.57871.531712.00000.0454 -2.75502.800414.00000.04435.33275.288416.00000.0435-10.1739 10.217418.00000.0429 20.1237 20.080820.00000.0424-39.9524 39.9949n f(x) p(x)erreur 38. 344 Interpolation polynmiale n = 102 1.510.5 0 0.55 05On notera ainsi que linterpolant qui passe par les points (xi , f(xi ))i=1,...,n ne ralise pasforcment une bonne approximation. Nanmoins, si on peut choisir les abscisses xi , on n+1peut avoir intrt minimiser la norme innie du polynme (x xj ) sur [a, b] qui j=1apparat dans (4.1) ; cette minimisation est obtenue aux points de Tchebychev.4.3 Drivation approcheOn considre une fonction dnie sur [a, b] dont on souhaite approcher la drive. Pour cela onutilise linterpolation de Lagrange. Soit X = (x1 , . . . , x N +1 )T un vecteur dabscisses et y = f (x),Tcest--dire Y = f (x1 ), . . . , f (x N +1 ) un vecteur de valeurs associes (valeurs chantillonnes).On interpole la fonction au moyen dun polynme de Lagrange de degr NN +1 N +1 t xk P(t) =yj j (t) avec j (t) =x j xkj=1k=1 k= j T1. Montrer que le vecteur des drives de P aux points xi , not D = P (x1 ), . . . , P (x N +1 )scrit sous la forme D = MY , M R(N +1)(N +1)o m i j est donn parcisi i = j c j (xi x j )N +1m i j = j (xi ) =1si i = j(xi xk ) k=1k= j 39. noncs des exercices35N +1 avec ci = (xi xk ). Ce vecteur donnera lapproximation des drives de f aux point xik=1k=i 2.On suppose que [a, b] = [2, 2]. crire un programme DA1.m prenant N comme argument, et produisant les points de Tchebychev a+b abi 1xi =+cos p , 1 i N +12 2 N ainsi que les valeurs de f correspondantes, sous forme de deux vecteurs colonnes X et Y . Test avec N = 5, et f = arctan(x). >> DA1 x = -2.0000 -1.6180 -0.61800.61801.61802.0000 y = -1.1071 -1.0172 -0.55360.55361.01721.1071 1 si i = j 3.On construit la matrice Q de R(N +1)(N +1) dnie par Q i j = 1 . xi x j si i = j Dunod La photocopie non autorise est un dlit Complter le premier programme en DA2.m afchant Q o les points (xi ) sont calculs par le premier programme. Test avec les mmes donnes que prcdemment. >> DA2 Q = 1.0000-2.6180-0.7236-0.3820 -0.2764 -0.2500 2.6180 1.0000-1.0000-0.4472 -0.3090 -0.2764 0.7236 1.0000 1.0000-0.8090 -0.4472 -0.3820 0.3820 0.4472 0.8090 1.0000 -1.0000 -0.7236 0.2764 0.3090 0.4472 1.00001.0000 -2.6180 0.2500 0.2764 0.3820 0.72362.61801.0000 N +1 1 N +1 4.On remarque que ai = =Q i, j . k=1 (x i x k ) j=1 k=i 40. 364 Interpolation polynmialeN +1 N +1 1On remarque dautre part que Vi =Q i, j = + 1.j=1j=1 xi x j j=icrire un programme, DA3.m, qui calcule et afche les matrices diagonales. Utiliser sum et prod.Mmes donnes test. a10V1 20 .. .. A=. et V = . 0a N +1 0 VN +1 2 >> DA3A =-0.05000000 00 0.1000000 000-0.100000 0000 0.10000 00000-0.1000 0000000.0500V =-5.2500 0 000 00 -0.4146 000 00 0 -0.914600 00 0 0-1.08540 00 0 00-1.5854 00 0 0003.2500 5.La matrice M est donne par M = A1 Q A + V . En regroupant les programmes prcdents,crire un programme DA4.m qui partir de N produit le vecteur des drives approches D. Testavec N = 5. >> DA4D =0.31770.21400.77380.77380.21400.3177 6. Afcher sur une mme gure la drive exacte, la drive approche, et lerreur entre lesdeux. Sauvegarder dans DA5.m.1Test avec N = 10, et f = arctan(x). On rappelle que arctan (x) = .1 + x2 41. noncs des exercices371.2Drivees exactes et approches 10.80.60.40.2 Erreur x 10 0 0.22 1.510.500.51 1.5 2 Attention, lerreur a t multiplie par 10 7. Reprendre le programme avec cette fois-ci un chantillonnage en des points quidistants. Sauvegarde dans DA6.m.8. Trouver au moins deux fonctions indpendantes pour lesquelles cette mthode de drivation approche donne la drive exacte. 9. La matrice M nest pas inversible. Donner dans le programme DA7.m le Y0 non nul tel queY0 2 = 1 et MY020. 4.4 Splines cubiques Dunod La photocopie non autorise est un dlit Au lieu de construire un polynme interpolant, nous allons construire un interpolant qui sera polynmial par morceaux. La construction se fait en plusieurs tapes mais lobjectif est le mme que pour linterpolation de Lagrange : trouver une fonction s telle que s(xi ) = yi (en reprenant les notations prcdentes). 1. On souhaite construire une fonction polynmiale sur [a, b] interpolant les donnes suivantes ya , yb , ya et yb . Montrer quil existe un unique polynme P de degr 3 ralisant linterpolation. On lcrira dans la base de Bernstein : B0 (t) = (1 t)3 , B1 (t) = 3t(1 t)2 , B2 (t) = 3t 2 (1 t),3 3 3 3 3 x a3 d Bk dp B3 (t) = t 3 o t =3en dterminant p(x) =ak Bk (t). On calculera ensuite et. badtdx i=0 d 2 Bk3d2 p 2. Pour la suite, calculer les drives suivantes : puis.dt 2dx2 42. 38 4 Interpolation polynmiale3. Pour une subdivision de [a, b] : x0 = a < x1 < ... < xn = b, on considre lespace P1 = S C 1 (a, b) : S |[ xi ,xi+1 ] P3 , 03i n1Montrer que pour tout systme de 2n + 2 donnes, il existe une unique fonction S de P1 vriant 3 S(xi ) = yi , S (xi ) = yi , 0 inS est la spline cubique de classe C 1 interpolante.4. On considre P2 = S C 2 ([a, b]) : S |[xi ,xi+1 ] P3 , 0 i n 1 , nous allons montrer le 3thorme suivant (dmonstration dans le cas o xi+1 xi est constant).Pour tout ensemble de n + 3 donnes y0 , y0 , y1 , y2 , . . . , yn1 , yn , yn , il existe une unique fonctionS de P2 vriant : 3 S(xi ) = yi , 0 i n, S (x0 ) = y0 , S (xn ) = yn(a) Ds que les pentes yi en les xi seront connues, on sera ramen la question prcdente. Montrer que le raccord C 2 au point xi donne une quation liant yi1 , yi , yi+1 et yi1 , yi , yi+1 .(b) En dduire que le vecteur inconnu Y = (y1 , . . . , yn1 )T est solution dun systme tridiagonal AY = b, A R(n1)(n1) , diagonale dominante stricte i.e n1i {1, . . . , n 1}, aii > |ai j | j=1, j=i(c) Montrer la proposition suivante (disques de Gershgorin) : Thorme : Si M = (m i j ) Ckk et l C est une valeur propre de M alorsk kl Di , o Di = z C : |z m ii | |m i j | (4.2) i=1 j=1, j=i(d) En dduire que 0 nest pas valeur propre de A donc que le systme AY = b admet une solution unique.On montre que si f C 4 [a, b], que M4 = sup |f (4) (x)| et h = max |xi+1 xi |, alors x[a,b]i=1,...,n |f(x) S(x)|5h4M4384 x [a, b], h3 |f (x) S (x)|M4 24 3h2 |f (x) S (x)|M4 8 43. noncs des exercices 395. Splines not a knot, (pas constant) On suppose que y0 et yn sont inconnus et on impose, en plus des n 1 conditions de raccord C 2 , les 2 conditions supplmentaires de raccord C 3 en x1 et xn1 . Montrer que le systme n + 1 inconnues peut scrire y0 y2 = 2 (y0 2y1 + y2 ) h y1 . . . (4.3) A1 . = k . . yn1 y2 n2 yn = (yn2 2yn1 + yn )h o 4 2 0... 0 5y2 4y1 y0 .. . 1 41. .. 3(y2 y0 ) .. .. .. 1 .A1 = 0 . . . 0 R (n1)(n1) , k= .. Rn1 . . h ... 3(yn yn2 ) ..1 4 15yn2 + 4yn1 + yn 0 ... 0 2 4 Ce systme admet encore une solution unique puisque A1 reste diagonale dominante stricte. 6. Programmation tant donns deux tableaux x et y de mme dimension n, les xi tant distincts et un tableau Dunod La photocopie non autorise est un dlit xabs, linstruction yord = spline (x,y,xabs) calcule automatiquement la spline not a knot aux points xabs. (a) Construire un chier f.m. tant donn un entier n, construire un tableau x avec un pas constantet dterminer le tableau y = f (x). Calculer la spline, dessiner les graphes de f et de la spline. 1Exemples : f 1(x) = e x sur [0, 1] , f 2(x) =sur [5, 5] 1 + x2x si x < 0 f 3(x) = sur [2, 2].x/2 si x 0 En augmentant n, on peut constater que le phnomne de Runge napparat pas. 44. 40 4 Interpolation polynmialeinterpolant spline, n = 810.90.80.70.60.50.40.30.20.10505(b) Dans les cas f 1 et f 2, tudier lerreur quand n varie. On partira dun tableau tn et on calculera le tableau taberr eur puis on tracera log(taberr eur ) en fonction de log(tn + 1).Ce trac permet de visualiser numriquement que err c/Na en dterminant a, pentede la droite.pente de la droite de regression : 3.9265pente de la droite de regression : 0.89068 310 3.5124log(erreur)log(erreur)14 4.516518 5.520622 6.511.522.53 3.5 4 4.5 51 1.522.53 3.5 4 4.5 5 log(n+1)log(n+1)erreurs pour les fonctions f 1 et f 3Dans le premier cas, pour une fonction chantillonne de classe C , on retrouve uneerreur en h4 alors que dans le second cas, la fonction chantillonne est seulement declasse C 0 ; on peut montrer que dans ce cas, lerreur se majore par O(h).DU MAL DMARRER ?4.1 Changement de base1.Montrer quil sagit dun systme libre. 45. Corrigs des exercices41 2. 0 ou 1 sont racines ventuellement multiples. 4. On peut utiliser la base prcdente. 4.2 Interpolation de Lagrange 1. Montrer que ces fonctions forment un systme libre. 2. Utiliser la base prcdente. 4. Le thorme de Rolle peut tre utile. 4.3 Drivation approche2. On peut commencer par construire la matrice Q1 telle que Q1i j = xi x j , puis lui ajouter la matrice identit. 4.4 Splines cubiques 1. On peut faire un calcul direct ou sinspirer de lexercice 4.1.4. (a) Pour dterminer les quations liant les drives premires, crire que les drives secondes gauche et droite en les xi concident.k (c) crire lxi = m i j x j en choisissant un indice i tel que |xi | = max |x j |.j=1CORRIGS DES EXERCICES 4.1 Changement de base 1. Puisque {Bi3 }i=0,1,2,3 a 4 lments et que P3 est de dimension 4, il suft de montrer que le Dunod La photocopie non autorise est un dlit 3 systme est libre pour conclure quil forme une base. Si li Bi3 = O, alors en t = 0, il vienti=0 2 l0 = 0. De mme en t = 1, l3 = 0. En drivantli Bi3 = O puis en prenant nouveau t = 0i=1 puis t = 1, nous trouvons l1 = l2 = 0.3 3 3 33 2. H0 est un polynme de degr 3 tel que H0 (0) = 1, (H0 ) (0) = 0, (H0 ) (1) = 0, H0 (1) = 0. 32 Donc 1 est racine double si bien que H0 (t) = (1t) (at +b). Les 2 conditions restantes permettent de dterminer a et b et nalement H0 (t) = (1 t)2 (2t + 1). De mme H1 (t) = t(1 t)2 , 3 3 H2 (t) = t 2 (t 1) et H3 (t) = t 2 (3 2t). 33 3. De mme que dans la question 1, on montre que {Hi3 }i=0,1,2,3 forme une base de P3 . 46. 42 4 Interpolation polynmiale 34. Linterpolant dHermite des 4 donnes f (0), f (0), f (1), f (1) est donn par p = f (0)H0 +33 3f (0)H1 + f (1)H2 + f (1)H3 puisquil est unique et que ce dernier rpond la question. 3 3 B0 (t) 1 H0 (t)1 B 3 t) t H 3 t) t 5. En dveloppant les polynmes, on obtient 3 = A 2 et 3 = B 2 1 B2 (t) t H2 (t)1 t 3 B3 (t) t33H3 (t) t3 1 33 1 1 0 32 0 3 63 0 1 2 1 o A = 0 et B = 0 0 1. 03 3 1 0001 0 03 23 3 H0 (t) B0 (t) H 3 t) 3 1 B1 t) 6. Donc 3 = B A 3 . A est triangulaire et A1 peut se dterminer en com- 1 H2 (t) B2 (t) 33 H3 (t) B3 (t) 1 1 1 1 1 10 0 0 1/3 2/3 10 1/30 0menant par la dernire ligne : A1 = 1 0 0 1/3 1 et B A = 0 0 1/3 0. 0 0 0 1 0 01 17.p = f (0)H0 + f (0)H1 + f (1)H2 + f (1)H3 . En crivant les Hi3 dans la base de Bernstein,3 33333 3 3il vient p = f (0)B0 + ( f (0) + f (0)/3)B1 + ( f (1) f (1)/3)B2 + f (1)B3 .8. bases.mt =0:1/500:1;B0=(1-t).^3; B1 =3*t.*(1 -t).^2;B2 =3*t.^2.*(1 -t); B3=t.^3;subplot (1 ,2 ,1)plot(t,B0 ,t,B1 ,t,B2 ,t,B3)title(base de Bernstein ,Fontsize ,18)H0=(t -1) .^2.*(1+2*t); H1=t.*(1 -t).^2;H2=(t -1) .*t.^2; H3=t.^2.*(3 -2*t);subplot (1 ,2 ,2)plot(t,H0 ,t,H1 ,t,H2 ,t,H3)title(base dHermite ,Fontsize ,18)4.2 Interpolation de Lagrange1. Le systme { 1 , . . . , n+1 } contient n + 1 lments dans lespace des polynmes Pn = Rn [X ]qui est de dimension n + 1. Pour montrer que ce systme forme une base, il suft de montrer quiln+1 1 si i = kest libre. Nous avons k (x i ) = dik =. Donc si lk k = 0, en prenant la valeur 0 si i = kk=1 47. Corrigs des exercices 43n+1 xi , il vient li = 0 pour i = 1, . . . , n + 1. Maintenant il est aussi clair que yi = yk k (xi ) donck=1 n+1 p dni par p(x) =yk k (x) est de degr n et ralise linterpolation. Lunicit est obtenue k=1 puisque le systme { 1 , . . . ,n+1 } est une base. 2.pk pk1 est un polynme de degr infrieur ou gal k qui sannule en chacun des xi pour k i = 1, . . . , k. On a donc pk (x) pk1 (x) = ak (x xi ). Le coefcient ak est celui de x k . Ori=1 pk1 est de degr strictement infrieur k. Donc ak ne peut tre que le coefcient de x k dans pk . On note ak = [y1 , . . . , yk+1 ]. Si bien quek pk (x) pk1 (x) = [y1 , . . . , yk+1 ](x xi ) (4.4) i=1 Soit qk1 le polynme interpolant les points (xi , yi ), i = 2, . . . , k + 1 ; qk1 est un polynme de degr infrieur ou gal k 1 et le coefcient de x k1 est not [y2 , . . . , yk+1 ]. Par ailleurs, de mme que prcdemment, k+1 pk (x) qk1 (x) = [y1 , . . . , yk+1 ](x xi ).(4.5) i=2 La diffrence qk1 pk1 est donc un polynme de degr infrieur ou gal k 1 et le coefcient de x k1 est [y2 , . . . , yk+1 ] [y1 , . . . , yk ]. Par ailleurs en effectuant la diffrence entre (4.4) et (4.5), on obtientkqk1 (x) pk1 (x) = [y1 , . . . , yk+1 ] (x xi ) (x xk+1 ) (x x1 ) Dunod La photocopie non autorise est un dlit i=2k= [y1 , . . . , yk+1 ] (x xi )(x1 xk+1 ). i=2 En comparant les coefcients de x k1 dans les 2 cas, il vient[y2 , . . . , yk+1 ] [y1 , . . . , yk ] = [y1 , . . . , yk+1 ](x1 xk+1 ). Par rcurrence, partir de (4.4), on obtientnpn (x) = [y1 ] +[y1 , ..., yk+1 ](x x1 )...(x xk ).k=1 48. 444 Interpolation polynmialeDans le cas particulier propos, x j = 3 + j , j = 1 5, y j = (1) j , on obtient alors le tableaudes diffrences divises 2 -12 1 1 -224/30 12-2/324/31 1222 1Les coefcients dans la base de Newton sont encadrs et le polynme de Lagrange scrit :p(x) = 1 + 2(x + 2) 2(x + 2)(x + 1) + 4/3(x + 2)(x + 1)x 2/3(x + 2)(x + 1)x(x 1).3. Il reste valuer lerreur dapproximation. x tant un rel situ dans le domaine o la fonctionn+1(t x j )f est dnie avec x = xi . Notons Q(t) = .(x x j )j=1Sachant que g(t) = f (t) p(t)e(x)Q(t) et f (xi ) = p(xi ), i = 1, . . . , n+1, on obtient g(xi ) = 0et puisque e(x) = f (x) p(x) et Q(x) = 1, il vient g(x) = 0. Si bien que nous avons k + 2 pointsdistincts o la fonction g sannule. Ds que f est drivable, g lest aussi puisque p et Q sont despolynmes. Le thorme de Rolle nous assure alors quentre 2 points successifs o g sannule, ilexiste un point strictement compris entre les 2 points prcdents o g sannule Ainsi il existe unesuite strictement croissante xi1 , i = 1, . . . , n + 1 telle que g (x1 ) = g(x2 ) = = g(xn+1 ) = 0.11 1 partir de l, on peut construire une nouvelle suite strictement croissante xi2 , i = 1, . . . , n on+1g sannule ds que f est deux fois drivable et, par rcurrence, il existe un point x1 = j telque g (n+1) (j) = 0 ds que f est n + 1 fois drivable. En reprenant la dnition de g et en drivantn + 1 fois par rapport t, sachant que p (n+1) = 0 puisque p est de degr infrieur ou gal n, etn+1 n+1 11que Q (n+1) (t) = (n + 1)!, on obtient e(x) =(x x j ) f (n+1) (j). Cette(x x j ) (n + 1)!j=1 j=1formule reste vraie quand x concide avec lun des xi initiaux car dans ce cas e(xi ) = 0. 49. Corrigs des exercices45 4. lag1.m clear tabn =[2 ,4 ,6 ,8 ,10 ,12 ,14 ,16 ,18 ,20]; a=-5;b=5; for i=1: length(tabn)n=tabn(i);h=(b-a)/n;x=a:h:b;y =1./(1+x.*x);coeff= polyfit(x,y,n);xnm=b-h/2;tabl(i ,1)=n;tabl(i ,2) =1/(1+ xnm*xnm);tabl(i ,3)= polyval(coeff ,xnm);tabl(i ,4)=abs(tabl(i ,2) -tabl(i ,3));t=a:0.01:b;pn= polyval(coeff ,t);%plot(x,y,*,t,pn ,t ,1./(1+t.*t));%n%title ([n = ,int2str(n)],Fontsize ,16)%pause end; tabl disp( nf(x)p(x) erreur ) Ce quil faut retenir de cet exercicePour faire varier n, on construit un tableau quelconque de valeurs croissantes de n, tabn, indicpar i qui varie de 1 la longueur du tableau.On peut aussi programmer le calcul du polynme de Lagrange dans une des bases pro-poses prcdemment. Dunod La photocopie non autorise est un dlit 4.3 Drives approchesN +1 N +1 N +1 t xk 1. Sachant que P(t) = yj j (t) avec j (t) = , nous avons P (t) =yj j (t).x j xkj=1k=1j=1 k= j N +1(t xk )N +1N +1 k=1N +1N +1 k= j,k=m1 Si c j =(x j xk ), alors j (t) = =(t xk ),N +1 cjk=1 m=1m=1k=1k= jm= j,(x j xk ) m= j,k= j,k=mk=1k= j 50. 464 Interpolation polynmiale N +1 ci (xi xk ) /c j = si i = j, c j (xi x j ) k=1doncj (x i ) = k= j,k=i ci1 =si i = j. (xi xm )cixi xm m=1 m=1 m=i,m=i,2...5 DA5.m cleara=-2;b=2;N=10;%DA1x=(a+b)/2+(a-b)*cos(pi *(0:N)/N)/2;x=x;y=f(x);%DA2Q=1./( eye(N+1)+x*ones (1,N+1) -ones(N+1 ,1)*x);%DA3A=diag(prod(Q ,2));V=diag(sum(Q ,2) -2);%DA4M=A^( -1)*Q*A+V;%DA5D=M*y;Dex =1./(1+x.*x);plot(x,D,x,Dex ,x ,10*(D-Dex)) Ce quil faut retenir de cet exercice On a vu au chapitre 1 que les boucles retardaient lexcution dun programme. Ici la construc- tion de la matrice Q et des suivantes se fait donc sans boucle. Par ailleurs, laide en ligne est bien utile pour pouvoir apprendre faire des sommes de tableaux suivant les lignes ou les colonnes.6. Remplacer x=(a+b)/2+(a-b)*cos(pi*(0 :N)/N)/2 ; par x=a :(b-a)/N :b ; dans leprogramme prcdent. Lerreur est plus important pour des points quidistants que pour les pointsde Tchebychev. On peut remarquer que dans (4.1) qui donne lerreur dapproximation pour la fonction, en choisissant les abscisses dchantillonnage, on peut esprer minimiser n+1max(x xj ) ; les points de Tchebychev ralisent justement ce minimum. dfaut x[a,b] j=1n+1de le montrer, on peut tracer le graphe du polynme Pn avec Pn (t) =(t xj ) dans les deux casj=1(Tchebychev et points quidistants) puis constater que pour a = 2 et b = 2, ce polynme varie 51. Corrigs des exercices 47 de 4 4 indpendamment de n pour les abscisses de Tchebychev et a des extrema tendant vers linni avec n pour les points quidistants.7. Ds que lon interpole un polynme p de degr infrieur ou gal n en n + 1 points, le polynme de Lagrange concide avec p, par unicit et donc les drives concident aussi. Il suft de prendre pour f lun des deux polynmes 1 ou x dans le programme prcdent en changeant aussi Dex pour avoir une erreur nulle. 8. Un polynme constant a des drives exacte et approche nulles. Si on veut Y0 2 = 1,1 pour N x, on partira de f constante, f = pour obtenir MY0 = 0. noter que leN +1 dterminant de M est nul. 4.4 Splines cubiques 1. Il sagit ici dinterpolation dHermite, fonction et drive. On remarque facilement que les 3 {Bk } forment une base de P3 . Donc lexistence des coefcients ak entranera lunicit. En drivant par rapport t, il vient :(B0 ) (t) = 3(1 t)2 ,33(B1 ) (t) = 3(1 3t)(1 t),3(B2 ) (t) = 3t(2 3t),(B3 ) (t) = 3t 2 .3 3 333dp d p dt1 d Bk Notons que si p(x) = ak Bk (t), alors== ak . dx dt d x ba dtk=0k=0 Les conditions aux bords scrivent alors : Dunod La photocopie non autorise est un dlit3 3ya =p(a) = ak Bk (0) = a0 k=03 3 dp1d Bka0 + a1ya =(a) =ak (0) = 3 dx badtba k=03 3yb =p(b) = ak Bk (1) = a3 k=03 3 dp1d Bka2 + a3yb =(b) =ak (1) = 3 dx badtba k=0 52. 48 4 Interpolation polynmialequi permettent dobtenir a0 = ya a1 = ya + b a ya 3 (4.6) a2 = yb b a y 3 ba3 = yb 2. Le calcul des drives secondes donne : 33 33(B0 ) (t) = 6(1 t), (B1 ) (t) = 6(2 + 3t), (B2 ) (t) = 6(1 3t), (B3 ) (t) = 6t 3 d2 p1 d 2 Bk3et2(x) = ak (t). dx (b a)2dt 2 k=0 3. tant donne une subdivision a = x 0 < x 1 < . . . < x n = b, sur chaque intervalle [xi , xi+1 ],on peut raliser linterpolation prcdente. Puisque les valeurs de la fonction et de sa drivesont donnes en chaque xi , linterpolant polynmial par morceaux est de classe C 1 . Lunicit dellment de P1 rsulte de lunicit de la construction sur chaque intervalle. 3 4. Condition ncessaireNous supposons lexistence de S P2 ralisant linterpolation et nous crivons en chaque xi , 3i = 1, . . . , n 1 la continuit de la drive seconde de la fonction S i.e S (xi + ) = S (xi ). Nousnotons h = xi+1 xi et yi les drives en chacun des xi ; elles sont inconnues sauf pour i = 0 eti = n.Sur lintervalle [xi , xi+1 ], S concide avec un polynme de degr 3 du type de celui de la premire3x xiquestion S(x) =aik Bk (t) avec t = eth k=0hhai0 = yi , ai1 = yi + y , ai = yi+1 yi+1 , ai3 = yi+1 . Nous en dduisons3 i 23 3 1 d 2 Bk 6h S (xi + ) = 2 aik(0) = 2 yi+1 yi (yi+1 + 2yi ) .h dt 2 h 2 k=03 xxi1De mme, sur lintervalle [xi1 , xi ], S(x) =ai1 Bk (t) avec t = k het k=0ai1 = yi1 , ai1 = yi1 + h yi1 , ai1 = yi h yi , ai1 = yi ; donc 0 13 23 3 3 1d 2 Bk 6h S (xi ) = ai1k(1) = 2 yi1 + yi (yi1 + 2yi ) . h2dt 2 h 2k=0 53. Corrigs des exercices49 En crivant S (xi + ) = S (xi ), il vient :3yi1 + 4yi + yi+1 = (yi+1 yi1 ), i = 1, . . . , n 1,h soit le systme AY = b o Y = (y1 , . . . , yn1 )T est linconnue et 410 ... ... 0 . y2 y0y0 1 4 1 0 . . . . . y3 y1 0 . .. .. .. .. .. . . . 0. . . . . 3. . . A = . ., b = . . . . . . . . . . . . . . 0h. . .. . . . yn1 yn3 0 . .. 0 .1 4 1 yn yn2 yn 0 ... ... 01 4 A est tridiagonale et diagonale dominante stricte. Nous laissons le lecteur montrer que la condition AY = b est sufsante. Il reste montrer que le systme admet une solution unique. Pour cela nous allons montrer la proposition plus gnrale qui localise les valeurs propres dune matrice carre M Ckk . Soit l une valeur propre de M = (m i j ) et X = 0 un vecteur propre correspondant. Appelons i un k indice tel que |xi | = max {|x j |}. xi = 0 car X = 0. Nous avons lxi =m i j x j doncj=1,...,k i=1 k k|l m ii | |xi | =mi j x j |m i j ||x j |,j=1, j=i j=1, j=ik|x j | soit en divisant par |xi | qui est non nul, |l m ii | |m i j |. Il reste remarquer que Dunod La photocopie non autorise est un dlit|xi |j=1, j=i |x j | |xi | pour conclure que k|l m ii ||m i j | l Di . j=1, j=ik Comme lindice i nest pas connu, la conclusion est l Di .i=1 Si 0 est une valeur propre de A, alors il existe un indice i tel que 0 Di o Di est le disque den1 n1 centre aii de rayon |ai j |, cest dire que |0 aii ||ai j |. Puisque A est diagonale j=1, j=i j=1, j=i 54. 504 Interpolation polynmialedominante stricte, cette ingalit est impossible. Donc 0 nest pas valeur propre de A et alors Aest inversible. Le systme AY = b admet bien une solution unique.5. Nous supposons cette fois que y0 et yn sont inconnues. Il sagit donc dintroduire deuxquations supplmentaires dans le systme prcdent. Graphiquement des propositions commey0 = 0 et yn = 0 ou y0 = 0 et yn = 0 ne sont pas satisfaisantes. Par ailleurs, on perd lerreurdapproximation en h 4 . On pourra sen rendre compte numriquement. En introduisant les deuxconditions de continuit C 3 aux points x1 et xn1 , on va voir que le systme garde une solutionunique. Par ailleurs ltude numrique suivre montrera que lerreur reste en h 4 .Nous reprenons la mthode utilise prcdemment en calculant les drives 3imes des fonctions(3) (3) (3)(3)de la premire question : B0 (t) = 6, B1 (t) = 18, B2 (t) = 18, B3 (t) = 6, si bien qued3 p 6 (x) = 3 (a0 + 3a1 3a2 + a3 ). Si nous crivons que S (3) (x1 + ) = S (3) (x1 ), comme dans dx3 hla quatrime question, nous obtenonsai0 + 3ai1 3ai2 + ai3 = ai1 + 3ai1 3ai1 + ai1 0 1 23hhh h y1 + 3(y1 + y1 ) 3(y2 y2 ) + y2 = y0 + 3(y0 + y0 ) 3(y1 y1 ) + y1333 32 y0 y2 =(2y1 y0 y2 ).hEn crivant y0 en fonction des autres donnes et en lintroduisant dans lquation 3y0 + 4y1 + y2 = (y2 y0 ), on obtient lquation : h14y1 + 2y2 = (4y1 y0 + 5y2 ).hDe la mme faon, les continuits C 2 et C 3 en xn1 donnent les 2 quations2 1 yn2 yn = (yn2 2yn1 + yn ) et 4yn1 + 2yn2 =(5yn2 + 4yn1 + yn ).h hDo le systme propos en (4.3). 6. tude numrique derreur pour les splines. Programmer un chier f1.m contenant la fonc-tion f . 55. Corrigs des exercices 51splin2.m cleartn =[3 5 7 10 15 20 35 50 75 100];a=0;b=1;nomf=f1;for i=1: length(tn) n=tn(i); h=(b-a)/(n+1); x=a:h:b; y=feval(nomf ,x); xabsc=a:(b-a)/1000:b; yord= spline(x,y,xabsc); taberr(i)=norm(feval(nomf , xabsc)-yord ,inf);end;plot(log(tn +1) ,log( taberr));xlabel(log(n+1) );ylabel(log( erreur));a= polyfit(log(tn +1) ,log(taberr) ,1);title ([pente de la droite de regression : ,num2str(a(1))]) Ce quil faut retenir de cet exercice 1. Pour ltude derreur, il sagit nouveau de faire varier n. On construit un tableau tabn, indic par i ; les erreurs successives se rangent dans un tableau et pour un n donn, n = tabn(i), lerreur correspondante est en taberr (i). 2. Ltude de log(err ) en fonction de log(n + 1) permet de trouver une puissance a, ici environc 4, telle que log(err ) a log(n + 1) + c1 . On en dduit que err.(n + 1)a 56. Valeurs approches 5dintgrales RAPPEL DE COURSMthodes de quadrature lmentaire : Soit f une fonction continue sur [1, 1]. Soient 1t1 < t2 < . . . t M 1, M points distincts de [1, 1] et {a j } j=1,...,M , M poids. La valeur approche 1Mde I ( f ) =f (t)dt est dnie par J ( f ) =a j f (t j ). Notons lerreur E( f ) = |I ( f ) J ( f )|. 1 j=1La mthode est dordre r si pour tout p Pr , on a I ( p) = J ( p). Dans ce cas, pour f C r+1 , ennotant Mr+1 = max | f (r+1) (t)|, on obtientt[1,1]Mr+1E( f ) cr o cr ne dpend pas de f . r!Voici quelques mthodes usuelles.11. Point milieu, mthode dordre 1, J ( f ) = 2 f (0), E( f )M2 ,32. Les formules de Newton-Cotes : on interpole f aux points ti = 1 + 2i/k, i = 0, . . . , k par pk , 1 n le polynme de Lagrange et J ( f ) =pk (t)dt =a j f (t j ) (cf exercice 5.1), la mthode1 j=0 est dordre k si k est impair et dordre k + 1 si k est pair. Ainsi :23. Trapzes, mthode dordre 1, J ( f ) = f (1) + f (1), E( f )M2 ,31 164. Simpson, mthode dordre 3, J ( f ) = ( f (1) + 4 f (0) + f (1)), E( f ) M4 ,3 45 dM5. Les formules de Gauss-Legendre : pour M entier, le polynme L M (x) = M (t 2 1) M admet dt M racines distinctes ti et ti ] 1, 1[. On interpole f aux points ti par p M1 , le polynme 57. 545 Valeurs approches dintgrales 1 de Lagrange. Si J ( f ) =p M1 (t)dt alors la mthode est dordre 2M 1. Exemple pour 1 M = 2, J (g) = g(1/ 3) + g(1/ 3), mthode dordre 3.ba+bbaEn posant g(t) = f+t , J (g) est une approximation de f (t)dt. 22 aMthodes composes : Soit f une fonction continue sur [a, b]. Soit a = x0 < . . . < xn = b une xi+1subdivision de [a, b] et h i = xi+1 xi . On approchef (t)dt par une formule de quadraturexiMbxi + xi+1tlmentaire J (g) = a j g(t j ) o g(t) = f + h i . Ainsi I ( f ) =f (t)dt est22 aj=1approch par n1 Mxi + xi+1tjI app( f ) =hi aj f + hi.22i=0j=1Si on note E( f ) = |I app( f ) I ( f )|, si la mthode de quadrature lmentaire est dordre r , sif C r+1 ([a, b]) alors E( f ) Cr (b a)h r+1 Mr+1 o h = max h i , Mr+1 = max | f (r+1) (t)|.t[a,b] xi + xi+1Quelques mthodes usuelles pas constant, h = (ba)/n et xi = a+i h. Soit xi+1/2 =. 2 n1(b a)3(b a)1. Point milieu, I app( f ) = h f (xi+1/2 ), E( f ) 2 M2 = M2 ,24n24n 2i=0 n1h(b a)32. Trapzes, I app( f ) =f (x0 ) + 2 f (xi ) + f (xn ) , E( f ) M2 ,212n 2 i=1n1 n1 h (b a)53. Simpson, I app( f ) = f (x0 ) + 2 f (xi ) + f (xn ) + 4 f (xi+1/2 ) , E( f ) M4 . 6180n 4 i=1i=0Les commandes Matlab usuelles pour le calcul dintgrales sont quad et quadl. noter que sinous utilisons quad pour intgrer la fonction irrgulire f 0 dnie par f 0 (x) = |x 1/3| sur[0, 1], le rsultat propos est 0.27777745031875 pour une valeur exacte de 5/18 et donc uneerreur relative denviron 3.107 . Avec quadl, nous obtenons respectivement 0.27777768862790et 9.108 . On peut videmment amliorer ces rsultats en modiant la tolrance qui est de 106par dfaut. Consulter laide en ligne. 58. noncs des exercices 55NONCS DES EXERCICES Dans cette partie, aprs un premier exercice dapplications, le deuxime exercice permet de construire la mthode des trapzes pas pas, puis dtudier les erreurs thorique et numrique de cette mthode. Le suivant, mthode dextrapolation, amliore les rsultats prcdents, gre un tableau et nouveau tudie une erreur. Le dernier exercice applique la mthode des trapzes la rsolution numrique dune quation intgrale avec tude derreur. 5.1 Premiers calculs 1. Interpolation et intgration Soient t1 , . . . , t M , M points distincts de [1, 1]. Pour une fonction f continue sur [1, 1], on dsigne par p P M1 le polynme dinterpolation de Lagrange de f en les t j .1 (a) Montrer que si nous construisons la quadrature lmentaire J ( f ) = p(t)dt alors1M J( f ) = a j f (t j );j=1prciser les a j en utilisant la base de Lagrange. (b) Montrer que la mthode est dordre au moins M 1. (c) Montrer que si f C M ([1, 1]), alors 1max | f (M) (t)| 1M t[1,1] E( f ) =f (t)dt J ( f ) |P M (t)|dt avec P M (t) = (t t j ).1M! 1 Dunod La photocopie non autorise est un dlitj=1 2. Ordre maximum Soient a1 et a2 2 rels et t1 et t2 2 rels de [1, 1]. On considre la quadrature lmentaire J ( f ) = a1 f (t1 ) + a2 f (t2 ). Dterminer ces 4 rels pour que la quadrature soit dordre 3. 3. Majoration et erreur relle Dterminer un entier n pour que la mthode des trapzes compose pas constant donne une erreur1 infrieure 1010 dans lapproximation de t 4 dt. (Aprs la programmation de lexercice 5.2,0 dterminer la valeur minimum de n laide de Matlab.) Mme question pour la mthode de Simpson. 59. 56 5 Valeurs approches dintgrales5.2 Mthode des trapzes1. Quadrature lmentaire sur [a, b]Soit f une fonction continue sur [a, b] valeurs dans R. On cherche des valeurs approches debI = f (t)dt. Une approximation est donne par la mthode des trapzes :af (a) + f (b)i = (b a) .2ba+b(a) Montrer que si f C 1 [a, b], alors I = i f (t)(t )dt.a2 ba+b a+b(b) Montrer que J = f ()(t )dt = 0. Puis en calculant I J , en dduire quea 22 pour f C 2 [a, b], lerreur vrie : 1e = |I i| (b a)3 M2 o M2 = sup | f (2) (t)|. (5.1) 12t[a,b]2. Formules composesSoit n N . On pose h = (b a)/n et xk = a + kh, k = 0, . . . , n. Sur chaque intervalle xk+1[xk , xk+1 ], on approchef (t)dt par la formule prcdente et on somme. xkEn dduire I app(h) nouvelle approximation de I puis majorer E(h) = |I I app(h)|.3. ProgrammationbLobjectif est dapprocher I =f (t)dt par la formule des trapzesaN 1hba I app(h) = [ f (a) + f (b) + 2f (a + kh)] o h =.2 Nk=1(a) crire un chier f.m qui contiendra la fonction f , par exemple f (x) = exp(x). >> f([0.5 1]) ans = 1.64872.7183 (b) crire un chier trap.m, qui utilisera la fonction f et qui permettra le calcul approch de lintgrale par trap(a,b,N) et tester avec a = 0, b = 1, N = 10. >> trap (0 ,1 ,10) ans = 1.7197 60. noncs des exercices57 (c) En faisant varier N , tudier log | I app(h) I | en fonction de log(N ). On tracera en par-ticulier la courbe correspondante. Pour cette tude, on peut partir dun tableau tabN =[1, 2, 5, 7, 10, 15, 20, 35, 50, 75, 100] et construire le tableau correspondant taberr puis dessi-ner log(taberr ) en fonction de log(tabN ). Sauvegarde dans traperreur.m.Cette tude permet de montrer numriquement que erreurC/na ou log(erreur)log(c) a log(n). noter que linstruction polyfit(log(tabN),log(taberr),1) permetdobtenir les coefcients de la droite de rgression. >> traperreur Coefficients de la droite de regression ans =-1.9976-1.9518 0 2 4 log(taberr) 6 8 10 12 0 1 2 3 4 5 log(tabN)La pente de la droite est donc denviron 2 (1.9976), ce qui conrme ltude tho- Dunod La photocopie non autorise est un dlitrique. 5.3 Extrapolation (Mthode de Romberg) On a vu prcdemment que E(h) = 0(h 2 ) ; on peut montrer plus prcisment que ds que f est sufsamment rgulire, il existe n N, n > 0 tel quebf (t)dt I app(h) = a2,2 h 2 + a2,4 h 4 + ... + a2,2n h 2n + o(h 2n ).a On pose T0 (h) = I app(h), Tk+1 (h) = [4k+1 Tk (h/2) Tk (h)]/[4k+1 1], pour k = 0, 1, . . . Montrer que I T1 (h) = O(h 4 ), I T2 (h) = O(h 6 ), . . . , I Tn (h) = 0(h 2n ). 61. 58 5 Valeurs approches dintgralesProgrammationOn utilise les chiers trap.m, f.m prcdents, on part de h = b a. On xe n > 0 et on remplirale tableau triangulaire T , puis le tableau derreurs. Attention avec Matlab, les indices de