Вы находитесь на странице: 1из 58

Universit Mohammed V Agdal

Facult des Sciences


Rabat

Application du processus d'Arnoldi la rsolution de l'equation de Sylvester

soutenu par Khal Oussama Le .../.../2009

Remerciements

Ce travail a t ralis au sein du laboratoire Mathmatique, Informatique et Applications (MIA) la Facult des Sciences, Rabat (FSR), Universit Mohammed V, Agdal Rabat. J'aimerai remercier Monsieurs A. Messaoudi professeur l'Ecole Normale Suprieure (ENS) de Rabat qui m'a beaucoup aid comprendre et rsoudre un grand nombre de questions dans mon sujet, je tiens le remercier galement pour ses prcieux conseils notament en matire de prsentation et d'organisation de ce travail. Il a t trs patient et comprhensif avec moi le long de mon travail malgr mes innombrables maladresses. Je remercie galement Monsieurs S. El Hajji professeur la Facult des Sciences de Rabat (FSR) d'tre l'coute et de m'avoir oert l'opportunit d'tre en DESA MIA, chose qui m'a permis d'accomplir ce travail par la suite. J'exprime mes remerciments Monsieurs J. Mikram professeur la Facult des Sciences Rabat (FSR) de m'avoir honnor en acceptant de prsider le jury ; et aussi Monsieurs L. Berrahmoune professeur l'Ecole Normale Suprieure (ENS) de Rabat qui m'a accord son temps prcieux pour juger ce travail. Au passage, je remercie profondement Monsieurs K. Jbilou Professeur l'Universi du Littoral en France d'tre l'origine de ce sujet et sans qui ce travail n'aurai jamais vu le jour. Enn, je remercie tous mes collgues du DESA MIA de leur gentillesse et convivialit et je remercie particulirement ma famille qui m'a soutenu, et continue de le faire, tout au long de mon parcours acadmique.

Table des matires

Introduction 1 Prliminaire
1.1 Contrle des systmes linaires . . . . . . . . . . . . . . . 1.1.1 Systmes linaires dynamiques . . . . . . . . . . . 1.1.2 Contrlabilit et observabilit . . . . . . . . . . . Stabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . Observateur de Luenberger et quation de Sylvester . . . Le problme de placement partiel des ples . . . . . . . . Processus d'Arnoldi . . . . . . . . . . . . . . . . . . . . . 1.5.1 polynme minimal et le polynme caractristique La mthode du GMRES et son implmentation . . . . . 1.6.1 Dnition de la mthode du GMRES . . . . . . . 1.6.2 Implmentation de la mthode du GMRES . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . Position du problme . . . . . . . . . . . Application du processus d'Arnoldi . . . 2.2.1 Mthode de Saad et Datta . . . . 2.2.2 Placement des ples de la matrice Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . de Hessenberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

i
. 1 . 1 . 2 . 3 . 3 . 5 . 6 . 8 . 9 . 9 . 10 . 16 . . . . . . . . . . .

1.2 1.3 1.4 1.5 1.6

1.7 2.1 2.2

2 Rsolution de l'quation de Sylvester

17

2.3 3.1 3.2 3.3 3.4 3.5 3.6

17 19 19 21 25 27 28 29 31 31 31

3 Premire tape de la mthode de Saad et Datta

Prsentation du problme . . . . . . . . . . . . . . . Approche par fraction rationnelle . . . . . . . . . . . Rsolution de qm (A)x = c par la mthode du GMRES Le choix des poles . . . . . . . . . . . . . . . . . . . . Algorithme de rsolution de l'quation de Sylvester . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 3

27

TABLE DES MATIRES

4 Essais numriques
4.1 4.2 4.3

Matrice de Gear . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Matrice LFSS . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Reprsentation graphiques des spectres . . . . . . . . . . . . . 37

33

Conclusion Rsum Annexes Algorithmes sous Matlab Bibliographie

39 41 41 43 50

Introduction

L'objectif de ce travail est de rsoudre l'quation de Sylvester, qui joue un rle important dans la construction de l'observateur de Luenberger et aussi dans la thorie de contrle, de communication, modles de rduction et les mthodes numriques pour la rsolution des quations direntielles [6]. On s'intresse au rle de l'quation de Sylvester dans la construction de l'observateur de Luenberguer associ au systme de contrle suivant

x(t) = Ax(t) + Bu(t) y(t) = Dx(t)


avec A Mn (R), B Mnk (R), D Mmn (R), y Rm , x Rn et u Rk . Et qui donne une approximation z(t) Rm du vecteur d'tat x(t). Il s'agit d'une variante de l'quation de Sylvester classique, et est de la forme AX XH = CG o X Mnm (R), H Mm (R) et G Mm (R) sont dterminer et les matrices A Mn (R), et C Mnm (R) sont donnes. Parmi les mthodes proposes pour rsoudre l'quation de Sylvester on trouve la mthode de Hessenberg-Schur qui consiste choisir H Mm (R) matrice relle de Schur et G Mm (R) matrice identit Im mais l'application de cette dernire n'est pas aise si A est large et creuse [3]. Il est donc intressant de voir d'autres mthodes pour ce genre de situations (A large et creuse) et c'est pour cette raison qu'on appliquera la mthode de Saad et Datta [3]. Avant de procder la rsolution, remarquons que les matrices H , G et X doivent vrier les conditions suivantes [6] : 1. H stable 2. X bien conditionne 3. la paire {H, G} est contrlable. car si H est stable (tous les lments du spectre de H sont partie relle ngative) on peut montrer que l'approximation z(t) de x(t) obtenue par l'observateur de Luenberger vrie e(t) = z(t) Xx(t) tend vers 0 quand t tend i

ii

INTRODUCTION

vers . En plus l'ensemble des ces trois matrices contribuera une bonne approximation z(t) de x(t). Notons aussi que si le spectre de A et le spectre de H sont disjoints, il existe une unique matrice X qui satisfait l'quation de Sylvester. Supposons que G = Im (sans perte de gnralit, car le produit de G et C est une matrice de type n m ) et que la matrice C est de rang 1 ; l'quation alors devient

AX HX = ceT , m
ce qui donne l'ide d'appliquer le processus d'Arnoldi avec un premier vecteur v1 tel que vm+1 = c ; on trouvera ce vecteur en exploitant le fait que tous les vecteurs de la base d'Arnoldi du sous-espace de Krylov associ A et v1 sont tels que vi+1 = qi (A)v1 o qi est un polynme de degr i. Le processus d'Arnoldi calculera ensuite, en utilisant v1 , la matrice Hm , matrice de Hessenberg suprieure, qui n'est pas forcment stable ; on va donc procder un placement de ples pour la stabiliser ; ce qui veut dire qu'on prsente un algorithme en deux tapes principaux 1. trouver v1 tel que vm+1 = c en trouvant la solution de c = qm (A)v1 par la mthode du GMRES [12]. 2. appliquer l'algorithme de placement des ples, propos par Saad et Datta [3] sur la matrice Hm pour la stabiliser. On pourra ensuite calculer la solution X partir des rsultats obtenus. Le chapitre 1 sera rserv quelques rappels, sur la thorie de contrle, sur la mthode du GMRES et le processus d'Arnoldi. Au chapitre 2 on reviendra sur l'quation de Sylvester et on verra comment exploiter le processus d'Arnoldi pour la rsoudre. Au chapitre 3 on expliquera comment obtenir v1 tel que vm+1 = c, puis on clturera ce travail par des essais numriques sous matlab.

Chapitre 1 Prliminaire

Dans ce chapitre, on rappelle quelques notions sur la thorie du contrle, on enchane ensuite avec des rappels sur le processus d'Arnoldi [9] et on clturera ce chapitre par un rappel sur la mthode du GMRES [12]. Sauf mention du contraire, dans tout ce chapitre A Mn (R), C Mmn (R), B Mnr (R) et x0 Rn .

1.1

Contrle des systmes linaires

1.1.1 Systmes linaires dynamiques


Dnition 1
[10] :Un systme linaire dynamique discret admet la description interne sous forme de reprsentation d'tat suivnate :

xk+1 = Axk + Buk yk = Cxk

(1.1)

o xk Rn est le vecteur d'tat et sa dimension est celle du systme ; yk Rm sortie du systme ; uk Rr dite entre du systme.

Dnition 2

[10] : Un systme linaire dynamique continu admet la description interne sous forme de reprsentation d'tat suivante :

x(t) = Ax(t) + Bu(t) y(t) = Cx(t)

(1.2)

o x(t) Rn est le vecteur d'tat et sa dimension est celle du systme ; y(t) Rm sortie du systme ; u(t) Rr dite entre du systme.
1

CHAPITRE 1.

PRLIMINAIRE

1.1.2 Contrlabilit et observabilit


Contrlabilit Dnition 3 [1]
Le systme dni par (1.2) est dit contrlable si il existe une fonction t u(t), 0 t, dite contle ou commande, permettant le passage du systme de l'etat initial x0 = x(t0 ) un etat nal quelconque x(t1 ) (0 t t1 < ). [1] Le systme dni par (1.1) est dit contrlable si il existe une famille ni {u0 , u1 , ..., uN 1 } permettant le passage du systme de l'etat initial x0 un etat nal xN (0 < N < ).

Dnition 4

Proposition 1

caractrisation de la contrlabilit [10, 1] On considre le systme dni par (1.2), les proprits suivante sont quivalentes :

1. la paire {A, B} est dite contrlable 2. la matrice = B AB A2 B . . . An1 B est de rang maximal i.e : rg() = n (critre de controlabilit de Kalman ) 3. rg(A I, B) = n (A) o (A) est le spectre de A.
Pour les systmes discrets (dnis par (1.1)) la controlabilit est donne par le critre de Kalman [1].

systme dni par (1.2) est observable, si pour tout 0 t t1 , il existe t1 > 0 tel que l'etat initial x0 peut tre dtermin de manire unique partir de u(t) et y(t).

Observabilit Dnition 5 Le

Dnition 6

Le systme dni par (1.1) est observable, si il existe un rang N < tel que l'etat initial x0 peut tre entirement dtermin de manire unique partir de la connaissance des entrs {u0 , u1 , ..., uN 1 } et des sorties y0 , ..., yN . Un systme linaire (continu ou discret) est dit observable (ou la paire {A, C} est dite observable) si la matrice dnie par = C CA CA2 . . . CAn1 est de rang maximal i.e :
Caractrisation d'observabilit [10]

Proposition 2

{A, C} observable rg() = n

Proposition 3

[10]Dualit La paire {A, C} est observable ssi la paire {AT , C T } est contrlable.

1.2.

STABILIT

1.2

Stabilit

Cas discret : On considre le systme linaire suivant


xk+1 = Axk x0 donn
(1.3)

Dnition 7

[1] On dira que le systme (1.3) est stable si le spectre de la matrice A est l'intrieur du cercle unit (dans le plan complexe) i.e :

(A) D(0, 1)

Cas continu : On considre le systme linaire suivant


x(t) = Ax(t) x(0) = x0 t>0
(1.4)

Dnition 8

[1] On dira qu'un systme de type (1.4) est stable si toutes les valeurs propres de A sont partie relle ngative. i.e :

( (A))
1.3

() R

Observateur de Luenberger et quation de Sylvester

En pratique, on a pas accs toutes les composantes de l'tat x(t) du systme (1.2) (ni x0 ) de manire explicite ; on construit alors une approximation z(t) pour le vecteur d'tat x(t). Et c'est dans cet horizon que l'on utilise l'observateur de Luenberger [1].

Dnition 9

[1] L'observateur de Luenberger associ au systme de contrle (1.2) est donn par

z(t) = F z(t) + Dy(t) + P u(t) z(0) = z0


o F, D Mm (R), P Mmk (R) sont dterminer.

(1.5)

le vecteur z(t), donn par (1.5), est une approximation de x(t) si l'erreur e(t) = z(t) Xx(t) tends vers zro quelque soit les conditions initiales x(0), z(0) et u(t), ce qui ne peut avoir lieu, sauf si les conditions du thorme suivant sont vries.

CHAPITRE 1.

PRLIMINAIRE

[1] Le systme (1.5) est le systme observateur associ au systme (1.2), et z(t) est une approximation de Xx(t) dans le sens o l'erreur e(t) = z(t) Xx(t) 0 quand t pour toute condition initiales x(0), z(0) et u(t) si les 3 conditions suivantes sont vries :

Thorme 1

1) XA F X = DC , 2) P = XB , 3) F stable. Preuve
En drivant la relation e(t) = z(t) Xx(t) on obtient

e(t) = z(t) X x(t) = F z(t) + Dy(t) + P u(t) X(Ax(t) + Bu(t)),

(1.6)

on utilise y(t) = Cx(t) et on ajoute et on retranche F Xx(t) dans (1.6), on obtient :

e(t) = F e(t) + (F X XA + DC)x(t) + (P XB)u(t),

(1.7)

si 1) et 2) sont vries la relation (1.7) devient une quation direntielle de premier ordre donne par

e(t) = F e(t)
et si 3) est vrie on a evidement lim e(t) = 0 quelque soit les conditions initiales x(0),z(0) et u(t). Et pour dterminer les matrices F , D et P , on utilise l'quation de Sylvester ; celle-ci est donne par l'quation matricielle suivante
t

XA F X = DC

(1.8)

o A et C sont donnes, et X est la solution trouver. Son existence et son unicit est assure par la condition [6] :

(F ) (A) =

(1.9)

On verra au chapitre 2 comment rsoudre cette quation par le processus d'Arnoldi.

1.4.

LE PROBLME DE PLACEMENT PARTIEL DES PLES

1.4

Le problme de placement partiel des ples

On considre le systme de contrle (de type (1.2)) suivant

x(t) = Ax(t) + bu(t) y(t) = Cx(t)

(1.10)

(o b Rn ) et on suppose que le vecteur f Rn est tel que u = f T x(t) ainsi la solution du systme (1.10) s'crit [7]

x(t) = exp[(A bf T )t]x0


il serait donc souhaitable que x(t) soit stable c..d

(1.11)

t+

lim x(t) = 0

(1.12)

on considre alors (A) = {i }n le spectre de A et on suppose que i=1

(i ) 0, pour i = 1, ..., m (i ) < 0, pour i = m + 1, ..., n

(1.13) (1.14)

et soit P = {1 , ..., m } C avec (i ) < 0. Ainsi donc (1.12) ne peut tre vrie que si A bf T est stable, autrement dit que si on a (d'aprs la dnition 8)

(A bf T )

() R

(1.15)

le choix du vecteur f Rn doit donc tre orient vers un remplacement des valeurs propres instables i.e

(A bf T ) = P {i }n i=m+1

(1.16)

an de vrier la relation (1.12). En rsum on dnit le problme de placement partiel des ples comme suit [7]

Dnition 10
n

Soit P = {1 , ..., m } C avec (i P) (i ) < 0 et soit b R on dnit le problme de placement partiel des ples de la matrice A par : choisir f Rn tel que (A bf T ) = P {i }n i=m+1

CHAPITRE 1.

PRLIMINAIRE

Remarque 1

Lorsqu'il s'agit d'un systme dynamique discret, le problme de placement de ples consiste mettre les valeurs porpres autour de l'origine ( l'intrieur du cercle unit) c'est dire qu'on reprend la mme dnition 10 sauf que l'ensemble P D(0, 1) et pour le spectre de A on a :

|i | 1, pour i = 1, ..., m |i | < 1, pour i = m + 1, ..., n


.
1.5 Processus d'Arnoldi

Le processus d'Arnoldi utilise la mthode de Gram-Schmidt [9] pour la construction de la base orthonormal du sous-espace de Krylov. Ce procd est souvent utilis dans les mthodes de projection sur les sous-espace de Krylov an de rsoudre les systmes linaires de grande taille. Cette section sera rserve ce processus.

[9] On appelle sous-espace de Krylov d'ordre k associ A pour v = 0 le sous-espace engendr par les vecteurs v, Av, ..., Ak1 v i.e :

Dnition 11

Kk (A, v) = vect{v, Av, ..., Ak1 v}

Remarque 2

Pour z Kk (A, v) on a

z Kk (A, v) q Pk1 tel que z = q(A)v


Une base orthonormal du sous-espace de Krylov Kk (A, v), est construite par le processus d'Arnoldi [9].

Algorithme 1

Processus d'Arnoldi -choisir v = 0 et calculer v1 = v/ v , -pour j = 1, ..., k faire calculer hi,j = (Avj , vi ) pour i = 1, ..., j
j

calculer vj = Avj

hi,j vi ,
i=1

hj+1,j = vj , si hj+1,j = 0 arrter, vj vj+1 = hj+1,j , -Fin j.

1.5.

PROCESSUS D'ARNOLDI

On pose Vk = [v1 , ..., vk ], Hk = (hi,j )(1i,jk) la matrice de Hessenberg suprieure Hk et Hk = la matrice (k + 1) k de Hessenberg suprieure (o T h k+1,k ek 0 . . e ek = . est le k i`me vecteur de la base cannonique de Rk ). 0 1 On a donc les rsultats suivants [9].

AVk = Vk Hk + hk+1,k vk+1 eT , k k, AVk = Vk+1 H T Vk AVk = Hk .

(1.17) (1.18) (1.19)

Proposition 4

[4] les vecteurs {v1 , ..., vk } gnrs par l'algorithme 1 constituent une base orthonorme du sous-espace de Krylov Kk (A, v) et on a en plus pour i = 1, ..., k :

vi = qi1 (A)v1
avec qi1 un polynme de degr i 1
[9].

(1.20)

En pratique, on utilise le processus d'Arnoldi modi car il est plus stable

Algorithme 2

Le processus d'Arnoldi modi -choisir v quelconque, calculer = v et v1 = v/ -pour j = 1, ..., k faire vj = Avj pour i = 1, ..., j faire hi,j = (j , vi ) v vj = vj hi,j vi f in i hj+1,j = vj si hj+1,j = 0 arrter vj+1 = vj /hj+1,j -f in j .

CHAPITRE 1.

PRLIMINAIRE

1.5.1 polynme minimal et le polynme caractristique


Dnition 12
[4] q est le polynme minimal de A pour v si q est le polynme de plus petit degr vriant  le coecient dominant de q est egal 1  q(A)v = 0.

Remarque 3

-D'aprs le thorme de Cayley-Hamilton le ploynme minimal de A pour v est au plus de degr gal n.

Proposition 5
(hm+1,m

[4] Le processus d'Arnoldi s'arrte l'tape m = 0), o m est le degr du polynme minimal de A pour v

D'aprs la proposition 4 les vecteurs vi s'crivent sous forme vi = qi1 (A)v1 o qi1 (A) est un polynme de degr i1. Notons par m le degr du polynme minimal de A pour v1 on a

qi1 (t) =

1 hi,i1

i1

(tqi2 (t)
j=1

hj,i1 qj1 (t)) pour tout i = 1, ..., m,

(1.21)

et pour le cas o i = m + 1 on a
m

qm (t) = tqm1 (t)


i=1

hi,m qi1 (t).

Il existe une relation entre le polynme (1.21) et le polynme caractristique de la matrice Hi de Hessenberg suprieure d'ordre i ; cette relation est donne par le thorme suivant.

Thorme 2

[4] Soit m le degr du polynme minimal de A pour v , alors pour i = 1, ..., m on a det(tIi Hi ) = i qi (t) (1.22)
En consquence on a le corollaire suivant

[4] pour i = 1, ..., m (m le degr du polynme minimal de A pour v ) le polynme qi est le polynme caractristique de la matrice intermdiaire Hi (calcule par l'algorithme 1) une constante multiplicative prs.
Ce corollaire donne la relation entre le polynme qi (t) tel que vi+1 = qi (A)v1 et le polynme caractristique de la matrice Hi . Ce rsultat nous permettra de dmarrer la mthode de Saad et Datta [3] pour la rsolution de l'quation de Sylvester.

corollaire 1

1.6.

LA MTHODE DU GMRES ET SON IMPLMENTATION

1.6

La mthode du GMRES et son implmentation

On considre le systme linaire

Ax = b,
o b Rn et la matrice A est suppose relle et inversible.

(1.23)

1.6.1 Dnition de la mthode du GMRES


La mthode du GMRES (Generalized Minimal RESidual [12]) est conue pour rsoudre le systme (1.23). Elle est dnie par : tant donn x0 une approximation quelconque de x, solution du systme (1.23), et r0 = b Ax0 le rsidu associ x0 . A l'tape k m (m tant le degr du polynme minimal de A pour v1 = r0 / r0 ), trouver le vecteur xk , approximation de x, tel que

xk x0 + Kk (A, r0 ), rk AKk (A, r0 ).

(1.24) (1.25)

On utilise le processus d'Arnoldi pour construire une base orthonorme du sous-espace de Krylov Kk (A, r0 ), v1 ,...,vk (rk = b Axk est le rsidu associ xk ) et on pose :

Vk = [v1 , ..., vk ],
donc (1.24) devient

xk = x0 + Vk , avec = 1 2 . . . k (AVk )T rk = 0 (AVk )T (b Axk ) = 0 (AVk )T (b A(x0 + Vk )) = 0 (AVk )T r0 (AVk )T AVk = 0 (AVk )T AVk = (AVk )T r0 , Rk , et la relation (1.25) se traduit par

10

CHAPITRE 1.

PRLIMINAIRE

or (AVk )T AVk est toujours inversible donc

= [(AVk )T AVk ]1 (AVk )T r0 ,


ce qui donne

xk = x0 + Vk [(AVk )T AVk ]1 (AVk )T r0 .

Proposition 6

[12] Pour la mthode du GMERS, on a :

rk AKk (A, r0 ) = argminyRk r0 AVk y = [(AVk )T AVk ]1 (AVk )T r0 ,

Remarque 4

La proposition 6 montre que le problme d'orthogonalit se ramne un problme de minimisation.

Algorithme 3

Algorithme de la mthode du GMRES

1. choisir x0 puis calculer r0 = b Ax0 , = r0 et v1 = r0 /

2. utiliser le processus d'Arnoldi modi pour calculer v1 , ..., vk et Hk 3. rsoudre argminyRk e1 Hk y = yk


4. calculer xk = x0 + Vk yk

1.6.2 Implmentation de la mthode du GMRES


Pour rsoudre le problme de minimisation (tape 3 Algorithme 3) on a recours (d'aprs les travaux de Saad et Schultz [12]), aux rotations de Givens pour dcomposer la matrice Hk en produit d'une matrice triangulaire Rk et une matrice orthogonal Qk . Si on ralise une telle dcomposition on aura

Hk = Qk Rk , avec Qk Mk+1k+1 (R), Rk = Rk et Rk triangulaire d'ordre k . 0T Donc le problme de minimisation de l'tape 3 de l'algorithme 3 donne e1 Hk y = e1 Qk Rk y, = Qk QT e1 Qk Rk y k = Qk (QT e1 Rk y), k

(car Qk QT = Ik+1 ), k

1.6.

LA MTHODE DU GMRES ET SON IMPLMENTATION

11

Qk est orthogonal donc conserve la norme, alors on a e1 Hk y = = Qk (QT e1 Rk y) k (QT e1 Rk y) , k 1 . . . k

1 . on pose QT (e1 ) = gk = . et gk = . k k+1 on obtient gk k+1

gk Rk y

= = =

Rk y 0
2

gk Rk y k+1 gk Rk y
2

+ |k+1 |2 ,

en passant au minimum on obtient


1 yk = Rk gk Rk .

(1.26)

Pour dcomposer la matrice Hk on dnit la matrice de rotation de Givens i 0 ... ... .. .. . ... . 0 . . . .. 1 0 . . . ... 0 . ci i = . . . . . . 0 si . . ... 0 0 . . . ... ... ... . 0 ... ... ... 1 ... ... ... 0 . ... ... ... . . . 0 0 ... . . . si 0 . . . . . . ci 0 . . . . . .. . . . 0 1 . .. .. . . 0 ... ... ... 0 1 ,

o les si et ci sont tels que s2 + c2 = 1 (ci = cosi , si = sini ). i i (0) On pose Hk = Hk et pour i = 1, ..., k on a
(i) (0) (i) i ...2 1 Hk = Hk = (hl,m ),

12 et on pose

CHAPITRE 1.

PRLIMINAIRE

QT = k k1 ...1 , k

ainsi la rsolution du problme de minimisation se fait par tapes comme suivant tape 1 on calcule h c1 = 2 1,1 2

s1 =
donc

(h1,1 +h2,1 ) h2,1

(h2 +h2 ) 1,1 2,1

QT (e1 ) = 1 = = = g1 ,

c1 s 1 0 s1 c1 0 0 0 1 . .. .. . . . . 0 ... ... c1 s1 0 . . . 0 (1) 1 (1) 2 . . . 0

... ... ... .. . 0

0 0 0 . . . 1

0 . . . . . . 0

QT (Hk ) = 1 Hk 1 = Hk =
(1)

(0)

(0)

h11 0 . . . . . . . . . 0

(1)

h12 . . . (1) h22 . . . (1) . . . h32 .. . 0 . .. . . . 0

(1)

(1) h1k (1) h2k (1) . . . h3k . .. . . . .. (1) . hkk (1) . . . 0 hk+1,k ... ...

1.6.

LA MTHODE DU GMRES ET SON IMPLMENTATION

13

tape 2 de mme on calcule

c = 2 s = 2
alors

h2,2 ((h2,2 )2 +(h3,2 )2 )


(1) h3,2 (1) (1) ((h2,2 )2 +(h3,2 )2 ) (1) (1)

(1)

QT (e1 ) = 2 (1 (e1 )) 2 = 2 (QT (e1 )) 1 = 2 g1 1 0 0 0 0 c2 s 2 0 0 s2 c2 0 = 0 0 0 1 . .. .. .. . . . . . 0 ... ... ... (1) 1 c (1) 2 2 (1) s2 2 = 0 . . . 0 = = g2 , 1 (2) 2 (2) 3 0 . . . 0
(2)

... ... ... ... .. . 0

(1) 1 (1) 2 0 . . . . . . 1 0 0 0 0 0 . . .

14 donc

CHAPITRE 1.

PRLIMINAIRE

(2) (1) 1 = 1 , (2) (1) = c2 2 , 2 (2) = s (1) , 2 2 3

QT (Hk ) = 2 Hk 2 1 0 0 0 ... 0 0 c2 s 2 0 . . . 0 0 s2 c2 0 . . . 0 = 0 0 0 1 ... 0 . .. .. .. .. . . . . . . . . . 0 ... ... ... 0 1 (2) (2) (2) h11 h12 h13 . . . . . . 0 h(2) h(2) . . . . . . 23 22 . (2) . 0 h33 . . . . . . . . . . h(2) . . . . . . = . . 43 . . . .. .. . . . . . 0 . . . . .. .. . . . . . . . . 0 0 0 ... 0 =
(2) Hk

(0)

(1)


(2)

h11 0 . . . . . . . . .

(1)

h12 . . . (1) h22 . . . (1) . . . h32 .. . 0 . .. . . . 0

(1)

h1k (2) h2k (2) h3k . . . . . . (2) hkk (2) hk+1,k

(1) h1k (1) h2k (1) . . . h3k . .. . . . .. . h(1) kk (1) . . . 0 hk+1,k ... ...

en gnral tout tape i on a

QT (e1 ) = i (i1 ...1 (e1 )) i = i (QT (e1 )) i1 = i gi1

1.6.

LA MTHODE DU GMRES ET SON IMPLMENTATION

15

= = = gi ,
avec

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

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

... ... 0 ci si 0

... ... ... 0 ... ... ... (i) 1 (i) 2 . . . (i1) ci i (i1) si i 0 . . . 0

... ... ... 0 . . ... ... ... . . 0 0 ... . . . si 0 . . . . . . ci 0 . . . . . .. . . . 0 1 . .. .. . . 0 ... ... ... 0 1

(i1) i1 (i1) i 0 . . . 0

1 (i1) 2 . . .

(i1)

s = i c = i

hi+1,i (hi,i

(i1)

(i1) 2 (i1) ) +(hi+1,i )2 (i1) hi,i (i1) 2 (i1) (hi,i ) +(hi+1,i )2

, ,

o les si et ci sont tels que s2 + c2 = 1 (ci = cosi , si = sini ). i i le vecteur gi est donn par

(i) i gi = (i) i+1 0 . . . 0

1 (i) 2 . . .

(i)

16 avec

CHAPITRE 1.

PRLIMINAIRE

(i) (i1) j = j j = 1, ..., i 1, (i) (i1) = ci i , i(i) (i1) i+1 = si i ,


(i) (i)

uniquement les composantes i et i+1 qui changent tout tape i.

QT (Hk i

(i1)

) = i Hk = Hk =
(i)

(i1)

h11 . . . h1i h1,i+1 . . .. . . . 0 . . . .. . (i) . . . hii . . . .. (i) . . 0 hi+1,i+1 . . .. . . 0 h(i) . i+2,i+1 . .. . .. . . . . . . 0 ... 0 ...
(i) (i)

(i)

(i)

(i)

... ... ... ... .. . .. . 0

h1k . . . . . . . . . . . .

(i)

hkk (i) hk+1,1

(i)

toute tape i seules les termes hi,i et hi+1,i qui seront modis :

hi,i = ci hi,i (i) hi+1,i = 0.

(i)

(i1)

+ si hi,i+1 ,

(i1)

Ainsi le vecteur yk , solution du problme de minimisation ( l'tape 3 de l'algorithme 3 ), est obtenu partir de l'quation suivante

Rk yk = gk ,
ce qui conrme la relation donn par (1.26).
1.7 Conclusion

On a vu dans ce chapitre des rappeles pour la rsolutions de l'quation de Sylvester donne par AX XH = CG, notament la condition d'unicit et d'existance de la solution X . On introduira au prochain chapitre le problme pos par cette quation et on reviendra en detail sur sa rsolution en utilisant le processus d'Arnoldi.

Chapitre 2 Rsolution de l'quation de Sylvester

Le but de ce chapitre est de rsoudre

AX XH = CG, (H) = {1 , ..., m },

(2.1)

en appliquant le processus d'Arnoldi, o A Mn (R), C Mnm (R) sont donnes et H Mm (R), X Mnm (R), G Mm (R) sont trouver. On verra aussi comment obtenir la deuxime galit donne par l'expression ci-dessus. Sauf mention du contraire, dans tout ce qui suit les matrices A, X , H , C , G sont dnis comme ci-dessus et P = {1 , ..., m } est un ensemble arbitraire de m nombres complexes partie relle ngative et dirents deux deux, o m est susement infrieur n.

2.1

Position du problme

Nous avons vu au chapitre 1, que la construction de l'observateur de Luenberger ncessite la rsolution de l'quation de Sylvester. Pour rsoudre cette quation on peut utiliser la mthode de Hessenberg-Schur [3], mais cette dernire ne donne pas de bons rsultats si la matrice A est de grande taille, d'o l'utilisation de la mthode d'Arnoldi. On considre le systme de type (1.2)

x(t) = M x(t) + Bu(t), y(t) = Ex(t),


17

(2.2)

18

CHAPITRE 2.

RSOLUTION DE L'QUATION DE SYL VESTER

o E Mmn (R), M Mn (R), B Mnk (R), x(t) Rn u(t) Rk et y(t) Rm . L'observateur de Luenberger [1] associ ce systme est donn par

z(t) = F z(t) + Dy(t) + P u(t), z(0) = z0 ,

(2.3)

o les matrices F, D Mm (R), P Mmk (R) sont dterminer. D'aprs le thorme 1, vu au chapitre 1, l'erreur entre z(t) et x(t) donne par e(t) = z(t) Y x(t), (2.4) avec Y Mm,n (R), tend vers 0 l'inni si les trois conditions suivantes sont vries 1. Y M F Y = DE , 2. P = Y B , 3. F stable. La condition 1 n'est autre que l'quation de Sylvester, et comme on a vu au chapitre 1, elle admet une solution unique si

(F ) (M ) = ,
pour retrouver la relation (2.1) on pose

(2.5)

M = AT , F = H T , E = C T , D = GT , Y = X T
ainsi la condition 1 devient

X T AT H T X T = GT C T ,
c'est dire

(2.6)

AX XH = CG,

(2.7)

donc la condition d'existence et d'unicit de la solution donne par(2.5) devient

(H) (A) = .

(2.8)

En ce qui concerne la matrice G, on la choisit de faon que la paire {H, G} soit contrlable [7]. Ainsi les conditions requises pour rsoudre l'quation de Sylvester sont 1. H stable,

2.2.

APPLICATION DU PROCESSUS D'ARNOLDI

19

2. (H) (A) = , 3. la paire {H, G} contrlable. Puisque le produit des matrices G et C donne une matrice de type n m on peut supposer dans tout ce qui suit,et sans perte de gnralit, que la matrice G est la matrice identit ; donc l'quation rsoudre est

AX XH = C, (H) = P.

(2.9)

On remarque que si on multiplie C par un scalaire alors la nouvelle solution est obtenue en multipliant la matrice X par le mme scalaire. Dans tout ce qui suit on va tudier le problme dans le cas o C est de rang 1.
2.2 Application du processus d'Arnoldi

L'application du processus d'Arnoldi part de l'analogie prsente par ce dernier avec l'quation de Sylvester donne par (2.9), et cette analogie est la base de la mthode de Saad et Datta [3]. Et c'est ce qu'on fait dans ce qui suit.

2.2.1 Mthode de Saad et Datta


Puisque C est de rang 1, on peut l'crire sous la forme

C = (0, 0, ..., c),


ainsi on peut la rendre sous forme de produit matricielle

(2.10)

C = ceT , m
l'quation de Sylvester s'crit donc sous la forme

(2.11)

AX XH = ceT , m

(2.12)

ce qui nous rappelle le processus d'Arnoldi. En eet, cette dernire s'crit ( l'tape m) comme suivant :

AVm Vm Hm = hm+1,m vm+1 eT , m

(2.13)

donc on en dduit que pour rsoudre l'quation de Sylvester, il sut de trouver un vecteur v1 tel que le second membre soit ceT aprs excution de m

20

CHAPITRE 2.

RSOLUTION DE L'QUATION DE SYL VESTER

m tapes du processus d'Arnoldi (m infrieur au degr du polynme minimal de A pour v1 ). D'autres part la rsolution de l'quation (2.9) exige aussi que (H) = P, c'est dire que le polynme caractristique de la matrice Hm doit tre qm (t) = (t 1 )...(t m ),
Puisqu'on a (2.14)

pm (A)v1 = vm+1 ,
avec pm (t) = det(tIm Hm ) (d'aprs le corolaire 1, page 8), et sachant que le polynme caractristique de la matrice Hm s'crit

qm (t) = det(tIm Hm ),
on en dduit que

vm+1 = qm (A)v1 ,
Puisque on cherche avoir vm+1 = c avec R, on en dduit que v1 doit tre proportionnel c, en eet

qm (A)v1 = c [qm (A)]1 c v1 = v1 = [qm (A)]1 c


(2.15)

o est la constante de normalisation. Donc l'ide de base est d'excuter le processus d'Arnoldi en commenant par v1 (le vecteur obtenu par la relation (2.15)) puis faire un placement de ples sur la matrice Hm , pour avoir le spectre dsir, et a consiste trouver y Rm tel que

(H) = (Hm yeT ) = P, m

(2.16)

Ainsi la rsolution de l'quation de Sylvester consiste rsoudre deux problmes qui sont 1. trouver v1 solution de qm (A)x = c 2. trouver y Rm tel que la relation (2.16) soit vrie.

2.2.

APPLICATION DU PROCESSUS D'ARNOLDI

21

La premire tape consiste rsoudre qm (A)x = c c'est dire la rsolustion de m systmes savoir (A i I)xi = xi1 ce qui n'est pas simple. On donnera plus de dtails, au chapitre 3, propos de la rsolution de tels systmes. Le choix de l'ensemble P doit se faire de faons que ses lments ne soient pas proches des valeurs propres de la matrice A, car dans ce cas la solution x obtenue sera mal conditionne [6]. On s'occupera dans le chapitre 3 de la rsolution de ce problme. Le placement des ples de la matrice Hm se fait avec une procdure simple qu'on verra dans la section suivante.

2.2.2 Placement des ples de la matrice de Hessenberg


On prsentera dans ce paragraphe les ides de base pour cette tape.

Dnition 13 Thorme 3

conjugaison si :

Soit E = {1 , ..., j }. On dit que l'ensemble E est stable par

(j E) : j E
[6] Soit Hm la matrice de Hessenberg suprieure obtenue par le processus d'Arnoldi. On note par (Hm ) le spectre de la matrice Hm . On suppose que P (Hm ) = ,
m m1

s=
j=1

(Hm j I)e1 , =
j=1

h1 j+1,j

(2.17)

alors (Hm seT ) = P et la matrice Hm seT est de Hessenberg supm m rieure. De plus si P est stable par conjugaison alors (Hm seT ) est rel. m
On reprend l'expression donn par (2.13), on a le lemme suivant

Lemme 1

[6] On considre les matrices Vm , Hm donnes par le processus T d'Arnoldi et on suppose que c Km+1 (A, v1 ) et vm+1 c = 0 alors f Rm et m R tq : AVm Vm (Hm f eT ) = m ceT (2.18) m m

Preuve

T Soit m = hm+1,m /vm+1 c et soit f Rm tel que T m c = Vm f + m (vm+1 c)vm+1 = Vm f + hm+1,m vm+1 ,

(2.19)

d'aprs (2.19) et (2.13) on a :

22

CHAPITRE 2.

RSOLUTION DE L'QUATION DE SYL VESTER

AVm Vm (Hm f eT ) = hm+1,m vm+1 eT + Vm f eT , m m m = hm+1,m vm+1 eT + (m c hm+1,m vm+1 )eT . m m


Ce qui montre (2.18) On remarque que Hm f eT est de Hessenberg suprieure. m Ainsi le lemme 1 montre que si on choisit v1 de faon que c Km+1 (A, v1 ) alors l'galit (2.18) est de la mme forme que (2.12) une constante multiplicative prs. Les rsultats suivants montrent comment trouver un tel espace de Krylov et comment obtenir la relation (2.16)

Lemme 2

[6] Soit Vm et Hm les matrices construites par le processus d'Arnoldi et soit p un polynme de degr infrieur m alors

p(A)v1 = Vm p(Hm )e1 .

Preuve

j il sut de vrier que : Aj v1 = Vm Hm e1 0 j < m et le lemme s'en dduit.

Lemme 3

[6] Soit Hm+1 Mm+1 (R) une matrice de Hessenberg suprieure et p un polynme unitaire de degr m (le coecient de plus haut degr est gal 1). Alors
m

eT p(Hm+1 )e1 m+1

=
j=1

hj+1,j .

Thorme 4

[6] Soit c le vecteur dni par (2.10). On suppose que (A) P = . On dnit le polynme unitaire
m

pm (t) =
j=1

(t j )

(2.20)

et x la solution unique de

pm (A)x = c

(2.21)

et soient Vm , Hm , vm+1 et hm+1,m dtermins par le processus d'Arnoldi avec x T T v1 = x . On pose m = hm+1,m /vm+1 c et f = m Vm c, alors

c Km+1 (A, v1 ),
et

(2.22) (2.23)

(Hm f eT ) = P. m

2.2.

APPLICATION DU PROCESSUS D'ARNOLDI

23

Preuve

La relation (2.22) provient de (2.21) et de (2.20) en eet

c = pm (A)x = c = x pm (A) v1 = c = gm (A)v1 = c Km+1 (A, v1 )


Pour montrer la relation (2.23)

x ) x (avec gm (t) = x pm (t)) (par dnition du sous-espace de Krylov) (car v1 =

T f = m Vm c T = m Vm pm (A)x T = m x Vm pm (A)v1 , m1

(2.24)

on pose :pm1 (t) =


j=1

(tj ) ainsi en remplaant pm (t) = (tm )pm1 (t)

droite dans l'expression (2.24) et en appliquant le lemme 2 on a


T m x Vm pm (A)v1 = = = = = T Vm (A m I)pm1 (A)v1 T Vm (A m I)Vm pm1 (Hm )e1 (Hm m I)pm1 (Hm )e1 pm (Hm )e1 s,

m m m m m

x x x x x

o s est dni par le thorme 3. En plus on a

m x

hm+1,m x T vm+1 c hm+1,m = T x vm+1 pm (A)x hm+1,m = T , vm+1 pm (A)v1 =

donc, d'aprs le lemme 2 et le lemme 3, on a

24

CHAPITRE 2.

RSOLUTION DE L'QUATION DE SYL VESTER

hm+1,m T vm+1 pm (A)v1

= =

hm+1,m T vm+1 Vm+1 pm (Hm+1 )e1 hm+1,m


m

hj+1,j
j=1

1
m1

hj+1,j
j=1 m1

Ainsi on en dduit que = m x (car =


j=1

h1 ) j+1,j

et il s'en suit que s = f et d'aprs le thorme 4 on a

(Hm f eT ) = P. m

Remarque 5 En pratique, on n'utilise pas le scalaire m tel qu'il est dni au thorme 4 car les rsultats numriques obtenus seront moins bons que ceux obtenus par cette expression
cT d . m = c 2
avec d = hm+1,m vm+1 + Vm f.
On a d'aprs le processus d'Arnoldi (2.25)

AVm Vm Hm = hm+1,m vm+1 eT , m


en ajoutant Vm f eT aux deux membres de l'galit on a m

AVm Vm Hm + Vm f eT = hm+1,m vm+1 eT + Vm f eT m m m


donc on pose

(2.26)

AVm Vm (Hm f eT ) = (hm+1,m vm+1 + Vm f )eT m m H = Hm f eT , d = hm+1,m vm+1 + Vm f m

et on ne manquera pas de signaler que d est la dernire colonne de la matrice AVm Vm H ce qui fait qu'on a

AVm Vm H = deT m

2.3.

CONCLUSION

25

et pour se rammener la relation (2.12) il faut que d soit proportionnel c

d = m c
ce qui mne

d = m c cT d = m cT c cT d m = T c c cT d m = . c 2
En dnitif, on a

AVm Vm H = m ceT m
et donc par identication avec la relation (2.12), la solution X recherche est donne par

X=

1 Vm . m

A prsent qu'on sait comment obtenir les matrices H et X , on peut prsenter l'algorithme de placement partiel des ples de la matrice Hm [3] :

Algorithme 4

Placement des ples de Hm l1 = e1 ; = 1; pour i = 1, ..., m 1 faire li+1 = (Hm i I)li ; = .h1 ; i+1,i n i s = (Hm m I)lm ; f = s ; calculer Hm f eT ; m n
Maintenant il ne reste plus qu' savoir comment obtenir le vecteur v1 .

2.3

Conclusion

La rsolution de l'quation de Sylvester par le processus d'Arnoldi nous conduit donc rsoudre deux problmes.

26

CHAPITRE 2.

RSOLUTION DE L'QUATION DE SYL VESTER

Le premier rside dans la dtermination du vecteur v1 permettant de dmarrer le processus d'Arnoldi, et le deuxime problme s'agit d'un placement de ples sur la matrice Hm . On reviendra plus en dtails sur le premier problme au chapitre 3.

Chapitre 3 Premire tape de la mthode de Saad et Datta

Dans ce chapitre on rsoud le systme qm (A)x = c, qui constitue la premire tape de la mthode de Saad-Datta [3] (voir algorithme 6, page 31) pour la rsolution de l'quation de Sylvester. L'importance de cette tape rside dans le fait qu'elle permet de trouver le vecteur v1 , qui dmarrera le processus d'Arnoldi. Dans tout ce chapitre, P = {1 , ..., m } est un ensemble de m nombres complexes partie relle ngative et dirents deux deux, (A) dsigne le
m

spectre de A et qm (t) =
i=1

(t i I).

3.1

Prsentation du problme

On sait que le vecteur v1 doit vrier la relation (2.15) (chapite 2 page 20) ce qui mne au fait que v1 est solution de l'quation suivante

qm (A)x = c,
sachant que

(3.1)

qm (t) = (t 1 )...(t m ),
c'est dire

(A 1 I)...(A m I)x = c,
en posant x = xm et x0 = c, la relation (3.2) devient 27

(3.2)

28CHAPITRE 3.

PREMIRE TAPE DE LA MTHODE DE SAAD ET DATTA

(A 1 I)...(A m I)xm = x0 ,
on pose (A m I)xm = xm1 donc la relation (3.3) devient

(3.3)

(A 1 I)...(A m1 I)xm1 = x0 ,
en rptant la mme opration on obtient

(A i I)xi = xi1 i = 1, ..., m

(3.4)

Ainsi, rsoudre (3.1) quivaut rsoudre (3.4). Le dernier vecteur xm est bien entendu la solution recherche. Cependant on ne peut utiliser cette mthode cause de deux raisons. La premire c'est qu'elle est trs coteuse ; car les mthodes directs ne sont pas envisageables dans le cas des systmes linaires de grande taille. La deuxime raison est due aux possibles perturbations dans les itrations ; voir [1] pour plus de dtails.
3.2 Approche par fraction rationnelle

Si la rsolution des m systmes linaires ne peut aboutir pour les raisons dja cites, alors une approche dirente s'impose. On sait d'aprs (3.1) que

x = [qm (A)]1 c,
et on a aussi

(3.5) (3.6)

1 = qm (t)

1
m i=1 (t

i )

si on dsigne par qm (i ) la drive de qm (t) calcule au point i on a


m

qm (i ) =
j=1 j=i

(i j ),

les nombres drivs qm (i ) sont tous dirents de zro, cela est du au fait que tous les lments de P sont disjoints deux deux, ainsi la dcomposition en lments simples de (3.6) donne

1 = qm (t)

i=1

1 , qm (i )(t i )

(3.7)

3.3. RSOLUTION DE

QM (A)X = C

PAR LA MTHODE DU GMRES

29

donc la relation (3.5) devient


m

x=
i=1

1 (A i I)1 c, qm (i )

(3.8)

l'expression (3.8) n'a aucun sens si l'une des matrices (A i I) n'est pas inversible. Puisque P (A) = , le spectre de la matrice A ne contient aucune racine du polynme qm (t) et donc les matrices (A i I) sont toutes inversibles. Eectivement si (A) on a

(A) n'est pas racine du polynme caractristique de A det(A I) = 0 (A I) inversible,


ce qui prouve ce qu'on vient de dire. On pose

xi = (A i I)1 c,
donc la relation (3.8) devient
m

x=
i=1

1 xi , qm (i )

(3.9)

ainsi pour trouver x il faut rsoudre les m systmes linaires suivants

(A i I)xi = c avec i = 1, ..., m,

(3.10)

et puis utiliser la combinaison linaire donne par (3.9) pour trouver x. Pour la rsolution de (3.10) on va utiliser la mthode du GMERS [12] ; cependant le vecteur v1 recherch doit tre norm, ce qui n'est pas forcment le cas de x, donc on posera

v1 =
3.3 Rsolution de du GMRES

x , x
par la mthode

qm(A)x = c

La mthode du GMRES [12] est l'une des mthodes les plus ecaces pour la rsolution des systmes de type (3.10). Pour appliquer la mthode

30CHAPITRE 3.

PREMIRE TAPE DE LA MTHODE DE SAAD ET DATTA

du GMRES on construit Vl et Hl par le processus d'Arnoldi appliqu A et c v1 = c , cette base sera utilise dans tous les m systmes donns par (3.10) car la base d'Arnoldi, donne par la matrice Vl , ne varie pas si on remplace A par (A I) (o est un scalaire ). Le processus d'Arnoldi donne

AVl = Vl Hl + hl+1,l vl+1 eT , l


si on ajoute Vl aux deux membres de l'galit prcdente

AVl Vl = Vl Hl + hl+1,l vl+1 eT Vl , l


on obtient alors

(A I)Vl = Vl (Hl I) + hl+1,l vl+1 eT . l

(3.11)

L'intrt de cette ide rside dans le fait que la mme base Vl servira trouver tous les vecteurs xi ce qui permet d'conomiser dans les calculs car on se contentera juste de modier la matrice Hl en la remplaant par Hl i I pour i = 1, ..., m.

Remarque 6
(l)

- On choisit l'entier l comme tant le plus petit entier tel que

ri

(l)

<

pour i = 1, ..., m

(3.12)

avec ri = c (A i I)xi pour i = 1, ..., m (voir [6] pour plus de dtails).


Finalement on rsout le systme donn par (3.1) par l'Algorithme suivant

Algorithme 5

Rsolution de qm (A)x = c

c 1. Calculer = c et v1 = c ; 2. Appliquer le processus d'Arnoldi sur la matrice A et v1 pour construire les matrices Hl et Vl ; 3. pour i = 1, ..., m faire ( ) calculer Hl i = Hl i I ; ( ) Hl i ( ) ( ) ( ) trouver yl i = argminyCl e1 Hl j y o Hl j = 0 . . . hl+1,l (j ) (i ) si c H y

choisir l plus grands et aller 2. n si ( ) calculer xi = Vl yl i ;


m

n i

4. calculer x =
i=1

1 xi qm (i )

3.4.

LE CHOIX DES POLES

31

3.4

Le choix des poles

Les valeurs propres de A ne sont pas pralablement connues, donc il est dicile de choisir l'avance l'ensemble des ples P de faon que P(A) = . Si l'un des i est proche de l'une des valeurs propres de A, le systme linaire qui lui est associ (A i I)xi = c sera malconditionn. Pour remdier ce problme on peut faire une estimation sur les valeurs propres de A, une telle estimation permet de bien choisir les lments de P. D'autres mthodes permettent l'estimation des valeurs propres de A, comme la mthode de dation, combine aux itrations polynomiales, comme dans [3], ou la mthode d'Arnoldi redmarre implicitement (mthode IRA : Implicitly restarted Arnoldi) qui permet de donner une estimation des valeurs propres de la matrice A, comme dans les travaux de L.Reichel, B.Lewis et D.Calvetti (pour plus de dtails voir [6]). Il est noter que dans plusieurs situations en pratique, comme le cas des structures spatiales larges et exibles (LFSS) [3], les valeurs propres de la matrice A sont donnes par une formule analytique (voir page 35) ce qui facilite le choix des lments de P.
3.5 Algorithme de rsolution de l'quation de Sylvester

A prsent nous savons comment obtenir x, et par la mme occasion le vecteur v1 = x qui permet d'avoir vm+1 = c, et puisqu'on a dja vu au x chapitre 2 comment calculer les matrices H et X , nous pouvons alors donner l'algorithme dnitif de la rsolution de l'quation de Sylvester.

Algorithme 6
1. 2. 3. 4. 5.
3.6

Rsolution de l'quation de Sylvester rsoudre qm (A)x = c par la mthode du GMRES (i.e. l'algorithme 5), puis calculer v1 = x x excuter le processus d'Arnoldi pour calculer Vm et Hm trouver y tel que (H) = (Hm yeT ) = P m calculer m = cT d/ c 2 avec d est la dernire colonne de AVm Vm H Xm = 1 Vm m
Conclusion

Puisque les matrices A et Ai I possdent le mme sous-espace de Krylov ceci permet de faire d'importantes conomies en calcul et en mmoire, car

32CHAPITRE 3.

PREMIRE TAPE DE LA MTHODE DE SAAD ET DATTA

seule l'tape de rsolution du problme de minimisation (dans la mthode de GMRES ) qui s'excutera autant de fois que le nombre d'lments de P. En ce qui concerne le choix de l'ensemble P, il est primordial de le bien choisir car autrement le systme (3.1) sera mal conditionn.

Chapitre 4 Essais numriques

Les essaies ont t fait sur un PC quip d'un processeur Intel Celeron D 3.2 GHz, 2 Go de RAM, de prcision 2, 2204.1016 et muni de la version 7.4 de Matlab. Dans tous les essais, le vecteur c est gnr alatoirement par la commande rand de matlab (en tennant compte de la dimension de la matrice A). Le vecteur v1 , solution de (3.10), est dtermine par l'algorithme 5 (page 30) avec = 108 . Il est noter aussi qu'avant de commencer on s'assure que le spectre de A et l'ensemble P sont disjoints. Dans ce chapitre, on dsigne par u la norme euclidienne [1] du vecteur u1 . u . donne par . uk
k

u =
i=1

|ui |2

et par U la norme spectral [1] de la matrice U = (uij )1<i,j<k donne par

U =

avec est la plus grande valeur propre de la matrice AT A

4.1

Matrice de Gear

Dans ce test on applique l'algorithme 6 (page 31) en choisissant l = 16 sur la matrice A de taille n = 1000 donne par 33

34

CHAPITRE 4.

ESSAIS NUMRIQUES

A=

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

(4.1)

ce type de matrice se nomme matrice de Gear ("Gear matrix"), et pour plus de dtails sur ce type de matrice on renvoie les lecteurs l'article de C.W Gear [5]. On a choisit l'ensemble de ples suivant

P = {k = 4k/k = 1, ..., m}.

(4.2)

Aprs avoir excuter l'algorithme 6 (page 6) on calcule les normes (AX XH) ceT et (Hm f eT ) o P, H = Hm f eT ; m m m les rsultats obtenus sont reports dans le tableau suivant

Si l < 16, l'algorithme 6 s'arrte ; mais la prcision auguemente en prennant l plus grand, ce que illustre le tableau 4.2

Remarque 7

m 4 6 8 10 12 14

(AX XH) ceT m 3, 3557.108 5, 3488.108 7, 5778.108 1, 0016.107 1, 2644.107 1, 5445.107

(Hm f eT ) m 1, 3902.1013 2, 8664.1011 2, 1207.1010 3, 4674.108 6, 2719.107 2, 4907.104

Table 4.1  Rsultats obtenus pour la matrice A de Gear de taille n = 1000


et l = 16

Remarque 8 On remarque que plus le nombre des ples est grand, plus les normes (AX XH) ceT et (Hm f eT ) augmentent. m m
On refait le mme travail eectu prcdement, sauf qu'ici la matrice A est une matrice de Gear de taille n = 500, et on garde le mme ensemble P utilis dans le test 1

4.2.

MATRICE LFSS

35

m 4 6 8 10 12 14

(AX XH) ceT m 3, 9215.1014 1, 6637.1013 7, 3598.1013 2, 9257.1012 1, 0948.1011 4, 2106.1011

(Hm f eT ) m 2, 8891.1013 4, 4564.1011 6, 5515.1010 1, 4474.108 3, 4224.106 4, 8322.105

Table 4.2  Rsultats obtenus la matrice A de Gear de taille n = 1000 et


l = 32 m 4 6 8 10 12 14 (AX XH) ceT m 2, 3109.108 3, 6771.108 5, 2031.108 6, 8712.108 8, 6675.108 1, 0581.107 (Hm f eT ) m 4, 6729.1014 1, 7709.1011 1, 3948.109 1, 0157.108 1, 5981.106 1, 5231.104

Table 4.3  Rsultats obtenus la matrice A de Gear de taille n = 500 et


l = 16
4.2 Matrice LFSS

On considre la matrice A dnie par

A=

0p Ip L D

(4.3)

o n = 2p est la taille de cette matrice (p = 500 pour ce test), et les matrices D, L sont dnis comme suivant D = diag{d1 , ..., dp } et L = diag{l1 , ..., lp }, les valeurs propres de cette matrice sont les solutions des quations

x2 dk x lk = 0,

k = 1, ..., p

(4.4)

2 2 Ainsi si dk = 2k et lk = (k + k ) le spectre de A est donn par (A) = {k , k } avec k = k + ik . Ce type de matrice sert modliser les structures spatiaux larges et exibles (LFSS pour Large exible space structures) [3].

36

CHAPITRE 4.

ESSAIS NUMRIQUES

m 4 6 8 10 12 14

(AX XH) ceT m 3, 1980.1014 1, 4500.1013 6, 1146.1013 2, 3719.1012 9, 2488.1012 3, 4298.1011

(Hm f eT ) m 1, 5291.1013 6, 9802.1011 1, 4631.109 2, 3719.108 4, 3654.106 1, 2756.104

Table 4.4  Rsultats obtenus la matrice A de Gear de taille n = 500 et


l = 32
Pour illustrer l'impact du choix de l'ensemble des ples sur les rsulats obtenus, on choisit 2 ensembles de ples qu'on dnit par

P1 = {k = ak + ibk /ak [2, 1] et bk [0, 1]}


et

(4.5) (4.6)

P2 = {k = ak + ibk /ak [4, 3] et bk [0, 1]}

Dans les deux cas, on donne la valeur minimal l pour que l'algorithmes ne s'arrte pas. Le tableau suivant illustre les rsultats obtenus pour l'ensemble P1 ,

l m 105 4 151 6 190 8

(AX XH) ceT m 3, 1328.108 6, 8162.107 5, 5369.106

(Hm f eT ) m 1, 6338.1014 2, 6208.1013 1, 6679.1012

Table 4.5  Rsultats obtenus pour l'ensemble de ples P1


et celui l illustre les rsultats obtenus pour l'ensemble P2 ,

l 21 21 21

m 4 6 8

(AX XH) ceT m 1, 1413.106 1, 2864.104 0, 0084

(Hm f eT ) m 6, 8883.1013 2, 8424.1011 1, 6200.108

Table 4.6  Rsultats obtenus pour l'ensemble de ples P2


Les tableaux 4.5 et 4.6 montrent que l'ensemble P1 donne de meilleurs rsultats que l'ensemble P2 .

4.3.

REPRSENTATION GRAPHIQUES DES SPECTRES

37

4.3

Reprsentation graphiques des spectres

Dans cet exemple on reprsentera graphiquement la rpartition des spectres des matrices A, H = Hm f eT , et Hm dans le plan complexe. m On considre la matrice de Saad A = A(r, s), de taille n = 500 (avec s = 10, r = 50 et n = rs ), dnie comme suivant pour i = 1, ..., n ai,i = 4 ai,i+1 = 1.2 pour i = 1, ..., n 1 ai,i1 = 1.1 pour i = 2, ..., n (4.7) air+1,ir = air,ir+1 = 0 pour i = 1, ..., s 1 ai+r,i = ai,i+r = 1 pour i = 1, ..., (s 1)r l'ensemble de ples choisit pour ce test est l'ensemble dnit par (4.5) et on prend m = 6.

38

CHAPITRE 4.

ESSAIS NUMRIQUES

figure1.jpg

Figure 4.1  + :spectre de A, . :spectre de Hm , * :spectre de H

Conclusion

Dans ce travail, on a prsent un algorithme bas sur le processus d'Arnoldi pour la rsolution de l'quation de Sylvester, dans le cas des matrices creuse et large, tout en supposant que le second membre est une matrice de rang 1. Le fait que le second membre de l'quation de Sylvester est de rang 1 a permis de faire l'analogie avec le processus d'Arnoldi. Chose qui a donn l'ide d'utiliser ce processus pour trouver la solution. La matrice de Hessenbergue suprieure donne par le processus d'Arnoldi n'est pas toujours stable et ne vrie pas forcement la condition d'existence et d'unicit de la solution, donc on a fait un placement de ples sur celle-ci pour remdier ce problme. On a aussi soulign que le choix de l'ensemble de ples peut fausser la solution s'il n'est pas fait de manire adquate car si un ple est proche d'une valeur propre de la matrice A le systme qui lui est associ est mal conditionn, ce qui fausse les rsultats par la suite. On peut exploiter le fait que le spectre, dans plusieurs situations en pratiques, est donn par une formule analytique pour choisir un ensemble de ples adquat. En cas d'absence d'une telle formule, l'utilisation des estimations de la plus grande et la plus petite valeur propre de la matrice en question est toujours possible. La gnralisation de ce travail au cas o la matrice C est de rang r quelconque reste possible. On suivra le mme schma, sauf que dans ce cas on se basera sur le processus d'Arnoldi par blocs et la mthode du GMRES par blocs.

39

40

CONCLUSION

Rsum

An de rsoudre l'equation de Sylvester donn par AX XH = C o la matrice C est de rang 1 ; on part de l'analogie donne par cette dernire avec le processus d'Arnoldi ; ce qui donne l'ide de chercher un premier vecteur qui donnera ceT au seond membre. Ainsi on exploite, d'une part, le fait que m les vecteurs de la base d'Arnoldi sont donns par vi = qi1 (A)v1 et d'autres part le fait que le polynme qi est aussi le polynmes caractristique de la matrice Hi , ce qui a conduit rsoudre m systmes linaires par la mthode du GMRES ; l on exploite le fait que la matrice form par les vecteurs de la base d'Arnoldi est la mme pour A et A I (o R). La solution des m systmes linaires servira dmarrer le processus d'Arnoldi pour calculer les matrices Vm et Hm , puis on fait un placement de ples sur la matrice Hm en se basant sur les rsultats relatifs ce sujets. Aprs, on adapte la matrice Vm en utilisant un scalaire obtenu en utilisant la dernire colonne de AVm Vm H et le vecteur c pour donner enn la solution de l'quation de Sylvester.

41

42

RSUM

Algorithmes sous Matlab

function[H,V,Ht]=Arnoldi(A,v,epsilon,k) %donnes: matrices A; vecteur v, rel positif epsilon %objectif: matrices H, V et Ht %k=length(v); V=[ ]; V(:,1)=v; H=[ ]; Ht=[ ]; for j=1:k w=A*V(:,j); for i=1:j Ht(i,j)=w'*(V(:,i)); w=w-Ht(i,j)*V(:,i); end Ht(j+1,j)=norm(w); if (Ht(j+1,j)<=epsilon) break; end V(:,j+1)=w/Ht(j+1,j); end for i=1:size(Ht,1)-1 H(i,:)=Ht(i,:); end end Algorithme de la mthode du GMRES function [x,res,flo,tem]=gmres(A,b,x0,itemax,aeps) %x(m)=x(0)+[v(1) v(2)...v(m)]*y v=zeros(size(A)); h=v; g=zeros(size(b));
43

Algorithme du processus d'Arnoldi

44

ALGORITHMES SOUS MATLAB

y=g; c=g; s=g; x=x0; flo=0; tem=0; v(:,1)=b-A*x; nr=norm(v(:,1)); res=log10(nr); v(:,1)=v(:,1)/nr; g(1)=nr; flo1=0; tem1=0; i=1; while i<itemax if nr<aeps break end flops(0); tem2=cputime; w=A*v(:,i); for j=1:i h(j,i)=w'*v(:,j); w=w-h(j,i)*v(:,j); end h(i+1,i)=norm(w); v(:,i+1)=w/h(i+1,i); if i>1 for j=1:i-1 ta=h(j,i); h(j,i)=c(j)*ta+s(j)*h(j+1,i); h(j+1,i)=-s(j)*ta+c(j)*h(j+1,i); end end gam=sqrt(h(i,i).^2+h(i+1,i).^2); c(i)=h(i,i)/gam; s(i)=h(i+1,i)/gam; g(i+1)=-s(i)*g(i); g(i)=c(i)*g(i); h(i,i)=c(i)*h(i,i)+s(i)*h(i+1,i); nr=abs(g(i+1));

45

res1=log10(nr) ; res=[res res1] ; y(i)=g(i)/h(i,i); for j=i-1:-1:1 w=g(j); for k=j+1:i w=w-h(j,k)*y(k); end y(j)=w/h(j,j); end x=x0+v(:,1:i)*y(1:i); flo1=flo1+flops; flo=[flo flo1]; tem2=cputime-tem2 ; tem1=tem1+tem2; tem=[tem tem1]; i=i+1; end Procdure pour trouver le vecteur v1 : function [x]=trouverv13(A,c,aeps,l,mu) m=length(mu); v=c/norm(c); n=size(A,1); I=eye(l+1,l); J=eye(n); z=zeros(n,m); x=zeros(n,1); a=zeros(m,1); [H,V,Ht]=Arnoldi2(A,v,aeps,l); V1=V(:,1:l); for i=1:m %calcul des nombres drivs en mu_i a(i)=1; for j=1:m if j~=i a(i)=a(i)*(mu(i)-mu(j)); end end %calcul de Ht-mu_i G=Ht-mu(i)*I; %calcul de la solution de (A-mu_i)x_i=c

46

ALGORITHMES SOUS MATLAB

end %on norme le vecteur x x=x/norm(x); end

[G,y]=rotgivenspourgmres(G,c); z(:,i)=V1*y; %test d'arrt sur la norme ||Ax_i -c || r=norm((A-mu(i)*J)*z(:,i)-c); %si la norme du rsidu est inferieur la prcision choisie %puis on reprends avec un entier l plus grand if r>=aeps disp('choisir l plus grand'); end %autrement on calcule x y=z(:,i)/a(i); x=x+y;

La procdure "[G,y]=rotgivenspourgmres(G,c)" utilise dans la procdure prcdente pour dcomposer la matrice H

function[h,y]=rotgivenspourgmres(h,x) n=size(h,2); c=[]; s=[]; y=zeros(n,1); g=zeros(n,1); g(1)=norm(x); for i=1:n if i>1 for j=1:i-1 ta=h(j,i); h(j,i)=c(j)*ta+s(j)*h(j+1,i); h(j+1,i)=-s(j)*ta+c(j)*h(j+1,i); end end gam=sqrt(h(i,i)^2+h(i+1,i)^2); c(i)=h(i,i)/gam; s(i)=h(i+1,i)/gam; g(i+1)=-s(i)*g(i);

47

g(i)=c(i)*g(i); h(i,i)=c(i)*h(i,i)+s(i)*h(i+1,i); y(i)=g(i)/h(i,i); for j=i-1:-1:1 w=g(j); for k=j+1:i w=w-h(j,k)*y(k); end y(j)=w/h(j,j); end end end
Procdure de placement des ples de la matrice de Hessenbergue sous Matlab :

function[Ha]=Placement(H,mu) %donnes:la matrice H, les poles %s,alpha termes necessaire l'Placement de la matrice H %objectif:calculer la matrice Ha m=length(mu); I=eye(m); %calculer le vecteur s s=eye(m,1); for i=1:m s=(H-mu(i)*I)*s; end %calculer le scalaire alpha alpha=1; for i=1:m-1 alpha=alpha/H(i+1,i); end Ha=H-alpha*s*(flipud(eye(m,1)))'; end
La procdure "solution" qui permet de calculer la matrice X l'aide de la dernire colonne de AVm Vm H :

function[X]=solution(A,V,Ha,c) m=size(Ha,1); %liminer la dernire colonne de la matrice V

48

ALGORITHMES SOUS MATLAB

V1=V(:,1:m); %calculer AV1-V1Ha B=(A*V1-V1*Ha); %la dernire colonne de AV1-V1H d=B(:,m); beta=(c'*d)/(norm(c).^2); X=(1/beta)*V1; end
Le programme principal qu'on utilisera pour rsoudre l'equation de Sylvester dans les essais numriques, et comme prvu, il contient tous les fonctions dja vues prcdement. Il contient aussi les fonctions permettant de gnrer les matrices et les ples utilises dans chaque test.

Programme principal

%Les donnes %A=gallery('gearmat',l,i,j); %A=DattaSaad(a,b,c,e,p); %A=saad(m,nb); n=size(A,1); c=rand(n,1); epsilon=1e-08; %[mu]=poles(j); %[mu]=poles2(a,c,p) k=length(mu); %Appels fonctions [v]=trouverv1(A,c,epsilon,mu); [H,V]=Arnoldi(A,v,epsilon,k); [Ha]=Placement(H,mu); [X]=solution(A,V,Ha,c); %Les rsultats q=norm(mu-eig(Ha)); r=norm((A*X-X*Ha)-c*(flipud(eye(k,1)))');
L'instruction A=gallery('gearmat',l,i,j) gnre la matrice de Gear (voir page 34), et les procdures suivantes gnrent la matrice de Saad et la matrice de DattaSaad (voir page 35).

49

function A=saad(m,nb); disp('saad'); ii=m*nb; disp('la taille du systme est = '); disp(ii); A=zeros(ii); d=1.1; al=-1-d; cl=4; disp('d= '); disp(d); disp('cl= '); disp(cl); for i=1:ii A(i,i)=cl; end for j=1:ii-1 A(j,j+1)=al; end for i=2:ii A(j,j-1)=d; end for i=1:nb-1 A(i*m+1,i*m)=0; A(i*m,i*m+1)=0; end for i=1:nb*(m)-m A(i+m,i)=-1; A(i,i+m)=-1; end function[A]=DattaSaad(a,b,c,e,p) %a,b sont les bornes de l'intervalle contenant x %c,e sont les bornes de l'intervalle contenant y x=zeros(p,1); y=zeros(p,1); %partie rlle de z for k=1:p x(k)=a+k*(b-a)/p; %partie imaginaire de z

50

ALGORITHMES SOUS MATLAB

end z=x+i*y; d=2*x; %4 ieme block de la matrice de saad et datta l=-(x.^2+y.^2); A=[zeros(p),eye(p);-diag(l),diag(d)]; end
Les fonctions suivantes sont conus pour construire l'ensemble donn par (4.2) et l'ensemble donn par (4.5) et (4.6)

y(k)=c+k*(e-c)/p;

function[mu]=poles(j) mu=zeros(j,1); for k=1:j mu(k)=-4*k; end end function[u]=poles2(a,c,p) u=zeros(p,1); for k=1:p u(k)=(a+k/p)+i*(c+k/p); end end

Bibliographie

[1] B.N. Datta, Numerical methode for linear control systems design and analysis, Departement of mathematical Sciences Northern Illinois University Dekalb, IL 60115 (2003). [2] B.N. Datta, An algorithme to assigne eigeinvalues in a Hessenberg matrix, IEEE Trans. Autom. Control, AC-32 (1987), pp. 414-417. [3] B.N. Datta and Y. Saad, Arnoldi Methods for large Sylvester-Like Observer Matrix Equation, and an Associated for Partial Spectrum Assignement, Linear Algebra and Its Applications 154-156 :225-244 (1991). [4] L. Elbouyahyaoui, Etude du polynme minimal pour la mthode du GMRES cas standard et cas par blocs, Memoire de DESA, EMI (2005). [5] C.W. Gear, A simple set of test matrices for eigenvalue programs, Math. Comp., 23 :119-125, (1969). [6] B. Lewis, D. Calvetti, L. Reichel, On the solution of large Sylvester observer equation, Numer. Linear Algebra Appl. (2001) ; 8 :1-16. [7] B. Lewis, D. Calvetti, L. Reichel, Partial eigenvalue assignement for large linar control systems, Contemporary Mathematics. Primary 93B55, 65F15 (1991). [8] B. Lewis, D. Calevetti, L. Reichel, On the selection of pole placement problem, linar algebra Appl., 302-303 (1999), pp.331-345. [9] A. Messaoudi, Recursive interpolation algorithm : A formalism for solving systems of equations-II iterative methodes, Journal of computational and applied Mathematics, 76 (1996) 31-53. [10] A. Rachid et D. Mehdi, Rduction,ralisation et commande des systmes linaires, edition : Scientika 1er trimestre 1993, ISBN : 2-909894-03-7. [11] Y. Saad, Projection and deation methods for partial pole assignement in linear stat feedback, IEEE Trans. Autom. Control, AC-33 (1988), pp. 290-297. [12] Y. Saad et M.H. Schultz, GMRES a generalized minimal residual algoritme for solving nonsymetrique linar equation, SIAM J. Sci. Statist Comput 7 (1986) 856-869. 51

52

BIBLIOGRAPHIE

[13] D.C. Sorensen, Implicit application of polynomial lters in a k-step Arnoldi methode, SIAM J.Matrix Anal. Appl., 13 (1992), pp.357-385. [14] W.M. Wonham, Linear Multivariate Control : A Geometric Approach, 3rd ed., Springer, New York, (1985).

Вам также может понравиться