• Aucun résultat trouvé

1 Méthode Spectrale : Exemple simple On commence par un problème “classique” : la résolution de l’équation de Schrödinger dépendante du temps

N/A
N/A
Protected

Academic year: 2022

Partager "1 Méthode Spectrale : Exemple simple On commence par un problème “classique” : la résolution de l’équation de Schrödinger dépendante du temps"

Copied!
16
0
0

Texte intégral

(1)

Université de Tours “François Rabelais”

Faculté de Sciences et Techniques Maîtrise de Physique 2008–2009 MMIP–Méthodes Numériques

Notes sur les Méthodes (Pseudo)-Spectrales

Le but de ces notes est d’exposer, en termes simples, les méthodes (pseudo)-spectrales, en tant qu’outil pour la résolution numérique d’équations aux dérivées partielles. Le point de vue est résolumment concret : il s’agit de comprendre pourquoi un physicien aurait besoin de celles-ci.

D’abord, pourquoi le nomméthodes spectrales(plus précisément,méthode spectrale, vu qu’il s’agit d’une méthode et non de plusieurs ! il y a plusieurs méthodes “pseudo-spectrales” comme on verra plus loin) ? La réponse est que cette méthode consiste à transformer un problème à celui du calcul des valeurs propres et fonctions propres d’un opérateur, ce que l’on appelle déterminer le spectre de l’opérateur en question. Et la raison pourquoi ceci est une chose intéressante est que, si l’opérateur est un opérateur linéaire, la fonction, dont on cherche à calculer les valeurs, peut être exprimée comme une combinaison linéaire des fonctions, sur lesquelles l’opérateur agit de façon “facilment” calculable. Le cas le plus simple est celui de ses fonctions propres, sur lesquelles il agit par multiplication par un nombre (la valeur propre correspondante), mais l’on va rencontrer d’autres cas aussi (d’où la variante “pseudo-spectrales”, puisque dans ce cas l’on ne diagonalise pas l’opérateur qui nous intéresse).

Commençons, donc, par un exemple concret, qui illustre comment on utilse la méthode spectrale pour calculer explicitement les valeurs d’une fonction, solution d’une équation aux dérivées partielles-l’équation de Schrödinger dépendante du temps.

1 Méthode Spectrale : Exemple simple

On commence par un problème “classique” : la résolution de l’équation de Schrödinger dépendante du temps1

i~∂ψ(x, t)

∂t =Hψ(x, t)≡ −~2 2m

2ψ(x, t)

∂x2 +V(x)ψ(x, t)≡H0ψ(x, t) +V(x)ψ(x, t) (1) sur un intervalle fini 0 ≤ x ≤ L. On se donne la condition initiale, ψ(x,0) ≡ Ψ(x) pour 0 < x < Let ψ(x,0) = 0 pour x < 0 out x > L et les conditions aux bords, ψ(0, t) ≡f(t) et ψ(L, t)≡g(t).

On commence en choisissant les unités de façon à pouvoir poser ~ = 1 et m = 1/2, ce qui élimine les constantes apparentes. On se limite, par la suite, au problème simplifié de la particule libre, c.à.d. on pose V(x) = 0 et l’on traitera, tout d’abord, le cas des conditions aux

1Il est intéressant de noter qu’une litérature assez fournie existe depuis les années quatre-vingt sur l’appli- cation de méthodes (pseudo)-spectrales pour cette équation[1].

(2)

bords de type Dirichlet, f(t) ≡ 0 et g(t) ≡ 0. Les complications qui seront introduites par la levée de ces simplifications nous occuperont une fois que l’on a compris comment résoudre déjà ce problème simplifié.

La méthode spectrale que l’on va employer est définie par la recherche des fonctions propres et valeurs propres de l’opérateur

H0 ≡ − d2 dx2

qui agit sur les fonctions définies sur l’intervalle [0, L] et qui sont carré-sommables. Elles sont solutions de l’équation

H0φ(x) = λφ(x)

avec conditions aux bords φ(0) = 0, φ(L) = 0. Il est facile de les trouver : C’est la famille φn(x) =

r2

Lsinnπ L x avec n= 0,1, . . .. Les valeurs propres,λn sont données par

λn = n2π2 L2

On (re)trouve le résultat bien connu de la mécanique quantique. On écrit, maintenant, la solution, ψ(x, t) de l’équation originale comme combinaison linéaire des fonctions φn(x) avec coefficients cn(t). A ce point on ne sait pas si cette série, effectivement, représente la solution–

numériquement on ne pourra calculer que les sommes partielles. On écrit, alors, ψN(x, t) =

NX1

n=0

cn(t)φn(x)

C’est ici que l’on introduit l’approximation principale, à savoir que l’on ne retient qu’un nombre fini, N de termes. Si la série converge suffisamment rapidement et l’on emploie une méthode appropriée d’évaluation, on pourra calculerψN(x, t)de façon à ce que ses valeurs ne dépendent que faiblement (à la précision à laquelle l’on travaille) sur N.

Il nous reste à déterminer les fonctions cn(t) et de proposer une méthode efficace pour l’évaluation de la somme.

Si l’on remplace cette expression dans l’équation de Schrödinger, on obtient

N1

X

n=0

φn(x)

·

idcn(t)

dt −λncn(t)

¸

= 0

Sous l’hypothèse que les fonctions propres de H0 forment une base dans l’espace de fonctions qui nous intéressent, cette égalité implique que

idcn(t)

dt −λncn(t) = 0 dont la solution est

cn(t) =cn(0)ent

(3)

Les constantes cn(0) sont déterminées par la représentation de la condition initiale comme une combinaison linéaire des fonctions propres

cn(0) = Z L

0

φn(x)Ψ(x)dx

et ici entre une nouvelle source d’incertitudes numériques, puisqu’il est rare, en générale, que l’on puisse évaluer ces intégrales analytiquement, ou que, même dans ce cas, les expressions obtenues soient les plus appropriées à une évaluation numérique efficace. Dans le cas concret que l’on présente ici, les choses sont plus favorables, puisque les φn(x)sont des fonctions trigo- nométriques, ce qui nous ouvre la possibilité d’évaluer les intégrales par transformée de Fourier rapide ! C’est notre première rencontre avec cet outil indispensable pour la mise en oeuvre de la méthode spectrale. On reviendra, bien sûr, sur les détails de la réalisation.

On arrive, alors, à l’expression suivante pour la solution de notre problème : ψN(x, t) =

NX1

n=0

·Z L 0

φn(x)Ψ(x)dx

¸

entφn(x)

Puisque la coordonnée spatialexappartient à l’intervalle[0, L], on peut introduire une partition en M points, xj = (L/M)j, j = 0,1, . . . , M −1 On peut, également, introduire une partition de l’intervalle temporel en K points, tl = (T /K)l, l = 0,1, . . . , K −1. L’intégrale, qui donne les coefficients cn(0) prend, alors, la forme

cn(0) = Z L

0

φn(x)Ψ(x)dx= r2

L Z L

0

Ψ(x) sinnπ

L xdx≈ L M

r2 L

MX1

j=0

Ψjsinnπj M

et l’on se rend compte immédiatement qu’il ne s’agit de rien d’autre que d’une transformée de Fourier discrète, plus exactement d’une transformée de sinus discrète–si l’on choisit M = 2m, on peut employer la technique de la transformée de sinus rapide pour déterminer les cn(0) qui ne sont rien d’autre, alors, que les coefficients de Fourier du vecteur de la condition initiale,Ψj. Une première approche aurait pu être le calcul des cn(0) par intégration numérique “habi- tuelle”, par exemple, par la règle de Simpson et c’est un exercice intéressant de faire le calcul des opérations réquises et de la précision obtenue pour se faire une idée quelle méthode est supérieure.

Par la suite, on note que, pour φn(x) = p

2/Lsin(nπ/L)x, la fonction ψN(j, l), calculée sur les points xj, correspond exactement à la transformée de sinus decn(0)entl

ψN(j, l) =

NX1

n=0

("

L M

r2 L

MX1

k=0

Ψksinnπk M

# entl

) r2

Lsinnπj M

Il faut, ici, noter que l’on doit prendre M =N si l’on veut pouvoir inverser ces relations.

La quantité que l’on cherche, surtout, à déterminer, est|ψN(x, t)|2, puisque l’on sait que son intégrale est une quantité conservée par l’évolution temporelle de l’équation de Schrödinger. Par ailleurs, le calcul de cette intégrale fournit un bon moyen de contrôle de la fiabilité de la méthode de solution, puisque la grande majorité des calculs peut être réalisée par des transformées

(4)

discrets rapides. Le rapport des deux nous donne la densité de probabilité de trouver la particule entrex et x+dx à un instant donné.

A partir de cette quantité une autre quantité intéressante est lalargeurde la fonction d’onde, définie comme le deuxième moment (centré) de la distribution :

hxi ≡ RL

0 x|ψ(x, t)|2dx RL

0 |ψ(x, t)|2dx σ(t)2 ≡ h(x− hxi)2i=

RL

0 (x− hxi)2|ψ(x, t)|2dx RL

0 |ψ(x, t)|2dx

Dans l’exemple étudié ici l’on s’attend, bien sûr, à ce que le centre de masse ne bouge pas au cours du temps et que la largeur croisse linéairement avec le temps-tant que l’on reste loin des bords. C’est, alors, intéressant de sonder l’effet qu’ont les bords !

2 La méthode Pseudo -Spectrale

L’approche présenté ci-dessus est fondée sur l’hypothèse que l’on peut résoudre le problème spectral de l’opérateur spatial avec une meilleure précision que celle, avec laquelle on voudrait résoudre l’équation du départ. Dans beaucoup de situations cette hypothèse n’est pas vérifiée, ne serait-ce que parce que le problème spectral, déjà du point de vue analytique, n’est pas abordable. Dans ce cas, on cherche, parmi les ensembles de fonctions orthogonales, ceux, où l’opérateur spatial agit, quand même, de façon “simple”, typiquement, de manière à ce que les résultats puissent être obtenus à l’aide de transformées rapides. On parle, alors, de méthodes (il en existe de plusieurs types) pseudo-spectrales : elles retiennent des méthodes spectrales le développement sur une base de fonctions et l’utilisation des transformées rapides pour le changement de bases, mais elles ne correspondent pas à la solution du problème spectral de l’opérateur spatial.

2.1 L’équation d’advection

Prenons comme exemple l’équation d’advection

∂ψ(x, t)

∂t =−v∂ψ(x, t)

∂x (2)

avec condition initiale ψ(x,0) = Ψ(x), 0< x ≤ L et condition au bord x = 0, ψ(0, t) = 0. Le problème spectral semble beaucoup moins transparent qu’avant, Bien sûr la solution de cette équation est immédiate :

ψ(x, t) = Ψ(x−vt)

Notre but est de valider une méthode, qui pourra être utile à un cas plus compliqué ; par conséquent, il qu’elles nous donne des résultats, que l’on peut obtenir par ailleurs !

En s’inspirant de la particule libre, on va essayer de développerψ(x, t)en série de fonctions trigonométriques, qui ne sont pas, bien sûr, fonctions propres de l’opérateur −vd/dx, mais sur

(5)

lesquelles cet opérateur agit, néanmoins, de manière “simple : ψ(x, t) =

r2 L

NX1

n=0

µ

an(t) sin2πnx

L +bn(t) cos2πnx L

(3)

On note que l’on n’a pas employé les fonctions propres, p

2/Lsin(nπx/L), du Hamiltonien libre, −∂2/∂x2, qui satisfont les conditions aux bords. La raison est que le développement de

−v∂ψ/∂x n’est pas simple, car si l’on pose

−v∂ψ

∂x =

NX1

n=0

"

−van(t)nπ L

r2

Lcosnπx L

#

≡X

n=0

dn(t) sinnπx L

on trouvera que lesdn(t)sont des combinaisons linéaires desan(t), car les fonctionssin(nπx/L) et cos(mπx/L) sont orthogonales lorsque n+m est n’importe quel nombre pair. Par contre, les fonctionsφn(x)≡p

2/L×sin(2πnx/L)etψn(x)≡p

2/L×cos(2πm/L)sont orthogonales pour toute valeur de n6=|m|–et, également, normalisées à 1.

Ainsi l’on trouve

an(t) = r2

L Z L

0

ψ(x, t) sin2nπx L dx et

bn(t) = r2

L Z L

0

ψ(x, t) cos2nπx L dx En particulier

an(0) = r2

L Z L

0

Ψ(x) sin 2nπx L dx et

bn(0) = r2

L Z L

0

Ψ(x) cos2nπx L dx Si l’on remplace le développement (3) dans l’éq. (2), on trouve

∂ψ(x, t)

∂t = r2

L

N1

X

n=0

µdan(t)

dt sin2πnx

L +dbn(t)

dt cos2πnx L

=

−v∂ψ(x, t)

∂x =−v r2

L

NX1

n=0

µ

an(t)2nπ

L cos2πnx

L −bn(t)2nπ

L sin2πnx L

On en déduit les équations suivantes pour les fonctions an(t) etbn(t) dan(t)

dt =vbn(t)2nπ L

dbn(t)

dt =−van(t)2nπ L dont la solution est

an(t) = A+nei2vnπL t+Anei2vnπL t bn(t) = Bn+ei2vnπL t+Bnei2vnπL t

(6)

Les constantes sont déterminnées par les conditions an(0) =

r2 L

Z L 0

Ψ(x) sin 2nπx L dx bn(0) =

r2 L

Z L 0

Ψ(x) cos2nπx L dx

˙

an(0) =vbn(0)2nπ L b˙n(0) =−van(0)2nπ

L

qui donnent les expressions suivantes pour les coefficientsA±n, Bn± A+n = an(0)−ibn(0)

2 An = an(0) + ibn(0)

2 Bn+ = bn(0) + ian(0)

2 Bn = bn(0)−ian(0)

2

et permettent d’obtenir les fonctionsan(t) etbn(t)sous la forme an(t) =

µan(0)−ibn(0) 2

ei2vnπL t+

µan(0) + ibn(0) 2

ei2vnπL t bn(t) =

µbn(0) + ian(0) 2

ei2vnπL t+

µbn(0)−ian(0) 2

ei2vnπL t

Il nous reste à montrer que ces expressions nous permettent de retrouver la solution exacte.

On note que

φn(x)ei2vnπL t= 1 2i

³eiLn(x+vt)−eiLn(xvt)´ φn(x)ei2vnπL t = 1

2i

³eiLn(xvt)−eiLn(x+vt)´ ψn(x)ei2vnπL t= 1

2

³eiLn(x+vt)−eiLn(xvt)´ ψn(x)ei2vnπL t = 1

2

³eiLn(xvt)−eiLn(x+vt)´ Par conséquent on trouve bien que

ψ(x, t) =

NX1

n=0

[an(t)φn(x) +bn(t)ψn(x)] =

NX1

n=0

"

an(0) r2

Lsin µ2πn

L (x−vt)

+bn(0) r2

Lcos µ2πn

L (x−vt)

¶#

≡Ψ(x−vt) et l’on note que les termes qui contiennent la combinaison x+vt se compensent exactement.

(7)

2.2 L’équation de Schrödinger avec potentiel

On reprend, maintenant, l’équation de Schrödinger, mais, cette fois-ci, on ajoute un terme d’énergie potentiel, c.à.d. on cherche à résoudre éq. (1) avec V(x) 6= 0. La méthode spectrale exige quez l’on trouve les fonctions propres et valeurs propres deH ≡H0+V(x). Généralement ceci n’est pas possible–et, même dans les cas où c’est possible, ce n’est pas, nécessairement, le cas que les expressions analytiques obtenues soient les plus appropriées pour le calcul numérique.

Ainsi l’on va utiliser une méthode pseudo-spectrale, dans le sens que l’on va développer ψ(x, t) dans la base des fonctions propres de la particule libre :

ψN(x, t) =

NX1

n=0

cn(t)φn(x) (4)

Calculons HψN(x, t). Il sera donné par HψN(x, t) =

NX1

n=0

cn(t)

·n2π2

L2 +V(x)

¸ φn(x) Le membre de gauche est donné par

i

NX1

n=0

d

dtcn(t)φn(x) En formant le produit scalaire avec φm(x)on trouve

id

dtcm(t) =

NX1

n=0

cn(t)

· δn,m

n2π2 L2 +

Z L 0

φm(x)V(x)φn(x)dx

¸

≡(λnδm,n+vm,n)cn(t)≡wm,ncn(t) (5) La matrice wm,n n’est plus diagonale, mais elle est toujours symétrique, puisque le potentiel est un opérateur auto-adjoint, donc on peut la diagonaliser par la méthode de Jacobi, par exemple, puisque l’on a besoin aussi bien des valeurs propres que des vecteurs propres. Comme le potentiel ne dépend pas du temps, cette diagonalisation doit être faite seulement au début, pour exprimer cn(0) dans la base des vecteurs propres de v, puisque

cn(t) =eiwtcn(0) =

NX1

p=0

an,peptVp

et l’expression finale prend la forme ψN(x, t) =

NX1

n=0

φn(x) ÃNX1

p=0

an,peptVp

!

On rencontre deux problèmes pratiques ici : d’une part, on doit diagonaliser la matrice w, (typiquement O(N3) opérations, mais que l’on peut faire une fois pour toutes) d’autre part on doit effectuer O(N2) opérations pour calculer ψN(x, t), à cause de la double somme sur n et p-et pour chaque point x et chaque instant t. C’est cette dernière opération que l’on peut accélérer en employant les transformées rapides.

Mais, avant d’aborder cet aspect, on doit terminer la présentation de l’emploi des transfor- mées sur les équations non-linéaires.

(8)

3 Transformées Rapides et Equations non-linéaires

La transformée de Fourier et ses variantes est une transformation linéaire; elle transforme une équation différentielle linéaire en un système d’équations algébriques linéaires pour les coefficients dans la base de fonctions choisie. On s’attend, alors, à ce qu’elle transforme une équation différentiellenon-linéaireen un système d’équations non-linéaires pour les coefiicients.

Dans le cas des méthodes pseudo-spectrales on transforme l’équation différentielle d’origine en un système d’équations différentielles ordinaires linéaires pour les coefficients, qui contiennent la dépendance temporelle, comme on vient de voir. L’avantage numérique des méthodes (pseudo)- spectrales réside dans le fait qu’elles ne remplacent pas les dérivées par des différences finies ; elles remplacent le nombre infini des termes de la série par un nombre fini. Ceci permet une réduction de l’erreur qui est significative par rapport aux méthodes de différences finies, dans lesquelles on remplace les dérivées par des différences finies.

Mais il y a une astuce que l’on peut employer. Pour bien illustrer de quoi il s’agit, on va prendre un exemple concret, encore une fois, à savoir l’équation de Burgers :

∂ψ

∂t =−ψ(x, t)∂ψ

∂x

une sorte de variante non-linéaire de l’équation d’advection, dans laquelle le champ de vitesses est donné par la fonction ψ que l’on cherche. Prenons les mêmes conditions initiale et aux bords qu’avant. Il est, alors, évident que’, si l’on écrit, comme avant (et l’on note que φn(x) = (2πn/L)ψn(x)et queψn(x) =−(2πn/L)φn(x)et l’on poseean(t)≡ −(2πn/L)×bn(t)etebn(t)≡ (2πn/L)×an(t)), alors on obtient

ψ(x, t) =

NX1

n=0

[an(t)φn(x) +bn(t)ψn(x)]⇒

∂ψ

∂t =

NX1

n=0

ha˙n(t)φn(x) + ˙bn(t)ψn(x)i

=

NX1

n=0

[an(t)φn(x) +bn(t)ψn(x)]×

NX1

n=0

h e

an(t)φn(x) +ebn(t)ψn(x)i

=

N1

X

n=0

( n X

k=0

[akφk+bkψk]×h e

ankφnk+ebnkψnk

i)

Lorsque l’on mutlipliera les deux membres de ces équations par φm(x), par exemple, pour déduire l’équation pour dam(t)/dt, dans le membre de droite on obtiendra des termes de la formeak×bnk, ainsi de suite, qui rendront, dans la pratique impossible d’obtenir les coefficients an(t)etbn(t)sous forme numériquement simple. Il semble que l’on devra résoudre les équations différentielles pour les coefficients par une méthode des différences finies (Runge-Kutta, par exemple), ce qui introduira des erreurs systématiques. En plus, on note que, apparemment, l’évaluation du membre de droite exige O(N2)opérations.

C’est ici que la possibilité d’employer des transformées rapides ouvre une voie nouvelle.

L’idée est la suivante : On note que l’expression du membre de droite possède la structure

(9)

d’une convolution :

−ψ∂ψ

∂x =− ÃNX1

n=0

Xn

k=0

akeankφkφnk+

NX1

n=0

Xn

k=0

akebnkφkψnk+

NX1

n=0

Xn

k=0

bkeankψkφnk+

NX1

n=0

Xn

k=0

bkebnkψkψnk

! (6)

Chacun des quatre termes est de la forme

NX1

n=0

Xn

k=0

AkBnk

que l’on peut calculer par transformée de Fourier rapide de manière efficace. La raison est que, si l’on pose

Cn ≡ Xn

k=0

AkBnk

et l’on définit les transformées de Fourier (discrètes) des vecteurs An, Bn, Cn par Abp, Bbp et Cbp

comme

Abp

NX1

n=0

An

e2πip·n/N

√N ⇔An

N1

X

p=0

Abp

e2πip·n/N

√N Bbp

NX1

n=0

Bne2πip·n/N

√N ⇔Bn

NX1

p=0

Bbpe2πip·n/N

√N Cbp

NX1

n=0

Cne2πip·n/N

√N ⇔Cn

NX1

p=0

Cbpe2πip·n/N

√N alors on a que2

Cbp =Abp×Bbp

pour p = 0,1,2, . . . , N −1 et, par conséquent,si l’on connaît les vecteurs An et Bn et l’on cherche à calculer les composantes de leur convolution, un calcul qui, apparemment, exige O(N2)opérations, puisque l’on doit multiplier deux vecteurs àN composantes chacun, on peut employer la transformée de Fourier discrète pour le faire en O(Nlog N) opérations : on cal- cule les composantes des deux transformées (O(Nlog N)opérations), on multiplie composante par composante celles-ci (N opérations) et l’on effectue une transformée de Fourier inverse (O(Nlog N) opérations).

L’application de ces idées à notre problème est immédiate :A partir de la condition initiale, ψ(x,0) ≡ Ψ(x) et des conditions aux bords, ψ(0, t) = 0, ψ(L,0) = 0, on peut déterminer les valeurs an(0) et bn(0), par les équations

an(0) = Z L

0

dxΨ(x)φn(x) bn(0) = Z L

0

dxΨ(x)ψn(x)

2Exercice :Démontrer cette affirmation.

(10)

On en déduit les coefficients de Fourier de la dérivée, à cet instant, par e

an(0) =−(2πn/L)×bn(0) ebn(0) = +(2πn/L)×an(0)

Par ces valeurs et celles des fonctions de base, φn(x) et ψn(x), on peut calculer la valeur de la combinaison −ψ(x, t)×∂ψ(x, t)/∂x, à un instant donné, par convolution. Et l’on s’en sert, dans une routine de différences finies dans le temps, pour calculer la valeur de ψ(x, t+ ∆t), à l’instant t+ ∆t, à tout point spatial. Par transformée de Fourier on déduit an(t+ ∆t) et bn(t+ ∆t), ainsi que les coefficients de Fourier de ∂ψ(x, t+ ∆t)/∂x et l’on repète. Ainsi la difficulté intrinsèque des équations non-linéaires est concentrée, d’une part dans le calcul des convolutions, opération que l’on peut faire très efficacement et, d’autre part, à la nécessité d’employer une routine d’intégration numérique pour la propagation temporelle-que cette fois- ci il est impossible d’éviter. Par contre, on réduite de façon considérable la complexité du système d’équations à intégrer ! Finalement, l’efficacité de cette approche dépend de manière sensible à la précision avec laquelle on peut représenter les fonctions-donc le choix de l’ensemble des noeuds d’évaluation, xj, ainsi que sur la réalisation des transformées de manière rapide et efficace.

Ces thèmes vont nous occuper par la suite.

4 La Transformée de Fourier Rapide et ses Variantes : As- pects pratiques

4.1 La Transformée de Fourier Rapide et le(s) Diagrammes Papillon

Après ce tour d’horizon théorique entrons dans la partie pratique du sujet. On veut com- prendreen détail comment est réalisé la transformée de Fourier rapide, ainsi que ses variantes, la transformée de sinus et la transformée de cosinus. C’est un sujet très intéressant, mais qui, malheureusement, n’est pas expliqué avec la clarté que l’on lui doit.

Commençons avec la transformée de Fourier discrète. Soit un vecteur à N-composantes complexes,fn et la matrice

ωk,n ≡ e2πik·n/N

√N

avec k, n= 0,1, . . . , N −1. Il est facile de se rendre compte que

NX1

n=0

ωk,n ωn,nk,n

c’est une matrice unitaire. Par conséquent, si l’on définit Fk

NX1

n=0

ωk,nfn

alors

fn=

NX1

k=0

ωn,kFk

(11)

On note que ces opérations réalisent la multiplication d’un vecteur à N−composantes par une matrice pleine, de tailleN×N. Ceci implique que l’on a besoin deO(N2)multiplications pour l’effectuer. La qualification “rapide” implique que l’on peut faire beaucoup mieux, dans le cas où la matrice n’est pas quelconque, mais est ωk,n, avec N = 2p. “Beaucoup mieux” veut dire que l’on peut améliorer l’exposant–et l’on va montrer que l’on peut baisser le coût d’O(N2) à O(Nlog N) opérations.

Pour saisir l’idée, prenons un exemple concret, N = 8 = 23. Formellement on doit calculer (on écrit ωN ≡e2πi/N)

Fk×√

8 =f0k8f182kf283kf384kf485kf586kf687kf7

donc, huit multiplications, pour chaque valeur de k, qui prend, également, huit valeurs, pour un total de 64 multiplications. Comment peut-on faire mieux ?

On note que cette expression se laisse écrire comme Fk×√

8 =¡

f082kf284kf486kf6

¢+ω8k¡

f182kf384kf586kf7

¢

et l’on note que chaque expression entre parenthèses correspond à la réalisation d’une transfor- mée de Fourier discrète d’ordre 4 = N/2, puisqueω82k4k! Ainsi l’on déduit que

Fk×√ 8 = ¡

f04kf242kf443kf6

¢+ω8k¡

f14kf32k4 f53k4 f7

¢

et l’on peut continuer cette procédure de réduction encore plus loin : Fk×√

8 = ¡

f04kf22k4 f43k4 f6

¢+ω8k¡

f1k4f342kf543kf7

¢=

¡¡f02kf4

¢+ω4k¡

f22kf6

¢¢+ω8k¡¡

f12kf5

¢+ω4k¡

f32kf7

¢¢

Cette expression est très intéressante. Elle nous renseigne, premièrement, que la représentation naturelle du vecteur fn n’est pas la suite (f0, f1, f2, f3, f4, f5, f6, f7) mais celle, apparemment contre-intuitive, (f0, f4, f2, f6, f1, f5, f3, f7).

Ensuite, elle indique que le calcul possède une structure hiérarchique, en arbre, qui possède log28 = 3 niveaux, que l’on peut exploiter de façon à calculer les huit composantes du vecteur Fk aux mêmes places de mémoire occupées par les composantes du vecteur fn. Pour ceci on note que, au niveau le plus bas, on est appelé(e)s à calculer f0 +f4, f0 −f4, f2 +f6, f2−f6, f1+f5, f1−f5, f3+f7 etf3−f7.

Finalement, elle nous confirme que, pour une valeur donnée de l’indice k, on doit effectuer trois multiplications, pour un total de 24 multiplications-au lieu de 64 (deux multiplications avec ω4k et une avec ωk8).

Concrètement, on commence, au niveau le plus bas, en posant : temp=f0−f4

f0 =f0+f4

f4 =temp

temp=f2−f6 f2 =f2+f6

f6 =temp

temp=f1−f5 f1 =f1+f5

f5 =temp

temp=f3−f7 f3 =f3+f7

f7 =temp

On note que ces opérations sont “très bon marché”, puisqu’elles n’impliquent aucune multipli- cation o division.

(12)

On peut faire le dessin suivant :

f0 (f0+f4)→f0

f4 (f0−f4)→f4

f2 (f2+f6)→f2

f6 (f2−f6)→f6

f1 (f1+f5)→f1

f5 (f1−f5)→f5

f3 (f3+f7)→f3

f7 (f3−f7)→f7

où les entrées de la deuxième colonne sont dans les positions de la première. On vient de terminer le calcul au niveau le plus bas. Montons au niveau suivant : les “paires” sont (f0, f2), (f4, f6), (f1, f3),(f5, f7). On note ici que les(f0, f6)et(f1, f3)sont les combinaisons qui contribuent aux valeurs paires de l’indice k, tandis que les autres aux valeurs impaires. Plus particulièrement,

4.2 Les transformées rapides de sinus et de cosinus

Pour les applications à la représentation de la solution des équations différentielles la trans- formée de Fourier entre aussi bien dans la repésentation de la fonction que l’on cherche à calculer que dans la prise en compte des conditions aux bords. Ainsi, dans le cas de l’équation de Schrödinger pour la particule libre dans un interval de longueurL, avec conditions aux bords de type Dirichlet, on doit calculer

ψN(x, t) =

NX1

n=0

cn(t) Ãr2

Lsinnπx L

!

Si l’on emploie un ensemble de points équi-distants sur l’intervalle [0, L], xj = j×L/M, avec j = 0,1, . . . , M −1, on trouve que la valeur de ψN(x, t) est donnée par

ψN,j(t) =

NX1

n=0

cn(t) Ãr2

Lsinnπj M

!

et l’on reconnaît dans cette expression que ψN,j(t) est la transformée discrète de sinus de la fonction p

2/L×cn(t) et qu’il serait une bonne idée de prendre N = M. On note que cette évaluation semble, également, nécessiter O(N ×M)(c.à.d. O(N2)) opérations, puisqu’il s’agit de la multiplication de la matriceMj,n = sin(πnj/M)et du vecteurcn(t)×p

2/Lpour obtenir le vecteur ψj,N(t). L’on note qu’il ne s’agit pas de la partie imaginaire de la transformée de Fourier discrète,

Fk ≡ 1

√N

NX1

n=0

e2πikn/Nfn= 1

√N

NX1

n=0

cos

µ2πkn N

fn+ i× 1

√N

NX1

n=0

sin

µ2πkn N

¶ fn

car il y a un facteur de 2 au numérateur dans la partie imaginaire !

Mais l’on peut obtenir la transformée de sinus, de façon “rapide”, si l’on sait obtenir la transformée de Fourier de façon rapide. L’idée est la suivante :

(13)

On commence par la transformée de Fourier discrète de taille N Fk,N = 1

√N

NX1

n=0

e2πikn/Nfn = 1

√N

(N/2)1

X

n=0

e2πikn/Nfn+ 1

√N

NX1

n=(N/2)

e2πikn/Nfn

et k = 0,1,2, . . . , N −1. On note, maintenant, (a) que e2πi(Nn)k/N = e2πink/N et (b) que lorsque n = (N/2) + 1,(N/2) + 2, . . . , N −1, alors N −n= (N/2)−1,(N/2)−2, . . . ,1 et (c) que e2πik(N/2)/N = (−)k. On écrit, alors, l’expression précédente comme

Fk,N×√

N = (f0+ (−)kfN/2) + (f1e2πik/N +fN1e2πik/N) + (f2e2πi2k/N +fN2e2πi2k/N) +· · · +(f(N/2)1e2πi((N/2)1)k/N +f(N/2)+1e2πi((N/2)1)k/N)

Cette expression implique que, si le vecteur {fn} est antisymétrique par rapport à l’indice n= (N/2), c.à.d.fn=−fNn, alors, on trouve que

Fk,N×√

N = (f0+ (−)kfN/2) + 2i

(N/2)1

X

n=1

µ

sin2πnk N

¶ fn

et l’on reconnaît dans la somme la transformée discrète de sinus de taille N/2! En fait elle lui manque le terme n= 0–mais, puisque sin 0 = 0, on peut faire démarrer la somme à n= 0 sans modifier le résultat. Par conséquent, si l’on pose

Sk,N

NX1

n=0

sin µπnk

N

¶ fn

on peut écrire la relation précédente comme Fk×√

N = (f0+ (−)kfN/2) + 2iSk,N/2

ce qui implique que

Sk,N/2 = 1 2i

³Fk,N ×√

N −f0−(−)kfN/2

´ (7)

et l’indice k prend les valeurs k = 0,1,2, . . . ,(N/2)−1. Bien sûr, si fn est antisymétrique par rapport à n=N/2,fn=−fNn, ceci implique que fN/2 = 0.

On veut, également, “inverser” cette transformation, c.à.d. pouvoir exprimer les composantes {fn} à partir de celles du vecteur Sk,N/2. On avait trouvé auparavant que, dans le continu, les fonctions p

2/Lsin(πnx/L) constituent un ensemble de fonctions orthonormées, puisque 2

L Z L

0

dx sin³nπx L

´

sin³mπx L

´

=

½ 1, n=m 0, n6=m

(elles sont fonctions propres d’un opérateur auto-adjoint, du Hamiltonien de la particule libre,

−∂2/∂x2, dont les valeurs propres, n2π2/L2 ne sont pas dégénérées) De même on peut montrer que les fonctions p

2/Nsin(πnk/N) constituent, également, un ensemble de fonctions orthor- mées. Ainsi l’on trouve que

fn = 4 N

(N/2)1

X

k=0

sin

µ πnk (N/2)

Sk,N/2 (8)

(14)

pour n = 0,1,2, . . . ,(N/2)−1–et l’on note que cette relation ne permet de retrouver f0–mais elle est compatible avec f0 = 0.Elle sera évaluée d’après l’éq. (7).

De même on note que, si l’on a un vecteurfnqui estsymétriquepar rapport àn=N/2,c.à.d.

fn=fNn, on trouve que

Fk,N×√

N = (−f0+ (−)kfN/2) + 2

(N/2)1

X

n=0

cos µπnk

N

¶ fn

ou, en définissant la transformée discrète de cosinus, Ck,N

NX1

n=0

cos µπnk

N

¶ fn

on trouve que Fk,N ×√

N = (−f0+ (−)kfN/2) + 2Ck,N/2 ⇔Ck,N/2 = 1 2

³Fk,N×√

N +f0 −(−)kfN/2

´

Dans les deux cas on note que fN/2 n’est pas calculable (par transformée inverse). Ceci est raisonnable, car la procédure, que l’on a exposée, calcule les transformées de sinus/cosinus d’un signal de longueurN/2en construisant un signal “auxiliaire” de longueurN. Par conséquent on doit considérer N/2la “vraie” longueur du signal ! Le seul point délicat, par conséquent, est, si l’on veut calculer la transformée disrète de sinus d’un signal dont la composante f0 6= 0. Dans ce cas il faut stocker cette valeur dans une variable auxiliaire.

Pour résumer : si l’on veut calculer Sk,N et Ck,N pour une fonction f, définie par N valeurs équidistantes,fn,n = 0,1,2, . . . , N −1, on doit, d’abord, construire deux vecteurs auxiliaires, gn ethn, de longueur 2N, avec les propriétés suivantes :

(a) Pour n = 0,1,2, . . . , N −1, gn=fn ethn =fn.

(b) Pour n =N, N + 1, . . . ,2N −1, gn=−g2Nn ethn =h2Nn. Ces relations impliquent, en particulier, quegN = 0et quehN n’est pas définie–par conséquent on peut choisirhN = 0. A- t-on, effectivement cette liberté ? Revenons aux expressions antérieures pour Ck,N/2 et Sk,N/2, qui, apparemment, dépendent de la composante fN/2. On note que la contribution explicite de celle-ci est −(−)kfN/2–et le signe moins, avec lequel elle entre aux expressions, implique que sa contribution est exactement compensée par la contribution +(−)kfN/2 qu’elle fait à la composante de Fourier Fk,N ×√

N!

(c) On calcule les transformées de Fourier,Gk etHk,k = 0,1, . . . ,2N−1. Seules les valeurs G0, G1, . . . , GN1, respectivement, H0, H1, . . . , HN1 sont pertinentes.

(d) Alors les calculs présentés ci-dessus impliquent que Sk,N

NX1

n=0

sin µπkn

N

fn= 1 2i

³Gk×√

N −f0´

(9) respectivement

Ck,N

N1

X

n=0

cos µπkn

N

fn = 1 2

³

Hk×√

N +f0

´

(10)

(15)

avec k= 0,1,2, . . . , N −1.

(Le facteur de √

N, que multiplie Hk ouGk vient de la normalisation de la transformée de Fourier, par rapport aux transformées de sinus et cosinus. )

(e) Ces expressions sont inversibles, c.à.d. on peut rétrouver les composantes du vecteur fn

si l’on connaît les composantes du vecteur Ck,N ou celles du vecteur Sk,N. Ainsi

fn = 2 N

NX1

k=0

sin µπnk

N

¶ Sk,N

ou

fn = 2 N

NX1

k=0

cos µπnk

N

¶ Ck,N

et les sommes sont obtenues en suivant les étappes (a)–(d) où l’on remplace fn par Sk,N, respectivement Ck,N. Ainsi l’on a que

fn= 2 N × 1

2i

³Sbn×√

N −S0,N

´

ou

fn= 2 N ×1

2

³Cbk×√

N +C0,N

´

où Sbk et Cbk sont les composantes de la transformée de Fourier (de taille 2N) des extensions des vecteursSk,N et Ck,N. Mais l’on note que S0,N ≡0–et l’on ne peut pas récupérer f0, si l’on connaît seulement la transformée de sinus d’une fonction.

5 Les méthodes (pseudo)-spectrales et le calcul des déri- vées d’une fonction

Dans la section précédente on a exposé la technique, par laquelle on peut calculer rapidement les valeurs de la transformée de Fourier d’une fonction à une variable, si l’on connaît les valeurs de la fonction sur un ensemble de points donné.

Pour la résolution numérique d’équations différentielles on a besoin de calculer les coefficients de Fourier des dérivées d’une fonction–c.à.d., si l’on connaît{fn≡f(xn)},n = 0,1,2, . . . , N−1, comment calculer {f(xn)}?

Si l’on écrit f(x) sur la base d’un ensemble de fonctions, φn(x) etψn(x),

f(x) =

N1

X

n=0

[anφn(x) +bnψn(x)]

de façon à ce que l’on ait le droit de représenter la dérivée par différentiation terme par terme de la série, on note que

f(x) =

N1

X

n=0

[anφn(x) +bnψn(x)]

(16)

et le problème devient, dans quelle mesure on peut exprimer de manière “simple” (c.à.d. rapide et efficace), φn(x) comme combinaison(s) linéaire(s) desφn(x).

Commençons par le cas concret où φn(x) ≡ sin(2πnx/L) et l’on introduit, également, ψn(x)≡cos(2πnx/L). Alors on note’ que φn(x) = (2πn/L)ψn(x) et ψn(x) =−(2πn/L)φn(x)–

les développements en séries de φn etψn ont un terme chacun. Ainsi l’on obtient que f(x) =

N1

X

n=0

£a(1)n φn(x) +b(1)n ψn(x)¤

avec a(1)n ≡ −2bn×nπ/L etb(1)n ≡2an×nπ/L. De même on trouve que f′′(x) =

NX1

n=0

£a(2)n φn(x) +b(2)n ψn(x)¤

avec a(2)n ≡ −4an×n2π2/L2 etb(2)n ≡ −4bn×n2π2/L2.

Références

[1] H. Tal-Ezer and R. Kosloff, An accurate and efficient scheme for propagating the time- dependent Schrodinger equation, J. Chem. Phys., 81 (1984), pp. 3967–3971.

Références

Documents relatifs

changements très considérables dans les températures, l’excentricité de l’orbite terrestre donnerait naissance à diverses saisons. L’intermittence des jours et des

Le sommet AFRICITES 3 est une occasion unique pour les organisations de la société civile de faire entendre leurs voix par tous les acteurs du développement municipal et

C’est notamment la mission de la fondation pour la mémoire de l’esclavage, dont la création nous réunit aujourd’hui.. Le 10 mai 2018, pour la journée nationale des mémoires

Je voudrais, sur ce point, indiquer que la première série d’échanges bilatéraux que nous avons conduite m’a permis de constater chez l’ensemble des responsables

La conjonction d’un diagnostic d’assez fort isolement du monde des enseignants de la conduite et de la sécurité routière, par rapport au monde de l’éducation à la

Une équation différentielle linéaire homogène est dite à coefficients constants si les fonctions coefficients sont constantes (i.e. ne dépendent pas de ). Dans ce cas,

Rôle de la linguistique fonctionnelle dans l’adaptation des tests de langage français, à la langue arabe : exemple d’un protocole.. ZELLAL Nacira En Algérie,

Résoudre une équation, c’est clore deux petites fêtes où se sont réunis