cours prepa
Transcription
cours prepa
Chapitre 1 Introduction générale Ce chapitre est consacré à une présentation rapide des méthodes numériques qui sont étudiées en détail dans ce cours. Nous y donnons une approche très simplifiée des quatre parties qui sont abordées : • la résolution des systèmes linéaires, • le calcul des valeurs propres des matrices, • l’optimisation, • le contrôle des systèmes linéaires. 1.1. La résolution des systèmes linéaires Désignons par A une matrice carrée N × N à coefficients réels et b un vecteur de RN . On s’intéresse à l’équation vectorielle suivante : trouver X ∈ RN tel que : AX = b. (1.1) L’algèbre matricielle nous apprend que (1.1) admet une solution unique dès que le déterminant (noté det A) de la matrice A est non nul. Une première stratégie consiste à utiliser la méthode des cofacteurs. Mais le nombre d’opérations nécessaires est tellement élevé dès que l’on dépasse la dimension N = 3, qu’il faut très vite oublier cette méthode. En effet, pour calculer un déterminant d’une matrice N × N il faut N.N ! multiplications ! Une seconde approche conduit aux méthodes directes. Pour cela on décompose (c’est la factorisation) la matrice A en la composée de deux matrices notées respectivement 14 Méthodes numériques pour l’ingénieur L (Lower) et U (Upper) de telle sorte que A = LU et que L soit une matrice triangulaire inférieure régulière et U une matrice triangulaire supérieure qui est également régulière. Le système (1.1) est alors équivalent au suivant : ! Trouver Y ∈ RN , solution de : LY = b, (1.2) puis résoudreX ∈ RN U X = Y. Le secret de la méthode est qu’un système linéaire associé à une matrice triangulaire est facile à résoudre. Pour cela, on procède par substitutions successives en partant de la première ou de la dernière équation suivant qu’il s’agisse d’une matrice triangulaire inférieure ou supérieure. Toutes les méthodes qui découleront de cette stratégie s’appellent les méthodes de Gauss et leurs variantes (Crout, Cholesky . . . ). Une autre approche de la résolution des systèmes linéaires consiste à construire une suite d’approximation qui converge vers la solution. Pour en donner une idée simple mais réaliste, considérons un cas élémentaire, celui de la règle de trois. Il s’agit de : trouver x ∈ R, tel que ax = b où a #= 0 et b sont deux réels donnés. (1.3) Bien entendu, la solution est x = b/a. Mais intéressons-nous à la construction d’une suite xn qui converge vers cette solution. Pour cela nous observons tout d’abord que la solution x vérifie : ∀! ∈ R, x = x − !(ax − b). (1.4) L’idée est par exemple de proposer un algorithme de point fixe en construisant la suite xn de la façon suivante : xn+1 = xn − !(axn − b), x0 étant donné. (1.5) Montrons que si ! est astucieusement choisi, la suite xn converge géométriquement vers x. Introduisons les variables d’écart x̄n = xn − x. Elles vérifient : x̄n+1 = (1 − !a)x̄n . (1.6) |x̄n+1 | ≤ |1 − !a| |x̄n | ≤ |1 − !a|n+1 |x̄0 |. (1.7) Soit : Par conséquent, nous sommes assurés de la convergence dès que ! vérifie la double inégalité qui assure que le coefficient 1 − !a soit en module strictement inférieur à l’unité : 0 < a! < 2. (1.8) Par ailleurs, on notera que l’erreur est d’autant plus petite à même nombre d’itérations que l’on part proche de la solution (|x̄0 | petit). En outre, l’erreur diminue à chaque itération. On parle alors de méthodes auto-correctives. Introduction générale 15 y o xn xn+1 xn+2 x Figure 1.1. Schéma de l’algorithme itératif pour systèmes linéaires La figure 1.1 illustre la méthode que nous venons de décrire et qui contient les idées fondamentales d’un grand nombre de méthodes itératives pour résoudre les systèmes linéaires. Si nous revenons au cas de l’équation (1.1), l’analogue de l’algorithme que nous venons de décrire est : X n ∈ RN , X n+1 = X n − !(AX n − b), X 0 donné dans RN . (1.9) Il s’agit en fait d’une méthode de gradient lorsque A est une matrice symétrique. Elle permet de rechercher le minimum de la fonction ((., .)N est le produit scalaire euclidien dans RN et ||.||N est la norme associée) : X ∈ RN → 1 (AX, X)N − (b, X)N , 2 dans RN lorsque A est aussi définie positive (c’est-à-dire que toutes ses valeurs propres sont strictement positives). 1.2. Le calcul des valeurs propres des matrices Prenons l’exemple de la figure 1.2. Il s’agit d’un enfant jouant avec un POGO stick. La flexibilité de ce dernier est modélisée par un ressort de raideur k2 et sa masse est M . L’enfant a une masse m et la flexibilité de ses jambes est représentée par un ressort de raideur k1 . Notons x1 (respectivement x2 ), le déplacement de l’enfant (respectivement celui du POGO stick). Les équations du mouvement données par la 16 Méthodes numériques pour l’ingénieur x1 m Enfant k1 x2 M POGO stick k2 Figure 1.2. Enfant + POGO stick mécanique sont les suivantes : ! m1 ẍ1 = −k1 (x1 − x2 ), m2 ẍ2 = −k1 (x2 − x1 ) − k2 x2 . (1.10) On peut écrire ce système différentiel sous forme matricielle en posant : " avec la notation : m1 0 0 m2 # X= Ẍ + " x1 x2 " # k1 −k1 −k1 k1 + k2 , Ẍ = " ẍ1 ẍ2 # # X = 0, . (1.11) (1.12) On recherche alors des solutions harmoniques (dites stationnaires) de cette équation différentielle matricielle en posant a priori : X = X̂eiµt , µ ∈ R, X̂ #= 0. Les solutions éventuelles seront des fonctions sinus et cosinus du temps à la pulsation µ. En reportant dans l’équation (1.11), on obtient un problème aux valeurs propres : trouver λ = µ2 ∈ R+ , X̂ ∈ R2 , X̂ #= 0 tels que : λM X̂ = K X̂, (1.13) Introduction générale où : M= " m1 0 0 m2 # K= " k1 −k1 −k1 k1 + k2 # . 17 (1.14) Ainsi λ = µ2 est la valeur propre et X̂ le vecteur propre. Par ailleurs M est la matrice de produit scalaire. Notons que les deux matrices M et K sont symétriques et définies positives (exercice). Le problème (1.13) est équivalent au suivant : trouver λ ∈ R+ , X̂ ∈ R2 , X̂ #= 0 tels que : λX̂ = M −1 K X̂. (1.15) Cependant la matrice M −1 K qui intervient, n’est plus symétrique. Cette formulation n’est donc pas recommandée, car les matrices symétriques ont des avantages considérables, ne serait-ce que par le gain en stockage qu’elles permettent. On préfère donc la formulation qui suit. Posons : " √ # m1 0 √ D1/2 = et donc : (D1/2 )2 = D = M, (1.16) 0 m2 puis : (D −1/2 X̂ = D−1/2 Ŷ , Ŷ = D1/2 X̂ est l’inverse de D 1/2 (1.17) ), notre problème (1.13) est maintenant équivalent à : trouver λ ∈ R+ , Ŷ ∈ R2 , Ŷ #= 0 tels que : λŶ = D−1/2 KD−1/2 Ŷ . (1.18) La matrice A = D−1/2 KD−1/2 est cette fois symétrique et cela nous facilitera le travail. Nous verrons deux types d’approches pour calculer les éléments propres d’une telle matrice : les méthodes globales avec lesquelles on calcule toutes les valeurs et les vecteurs propres et les méthodes sélectives, qui permettent de choisir un nombre donné de valeurs et de vecteurs propres en fonction de la valeur propre qui nous intéresse. Donnons-en une idée sur le petit modèle que nous avons introduit ici. 1.2.1. La méthode globale de Jacobi Plaçons-nous dans le plan rapporté au système d’axes orthonormés (o; e1 , e2 ) et considérons une rotation d’angle θ qui transforme les vecteurs de base (e1 , e2 ) en (E1 , E2 ). Nous avons les relations : ! E1 = cos(θ)e1 + sin(θ)e2 , (1.19) E2 = − sin(θ)e1 + cos(θ)e2 La matrice de changement de base qui permet d’exprimer les coordonnées : X = (x1 , x2 ) 18 Méthodes numériques pour l’ingénieur dans la base (o; e1 , e2 ) en fonction de celles notées Y = (y1 , y2 ) dans la nouvelle base (o; E1 , E2 ) est P θ avec : Pθ = " cos(θ) − sin(θ) sin(θ) cos(θ) # , X = P θ Y Y = P −θ X. (1.20) Le problème de la recherche des valeurs propres de la matrice symétrique A définie plus haut, est donc équivalent à : trouver λ ∈ R+ , Ŷ ∈ R2 , Ŷ #= 0 tels que : λŶ = P −θ AP θ Ŷ = Aθ Ŷ , (1.21) soit, après un simple calcul (on pose c = cos(θ) et s = sin(θ), les coefficients de A étant notés aij ) : A = θ " c2 a11 + 2sca12 + s2 a22 ) , cs(a22 − a11 ) + (c2 − s2 )a12 cs(a22 − a11 ) + (c2 − s2 )a12 , c2 a22 + s2 a11 − 2sca12 # (1.22) En choisissant l’angle θ tel que : (c2 − s2 )a12 = cs(a11 − a22 ), on rend la matrice Aθ diagonale et les valeurs propres sont sur la diagonale de cette nouvelle matrice. Les vecteurs propres se déduisent sans difficulté. Or la relation précédente est équivalente à : 2a12 tan(2θ) = . a11 − a22 Soit : 1 2a12 π arctan( ) + k , k ∈ Z. 2 a11 − a22 2 π = a22 on choisit θ = . 4 θ= Si a11 A titre d’exercice le lecteur pourra appliquer cette méthode à notre petit problème avec les données suivantes : m1 = 1 = m2 , k1 = k2 = k. Il comparera pour se rassurer avec un calcul direct des valeurs propres en annulant le déterminant de la matrice A − λI qu’il explicitera. Introduction générale 19 1.2.2. La méthode sélective de la puissance itérée On sait qu’une matrice symétrique est diagonalisable dans une base de vecteurs propres orthonormés. C’est l’un des résultats fondamentaux de l’algèbre matricielle que nous utiliserons souvent dans ce cours. Désignons par W1 et W2 (respectivement λ1 et λ2 ), les deux vecteurs propres (respectivement les deux valeurs propres), de la matrice A. Considérons ensuite une suite de vecteurs construite de la façon suivante ((., .)N est le produit scalaire et ||.||N la norme associée) : X n+1/2 = AX n , X n+1 = X n+1/2 , λn = (X n+1/2 , X n )N , X 0 donné. ||X n+1/2 ||N Suppposons que λ1 > λ2 (elles sont toutes deux strictement positives puisque la matrice A est définie positive) et que (X 0 , W1 )N #= 0. Posons : X 0 = α1 W1 + α2 W2 , où : α1 = (X 0 , W1 )N , α2 = (X 0 , W2 )N , α1 #= 0. (1.23) On a alors par un simple calcul : λn = (A2n+1 X 0 , X 0 )N λ2n+1 α12 + λ2n+1 α22 1 2 = . 2 2n 2 ||AX 0 ||2N λ2n 1 α1 + λ2 α2 (1.24) On peut aussi écrire : λ2 2n+1 α2 2 ) ( ) λ1 α1 λ =λ [ ] →n→∞ λ1 . λ2 2n α2 2 1+( ) ( ) λ1 α1 1+( n 1 (1.25) La suite λn converge donc vers la plus grande valeur propre de A. De façon similaire, on établit que la suite de vecteurs X n converge vers ±W1 (suivant le signe du coefficient α1 ). Nous verrons alors que cette méthode peut permettre de calculer les valeurs propres et les vecteurs propres associés, voisines d’une valeur donnée à l’avance. On parle alors de méthode du shift (décalage). On peut aussi travailler avec plusieurs vecteurs itérés : c’est l’algorithme de la puissance itérée sur un sous-espace. Bien d’autres variantes seront discutées pour cette méthode qui a, en général, la faveur des ingénieurs de bureaux d’études. 1.3. L’optimisation Considérons N points distincts, classés par ordre croissant et notés xi et autant de valeurs désignées par yi . Désignons par {pk }, k = 1, P , un ensemble de P fonctions définies aux points xi . On se pose le problème de lissage suivant : $ $ min J(a), où J(a) = | ak pk (xi ) − yi |2 , (1.26) a={ak }∈RP i=1,N k=1,P 20 Méthodes numériques pour l’ingénieur La solution en a ∈ RP permet de définir une fonction : $ p(x) = ak pk (x), k=1,P qui passe au mieux (au sens des moindres carrés), par les valeurs yi aux N points xi . C’est le problème classique du lissage. Examinons rapidement quelques-unes de ses propriétés. Pour cela commençons par le cas où les fonctions {pk } sont les polynômes de degrés inférieurs ou égal à N − 1. La dimension de cet espace de polynômes est bien N , nous avons donc dans ce cas : N = P . On construit ensuite les N polynômes de Lagrange notés Λk , k = 1, N valant respectivement 0 au points xj , j ∈ {1, N }, j #= k et 1 en xk . Un calcul classique nous donne : Λ(x) = Considérons ensuite le polynôme : Πi=1,N, i%=k (x − xi ) . Πi=1,N i%=k (xk − xi ) p(x) = $ yk Λk (x). (1.27) (1.28) k=1,N Il vaut exactement yi aux points xi pour i = 1, N . Choisissons alors pour ak les coefficients des monômes xk dans l’expression de p. La fonctionnelle J(a) s’annule. Comme elle est positive, on a trouvé un minimum. C’est bien le seul possible dans l’ensemble de recherche. En effet, supposons qu’il en existe un autre - soit b ∈ RN % et notons q(x) = k=1,N bk xk le polynôme associé. On aurait : r(xi ) = p(xi ) − q(xi ) = 0 ∀i = 1, N. Par conséquent, le polynôme r qui est de degré N − 1 s’annule en N points distincts. En d’autres termes il admet en facteur un polynôme de degré N et donc est nul ! Ceci prouve l’unicité. Plaçons-nous maintenant dans un cas moins évident. Supposons que P < N et considérons un ensemble de P fonctions définies aux points xi . Nous faisons une hypothèse de qualification sur les P vecteurs Xk = {pk (xi )} ∈ RN , i = 1, N . Nous supposons qu’ils sont linéairement indépendants. Si a ∈ RP réalise le minimum de la fonction J. Nous avons par exemple : ∀k ∈ {1, P }, ∀bk ∈ R, b = (a1 , a2 , ..., ak−1 , bk , ak+1 , ...aP ), J(a) ≤ J(b). (1.29) En explicitant, l’expression de J(b) en fonction de bk nous obtenons un polynôme du second degré de la forme : J(b) = Ak b2k + 2Bk bk + Ck , Introduction générale 21 dont le minimum est atteint en ak de telle sorte que : Ak ak + Bk = 0. Explicitons les coefficients Ak et Bk . Nous obtenons ainsi : $ $ $ $ yi pk (xi ). aj pk (xi )pj (xi ) − Ak = pk (xi )2 , Bk = j=1,N, j%=k i=1,N i=1,N i=1,N Le vecteur a est donc solution du système matriciel suivant : Qa = d avec : Q= % % p (x )2 . i=1,N p1 (xi )p2 (xi ) .... %i=1,N 1 i .... i=1,N p1 (xi )p2 (xi ) .... % 2 .... ..... i=1,N pN (xi ) % y p (x ) %i=1,N i 1 i yi p2 (xi ) i=1,N . . d= .% i=1,N yi pk (xi ) . . . (1.30) (1.31) La matrice Q = (qkl ) est manifestement symétrique. En fait, nous allons voir que grâce à l’hypothèse de qualification énonçée précédemment elle est aussi définie positive. Ceci nous permettra aussi d’assurer qu’elle est inversible. Désignons par qkl les coefficients de la matrice Q. Notons Z = {zk } un vecteur de RP . Considérons ensuite l’expression (forme quadratique associée à Q) : $ $ $ (QZ, Z) = zk zl qkl = zk zl pk (xi )pl (xi ), k,l=1,P i=1,N k,l=1,P qui est aussi égale à : $ [ $ i=1,N k=1,P 2 zk pk (xi )] ≥ 0. Par conséquent Q est positive. Par ailleurs si : $ zk pk (xi ) = 0, k=1,P 22 Méthodes numériques pour l’ingénieur alors l’hypothèse de qualification (indépendance linéaire des vecteurs pk (xi )), nous permet d’assurer que : ∀k = 1, N, zk = 0 et par conséquent la matrice Q est bien définie positive. Toutes ses valeurs propres sont strictement positives et donc elle est inversible. Ainsi le problème de lissage que nous avons envisagé est bien posé et se ramène à la résolution d’un système linéaire qui de plus est associé à une matrice symétrique définie positive. Remarque 1.3.1 Le choix de la fonctionnelle à minimiser que nous avons retenue dans cet exemple est arbitraire et relève de l’intuition de l’ingénieur. Néanmoins, les critères quadratiques présentent l’immense avantage de conduire à des systèmes linéaires. Cela justifie leur importance dans les problèmes d’optimisation. Remarque 1.3.2 % Dans ce second exemple rien ne garantit que les valeurs de la fonction lissée : p = k=1,P ak pk prennent les valeurs yi aux points xi . Mais on peut décider par exemple d’un intervalle autorisé autour de ces valeurs. Par exemple de la forme suivante : ∀i ∈ {1, N }, yi − εi ≤ p(xi ) ≤ yi + εi , (1.32) où εi sont des tolérances fixées par des considérations liées au problème à résoudre. On obtient alors un nouveau problème d’optimisation avec des contraintes. Nous verrons comment procéder pour résoudre ce type de problèmes dits sous contraintes dans la partie consacrée à l’optimisation. 1.4. Le contrôle des systèmes linéaires Considérons l’équation différentielle suivante qui par exemple modélise l’évolution de la température T (mesurée par rapport à la température extérieure) en un point donné d’une pièce et c représente la quantité de chaleur apportée par le chauffage. Le coefficient k représente les fuites thermiques dues à une mauvaise isolation et T0 est la température initiale. Ṫ (t) + kT (t) = c(t), ∀t > 0, T (0) = T0 . (1.33) Si on ne fait rien, c’est-à-dire c ≡ 0, la température évolue comme indiqué sur la figure 1.3. La solution analytique est : T (t) = T0 e−kt . (1.34) Imaginons maintenant qu’à l’instant t1 , la température atteigne la valeur T1 < T0 (ce Introduction générale 23 20 15 10 5 0 0 2 4 6 8 t Figure 1.3. Evolution de la température sans chauffage en fonction du temps Log(T1 /T0 ) qui donne t1 = − ) et qu’un thermostat mette le chauffage en route. On k suppose l’apport de chaleur constant : c(t) = c0 . La solution de l’équation (1.33) est : T (t) = T1 e−k(t−t1 ) + c0 [1 − e−k(t−t1 ) ]. k (1.35) Elle est représentée sur la figure 1.4. Dans un processus de régulation automatique, le thermostat arrêtera automatiquement le chauffage dès que la température sera repassée au-dessus de T0 (valeur 200 sur la figure 1.4 correspondant à un temps t2 + 3.7heures). Mais bien entendu, le temps de marche du chauffage dépend de la puissance de chauffe c0 et du coefficient de perte k. Par exemple si c0 ≤ kT1 il sera impossible de réchauffer la pièce. C’est ainsi que pour une chaudière donnée (puissance fixée par le constructeur), le seuil de c0 déclenchement devra être tel que T1 > . Sinon le coefficient de l’exponentielle est k négatif et la température demeure décroissante (voir figure 1.5). Par ailleurs, pour que l’asymptote soit au-dessus de la température de 200 , de façon à revenir en un temps c0 fini à la température de départ, il faut que : > 200 . La figure 1.6 montre le comk portement de la température dans le cas où cette condition supplémentaire ne serait pas vérifiée. On se pose alors le problème suivant : comment choisir T1 de façon à minimiser le coût du chauffage qui est de la forme (t2 − t1 )c0 ? 24 Méthodes numériques pour l’ingénieur 20 15 10 5 0 1 2 3 4 5 t Figure 1.4. Evolution de la température en fonction du temps avec un chauffage qui démarre à l’instant t=2 heures En fait la réponse à cette question devra également prendre en compte qu’un trop grand nombre de commutations risque d’user prématurément la chaudière. Par ailleurs, le nombre de points d’observation de la température n’est pas nécessairement unique (cas de plusieurs thermostats). Il existe par exemple de nombreuses pièces dans lesquelles on souhaite surveiller et réguler cette dernière (immeuble). On aboutit alors à un système différentiel et le problème généralisé fait largement appel à l’analyse numérique matricielle. Voilà très sommairement le type de problèmes que nous discuterons dans cette deuxième partie. 1.5. Les aspects aléatoires La plupart des coefficients qui interviennent dans les systèmes linéaires, dans un calcul de valeurs propres ou encore dans un problème d’optimisation, sont issus de mesures et par conséquent, entachés d’erreurs. En faisant des hypothèses statistiques sur les lois de répartitions de ces erreurs, on peut en déduire certains renseignements sur les lois de répartition des solutions recherchées. Bien que traitée de façon très incomplète, cette problématique est abordée et discutée dans la troisième partie. Introduction générale 20 16 12 8 4 0 1 2 3 4 5 t Figure 1.5. Cas d’une puissance de chauffage nettement insuffisante 20 16 12 8 4 0 1 2 3 4 5 t Figure 1.6. Réchauffement insuffisant pour revenir à la température initiale 25