Précédent : Présentation générale et
objectifs Remonter : Rapport activite 1997 Suivant :
Grands domaines
d'application
Résumé : On cherche à résoudre numériquement des problèmes de valeur initiale pour des systèmes d'équations différentielles ordinaires ou avec contraintes, c'est-à-dire de la forme![]()
Dans le cas des équations différentielles ordinaires se pose un problème de coût calcul pour les systèmes de grande taille. Le recours au parallélisme semble alors incontournable, mais il se heurte au caractère intrinsèquement séquentiel des méthodes numériques usuelles. Nos travaux se sont orientés dans des directions orthogonales, suivant que l'on cherche à paralléliser <<à travers l'intervalle d'intégration>> ou <<à travers la méthode>>. Les équations algébro-différentielles posent quant à elles des problèmes spécifiques : en particulier, l'ordre de convergence habituel se trouve notablement diminué du fait de la présence de contraintes algébriques. Nous nous sommes donc attachés à compenser ce phénomène de <<réduction d'ordre>> par des techniques de smoothing. Enfin nous nous intéressons aux systèmes hamiltoniens, qui se présentent sous forme d'équations différentielles ordinaires mais méritent souvent un traitement spécifique. Celui-ci est destiné à préserver certains invariants géométriques qui leur sont attachés.
Il est également possible de contourner cette difficulté en ayant recours au parallélisme : une première technique consiste à reformuler le système sous une forme itérative. Considérons pour simplifier la forme de Picard
Une seconde technique consiste à concevoir des méthodes intrinsèquement parallèles possédant des domaines de stabilité plus larges. C'est le cas des méthodes DIMSIM[But93] implicites, dont le format est le suivant
Ce sont des équations du type
matrice symétrique: les matrices symétriques, telles
que , sont très fréquentes. Grâce à leurs
propriétés, notamment spectrales, la résolution de systèmes
symétriques est simplifiée.
matrice creuse: les matrices de très grande taille
contiennent en général un grand nombre de coefficients nuls.
Lorsque les coefficients non nuls sont à des positions précises,
on dit que la matrice est creuse et structurée. Sinon elle est
creuse et générale.
espace de Krylov: l'espace engendré par est un espace de Krylov. Projeter
le problème linéaire sur ce sous-espace permet de se ramener à un
problème de petite taille qui approche le problème
initial.
linéarisation: en remplaçant localement la fonction
par l'espace tangent, et en résolvant un
problème linéaire associé, on trouve une approximation de la
solution au problème
.
Résumé : Un problème linéaire est défini par une matriceet un vecteur
; on cherche
tel que
L'entier ![]()
est l'ordre ou la taille de la matrice.
Ce problème est au coeur de nombreuses applications scientifiques : discrétisation d'équations aux dérivées partielles, linéarisation de problèmes non linéaires, traitement d'images, etc.
Un problème non linéaire est défini par une fonction
d'un domaine
de
dans
; on cherche à résoudre l'équation
Ce problème, très général, se pose après discrétisation d'équations différentielles par des schémas implicites (voir module ![]()
), après discrétisation d'équations aux dérivées partielles non linéaires, etc.
Le projet étudie principalement les méthodes itératives dites de Krylov pour résoudre les systèmes non linéaires. La recherche porte sur des méthodes permettant d'accélérer la convergence. Dans le cas non linéaire, le projet étudie les méthodes itératives de linéarisation et leur couplage avec la résolution des problèmes linéaires induits.
Si est assez petit (
environ), le système
se résout
par une méthode directe basée sur la factorisation de Gauss avec
pivot
, où
est une matrice de
permutation liée à la stratégie de pivot qui assure la stabilité
numérique,
est triangulaire inférieure et
est triangulaire supérieure. Cette méthode
est précise et stable numériquement mais sa complexité, mesurée
par
opérations flottantes et
variables flottantes en mémoire, est un frein à son
utilisation pour
grand.
Pour réduire le coût mémoire, il faut alors exploiter la
structure creuse de la matrice en ne stockant que peu, voire pas,
de coefficients nuls [DER86].
Il existe de nombreux types de stockage creux : bande,
profil, compressé par lignes, par colonnes, par diagonales, etc.
Mais la factorisation de Gauss induit du remplissage dans les
facteurs et
. Des techniques de
renumérotation ont pour objectif de limiter ce remplissage :
minimisation de la largeur de bande ou du profil, degré minimum,
etc. Dans le cas symétrique où
,la
complexité devient alors
opérations flottantes et
variables
flottantes, où
est le nombre de coefficients
non nuls dans le facteur
et
est le nombre moyen par ligne. Typiquement,
pour une discrétisation de
problèmes 2D et
pour des
problèmes 3D. Une autre difficulté est de concevoir une version
parallèle. Les méthodes multifrontales sont souvent efficaces. Il
est aussi possible d'exploiter la structure creuse pour dégager
un parallélisme intrinsèque à gros grain [6].
De plus, ces méthodes sont intéressantes parce que la matrice
n'est utilisée qu'à travers l'opérateur
produit matrice-vecteur
. Il est donc
possible d'utiliser un stockage compressé, voire de ne pas
stocker
.Un autre avantage est l'utilisation
de méthodes "matrix-free ", où le produit matrice-vecteur est
recalculé ou approché à chaque occurence. De plus, cette
opération se parallélise assez bien.
Dans cette famille, les méthodes de projection de Krylov sont les plus étudiées actuellement [Saa95b]. Elles sont définies par le sous-espace de Krylov
Il faut distinguer, comme pour le cas des méthodes directes, les systèmes symétriques et non symétriques.
Les systèmes symétriques sont les plus faciles à résoudre. Les
méthodes de Krylov peuvent dans ce cas construire et calculer
à l'aide de
récurrences courtes, d'où une faible complexité. Si de plus
est définie positive, la méthode du
gradient conjugué permet d'allier récurrences courtes et
minimisation :
Le préconditionnement diagonal
a un coût faible en
opérations flottantes et
variables flottantes. La parallélisation en est aisée mais
l'efficacité est parfois réduite.
La factorisation incomplète est définie par
Les préconditionnements polynomiaux sont également assez
coûteux bien qu'ils soient parallèles puisque seul le produit
intervient.
Une autre approche est un préconditionnement par déflation, défini par
Augmenter l'espace des solutions avec un sous-espace de Krylov calculé précédemment ou une approximation d'un sous-espace invariant est une autre accélération possible, assez similaire à la précédente. Leur comparaison est faite dans [Saa95a] et dans [5].
Enfin les méthodes par blocs ont un effet semblable au précédent et ont l'intérêt de recourir à des opérateurs de type BLAS2 ou BLAS3.
Alors que la convergence locale de Newton est quadratique, donc très rapide, celles de Newton modifié et Newton inexact sont linéaires, au mieux super-linéaires donc plus lentes. Par contre, la complexité par itération est en général moindre, ce qui peut compenser le plus grand nombre d'itérations.
Les méthodes de Newton-Krylov, de type inexact, résolvent le
système linéaire à l'aide d'une méthode de projection sur un
espace de Krylov (voir section ). La
difficulté réside dans un bon choix des critères de convergence
et dans un préconditionnement efficace (voir section
).
D'autre part, pour garantir la convergence globale, il faut combiner la méthode de Newton avec une technique de ``backtracking'' ou de continuation par exemple.
Résumé : Le problème standard de valeur propre consiste pour une matricedonnée à trouver tous les couples
(ou seulement une partie d'entre-eux) qui vérifient :
Le problème généralisé est défini par deux matrices ![]()
et les couples doivent alors vérifier :
L'amélioration des méthodes de calcul de valeurs propres porte essentiellement sur la recherche d'accélérateur de la convergence à appliquer dans les méthodes itératives adaptées aux grandes matrices creuses. Le projet travaille depuis plusieurs années sur la méthode de Davidson pour le cas des matrices symétriques, méthode qu'il adapte maintenant au calcul des plus petites valeurs singulières de matrices. Dans le cas des matrices non symétriques (ou non hermitiennes), les travaux ont porté sur la recherche d'accélérateur polynômiaux (polynômes de Chebychev et de Faber). ![]()
La mesure de la sensibilité des valeurs propres d'une matrice aux perturbations est un problème à résoudre lorsque l'on doit localiser les valeurs propres d'une matrice imprécisément connue. On peut définir l'ensemble des perturbations possibles par la norme euclidienne des matrices ou par des matrices d'intervalles.
Nous étudions le cas d'une matrice de grande
taille réelle non symétrique ou complexe non hermitienne, dont
par conséquent les valeurs propres peuvent être complexes. La
méthode d'Arnoldi [Cha88,Saa92] construit pas à pas une base
orthonormée
de l'espace de Krylov
et approche les couples propres cherchés par
ceux de la matrice
qui est une
matrice de Hessenberg de petite taille. Appliquée à une matrice
symétrique, cette méthode serait la méthode de Lanczos. Comme la
dimension
de la base est limitée par les
capacités de stockage des données, il est nécessaire de
redémarrer périodiquement le procédé avec la meilleure
approximation courante du vecteur propre cherché et c'est à cet
endroit que s'insèrent les techniques d'accélération. Afin
d'accoître les composantes du nouveau vecteur initial
dans les directions des vecteurs propres que l'on
recherche, on calcule
où
est un polynôme dont le module discrimine les valeurs propres
cherchées des autres. Il s'agit donc de définir une courbe
convexe qui entoure les valeurs propres à rejeter et elles
seulement. Pour cela on choisit généralement une ellipse et le
polynôme de Chebychev qu'elle définit. Si la matrice est réelle,
l'ellipse est choisie symétrique par rapport à l'axe des réels.
Dans le cas complexe, le placement de l'ellipse est plus délicat.
Il est souvent préférable de construire un polygone et de
calculer le polynôme de Faber associé, polynôme obtenu à partir
de la transformation de Schwarz-Christopher qui fait correspondre
l'extérieur du polygone avec l'extérieur du disque unité. Le
projet a travaillé ces trois approches et les a appliquées à la
méthode d'Arnoldi par blocs [11,23]. Nous avons systématiquement
choisi dans ce domaine d'exprimer les algorithmes par des
versions par blocs car elles permettent de meilleures efficacités
informatique et numérique.
Dans de nombreuses applications, les valeurs propres d'une
matrice sont calculées afin de décider si tout le spectre est ou
non inclus dans une partie donnée du plan complexe (demi-plan des
complexes à partie réelle négative, disque unité, etc.)
Malheureusement, la matrice n'est définie qu'à une précision
donnée (au maximum la précision de l'arithmétique flottante) et
le conditionnement (voir la définition en ) de
certaines valeurs propres peut être assez élevé pour que le
résultat ne soit pas sûr. On désire donc non calculer les valeurs
propres d'une unique matrice mais plutôt en déterminer les zones
de variation lorsque la matrice varie dans un voisinage donné de
la matrice initiale. On considère ici le cas où le voisinage est
défini par la norme euclidienne mais il peut aussi être défini
par une matrice d'intervalles (cf
).
La notion de pseudo-spectre a été introduite simultanément
mais de manière indépendante par Godunov [GKK91] et Trefethen [Tre91]. Pour une matrice
et un paramètre de précision
donnés, le pseudo-spectre
est l'ensemble des valeurs propres
de toutes les matrices
où
. Sa
caractérisation repose sur l'équivalence :
La dichotomie spectrale peut se réaliser grâce à la détermination d'un pseudo-spectre mais il existe aussi une direction de recherche qui consiste à définir des projecteurs spectraux correspondant à des sous-espaces invariants bien séparés, un indicateur évaluant la qualité de la séparation. Le cas de la dichotomie par un cercle ou un axe a été traité par Malyshev [Mal93]. Les cas de dichotomie par une ellipse ou un polygone s'y ramènent. Les procédures obtenues sont très fiables mais si coûteuses qu'elles ne peuvent pour le moment être envisagées que pour des matrices de très petite taille.
conditionnement: quantité qui mesure le taux de
variation d'un résultat en fonction de l'amplitude des
perturbations des données. Cette quantité dépend généralement des
normes choisies. Lorsque la résolution du problème correspond au
calcul d'une fonction différentiable, le conditionnement est égal
à la norme de la matrice jacobienne aux données.
intervalles: l'arithmétique d'intervalles est une
extension de l'arithmétique classique qui est mise en oeuvre dans
les programmes par le recours à une bibliothèque.
Malheureusement, elle n'est généralement pas suffisante car la
décorrélation des calculs qu'elle entraîne amène à des
surestimations inexploitables. Il est donc nécessaire de définir
des procédures spécialisées d'encadrement pour chaque type de
problème. [9]
Résumé : Il existe des situations où l'on recherche un encadrement sûr du résultat d'un calcul pour garantir qu'on ne se trouvera pas dans une situation d'échec, malgré l'imprécision des calculs effectués sur ordinateur et l'imprécision des données. C'est le cas par exemple en géométrie algorithmique où des arbres de décision reposent sur des tests arithmétiques. Le projet recherche des procédures d'encadrement pour les problèmes classiques de l'algèbre linéaire.
Lorsque les données d'un problème sont imprécises, elles sont définies par des intervalles. La première solution qui consiste en une application directe de l'arithmétique d'intervalles conduit à une très large surestimation du résultat. Pour traiter ces problèmes, deux grandes classes de méthodes ont donc été développées [Her94]:
- les méthodes itératives : elles consistent à se
ramener à des problèmes de type point fixe : si une fonction
continue vérifie
où I est un compact convexe de
alors l'équation
a au
moins une solution dans
. Ces méthodes nécessitent
habituellement un préconditionnement du système, ce qui produit
souvent une large surestimation du résultat.
- les méthodes directes : elles utilisent la structure
particulière d'un problème pour obtenir une résolution exacte.
Elles nécessitent souvent des conditions d'application très
strictes, telles que des conditions de signe sur les vecteurs
manipulés.
Les méthodes que nous développons se situent dans une catégorie intermédiaire. Elles consistent à obtenir une description de l'ensemble résultat sous la forme d'une condition nécessaire et suffisante qui ne fasse pas intervenir d'intervalles ; par contre la condition fait intervenir des valeurs absolues et des non linéarités dont on se débarrasse en l'affaiblissant. Nous obtenons alors une approximation du résultat (un sur-ensemble, ou un sous-ensemble, selon les cas) sous la forme d'un polyèdre convexe. Finalement, l'analyse des perturbations au premier ordre nous permet d'obtenir de bons points de départ pour les algorithmes classiques de programmation linéaire. Un traitement numérique des résultats est encore nécessaire, pour obtenir des encadrements sûrs malgré l'utilisation de l'arithmétique flottante.
Nous avons développé nos méthodes d'encadrement pour la résolution de systèmes linéaires et pour la résolution de problèmes aux valeurs propres.