Méthode pseudospectrale (Tchebychev),
sur les points de collocation de Gauss-Lobatto
1. Contexte, préambule, point de vue
adopté,...
L'objectif, lorsqu'il s'agit de résoudre numériquement
une équation différentielle, est d'évaluer
(aussi précisément que possible)
les valeurs prises par la solution (les valeurs nodales)
en un certain nombre de points (les points de collocation).
L'idée maîtresse sur laquelle repose cette approche est que,
la solution numérique (celle obtenue aux points de collocation)
tend vers la solution exacte du problème
différentiel traité, l'approchant
d'autant mieux que le nombre de valeurs nodales résolues est grand.
Dans le cadre de la
méthode des différences finies,
le degré d'approximation locale est fixe (typiquement
d'ordre 2 ou 4) et la convergence, avec l'augmentation du nombre de
points de collocation, vers la solution exacte est due au fait qu'une
approximation de degré donné est d'autant plus
précise que l'intervalle (la distance entre points de collocation
voisins) sur lequel elle est construite est petit.
C'est sur ce point que diffère la méthode
pseudospectrale: au lieu de figer le degré d'approximation
local en chaque point de collocation et d'augmenter le nombre
de ceux-ci, on construit une approximation globale
(c.-à-d. basée sur l'ensemble de points de collocation).
Cette approximation (polynômiale), de degré d'autant plus
élevé que le nombre de point sur lequel elle
est construite est grand, sera ainsi d'autant plus précise
que le nombre de points de collocation employés est grand.
2. Procédure pour la résolution
d'une équation différentielle avec conditions aux limites
La résolution numérique d'une équation
différentielle linéaire, avec conditions aux limites,
se résume à trois grandes étapes:
- La discrétisation du problème, c'est à dire
le choix des points de collocation sur lesquels sera approximé
l'équation différentielle.
De ces points découle les expressions
des dérivées (en ces mêmes points)
qui permettent de construire
le système
linéaire liant les valeurs nodales entre elles.
- La prise en compte des conditions aux limites du problème:
Au même tître que celles-ci complètent
l'équation différentielle, leurs
approximations numériques, injectées dans le
système linéaire (relatif aux valeurs nodales)
complètent ce dernier.
- La résolution du système linéaire liant
les valeurs nodales entre elles.
Pour illustrer cela, considérons l'équation
différentielle d'ordre deux suivante:
Où les fonctions
a
2(x), a
1(x), a
0(x) et S(x) sont
données (les jeux de conditions aux limites
associés, et leur traitement, est discuté plus loin).
Etant donné qu'il s'agit en fin de compte de construire
des approximations polynômiales de degré élevé,
processus potentielement catastrophique (voir la
page sur
l'interpolation
polynômiale), on est contraint d'utiliser
des jeux de points de collocation adéquats.
On considère ici le jeu de
points de collocation
de Gauss-Lobatto
(associés aux polynômes de Tchebychev).
Remarques:
- Les points de Gauss-Lobatto (via les quadratures et les
polynômes de Tchebychev sur lesquels
ils sont construits) sont définis sur l'intervalle [-1;1].
Il convient donc de procéder à un changement de
variable approprié pour ramener l'intervalle d'étude
de [ x A ; x B ]
à [-1;1].
- Il y a d'autre jeux de points de collocation tout aussi convenables
(de même qu'il existe d'autres familles de polynômes
orthogonaux, ceux de Legendre par exemple, sur lesquels ces points
peuvent être construits), ceux de Gauss et Gauss-Radau.
L'intérêt du jeu de points de Gauss-Lobatto
est que celui-ci inclue les bornes de l'intervalle.
2.1. Discrétisation du problème.
Construction du système linéaire
Une fois le nombre de points de collocation (N+1), donc le
degré polynômial (N) de l'approximation choisi,
il faut retranscrire l'action de
l'opérateur différentiel
L
aux valeurs nodales
y
i = y(x
i),
afin de construire le système matriciel
L.y = S, où
y est le vecteur
contenant les valeurs nodales y
i ,
S le
vecteur source dont les éléments sont
les S(x
i).
Les éléments de
la matrice
L sont donnés par:
L
ij =
a
2(x
i) D
ij(2) +
a
1(x
i) D
ij(1) +
a
0(x
i) D
ij(0) ,
où
D(0) est la matrice identité,
et
D(1) et
D(2)
sont les matrices de dérivation
première et seconde (dans l'espace physique)
sur les points de Gauss-Lobatto.
Etant donné que
l'
expression
de la matrice de dérivation
première
D(1) est connue,
et que celle-ci permet de construire
la matrice de dérivation seconde
D(2)
(puisque, dans le cadre de développements sur les polynômes
de Tchebychev, cette dernière
est simplement telle que:
D(2)=
D(1).
D(1) ),
la construction de la matrice
L est immédiate.
2.2. Gestion des conditions aux limites
Le système
linéaire
L.y =
S ne rend compte que
de l'équation différentielle étudiée.
Or, celle-ci est assortie de conditions aux limites
qu'il faut également retranscrire.
Du point de vue du système linéaire, cela signifie que
l'on dispose de deux contraintes complémentaires
(sur les valeurs nodales extrêmes y
0 et y
N)
à satisfaire.
Ces contraintes, qui satisfont l'équation différentielle,
sont à substituer aux expressions générales
déduites ci-dessus.
En clair, on remplace les équations relatives
à y
0 et y
N (première et dernière
lignes de la matrice
L) par celles traduisant la
discrétisation des conditions aux limites du problème.
Suivant la forme des conditions aux limites du problème
à traiter, on distingue les types suivant:
Conditions aux limites de type Dirichlet
Les valeurs aux limites sont des données du problème:
y(-1) = y
A et
y(1) = y
B
qui implique directement que les valeurs nodales
y
0 = y
A et
y
N = y
B sont connues.
On peut donc aisément réécrire le système
L.y =
S (système (N+1)×(N+1))
sous une forme plus réduite (système (N-1)×(N-1))
Lint.yint =
Sred
ne portant
sur les valeurs nodales intérieures
y
i, i = 1,...,N-1, où
Lint
est simplement l'intérieur de la matrice
L
et
Sred est le terme source
modifié par l'injection des conditions aux limites,
dont les éléments sont donnés par:
Lintij
= L ij
|
pour i = 1,...,N-1 et j = 1,...,N-1
|
Sredi
= S i
- L i0 yA
- L iN yB
|
pour i = 1,...,N-1
|
Conditions aux limites de type Neumann
Les valeurs des dérivées (premières) aux
limites sont des données du problème:
y'(-1) = y'
A et
y'(1) = y'
B.
En utilisant les relations entre les dérivés
nodales y'
0 = y'
A
et y'
N = y'
B
et les valeurs nodales
y
i (les première et dernière lignes
de la relation matricielle
D(1).y = y'), on a:
Qu'il faut substituer aux première et dernière lignes
du système
L.y =
S.
Pour être tout à fait explicite,
on construit donc le système (N+1)×(N+1):
Lcl.y =
Scl,
dont les éléments sont:
Lcl0j = D(1)0j
|
pour j = 0,...,N
|
Lclij = L ij
|
pour i = 1,...,N-1 et j = 0,...,N
|
LclNj = D(1)Nj
|
pour j = 0,...,N
|
Scl0 = y'A
|
|
Scli = S i
|
pour i = 1,...,N-1
|
SclN = y'B
|
|
Conditions aux limites mixtes
Les valeurs aux limites et leurs dérivées
sont donnéees par une relation linéaire entre
elles, du type C
A y(-1)
+ Q
A y'(-1) = K
A
et C
B y(1)
+ Q
B y'(1) = K
B;
C
A, Q
A, K
A,
C
B, Q
B et K
B
étant des constantes connues.
En exprimant les dérivées nodales en fonction des valeurs
nodales (comme pour le cas Neumann discuté ci-dessus),
les relations aux frontières se traduisent par:
Ces expressions étant à substituer aux
première et dernière lignes du système
L.y =
S.
On construit donc le système (N+1)×(N+1):
Lcl.y =
Scl,
dont les éléments sont:
Lcl00
= CA
+ QA D(1)00
|
|
Lcl0j
= QA D(1)0j
|
pour j = 1,...,N
|
Lclij = L ij
|
pour i = 1,...,N-1 et j = 0,...,N
|
LclNj
= QB D(1)Nj
|
pour j = 0,...,N-1
|
LclNN
= CB
+ QB D(1)NN
|
|
Scl0 = KA
|
|
Scli = S i
|
pour i = 1,...,N-1
|
SclN = KB
|
|
2.3. Résolution du système
linéaire
Une fois le système linéaire construit, il n'y a plus qu'à
le résoudre (c.-à-d. à résoudre
via votre solver linéaire préféré)
pour en déduire les valeurs nodales y
i
recherchées.
3. Commentaires subsidiaires
- Au delà d'une gestion directe des conditions aux limites,
telle celle décrite ci-dessus, on peut établire une
stratégie de résolution systématique de ces
problèmes: En partant du système
Lcl.y = Scl
((N+1)×(N+1) éléments), on se
ramène à un système réduit
Lred.y = Sred
ne portant que sur les valeurs nodales intérieures
y i (i = 1,...,N-1).
Ces dernières, une fois obtenues, servent ensuite à
reconstruire les valeurs aux limites y 0
et y N.
Cette procédure, dite d'injection des conditions aux limites,
est récapitulée
ici
(Fichier PDF, 3 pages, 44k)