Vous êtes sur la page 1sur 59

Méthode multipôles pour les fibres optiques

microstructurées
Projet tutoré (Analyse numérique et Optique Guidée)

proposé par Éric Darrigrand et Fabrice Mahé1

Hugo TERRIER et Farmin YARIRAD


étudiants d’UR12

16 mai 2010

1. Éric Darrigrand, Bâtiment 22 - Bureau 106, eric.darrigrand-lacarrieu@univ-rennes1.fr et Fabrice Mahé -


bureau 116 du bâtiment 22 - 02 23 23 60 48 - fabrice.mahe@univ-rennes1.fr
2. Université de Rennes 1
Table des matières

I Travail préparatoire 3
1 Intégration numérique et programmation C 4
1.1 Formules de quadrature interpolatoires . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Formules de Gauss-Legendre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Polynômes de Legendre . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Quadrature de Gauss-Legendre à n+1 points . . . . . . . . . . . . . . . . . . 5
1.3 Implémentation de la formule de Gauss-Legendre . . . . . . . . . . . . . . . . . . . 6
1.3.1 Ordre de convergence de la méthode de Gauss-Legendre . . . . . . . . . . . 9
1.4 Formules de Newton-Cotes (fermées) . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.1 Implémentation des formules de Newton-Cotes . . . . . . . . . . . . . . . . 13
1.4.2 Ordre de Convergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 Comparaison des quadratures et des langages . . . . . . . . . . . . . . . . . . . . . 16
1.5.1 Gauss-Legendre vs Newton-Cotes . . . . . . . . . . . . . . . . . . . . . . . 16
1.5.2 C vs Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 Équation d’Helmholtz et Matlab 18


2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Étude de l’équation d’Helmholtz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.1 Conditions sur le problème . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.2 Formulation faible du problème . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3 Discrétisation par la méthode des éléments finis . . . . . . . . . . . . . . . . . . . . 24
2.3.1 Présentation de la méthode des éléments finis . . . . . . . . . . . . . . . . . 24
2.3.2 Construction d’un maillage . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.3 Construction des polynômes de Lagrange . . . . . . . . . . . . . . . . . . . 25
2.3.4 Schématisation du problème faible . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.5 Programmations Matlab de la méthode des éléments finis . . . . . . . . . . 29
2.4 Discrétisation par la méthode des différences finies . . . . . . . . . . . . . . . . . . 34
2.4.1 Schématisation du problème fort . . . . . . . . . . . . . . . . . . . . . . . . 34
2.4.2 Programmation Matlab de la méthode des différences finies . . . . . . . . . 36

II Application aux fibres microstructurées 41


3 Description du modèle et formulation du problème de calcul de modes de fuite 42
3.1 Formulation de la propagation des ondes . . . . . . . . . . . . . . . . . . . . . . . . 42
3.2 Introduction à la notion de guide d’ondes en optique guidée . . . . . . . . . . . . . . 44
3.2.1 Les guides d’ondes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3 Exemple de guides d’ondes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3.1 Les fibres optiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3.2 Les modes de fuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3.3 Les fibres optiques micro-structurées . . . . . . . . . . . . . . . . . . . . . 47

1
4 Méthode multipôles 48
4.1 Complément sur les fibre optique micro-structurées . . . . . . . . . . . . . . . . . . 48

5 Annexes 49

Introduction
Les fibres optiques microstructurées dans leur forme la plus simple sont constituées d’un réseau
bidimensionnel de trous d’air étendus dans la direction de propagation entourant un cœur solide ou
creux. Le guidage de la lumière est assuré soit par l’effet de bande interdite photonique, soit par un
mécanisme de réflexion totale interne, appelé mode de fuite.
L’objectif principal de ce projet est la programmation de la méthode multipôles pour le calcul des
modes de fuite dans une fibre optique microstructurée simple.
La propagation de la lumière se décrit par les équations de Maxwell, mais en considérant les fibres
optiques microstructurées simples comme des milieux linéaires homogènes isotropes, les équations
de Maxwell se simplifient en équation d’Helmholtz :

−∆u − k2 u = 0, sur Ω ⊂ R, R2 , R3 .

Au cours du chapitre 2 du projet nous étudions ce problème et nous le discrétisons par les mé-
thodes des différences finies et des éléments finis P1 . Dans le chapitre 3 nous étudions le cas parti-
culier du guidage des ondes dans les fibres optiques microstructurées. Ces ondes électromagnétiques
sont solutions d’une équation particulière d’Helmholtz. Dans le chapitre quatre nous développons une
méthode numérique permettant le calcul des champs électromagnétiques décrit dans le champ trois :
la méthode multipôles qui peut être optimisée dans le cas de notre étude par la méthode multipôles
rapide. Disposer d’une méthode d’intégration avec un ordre de convergence élevé est indispensable
pour la programmation de la méthode multipôles. Dans le premier chapitre, après une étude détaillée,
nous programmons deux familles de quadratures interpolatoires très employées : Newton-Cotes et
Gauss-Legendre.

Remerciements
Avant d’entamer ce rapport, nous profitons de l’occasion pour remercier tout d’abord nos
professeurs, M.Éric Darrigrand et M.Fabric Mahé, maîtres de conférence à l’unité de formation et
de recherche de l’université de Rennes 1 qui n’ont pas cessé de nous encourager pendant ce projet.

Nous tenons à présenter nos sincères remerciements à la cellule universitaire d’accueil des étudiants
handicapés et en particulier mesdames Brigitte Bardot et Odile Deguilhaume pour leur soutien et
leur accueil.

2
Première partie

Travail préparatoire

3
Chapitre 1

Intégration numérique et programmation C

Introduction
Soit f une fonction réelle intégrable sur un intervalle [a, b] borné. On pose :
Z b
I( f ) = f (x)dx.
a

On appelle formule de quadrature ou formule d’intégration numérique, toute méthode permettant de


calculer une approximation de I( f ). L’évaluation de toute intégrale de ce type pouvant se ramener par
une transformation affine, au calcul d’une intégrale posée sur l’intervalle [−1, 1], on ne considérera
dans la suite que l’intégrale
Z 1
I( f ) = f (x)dx.
−1

1.1 Formules de quadrature interpolatoires


Dans ce travail, On s’intéresse à des formules de quadrature de la forme
n
In ( f ) = ∑ ωi f (xi ),
i=0

c’est-à-dire qui s’écrivent sous forme d’une somme pondérée de valeurs de f en des points de l’inter-
valle [a, b], les coefficients ωi de la combinaison linéaire et les points xi , 0 6 i 6 n, étant respectivement
appelés les poids et les nœuds de la formule de quadrature.
On parle d’une formule de quadrature interpolatoire lorsqu’elle est obtenue en remplaçant la fonction
f par son polynôme d’interpolation en des points définis selon la formule considérée. On définit le
degré d’exactitude d’une formule de quadrature comme le plus grand entier m > 0 pour lequel

In ( f ) = I( f ), ∀ f ∈ Pm ,

où Pm désigne l’ensemble des fonctions associées aux éléments de l’espace vectoriel Rm [X] des
polynômes à coefficients réels de degré inférieur ou égal à m.
Parmi les formules de quadrature interpolatoires, deux familles de formules sont très utilisées ; ce
sont celles de Gauss et celles de Newton-Cotes, dont les formules du point milieu et du trapèze sont
des cas particuliers.

1.2 Formules de Gauss-Legendre


L’idée de la formule de Gauss-Legendre est de placer aux mieux les nœuds dans [−1, 1] (ou bien
dans [a, b] dans le cas général) de sorte que In ( f ) ait le degré d’exactitude aussi grand que possible.

4
Le calcul des nœuds et poids de la formule, s’appuie sur l’exploitation de la définition récurrente des
polynômes, généralement stable numériquement, vérifiée par toute famille de polynômes orthogonaux
par rapport à un produit scalaire donné, que nous verrons plus en détail dans la partie 1.3.

1.2.1 Polynômes de Legendre


Les Polynômes de Legendre qui constituent l’exemple le plus simple d’une suite de polynômes
orthogonaux, sont des solutions de l’équation différentielle de Legendre :

d2y dy
(1 − x2 ) 2
− 2x + l(l + 1)y = 0
dx dx
avec l ∈ C. Le polynôme de Legendre de degré k est défini par :

1 dk 2
Lk (x) = k k
(x − 1)k , k ∈ N.
2 k! dx
On a ainsi :

L0 (x) = 1,
L1 (x) = x,
3x2 − 1
L2 (x) = ,
2
..
.
Les polynômes de Legendre satisfont les propriétés suivantes :
i) Lk ∈ Pk et {L0 , . . . , Ln } est une base de Pn .
Z 1
ii) Orthogonalité : Si i , j, alors Li (x)L j (x)dx = 0.
−1
iii) Ln a exactement n zéros réels distincts dans l’intervalle ouvert ] − 1, 1[ qui sont appelés les points
de Gauss.
iv) Relations récursives :

L (x) = 1,
 0

L1 (x) = x, (1.1)
 Lk+1 (x) = 2k + 1 xLk (x) − k Lk−1 (x), k > 1

k+1 k+1

1.2.2 Quadrature de Gauss-Legendre à n+1 points


Dans la formule de Gauss-Legendre à n + 1 points notée IG,n ( f ) où f est la fonction à intégrer,
les n + 1 nœuds dans l’intervalle [−1, 1], sont en effet les n + 1 zéros du polynôme de Legendre. Les
poids ωi sont définis par
Z 1
ωi = li (x)dx
−1
où li ∈ Pn , 0 6 i 6 n est la base de Lagrange associée aux n + 1 points de Gauss x0 , . . . xn .
Nous allons démontrer par la suite que la formule de Gauss-Legendre à n + 1 est exacte pour les
polynômes de degré 2n + 1. i.e.
Z 1
IG,n (p) = p(x)dx, ∀p ∈ P2n+1
−1

5
Démonstration. Soient p ∈ P2n+1 et Πn,p son interpolé de degré n aux n + 1 nœuds. Alors
n
Πn,p (x) = ∑ p(xk )lk (x).
k=0

On défini q(x) = p(x) − Πn,p (x) ∈ P2n+1 . Il en résulte que xi , 0 6 i 6 n sont tous des racines de q et
donc q est divisible par α défini comme :
n
α(x) = ∏ (x − xk ) ∈ P2n+1
k=0

Il existe donc z ∈ Pn tel que


q(x) = z(x)α(x)
On remarque maintenant que puisque α est un polynôme de degré n + 1 qui s’annule aux n + 1 zéros
de Ln+1 , il doit être de la forme α(x) = λ Ln+1 (x) avec λ ∈ R. Pour le polynôme z, il existe des
constantes réelles β0 , · · · , βn telles que
n
z(x) = ∑ βk Lk (x).
k=0

En remplaçant on obtient que


Z 1 Z 1 n Z 1
q(x)dx = z(x)α(x)dx = λ ∑ Ln+1 (x)Lk (x)dx = 0.
−1 −1 k=0 −1

Donc Z 1 Z 1
p(x)dx = Πn,p (x)dx
−1 −1
pour le membre de droite on a
Z 1 n Z 1 n
Πn,p (x)dx = ∑ p(xk ) lk (x)dx = ∑ p(xk )ωk = In(p).
−1 k=0 −1 k=0

On obtient donc le résultat voulu, Z 1


p(x)dx = IG,n (p).
−1
C . Q . F. D .

1.3 Implémentation de la formule de Gauss-Legendre


Une relation de récurrence à trois termes
Soit ω une fonction positive et intégrable sur l’intervalle ] − 1, 1[. on pose
Z 1
( f , g)ω = f (x)g(x)ω(x)dx
−1

en notant que la forme bilinéaire ainsi définie est un produit scalaire sur l’espace fonctionnel
 Z 1 
2 2
Lω (−1, 1) = f :] − 1, 1[→ R f (x)ω(x)dx < ∞ .
−1

Pour toute famille {pk }k>0 , pk ∈ Pk , de polynômes à coefficients dominants égaux à 1 et deux à deux
orthogonaux pour le produit (. , .)ω , on a la relation suivante ; ∀x ∈] − 1, 1[

6

 pk+1 (x) = (x − αk )pk (x) − βk pk−1 (x), k > 0,
p−1 (x) = 0, (1.2)
p0 (x) = 1


(xpk , pk )ω (pk , pk )ω
αk = , βk = ,k > 1
(pk , pk )ω (pk−1 , pk−1 )ω
Le polynôme p−1 étant identiquement nul par convention, le coefficient β0 est arbitraire et on le
choisit en fonction de la famille de polynômes considérée.
Cette relation de récurrence est fondamentale pour la construction et la manipulation des poly-
nômes orthogonaux au plan numérique. En plus de son utilisation évidente pour l’obtention de valeurs
de polynômes orthogonaux ou de leur dérivées, elle permet aussi de calculer très simplement leurs
racines.
Comme nous avons vu dans la partie 1.2.1, les polynôme de Legendre sont des polynômes ortho-
gonaux sur l’intervalle ] − 1, 1[ par rapport à la fonction ω(x) = 1. Dans ce cas, les expressions des
coefficients αk et βk de la relation de récurrence sont

α = 0, k > 0
 k

β0 = 2, (1.3)
1
 βk = , k > 1

4 − k−2

Calcul effectif des nœuds et poids de la quadrature de Gauss-Legendre


Le calcul des nœuds et poids de quadrature des formules de Gauss-Legendre (et plus généralement
de toute famille de formules obtenues à partir des polynômes orthogonaux) peut être effectué avec
une complexité de l’ordre de O(n2 ) opérations, en résolvant un problème aux valeurs propres faisant
intervenir une matrice tridiagonale. Cette approche est en général bien plus efficace qu’une méthode
basée sur une recherche de racines. on introduit pour cela la matrice symétrique, définie positive et
d’ordre infini suivante, appelé matrice de Jacobi,
 p 
p α β 1 p
 β1 α 1 β2 p 
J∞ = 
 p 

 β2 α2 β3 
... ... ...

dans laquelle les coefficients αk et βk sont ceux donnée par les formules (1.3) dans le cas ou ω ≡ 1.
On a le résultat suivant pour la matrice Jn , n > 1, associée au mineur principal d’ordre n de J∞ .
Théorème 1.1
Soit λk , k = 1, . . . , n, les valeurs propres de la matrice Jn et {uk }k=1,...,n un ensemble de vecteurs propres nor-
malisés associés, c’est-à-dire que 
 Jn uk = λk uk
uT u = 1,
 k K
1 6 k 6 n.
Alors les nœuds de la formule de Gauss-Legendre à n points sont donnés par :

xk = λk

et les poids par :


ωk = β0 (uk )21
où pour 1 6 k 6 n, (uk )1 désigne la première composante du vecteur uk et β0 = 2.

7
Implémentation en C de la méthode de Gauss-Legendre
Le résultat du théorème 1.1 nous permet de calculer facilement les nœuds et poids de la méthode
en fonction du nombre de points de Gauss donné.
Le code suivant écrit en Matlab nous permet de calculer la matrice de Jacobi d’ordre n, avec n le
nombre de points de Gauss :
1 function [ J ] = jaco (n)
2 J= zeros ( n , n ) ;
3 f o r k = 1 : n−1
4 J ( k , k + 1 ) = s q r t ( 1 / ( 4 − k ^ −2) ) ;
5 J ( k +1 , k ) = s q r t ( 1 / ( 4 − k ^ −2) ) ;
6 end
7 end
Ensuite à l’aide de la fonction eig de Matlab, nous calculons les nœuds et leurs poids associés :
1 f u n c t i o n [ noeuds , p o i d s ] = np ( n )
2 [ vec , v a l ] = e i g ( j a c o ( n ) ) ;
3 noeuds= diag ( v a l ) ;
4 p o i d s = ( 2 . ∗ ( vec ( 1 , : ) . ^ 2 ) ) ’ ;
5 end
À l’aide des codes matlab ci-dessus, nous avons calculé les nœuds et poids pour un nombre de
points de Gauss allant de 2 à 20. De par la position symétrique des nœuds par rapport à l’origine, ces
valeurs sont stockées dans deux tableaux Z et W de façon qu’en fonction du nombre de point de Gauss
donné, on parcourt des sous-tableaux correspondants. Voici l’entête de la fonction gl qui calcule la
valeur numérique d’une intégrale avec un nombre de points de Gauss donné compris entre 2 et 20.
1 /∗
2 @Description :
3 Ce programme c a l c u l e une a p p r o x i m a t i o n
4 de l a v a l e u r n u m e r i q u e d ’ une i n t e g r a l e
5 p a r l a m e t h o d e de q u a d r a t u r e de
6 Gauss−L e g e n d r e .
7

8 @Parametres :
9 a : Borne i n f e r i e u r e de l ’ i n t e g r a l e
10 b : Borne s u p e r i e u r e de l ’ i n t e g r a l e
11 n : Nombre de p o i n t de Gauss a
12 prendre dans l ’ i n t e r v a l l e [ a , b ]
13 c o m p r i s e n t r e 2 e t 20
14 f : Pointeur v e r s la f o n c t i o n numerique
15 a integrer
16 @Auteurs :
17 Hugo TERRIER & Farmin YARIRAD
18 ∗/
19

20 double gl ( double a , double b , i n t n , double (∗ f ) ( double ) ) ;


(Cf., gl.c dans Annexes)

8
1.3.1 Ordre de convergence de la méthode de Gauss-Legendre
Définition
On dit qu’une quadrature a l comme odre de convergence si
Z 1
l

−1 f (x)dx − In ( f ) = O(h )

où h est le pas de la subdivision de l’intervalle d’intégration. i.e :

h = max (xk+1 − xk )
06k6n−1

Intéressons-nous d’abord à l’évolution de l’erreur de quadrature en fonction du pas de la subdivi-


sion h. Nous connaissons la valeur exacte de l’intégrale de la fonction exponentielle exp sur l’inter-
valle [0, 1] :
Z 1
exp(x)dx = e − 1.
0
Pour un nombre n donné de points de Gauss allant de 2 à 20, nous calculons l’erreur de quadrature
i.e.
En = e − 1 − IG,n (exp)
La version mise à jour de la fonction np (c.f 1.3) nous permet de calculer le pas pour un nombre de
nœuds donné.
1 f u n c t i o n [ noeuds , p o i d s , p a s ] = nph ( n )
2 [ vec , v a l ] = e i g ( j a c o ( n ) ) ;
3 noeuds= diag ( v a l ) ;
4 p o i d s = ( 2 . ∗ ( vec ( 1 , : ) . ^ 2 ) ) ’ ;
5 p a s = n o e u d s ( f l o o r ( n / 2 ) + 1 )−n o e u d s ( f l o o r ( n / 2 ) ) ;
6 end

n Pas Erreur
2 1.1547005383792510 3.85450451541 E-04
3 0.7745966692414840 8.240865224 E-07
4 0.6799620871697130 9.329673 E-10
5 0.5384693101056830 6.528 E-13
6 0.4772383721663940 2 E-15
7 0.4058451513773970 1.1 E-15
8 0.3668692849913000 1.6 E-15
9 0.3242534234038090 0
10 0.2977486779632630 2 E-16
11 0.2695431559523450 1.8 E-15
12 0.2504668170229380 1.8 E-15
13 0.2304583159551350 2 E-15
14 0.2161098974146870 1.8 E-15
15 0.2011940939974350 1.1 E-15
16 0.1900250196752750 3.8 E-15
17 0.1784841814958480 1.6 E-15
18 0.1695500260834700 2 E-16
19 0.1603586456402250 1.3 E-15
20 0.1530530422669950 2 E-16

9
F IGURE 1.1 – log d’erreur en fonction du log du pas

Comme nous pouvons observer sur le graphique 1.1, jusqu’à l’atteinte de la précision machine
(ici 10−16 ), l’erreur de quadrature diminue lorsque la longueur du pas diminue ou bien lorsqu’on
augmente le nombre de points de Gauss. Après l’atteinte de la précision machine nous constatons
l’apparition des oscillations.
Pour le calcul de l’ordre de convergence nous commençons par introduire une nouvelle définition :
Définition
On applique une formule de quadrature composée notée Im,n ( f ), lorsque l’on subdivise l’intervalle [−1, 1] en
2
m sous-intervalles de longueur H = et qu’on applique une formule de quadrature "élémentaire" sur chaque
m
sous-intervalle :
m−1
(k)
Im,n ( f ) = ∑ In (f)
k=0
(k)
où In ( f ) est la formule de quadrature qu’on utilise sur [xk , xk+1 ].
(k)
Si dans chaque sous-intervalle la formule In ( f ) est d’ordre q, c’est à dire :
Z 1
f (x)dx − In ( f ) = CH q


−1

l’erreur globale de la formule composée est donnée par :
Z 1 m−1 Z 1  m−1
f (x)dx − Ink ( f ) 6 ∑ CH q = CmH q

−1 f (x)dx − Im,n ( f ) = ∑

k=0 −1 k=0
2
En écrivant m = nous obtenons :
H
Z 1
6 2CH q−1


−1 f (x)dx − In ( f )
On en déduit que la formule de quadrature composée Im,n ( f ) est d’ordre q − 1.
Théorème 1.2
L’ordre de convergence de la quadrature composée de Gauss-Legendre avec une quadrature élémentaire à n + 1
points est 2n + 2 : Z 1
2(n+1)

−1 f (x)dx − IG,n,m ( f ) 6 O(H ).

10
Nous allons vérifier ce théorème à l’aide de la fonction glcomp écrite en C.
1 /∗
2

3 @Description :
4 Ce programme c a l c u l e une a p p r o x i m a t i o n
5 de l a v a l e u r n u m e r i q u e d ’ une i n t e g r a l e
6 p a r l a m e t h o d e de q u a d r a t u r e composee
7 de Gauss−L e g e n d r e .
8

9 @Parametres :
10 a : Borne i n f e r i e u r e de l ’ i n t e g r a l e
11 b : Borne s u p e r i e u r e de l ’ i n t e g r a l e
12 m: Nombre de p o i n t de s o u s − i n t e r v a l l e s d a n s
13 l ’ i n t e r v a l l e [a , b]
14 n : Nombre de p o i n t de Gauss a p r e n d r e d a n s
15 chaque sous i n t e r v a l l e
16 f : Pointeur v e r s la f o n c t i o n numerique a i n t e g r e r
17 @Auteurs :
18 Hugo TERRIER & Farmin YARIRAD
19

20 ∗/
21

22 d o u b l e glcomp ( d o u b l e a , d o u b l e b , i n t m, i n t n , d o u b l e ( ∗ f ) ( d o u b l e )
);
(Cf., glcomp.c dans Annexes)
Nous calculons des valeurs approchées de l’intégrale de la fonction exponentielle exp sur l’inter-
valle [0, 1] divisé en m = 1, · · · , 20 sous-intervalles avec la quadrature élémentaire à 2,3,4 et 5 points
(n = 2, · · · , 5)

n=2 n=3
m Pas Erreur
1 1.000000000000000 3.854505E-04 8.240865E-07
2 0.500000000000000 2.466341E-05 1.320501E-08
3 0.333333333333333 4.893229E-06 1.164759E-09
4 0.250000000000000 1.550635E-06 2.076437E-10
5 0.200000000000000 6.355934E-07 5.447354E-11
6 0.166666666666667 3.066357E-07 1.825007E-11
7 0.142857142857143 1.655530E-07 7.238654E-12
8 0.125000000000000 9.705889E-08 3.248513E-12
9 0.111111111111111 6.059969E-08 1.602052E-12
10 0.100000000000000 3.976242E-08 8.510970E-13
11 0.090909090909091 2.715976E-08 4.800604E-13
12 0.083333333333333 1.917741E-08 2.842171E-13
13 0.076923076923077 1.392373E-08 1.751932E-13
14 0.071428571428571 1.035209E-08 1.121325E-13
15 0.066666666666667 7.855690E-09 7.349676E-14
16 0.062500000000000 6.068437E-09 4.951595E-14
17 0.058823529411765 4.761757E-09 3.441691E-14
18 0.055555555555556 3.788594E-09 2.398082E-14
19 0.052631578947368 3.051814E-09 1.731948E-14
20 0.050000000000000 2.485743E-09 1.243450E-14

11
À l’aide de la fonction polyfit de Matlab nous calculons l’ordre et la constante de conver-
gence.

Ordre Constante
n=2 3.993388 3.912366E-04
n=3 6.012136 8.584256E-07
n=4 7.996315 6.578631E-09
n=5 10.015691 4.238946E-11

Donc le théorème 1.2 est bien vérifié.

F IGURE 1.2 – log d’erreur en fonction du log du pas pour la quadrature composée de Gauss-Legendre

1.4 Formules de Newton-Cotes (fermées)


Contrairement à la formule de Gauss-Legendre dans cette quadrature, les nœuds sont équidistants :

xk = −1 + k.h; k = 0, · · · , n
2
où h = est le pas de la subdivision. Les poids ωk correspondant aux nœuds xk s’obtiennent analogi-
n
quement à la méthode de Gauss-Legendre en intégrant les polynômes de base de Lagrange lk (x) sur
l’intervalle ] − 1, 1[ :
Z 1 Z 1 n
x−xj
ωk = lk (x)dx = ∏ dx
−1 −1 j=0 xk − x j
j,k

et donc
Z 1 n
I( f ) = f (x)dx ≈ h ∑ ωk f (xk ) = Nn ( f ).
−1 k=0

Propriété 1.3
La formules de Newton-Cotes Nn est d’ordre
• l > n si n est impair.
• l > n + 1 si n est pair.

12
1.4.1 Implémentation des formules de Newton-Cotes
Calcul des poids de quadrature
Comme nous venons de voir dans la définition des formules de Newton-Cotes, les poids sont
définis par
Z 1
ωk = lk (x)dx.
−1
Donc pour ainsi obtenir leurs valeurs numériques, nous devons faire appel à une autre méthode d’inté-
gration numérique d’ordre au moins k. Afin de contourner ce problème, nous allons tirer profit d’une
propriété importante des formules de quadrature interpolatoire qui nous dit que ces formules sont
exactes pour les fonctions polynomiales d’un certain ordre m :
n Z 1
In ( f ) = ∑ ωi f (xi ) = f (x)dx = I( f ), ∀ f ∈ Pm , m > n.
i=0 −1

Ainsi pour les polynômes 1, x, · · · , xn , nous obtenons le système linéaire


n + 1 × n + 1 suivant :


 ω0 + ω1 + · · · +ωn = I(1)
 ω0 x0 + ω1 x1 + · · · +ωn x0 = I(x)



ω0 x02 + ω1 x12 + · · · +ωn x02 = I(x2 ) (1.4)
 ..


 .
ω0 x0n + ω1 x1n + · · · +ωn x0n = I(xn )

où les inconnues et coefficients sont respectivement les poids ωi et les nœuds xi . Ce système a une
solution unique car la matrice des coefficients est une matrice de Vandermonde et comme les nœuds
d’interpolation sont deux à deux distincts, alors elle est inversible.
Théorème 1.4
Les poids des formules de Newton-Cotes ne dépendent que des ordres n.

Afin de mieux illustrer la procédure de calcul des poids, nous prenons l’intervalle [0, n] comme
intervalle d’intégration. Le système linéaire à résoudre sous forme matricielle est donc le suivant :
    
1 1 1 1 ··· 1 ω0 n
 0 1 2 3 · · · n   ω1  
     n2 /2 

 0 1 22 32 · · · n2   ω2   n 3
/3 
= (1.5)
    
3 3 3
 0 1 2 3 · · · n   ω3   4
    n /4 

 .. .. .. .. .  .   ..
 . . . . · · · ..   ..  

. 
n n 2 n+1
0 1 2 3 ··· n ωn n /n + 1

Exemple 1.5
Calcul des poids pour la méthode de Newton-Cotes d’ordre 2 ou Simpson-Cavalieri
        
1 1 1 ω0 2 ω0 1/3
 0 1 2   ω1  =  2  =⇒  ω1  =  4/3 
0 1 4 ω2 8/3 ω2 1/3

Remarque 1.5.1
n
∑ ωk = n
k=0

13
Programmation en C des formules de Newton-Cotes
La fonction coefnc écrite en Octave nous permet de calculer les poids de la formule de
Newton-Cotes(fermée) d’ordre n :
1 function y = coefnc ( n )
2 format long ;
3 f o r i = 1 : n+1
4 f o r j =1: n
5 A( i , j ) = j ^ ( i −1) ;
6 end
7 B( i ) = ( n ^ i ) / i ;
8 end
9

10 A= [ e y e ( n + 1) ( : , 1 ) , A] ;
11

12 y=A\ B ’ ;
13 endfunction
On peut remarquer l’apparition des poids négatifs à partir de n = 8. On peut aussi remarquer que
plus n devient grand, plus les poids deviennent grands en valeur absolues : ω5 = 7.137642175679924
pour n = 10.
Nous calculons les poids jusqu’à l’ordre 7, pour les sotcker ensuite dans un tableau W. Comme
pour la méthode de Gauss-Legendre, la symetrie des poids, nous permet de ne stocker que la moitié
des valeurs, et avec un algorithme similaire, nous parcourons le sous-tableau correspondant à l’ordre n
donné. Voici l’entête de la fonction nc qui calcule la valeur numérique approximative d’une intégrale
par la méthode de Newton-Cotes d’ordre n compris entre 1 et 7 :
1 /∗
2 @Description :
3 Ce programme c a l c u l e une a p p r o x i m a t i o n
4 de l a v a l e u r n u m e r i q u e d ’ une i n t e g r a l e
5 p a r l a m e t h o d e de q u a d r a t u r e de
6 Newton−C o t e s ( f e r m e e ) .
7

8 @Parametres :
9 a : Borne i n f e r i e u r e de l ’ i n t e g r a l e
10 b : Borne s u p e r i e u r e de l ’ i n t e g r a l e
11 n : Ordre de l a m e t h o d e c o m p r i s e n t r e 1 e t 7
12 f : Pointeur v e r s la f o n c t i o n numerique
13 a integrer
14 @Auteurs :
15 Hugo TERRIER & Farmin YARIRAD
16 ∗/
17

18 d o u b l e nc ( d o u b l e a , d o u b l e b , i n t n , d o u b l e ( ∗ f ) ( d o u b l e ) ) ;
(Cf., nc.c dans Annexes)

1.4.2 Ordre de Convergence


Théorème 1.6
Une quadrature composée de Newton-Cotes Nm,n ( f ) avec une formule élémentaire Nn ( f ) d’ordre n a un ordre
de convergence égal à :
– n + 1 si n est impair.

14
– n + 2 si n est pair.
Z 1
6 O(H l ).


−1 f (x)dx − Nn,m ( f )

l = n + 1 + 1Z/2Z (n)

Comme pour la quadrature composée de Gauss-Legendre, nous allons vérifier ce théorème via la
fonction nccomp écrite en C :
1 /∗
2 @Description :
3 Ce programme c a l c u l e une a p p r o x i m a t i o n
4 de l a v a l e u r n u m e r i q u e d ’ une i n t e g r a l e
5 p a r l a m e t h o d e de q u a d r a t u r e composee
6 de Newton−C o t e s .
7

8 @Parametres :
9 a : Borne i n f e r i e u r e de l ’ i n t e g r a l e
10 b : Borne s u p e r i e u r e de l ’ i n t e g r a l e
11 m: Nombre de p o i n t de s o u s − i n t e r v a l l e s
12 dans l ’ i n t e r v a l l e [ a , b ]
13 n : Ordre de l a m e t h o d e nc d a n s
14 chaque sous−i n t e r v a l l e
15 f : Pointeur v e r s la f o n c t i o n numerique a i n t e g r e r
16 @Auteurs :
17 Hugo TERRIER & Farmin YARIRAD
18 ∗/
19

20 d o u b l e nccomp ( d o u b l e a , d o u b l e b , i n t m, i n t n , d o u b l e ( ∗ f ) ( d o u b l e )
);
(Cf., nccomp.c dans Annexes)
Nous calculons des valeurs approchées de l’intégrale de la fonction exponentielle exp sur l’in-
tervalle [0, 1] divisé en m = 1, · · · , 10 sous-intervalles avec la quadrature élémentaire d’ordre 2 à 5
(n = 2, · · · , 5)

n=2 n=3 n=4 n=5


m Pas Erreur
1 1.000000000000000 5.793234E-04 2.583249E-04 8.594657E-07 4.845316E-07
2 0.500000000000000 3.701346E-05 1.646401E-05 1.375940E-08 7.751337E-09
3 0.333333333333333 7.341462E-06 3.264070E-06 1.213455E-09 6.836145E-10
4 0.250000000000000 2.326241E-06 1.034098E-06 2.163132E-10 1.219567E-10
5 0.200000000000000 9.534658E-07 4.238186E-07 5.674705E-11 3.208278E-11
6 0.166666666666667 4.599790E-07 2.044539E-07 1.901235E-11 1.082956E-11
7 0.142857142857143 2.483396E-07 1.103806E-07 7.541523E-12 4.368950E-12
8 0.125000000000000 1.455928E-07 6.471128E-08 3.385292E-12 2.028155E-12
9 0.111111111111111 9.090177E-08 4.040243E-08 1.669997E-12 1.062261E-12
10 0.100000000000000 5.964481E-08 2.650968E-08 8.879564E-13 6.215028E-13

15
F IGURE 1.3 – log d’erreur en fonction de log du pas pour la quadrature composée de Newton-Cotes

À l’aide de la fonction polyfit de Matlab nous calculons l’ordre et la constante de conver-


gence :

Ordre Constante
n=2 3.989508 5.845639E-04
n=3 3.990680 2.603991E-04
n=4 5.988330 8.679822E-07
n=5 5.995215 4.647280E-07

Le théoreme 1.6 est donc bien vérifié.

1.5 Comparaison des quadratures et des langages


1.5.1 Gauss-Legendre vs Newton-Cotes
À nombre de nœuds égal sur l’intervalle d’intégration, l’ordre de convergence numérique de la
quadrature de Gauss-Legendre est plus élevé que celui de la quadrature de Newton-Cotes.
Par exemple pour l’intégrale de la fonction exponentielle sur l’intervalle [0, 1] nous avons :

Nn−1 (exp) IG,n (exp)


n=2 3.989508 3.993388
n=3 3.990680 6.012136
n=4 5.988330 7.996315
n=5 5.995215 10.015691

16
F IGURE 1.4 – Comparaison des ordres de convergence des quadratures de Gauss-Legendre et Newton-
Cotes

1.5.2 C vs Matlab
Nous allons comparer la vitesse du langage C par rapport à Matlab pour le calcul d’une intégrale
par la méthode de quadrature composée de Gauss-Legendre avec la quadrature élémentaire à 2 points.
Pour cela nous avons programmé en Matlab les fonctions MATLAB_gl et MATLAB_glcomp, iden-
tiques à leurs versions en C, avec l’adaptation des indices des tableaux pour fonctionner sous Matlab.
Nous prenons le même exemple que précédemment, c’est-à-dire la fonction exponentielle que nous
allons intégrer sur l’intervalle [0, 1]. Nous mesurons le temps écoulé pour effectuer une série de cal-
cul de cette intégrale en subdivisant [0, 1] de 1 à m sous-intervalles pour m = 10, 20, 30, 40, 50, 100.
Les calculs sont effectués sur une machine avec un microprocesseur Intel Core 2 Quad cadencé à
2, 4GHz et une précision de l’horloge ε ≈ 4.2E − 7s.

Temps écoulé en ms
m Matlab C
1, . . . , 10 26 <ε
1, . . . , 20 60 <ε
1, . . . , 30 120 <ε
1, . . . , 40 150 <ε
1, . . . , 50 240 <ε
1, . . . , 100 780 <ε

Les valeurs numériques calculées en Matlab et en C sont bien sûr identiques. Cette nette rapidité
du langage C par rapport à Matlab s’explique par le fait que contrairement à ce dernier qui est un
langage de haut niveau et donc doit être interprété, C est de bas niveau. C’est-à-dire est directement
compréhensible par le microprocesseur.

17
Chapitre 2

Équation d’Helmholtz et Matlab

2.1 Introduction de l’équation d’Helmholtz


La propagation de la lumière est décrite par les équations de Maxwell :
Définition des équations de Maxwell-Lorentz
En notant au point →
−r à l’instant t :

1. ρ(→
−r ,t) la densité volumique de charge électrique.

− −
2. j (→r ,t) le vecteur densité de courant.

− →−
3. E ( r ,t) le vecteur champ électrique.

− −
4. H (→r ,t) le vecteur champ magnétique.
5. ε(→
−r ,t) le tenseur permittivité diélectrique du milieu.

6. µ(→−r ,t) le tenseur perméabilité magnétique du milieu.



− →

On rappelle l’induction (le vecteur induction) électrique D = ε E et l’induction (le pseudo-vecteur induction)

− →

magnétique B = µ H .
Les 4 équations (locales) principales et universelles de Maxwell sont :


−→→ − ∂B
rot( E ) = − (2.1)
∂t


−→→ − →
− ∂D
rot( H ) = J + (2.2)
∂t


div( D ) = ρ (2.3)


div( B ) = 0 (2.4)

Les noms sont :


– Loi d’induction de Michael Faraday (Faraday) : équation (2.1)
– Loi de Maxwell-André-Marie Ampère(Ampère) : équation (2.2)
– Loi de Carl Friedrich Gauss(Gauss) : équation (2.3)
– Loi de Maxwell-Thomson : équation (2.4)

Définition des opérateurs principaux

18
On rappelle que les opérateurs principaux s’expriment en cartésien (dans la base de dimension 3 (→

ex , →

ey , →

ez )) :

− −−→
∇f = grad( f ) (2.5)
∂f→ − ∂f→ − ∂f→−
= ex + ey + ez (2.6)
∂x ∂y ∂z
−→→ − →
− → −
rot( U ) = ∇ ∧ U (2.7)
 
∂Uz ∂Uy
 ∂y − ∂z 
 
 ∂Ux ∂Uz 
=  −  (2.8)
 ∂z ∂x 
 ∂Uy ∂Ux 

∂x ∂y

− →
− → −
div( U ) = ∇ · U (2.9)
∂Ux ∂Uy ∂Uz
= + + (2.10)
∂x ∂y ∂z
→− 
∆u = div ∇ u (2.11)

− → −
= ∇ · ∇u (2.12)
∂ 2u ∂ 2u ∂ 2u
= + + (2.13)
∂ x2 ∂ y2 ∂ z2

Sous certaines conditions, les équations de Maxwell se simplifient en équation d’Helmholtz 1 :


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀x ∈ Ω
∆u(x) + k2 u(x) = g (2.14)
sur un domaine Ω (dans R, R2 ou R3 en fonction des données du problème). [3]
Remarque 2.0.1
Dans le cas de la recherche des modes guidés d’une fibre optique circulaire à saut d’indice [5, 6], plus généra-
lement pour un guide optique sous les hypothèses de faible guidage (faibles variations de l’indice de réfraction)
[5, 6, 11], ou encore pour le calcul des modes de fuite dans une fibre optique micro-structurée [12, 13], on consi-
dère l’équation aux valeurs propres scalaire dans R2 (voir la partie II : Application aux fibres microstructurées
page 42) :
−∆u − k2 n2 u = −β 2 u
où u est une composante du champ électromagnétique, k le nombre d’onde, n l’indice de réfraction du milieu
et β la constante de propagation du mode.

On a aussi la propriété suivante :


Propriété 2.1
Dans le cas d’un milieu linéaire homogène isotrope (les tenseurs permittivité diélectrique ε et perméabilité ma-
gnétique µ sont des constantes, indépendantes de la position →
−r et du temps t), les deux composantes du champ

− → −
électromagnétique, E et H , vérifient l’équation de propagation des ondes qui devient l’équation d’Helmholtz
en régime stationnaire (pour des solutions sinusoïdales en temps) :

∆u(x) + k2 u(x) = g(x), dans Ω



− →

Démonstration. Les deux composantes du champ électromagnétique (électrique D et magnétique H )
se propageant dans le milieu matériel vérifient l’équation de propagation des ondes (le cas stationnaire
est décrit par l’équation d’Helmholtz équation (2.14) de la présente page).



− 1 ∂2U
∆( U ) − 2 =g (2.15)
v ∂t 2
1. Chaque composante du vecteur électromagnétique vérifie l’équation d’Helmholtz, qui se déduit des équations de
Maxwell.

19

− → −
Démontrons que les deux composantes du champ électromagnétique, E et H , vérifient l’équation
de propagation des ondes dans le cas d’un milieu linéaire homogène isotrope (les tenseurs permittivité
diélectrique ε et perméabilité magnétique µ sont des constantes, indépendantes de la position → −r et

− → − 2
du temps t), cela est donc aussi vrai pour les inductions D et B .
D’une part, en appliquant l’opérateur rotationnel à l’équation (2.2) page 18 (la loi d’Ampère), on
obtient :

−!
−→− →→ − →→
− − → ∂D

rot(rot( H )) = rot( J ) + rot
∂t
D’autre part, l’analyse vectorielle, montre que le rotationnel du rotationnel, donne :

→− →→ − −−→ →
− →

rot(rot( H )) = grad(div( H )) − ∆ H

Or, d’après ce qui précède et l’équation (2.4) page 18 (Loi de Maxwell-Thomson) :


→→
− −

− ∂ rot( E )
div( B ) =ε ∂t
= µ =0


z }| !{
−−→ →
− →
− − →→ − → ∂D

z }| {
grad( div( H ) ) − ∆ H = rot( J ) + rot
∂t

On y applique alors l’équation (2.1) page 18 (la loi de Faraday) :



−!

− →→
− − ∂ ∂B
−∆ H = rot( J ) + −ε
∂t ∂t


→→
− − ∂2 B
= rot( J ) − ε 2
∂t


D’où H vérifie l’équation de propagation des ondes (équation (2.15) page précédente) :



− ∂2H →→
− −
∆( H ) − ε µ 2 = − rot( J )
∂t



De même pour E , l’analyse vectorielle donne :

→− →→ − −−→ →
− →

rot(rot( E )) = grad(div( E )) − ∆ E

De plus, en appliquant l’opérateur rotationnel à l’équation (2.1) page 18 (la loi de Faraday), on ob-
tient :

−!

→− → →
− −
→ ∂ B
rot(rot( E )) = rot −
∂t
Or, d’après ce qui précède et l’équation (2.3) page 18 (Loi de Gauss) :
→→
− −
∂ rot( H )

− =−µ
div( D ) ∂t
= ε = ρε


z }| !{
−−→ →
− →
− − → ∂B
z }| {
grad( div( E ) ) − ∆ E = rot −
∂t

On y applique alors l’équation (2.2) page 18 (la loi d’Ampère) :



−!
−−→  ρ  →
− ∂ →
− ∂ D
grad − ∆ E = −µ J +
ε ∂t ∂t

2. Une démonstration similaire (mais avec quelques précautions) peut être faite dans la base propre des deux tenseurs,
si le milieu est anisotrope. [4]

20


D’où E vérifie l’équation de propagation des ondes (équation (2.15) page 19) :

− →


− ∂2 E ∂ J −−→  ρ 
∆ E −εµ 2 = µ + grad
∂t ∂t ε

Comme l’équation de propagation des ondes (équation (2.15) page 19) est une équation aux
dérivées partielles linéaires, on peut chercher les solutions par pulsations propres ω = 2πν (ν est
∂ 2U
la fréquence propre) (en appliquant la séparation des variables), c’est à dire vérifiant (x,t) =
∂t 2
−ω 2U(x,t), ω > 0 pour des raisons physiques de convergence (u00 = ω 2 u donnerait des solutions
hyperboliques qui divergent lorsque t → ∞) :

1 ∂ 2u
∆(u)(x,t) − 2 2 (x,t) = g(x,t)
v ∂t
ω2
∆(u)(x,t) + 2 u(x,t) = g(x,t)
v
1
Remarque : Ici la vitesse de propagation de l’onde (la vitesse de phase) est v = √ .
εµ
3
D’où, en régime stationnaire et pour une pulsation propre, le champ u(·,t) vérifie une équation
d’Helmholtz (équation (2.14) page 19). C . Q . F. D .

Considérons donc la propagation des ondes électromagnétique dans un milieu linéaire homogène
isotrope (la proposition et la démonstration ci-dessus sont alors valable) 4 . Dans ce cas, v la vitesse de
ω
phase de l’onde est constante et pour une fréquence donnée (la pulsation ω est constante), k = de
v
l’équation d’Helmholtz (équation (2.14) page 19), est constant.

2.2 Étude de l’équation d’Helmholtz


2.2.1 Conditions d’existence et d’unicité de la solution de l’équation d’Helmholtz
Pour que le problème mathématique soit bien posé, il faut spécifier des conditions aux limites sur
la frontière de Ω (noté ∂ Ω). Elles peuvent être données sous deux formes :

[8]

– Les conditions de Dirichlet, conditions sur le champ scalaire. Pour f ∈ D 0 (∂ Ω) :


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . sur ∂ Ω

u= f

– Les conditions de Neumann, conditions sur la dérivée normale du champ scalaire. Pour f ∈
D 0 (∂ Ω) et →

n le vecteur normal à la surface : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . sur ∂ Ω

∂u −−→

− = grad(u) · →

n =f
∂n
3. Un régime stationnaire décrit un régime permanent n’évoluant pas au cours du temps. Cela correspond a un régime
établi (ou de résonance).
4. Même dans le le cas d’un milieu non-homogène, il peut être considéré comme une juxtaposition de milieux ho-
mogènes (éventuellement de taille infinitésimale, alors c’est une limite). Ainsi discrétisé, cela reste valable. Dans le le
cas d’un milieu non-isotrope, on peut (comme déjà remarquer), avec quelques précaution, considéré la véracité de la
proposition et de la démonstration dans chaque directions propre des deux tenseurs ε et µ. [4]

21
On peut aussi avoir des conditions dites de Robin, plus générales, elles contiennent les conditions
précédentes (qui sont des cas particuliers). Ces conditions imposent à la solution u de vérifier aussi
une équation du premier ordre sur la frontière (∂ Ω). Pour λ , κ ∈ R, f ∈ D 0 (∂ Ω) et →
−n le vecteur
normal à la frontière (∂ Ω) :

∂u −−→
λ →− + κu = λ grad(u) · →

n + κu = f , sur ∂ Ω
∂n
Définition d’un problème bien posé
Un problème mathématique est dit bien posé, lorsque le problème (avec ses conditions initiales/aux limites)
admet une unique solution (sur le domaine considéré Ω) qui dépend continûment des conditions.

Ici, l’application φ : D 0 (∂ Ω) → H 1 (Ω) qui à chaque condition (éventuellement dans l’espace


des distributions D 0 ) donne la solution de l’équation de Helmholtz (équation (2.14) page 19, dont la
solution est cherchée dans l’espace de Sobolev H 1 ) vérifie : . . . . . . . . . . . . . . . . . . . . . . . . ∀a ∈ D 0 (∂ Ω)

lim φ (x) = φ (a)


x→a

Où, une autre manière de l’écrire : . . . . . . . . . . . . . . . ∀x ∈ D 0 (∂ Ω), ∀ε ∈ R+


∗ ∗
, ∃η ∈ R+ , ∀y ∈ D 0 (∂ Ω)

kx − yk < η ⇒ kφ (x) − φ (y)k < ε

Démonstration. Voir la sous-section suivante 2.2.2 : Formulation faible du problème. Équivalence


avec la formulation faible, puis existence et dépendance continue des solutions par rapport au para-
mètre (ici, l’unicité porte sur la base et l’espace vectoriel (qui est un espace de Hilbert car fermé d’un
espace de Hilbert) des solutions).
Remarque 2.1.1 Remarque de la non-unicité de la solution
Supposons ψ1 , . . . , ψn n solution du problème, alors toute combinaison linéaire ψ vérifie le problème par linéa-
n
rité : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀(αi )i=1...n ∈ R, ∑ αi = 1
i=1


(
n
∆ψ + k2 ψ = g sur Ω
ψ = ∑ αi ψi ⇒ −−→
i=1 λ grad(ψ) · →

n + κψ = f sur ∂ Ω

Par exemple, le problème homogène ( f ≡ 0, g ≡ 0) admet des solutions non triviales 5 (ceci est cohérent
avec la physique qui nécessite des solutions convergentes (bornées) en domaine non-borné) et par linéarité tout
multiple d’une solution homogène est solution homogène :
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀α ∈ R
◦ ◦
( (
∆ψ + k2 ψ = 0 sur Ω ∆(αψ) + k2 αψ = 0 sur Ω
−−→ ⇒ −−→
λ grad(ψ) · → −n + κψ = 0 sur ∂ Ω λ grad(αψ) · → −n + καψ = 0 sur ∂ Ω

De plus, pour ψ1 solution du problème homogène et ψ2 solution du problème non-homogène, ψ1 + ψ2 est


solution du problème non-homogène :

(
∆(ψ1 + ψ2 ) + k2 (ψ1 + ψ2 ) = g sur Ω
−−→
λ grad(ψ1 + ψ2 ) · →

n + κ(ψ1 + ψ2 ) = f sur ∂ Ω

C . Q . F. D .

5. Plus exactement, des solutions non triviales (non identiquement nulles) et prolongeables par périodicité (périodiques
dans la (les) direction(s) non-bornée(s) du domaine).

22
2.2.2 Formulation faible du problème
Pour construire la formulation faible du problème, multiplions l’équation de Helmholtz (équation
(2.14) page 19) par une fonction teste ϕ ∈ C0∞ (Ω), alors la solution u vérifie 6 : [8]

∆uϕ + k2 uϕ = gϕ

et considérons le problème intégral :


Z Z
2

∆u(x)ϕ(x) + k u(x)ϕ(x) dx = g(x)ϕ(x)dx
Ω Ω

Comme le laplacien ∆ correspond aux dérivées secondes partielles (il est d’ailleurs souvent noté
∆ = ∇2 ) on peut y appliquer une intégration par parties :
Z Z Z
∆u(x)ϕ(x)dx = [div(u)(x)ϕ(x)]∂ Ω − ∇u(x) · ∇ϕ(x)dx = − ∇u(x) · ∇ϕ(x)dx
Ω Ω Ω

car ϕ a été choisie nulle sur le bord ∂ Ω.


Remarque 2.1.2
L’intégration par parties en une variable est :
Z Z
00 0
u (x)v(x)dx = [u (x)v(x)] − u0 (x)v0 (x)dx

∂2
 
Donc concernant le laplacien ∆ somme des dérivées secondes partielles 2 , il suffit de sommer les inté-
∂ xi
grations
 par parties. Or, d’après les définitions des différents opérateurs


comme div qui est la somme des dérivées partielles premières , on obtient l’égalité ci-dessus.
∂ xi

D’où, la formulation faible du problème (résolution de l’équation de Helmholtz (équation (2.14)


page 19) avec les conditions indiquées dans la sous-section 2.2.1 : Conditions sur le problème page 21) :
∀ϕ ∈ C0∞ (Ω) Z Z Z
− ∇u(x) · ∇ϕ(x)dx + k2 u(x)ϕ(x)dx = g(x)ϕ(x)dx
Ω Ω Ω

− h∇u ∇ϕi + k2 hu ϕi = hg ϕi (2.16)


Remarque : Si une fonction u ∈ C 2 (Ω) ∩ C 0 (∂ Ω), vérifie la formulation faible (∀ϕ ∈ D(Ω)) et
les conditions indiquées dans la sous-section 2.2.1 : Conditions sur le problème page 21, alors elle
vérifie le problème d’origine. [8]
Démonstration. de l’équivalence entre (2.16) et (2.14) page 19
Supposons u ∈ C 2 (Ω) ∩ C 0 (∂ Ω) vérifiant la formulation faible du problème ((2.16) de la présente
page), alors nous pouvons remonter la construction (dans ce cas il y a équivalence dans les étapes).
Donc, ∀ϕ ∈ C0∞ (Ω), par intégration par parties (2.16) est équivalent à :
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀ϕ ∈ C0∞ (Ω)
Z Z Z
∆u(x)ϕ(x)dx + k2 u(x)ϕ(x)dx = g(x)ϕ(x)dx
Ω Ω Ω

Donc équivalent à : Z
∆u(x) + k2 u(x) − g(x) ϕ(x)dx = 0


6. Si l’équation de Helmholtz est de dimension supérieure, chaque composante du vecteur u solution vérifie une
équation de même type. On est ramené alors à plusieurs (autant que de dimensions) équations de Helmholtz scalaires
(même s’il y a plusieurs variables).

23
Or, si une fonction v vérifie pour tout compact K ⊂⊂ Ω :
Z
v(x)dx = 0 ⇔ v ≡ 0
K

donc en particulier ∀ϕ ∈ C0∞ (Ω) (fonctions à support compact) :


Z
v(x)ϕ(x)dx = 0 ⇔ v ≡ 0

D’où, (2.16) est équivalent à l’équation de Helmholtz (équation (2.14) page 19) :

∆u(x) + k2 u(x) = g(x)

C . Q . F. D .

On peut donc généraliser ce résultat aux fonctions de D 0 (Ω̄), car C 2 (Ω) ∩ C 0 (∂ Ω) est dense dans
L (Ω) (au sens de k · kL2 (Ω) ) et même est dense dans D0 (Ω̄) (au sens des distributions) :
2

C 2 (Ω) ∩ C 0 (∂ Ω) = L2 (Ω), C 2 (Ω) ∩ C 0 (∂ Ω) = D 0 (Ω̄)

Remarque 2.1.3 Remarque de la non unicité de la solution


1 2
Soit a : H (Ω) → R la forme bilinéaire définie par :
Z
−∇u(x) · ∇ϕ(x) + k2 u(x)ϕ(x) dx

a(u, ϕ) =

La formulation faible devient dans ce cas : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀ϕ ∈ C0∞ (Ω)

a(u, ϕ) = g · ϕ

La forme bilinéaire a n’étant pas coercitive, la solution du problème faible n’est pas obligatoirement unique
(dans certains cas la seule solution u ≡ 0 existe), on ne peut pas appliquer le théorème de Lax-Milgram.

2.3 Discrétisation de l’équation d’Helmholtz et Matlab par la mé-


thode des éléments finis
2.3.1 Présentation de la méthode des éléments finis
La méthode des éléments finis consiste à résoudre une équation aux dérivées partielles munie de
ces conditions aux limites (voir la sous-section 2.2.1 : Conditions sur le problème page 21) de façon
approchée.
Cette méthode est contrôlée par des techniques basées sur les formulations variationnelles. Elle
consiste à projeter la solution sur un espace fonctionnel de dimension finie puis à résoudre un système
linéaire associé.
Rappel du problème
Le problème consiste en la résolution de l’équation de Helmholtz (équation (2.14) page 19) avec les conditions
de Dirichlet (indiquées dans la sous-section 2.2.1 : Conditions sur le problème page 21) :
(
∆u + k2 u = g dans Ω
u≡0 sur ∂ Ω

24
Pour discrétiser le problème selon la méthode des élément finis, il faut approcher la solution (de
façon "formelle") par une somme de fonctions. On projette cette solution sur des fonctions Φi (sur
l’espace fonctionnel engendré par celle-ci, Vect{Φi , i = 1, · · · , n}), formant une base (de préférence
orthonormée) d’un espace d’approximation de l’espace dans lequel la solution exacte se trouve. [7]
Intéressons nous au problème en dimension 1, Ω =]a; b[ :
Comme dans notre cas la solution se trouve à priori dans H 1 (Ω), nous proposons de discrétiser le
problème par les éléments finis dans R, en projetant sur la base des polynômes de Lagrange linéaires.
Soit P1 l’espace des polynômes de Lagrange de degré 1 par morceaux (les fonctions les plus simples
continue donc dans l’espace de Sobolev H 1 (Ω)). L’espace engendré par ces polynômes approche, une
fois le maillage construit, l’espace des solutions de l’équation différentielle considérée (ici l’équation
d’Helhomltz (équation (2.14) page 19)). La discrétisation se fait en 3 étapes : [7]
I) Construction d’un maillage
II) Construction des polynômes de Lagrange
III) Reformulation en un système linéaire

2.3.2 Construction d’un maillage


Considérons un maillage régulier d’ordre m. En une dimension le domaine considéré étant un
b−a
intervalle ouvert Ω =]a; b[ avec un pas h = , alors les nœuds sont :
m
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀k ∈ ~0; m
b−a
xk = k +a
m

Un maillage de maillage
Dans chaque intervalle du maillage ainsi défini, on introduit des nœuds supplémentaire en fonction
des polynômes d’interpolation choisi (voir la sous-section suivante). Si on a besoin de n + 1 nœuds
dans chaque intervalle [xk ; xk+1 ], on peut prendre un sous-maillage régulier, alors les nœuds sont :
∀i ∈ ~0; n  
i b−a
xk+i h = k + +a
n n m

2.3.3 Construction des polynômes de Lagrange


Soit x0 , · · · , xn des réels distincts (on les suppose dans l’ordre croissant tel que i < j ⇒ xi < x j et
donc ∀i ∈ ~0; n, xi ∈ [x0 ; xn ]). Alors on définit les polynômes de base de Lagrange par : [1]
Définition des polynômes de Lagrange
Les polynômes de base de Lagrange, dans Pn ([x0 ; xn ]), sont définis par : . . . . . . . . . . . . . . . . ∀i ∈ ~0; n, ∀x ∈ R
n
x−xj
li (x) = ∏
j=0
xi − x j
j,i

Ces polynômes permettent de discrétiser de manière simple une fonction f définie sur un intervalle
[x0 ; xn ], car d’après la définition :
Propriété 2.2
Ces polynômes vérifient la propriété suivante : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀(i, j) ∈ ~0; n2

li (x j ) = δi j

25
Théorème 2.3 Théorème d’interpolation de Lagrange
Le polynôme d’interpolation pn ∈ Pn des valeurs y0 , · · · , yn aux points x0 , · · · , xn est défini par :
n
pn (x) = ∑ yi li (x)
i=0

où les yi sont les ordonnées des points d’interpolation, i.e. (yi = f (xi )).
Ce polynôme est unique.

Ce résultat découle de la propriété précédente, il suffit de résoudre le système, qui admet une
unique solution : n
pn (x j ) = y j ∀ j ∈ ~0; n
Considérons les polynômes P1 linéaires, donc sur un maillage à deux points, x0 < x1 : ∀x ∈ [x0 ; x1 ]
x − x1
l0 (x) = >0 (2.17)
h
x − x0
l1 (x) = − >0 (2.18)
h

Interpolation de Lagrange par morceaux [7]


Comme construit dans la sous-section précédente 2.3.2 : Construction d’un maillage page précé-
dente, considérons le sous-maillage constitué des nœuds :
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀k ∈ ~0; m, ∀i ∈ ~0; n
 
i b−a
xk+i h = k + +a
n n m

Alors on peut construire, pour toute fonction f ∈ C0 [a; b], le polynôme d’interpolation par mor-
ceaux Lhn f qui coïncide sur chaque intervalle I j = [x j ; x j+1 ] avec l’interpolant de f restreint à I j , f|I j
aux n + 1 nœuds. [1]
Or en considérant les polynômes de P1 , il n’y a pas de points intermédiaires ajoutés. Les 2m
polynômes sont donc (d’après les équations (2.17) et (2.18) de la présente page) :
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀k ∈ ~0; m, ∀x ∈ [xk ; xk+1 ]
x − xk+1
lk0 =
h
xk − x
lk1 =
h
Remarque 2.3.1
Dans le polynôme d’interpolation par morceaux Lhn f , chaque f (xk ) contribue, dans les intervalles Ik−1 et Ik ,
comme le coefficient des polynômes l(k−1)1 et lk0 .

On peut donc regrouper les polynômes de chaque intervalle pour obtenir les polynômes φi linéaires
par morceaux, de P1 , de Lagrange. De plus, ainsi regroupés ils forment des fonctions continues :
∀i ∈ ~1; n − 1, ∀x ∈ [x0 ; xn ]

1 − x − xi si x ∈ [x ; x ]

h i−1 i+1
ϕi (x) = (2.19)
0 sinon

voir l’exemple des polynômes pour 5 points, figure : 2.1 : polynômes P1 pour 5 points page suivante.
(On ne prend que ces polynômes pour respecter les conditions de Dirichlet du problème)

26
Les trois polynômes P1 de Lagrange pour 5 points sont représentés ci-dessous :

ϕ1 (x) ϕ2 (x) ϕ2 (x)


1

0.8

0.6

0.4

0.2

x
0 0.25 0.5 0.75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 3 3.25 3.5 3.75 4
x0 = 0 x1 = 1 x2 = 2 x3 = 3 x4 = 4

F IGURE 2.1 – polynômes P1 pour 5 points

Suivant la même construction que pour P1 , représentons quelques uns des 7 polynômes P2 de La-
grange pour 5 points :

ϕ 1 (x) ϕ1 (x) ϕ3 (x) ϕ 7 (x)


2 2
1 ...

0.8

0.6

0.4

0.2

x
(x0 = 0, 0) 0.25 0.5 0.75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 3 3.25 3.5 3.75 4
1 x1 = 1 3 x2 = 2 5 x3 = 3 7 x4 = 4
x1 = x3 = x5 = x7 =
−0.2 2 2 2 2 2 2 2 2

F IGURE 2.2 – polynômes P2 pour 5 points

2.3.4 Schématisation du problème faible


En considérant le maillage défini précédemment et les polynômes P1 de Lagrange d’interpolation
par morceaux sur l’intervalle [x0 , xn ], on peut approcher une fonction Φ quelconque de l’espace H 1 (Ω)

27
par une somme de ces polynômes : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀x ∈ [x0 , xn ]
n−1
Φ(x) ≈ ∑ Φ(xi)ϕi(x)
i=1
Alors on peut considérer la forme variationnelle définie à la sous-section 2.2.2 : Formulation faible
du problème page 23 sur l’espace des polynômes P1 de Lagrange : . . . . . . . . . . . . . . . . ∀i ∈ ~1; n − 1
− u0 ϕi0 + k2 hu ϕi i = hg ϕi i

n−1
Donc en écrivant u = ∑ u(x j )φ j et par linéarité on obtient : . . . . . . . . . . . . . . . . . . . ∀i ∈ ~1; n − 1
j
!0
Z xn n−1 Z xn n−1 Z xn
− ∑ u(x j )ϕ j ϕi0 (x)dx + k2 ∑ u(x j )ϕ j ϕi(x)dx = gϕi (x)dx
x0 j=1 x0 j=1 x0
n−1 Z xn n−1 Z xn Z xn
− ∑ u(x j ) ϕ 0j ϕi0 (x)dx + k2 ∑ u(x j ) ϕ j ϕi (x)dx = gϕi (x)dx
j=1 x0 j=1 x0 x0

A ×U = B
avec : [7]
 Z xn 
  gl1 (x)dx
u(x1 )  x0 
 ..   .. 
U =  . ,B = Z . 

xn
u(xn−1 ) 
gln−1 (x)dx

x0
 Z xn Z xn Z xn Z xn 
− ϕ10 ϕ10 (x)dx + k2 ϕ1 ϕ1 (x)dx ··· − ϕ10 ϕn−1
0
(x)dx + k2 ϕ1 ϕn−1 (x)dx
 x0 x0 x0 x0 

A= .. .. .. 
 Z . . . 

xn Z xn Z xn Z xn
0
ϕ10 (x)dx + k2 0 0
(x)dx + k2
 
− ϕn−1 ϕn−1 ϕ1 (x)dx · · · − ϕn−1 ϕn−1 ϕn−1 ϕn−1 (x)dx
x0 x0 x0 x0
Remarque 2.3.2
La matrice A ainsi définie est symétrique, donc diagonalisable, et si −k2 n’est pas une valeur propre du lapla-
cien, elle est inversible et la solution est unique. En particulier si la fonction g ≡ 0 (et donc B est le vecteur nul),
l’unique solution est la solution nulle.
D’où dans le cas g ≡ 0 il faut rechercher les vecteurs du noyau de la matrice A. On peut alors
introduire les matrices de rigidité R et de masse M (A = R + k2 M) : [7]
 Z xn Z xn 
ϕ 0 ϕ 0 (x)dx · · · ϕ10 ϕn−1
0
(x)dx
 x0 1 1 x0

R=

 .
.. . .. .
..



 xn 0
Z
0
Z xn
0 0

ϕn−1 ϕ1 (x)dx · · · ϕn−1 ϕn−1 (x)dx
x0 x0
et
 Z xn Z xn 
ϕ1 ϕ1 (x)dx ··· ϕ1 ϕn−1 (x)dx
 x0 x0 

M= .. ... .. 
Z . . 

 xn Z xn 
ϕn−1 ϕ1 (x)dx · · · ϕn−1 ϕn−1 (x)dx
x0 x0
On cherche alors les solutions non-nulles du système :
R ×U = k2 M ×U

28
2.3.5 Programmations en Matlab de la méthode des éléments finis en dimen-
sion 1
Pour calculer les matrices de rigidité R et de masse M : [7]
 Z xn Z xn 
0 0 0 0
ϕ ϕ (x)dx · · · ϕ1 ϕn−1 (x)dx
 x0 1 1 x0 
R=
 .
. .. .
.

Z . . . 

 n 0x Z xn
0 0 0

ϕn−1 ϕ1 (x)dx · · · ϕn−1 ϕn−1 (x)dx
x0 x0

et
 Z xn Z xn 
ϕ1 ϕ1 (x)dx ··· ϕ1 ϕn−1 (x)dx
 x0 x0 

M= .. .. .. 
Z . . Z . 

 xn xn 
ϕn−1 ϕ1 (x)dx · · · ϕn−1 ϕn−1 (x)dx
x0 x0

On a besoin de calculer les intégrales : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀(i, j) ∈ ~1; n − 12


Z x
i+1


 (ϕi0 )2 (x)dx si i = j
Z xn Zxi−1

xi+1
ϕi0 ϕ 0j (x)dx = ϕi0 ϕi+1
0
(x)dx si j = i ± 1 (2.20)
x0 
 xi


0 sinon
Z x
i+1


 ϕi2 (x)dx si i = j
Z xn Zxi−1

xi+1
ϕi ϕ j (x)dx = ϕi ϕi+1 (x)dx si j = i ± 1 (2.21)
x0  xi



0 sinon

car les fonctions sont à support compact. [7]


Or ces fonctions ont été choisies linéaires par morceaux, et d’après l’équation (2.19) page 26 :
∀i ∈ ~1; n − 1, ∀x ∈ [x0 ; xn ]

1 − x − xi si x ∈ [x ; x ]

h i−1 i+1
ϕi (x) =
0 sinon

29
D’où : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀(i, j) ∈ ~1; n − 12
Z x
i+1 dx

 si i = j
h2

Z xn  xi−1

xi+1 dx
ϕi0 ϕ 0j (x)dx =
Z
x0
− si j = i ± 1



 xi h2
0 sinon
2


 si i = j
h

= 1
− si j = i ± 1
 h



0 sinon
Z
x − xi 2
xi+1
 

1 − dx si i = j


h  

Z xn Zxi−1 

xi+1

ϕi ϕ j (x)dx = x − xi x − xi+1
x0 1− 1+ dx si j = i ± 1
h h

xi




0 sinon
2h


 si i = j
3

= h
si j = i ± 1


 6
0 sinon

D’où la recherche des valeurs/vecteurs propres de :

R ×U = k2 M ×U

avec :  
0 ··· 0
4 1
. . . . . . .. 
1 4 .

6  . . . 
M= 0 . . . . . . 0
h 
. .

.
 .. . . . . 4 1

0 ··· 0 1 4
et
 
2 −1
0 ··· 0
.. .. . 
−1 2 . . .. 


hR =  .. .. .. 
 0 . . . 0 

 . . .
. . .

 . . . 2 −1
0 · · · 0 −1 2
Remarque : Les matrices de masse M et de rigidité R sont de dimension n − 1.
La programmation (sous octave) est alors :
1 function [U, k ] = fem ( a , b , n ,m)
2 h = ( b−a ) / n ;
3 % D é f i n i t i o n d e s m a t r i c e s de r i g i d i t é e t de masse :
4 r i g i d i t e = d i a g ( 2 ∗ o n e s ( 1 , n −2) / h ) − d i a g ( o n e s ( 1 , n −3) / h , 1 ) −
d i a g ( o n e s ( 1 , n −3) / h , −1) ;
5 masse = d i a g ( 4 ∗ o n e s ( 1 , n −2) / 6 ∗ h ) + d i a g ( o n e s ( 1 , n −3) / 6 ∗ h
, 1 ) + d i a g ( o n e s ( 1 , n −3) / 6 ∗ h , −1) ;
6 % R e s o l u t i o n du s y s t e m e r i g i d i t e ∗ U = k ^2 masse ∗ U :

30
7 [ vec , v a l ] = e i g s ( r i g i d i t e , masse , m, ’sm ’ ) ;
8

9 U = vec ∗ d i a g ( s i g n ( vec ( 1 , : ) ) ) ;
10 k = s q r t ( diag ( val ) ) ;
11 end

Calcul de valeurs propres/ fonctions propres


On peut, comme programmé précédemment, calculer numériquement les 4 premières valeurs
propres et représenter les vecteurs propres associés, pour les conditions de Dirichelet sur Ω = [0; 1]
(voir la représentation à la figure 2.3.5 : Calcul de valeurs propres/ fonctions propres de la présente
page) avec les instructions :
1 n = [ 1 0 14 20 1 0 0 ] ;
2 for i = 1: length ( n)
3 x = linspace (0 ,1 , n( i ) ) ;
4 %x = x ( 2 : end −1) ;
5 [U, k ] = fem ( 0 , 1 , n ( i ) , 4 ) ;
6 U = [ z e r o s ( 1 , 4 ) ;U; z e r o s ( 1 , 4 ) ] ;
7

8 subplot (2 ,2 , i ) ;
9 p l o t ( x , U, { s p r i n t f ( ’ ; U_{%.3 f } ; ’ , k ( 1 ) ) s p r i n t f ( ’ ; U_{%.3 f } ; ’ , k
( 2 ) ) s p r i n t f ( ’ ; U_{%.3 f } ; ’ , k ( 3 ) ) s p r i n t f ( ’ ; U_{%.3 f } ; ’ , k
(4) ) })
10 t i t l e ( s p r i n t f ( ’ Les 4 p r e m i è r e s v a l e u r s p r o p r e s p o u r n = %i ’
,n( i ) ) )
11 end

F IGURE 2.3 – Représentation des 4 premières fonctions propres


Remarque : Les fonctions propres sont calculées sous forme de vecteurs, et ici sont approchées par l’interpo-
lation linéaire par morceaux (induite par la base choisie des polynômes P1 par morceaux de Lagrange), qui est
le tracé par défaut de Octave/Matlab.

L’équation en dimension 1 est :


u00 + k2 u = 0

31
Les solutions exactes sont alors de la forme (k2 > 0) 7 : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀x ∈ [0; 1]

u(x) = α sin(kx) + β cos(kx)

En appliquant les conditions initiales (de Dirichlet) :


( (
β =0 β =0
u(0) = 0 = u(1) ⇒ ⇒
α sin(k) = 0 kn = nπ

Les solutions exactes du problème sont de la forme :

u(x) = ∑ αn sin(nπx)
n∈N

Les quatre premières valeurs propres/ fonctions propres du laplacien, en dimension 1, sont :

n kn un (x)
1 π sin(πx)
2 2π sin(2πx)
3 3π sin(3πx)
4 4π sin(4πx)

Alors on remarque que les plus petites valeurs propres (et donc a fortiori les fonctions propres)
sont les meilleurs et dès n = 100 le résultat semble correct pour ces quatre premières valeurs propres/
fonctions propres du laplacien. On peut aussi estimer l’erreur 8 avec le code :
1 % d é f i n i t i o n des f o n c t i o n s propres e t v a l e u r s propres exacte :
2 u1 = i n l i n e ( ’ s i n ( p i ∗x ) ’ , ’ x ’ ) ;
3 u2 = i n l i n e ( ’ s i n ( 2 ∗ p i ∗ x ) ’ , ’ x ’ ) ;
4 u3 = i n l i n e ( ’ s i n ( 3 ∗ p i ∗ x ) ’ , ’ x ’ ) ;
5 u4 = i n l i n e ( ’ s i n ( 4 ∗ p i ∗ x ) ’ , ’ x ’ ) ;
6 c = [ 4 ∗ p i ; 3∗ p i ; 2∗ p i ; p i ] ;
7 c = c (:) ;
8

9 n = [20 : 1 0 : 200];
10 for i = 1: length ( n)
11 x = linspace (0 ,1 , n( i ) ) ;
12 x = x ( 2 : end −1) ;
13 x = x(:) ;
14 [U, k ] = fem ( 0 , 1 , n ( i ) , 4 ) ;
15 U = U∗ d i a g ( 1 . / max (U) ) ;
16 e r r ( 1 , i ) = max ( a b s ( u1 ( x )−U ( : ,4) ));
17 e r r ( 2 , i ) = max ( a b s ( u2 ( x )−U ( : ,3) ));
18 e r r ( 3 , i ) = max ( a b s ( u3 ( x )−U ( : ,2) ));
19 e r r ( 4 , i ) = max ( a b s ( u4 ( x )−U ( : ,1) ));
20 e r r v ( : , i ) = abs ( c − k ) ;
21 end
22

23 % A f f i c h a g e des e r r e u r s :
24 subplot (1 ,2 ,1) ;
25 loglog (n , err ,{ ’ ; err_1 ; ’ , ’ ; err_2 ; ’ , ’ ; err_3 ; ’ , ’ ; err_4 ; ’ })

7. k est réel car si k2 < 0 les solutions seraient hyperboliques et donc nulles avec les conditions de Dirichlet.
8. L’erreur de chaque valeurs propres/vecteurs propres sont calculable selon la méthode qui seras décrite dans le
paragraphe 2.4.2 : Programmation Matlab de la méthode des différences finies page 38.

32
26 t i t l e ( ’ e r r e u r s des f o n c t i o n s propres ’ )
27 x l a b e l ( ’ nombres de p o i n t s n ’ )
28 a x i s ( [ min ( n ) max ( n ) min ( min ( e r r ) ) max ( max ( e r r ) ) ] )
29

30 subplot (1 ,2 ,2) ;
31 l o g l o g ( n , e r r v , { s p r i n t f ( ’ ; e r r _ {%.3 f } ; ’ , k ( 1 ) ) s p r i n t f ( ’ ; e r r _ {%.3 f } ; ’ ,
k ( 2 ) ) s p r i n t f ( ’ ; e r r _ {%.3 f } ; ’ , k ( 3 ) ) s p r i n t f ( ’ ; e r r _ {%.3 f } ; ’ , k ( 4 ) )
})
32 t i t l e ( ’ e r r e u r s absolues des v a l e u r s propres ’ )
33 x l a b e l ( ’ nombres de p o i n t s n ’ )
34 a x i s ( [ min ( n ) max ( n ) min ( min ( e r r v ) ) max ( max ( e r r v ) ) ] )
35

36 % Calcul des ordres :


37 for i = 1:4
38 p = p o l y f i t ( log ( n ) , log ( e r r ( i , : ) ) ,1) ;
39 ord ( i ) = p ( 1 ) ;
40

41 pv = p o l y f i t ( l o g ( n ) , l o g ( e r r v ( i , : ) ) , 1 ) ;
42 o r d v ( i ) = pv ( 1 ) ;
43 end
44 ord
45 ordv
(voir le résultat sur la figure 2.4 : Représentation des erreurs des 4 premières fonctions propres et
valeurs propres de la présente page)

F IGURE 2.4 – Représentation des erreurs des 4 premières fonctions propres et valeurs propres
Les ordres sont, pour les fonctions propres, (par calculs numérique) tous égaux à 2 (ord ≈ 2.0338),
qui est la valeur attendue. Et les ordres sont, pour les valeurs propres, (par calculs numérique) tous
égaux à 1 (ord4 ≈ 1.1209, ord3 ≈ 1.0789, ord2 ≈ 1.0458, ord1 ≈ 1.0244).

33
2.4 Discrétisation de l’équation d’Helmholtz et Matlab par la mé-
thode des différences finies
2.4.1 Schématisation du problème fort
Rappel du problème
Le problème consiste en la résolution de l’équation de Helmholtz (équation (2.14) page 19) avec les conditions
de Dirichlet (indiquées dans la sous-section 2.2.1 : Conditions sur le problème page 21) :
(
∆u + k2 u = g dans Ω
u≡0 sur ∂ Ω

Pour discrétiser le problème, il faut donner des approximations des dérivées partielles. Supposons-
nous en dimension 3, pour ne pas perdre de généralité. [8]
Soit Ui jk l’approximation de la solution u(xi , y j , zk ) sur un pavage régulier (de pas h) de Ω. Nous
pouvons alors construire des approximations des dérivées partielles :

approximation solution
Ui jk u(xi , y j , zk )
Ui( j+1)k −Ui jk ∂u
∂ jUi jk = (xi , y j , zk )
h ∂y
Ui jk −Ui( j−1)k ∂u
∂¯ jUi jk = (xi , y j , zk )
h ∂y
∂ j U i jk + ∂¯ jUi jk Ui( j+1)k −Ui( j−1)k ∂u
∂ˆ jUi jk = = (xi , y j , zk )
2 2h ∂y
Ui( j+1)k − 2Ui jk +Ui( j−1)k ∂ 2u
∂ j ∂¯ jUi jk = (xi , y j , zk )
h2 ∂ y2
Et de même pour les autres variables (ici nous n’avons pas de dérivées partielles secondes croisées).
Le problème discrétisé devient alors :

U(i+1) jk − 2Ui jk +U(i−1) jk Ui( j+1)k − 2Ui jk +Ui( j−1)k Ui j(k+1) − 2Ui jk +Ui j(k−1)
+ +
h2 h2 h2
+ k2Ui jk = gi jk

1 
U(i+1) jk +U(i−1) jk +Ui( j+1)k +Ui( j−1)k +Ui j(k+1) +Ui j(k−1) − 6Ui jk
h2
+ k2Ui jk = gi jk


U(i+1) jk +U(i−1) jk +Ui( j+1)k +Ui( j−1)k +Ui j(k+1) +Ui j(k−1) − 6Ui jk
+ k2 h2Ui jk = h2 gi jk (2.22)

Le problème discrétisé est sous une forme exprimable matriciellement : [8]

AU = B
A1
avec la matrice des coefficients 9 A = 2 + k2 A2 , la matrice des valeurs Ui jk recherchées discrètes
h
U et la matrice du second membre B, contenant donc les valeurs gi jk . Les matrices U et B sont
de même dimension, en trois variables (le champ u prend des valeurs dans l’espace) ce sont des
9. On appelle aussi les matrices A1 et A2 les matrices de rigidité et de masse.

34
hypermatrices de R(n−1)×(n−1)×(n−1) (car en considérant les conditions aux limites (Dirichelet sur
∂ Ω, voir la sous-section 2.2.1 : Conditions sur le problème page 21), elles ne sont pas calculées dans
les variables U) et donc A est la matrice représentative d’un endomorphisme de R(n−1)×(n−1)×(n−1) ,
alors A ∈ R(n−1)×(n−1)×(n−1)×(n−1)×(n−1)×(n−1) .
Comme A est tridiagonale (dans chacune des trois direction de l’hypermatrices) et symétrique 10 ,
elle est diagonalisable (en base orthonormée de R3 ). Elle est donc inversible si −k2 n’est pas une va-
leur propre du laplacien et alors U est unique (avec les conditions de la sous-section 2.2.1 : Conditions
sur le problème page 21). [2]
Intéressons nous au problème en dimension 1 : [8]
Alors, l’équation de Helmholtz (équation (2.14) page 19) avec les conditions aux limite devient
(Ω =]a, b[) :
u00 + k2 u = g avec u(a) = ua et u(b) = ub (2.23)
Donc, nous pouvons utiliser le schéma de Numerov (plus précis) :

h2 k 2 h2 k2 h2
     
5 2 2 
1+ U j−1 − 2 − h k U j + 1 + U j+1 = g j−1 + 10g j + g j+1
12 6 12 12

Dans le cas où la solution exacte est u ∈ C 6 (Ω), avec des développements limités :

h2 00
0
u(xi±1 ) = u(xi ± h) = u(xi ) ± hu (xi ) + u (xi )
2
h3 (3) h4 h5 h6
± u (xi ) + u(4) (xi ) ± u(5) (xi ) + u(6) (xi ) + O(h7 )
3! 4! 5! 6!
h2 00 h3 h4
u(xi±1 ) = u(xi ± h) = u(xi ) ± hu0 (xi ) + u (xi ) ± u(3) (xi ) + u(4) (xi ) + O(h5 )
2 3! 4!
Nous avons l’estimation :
h2 00
(u(xi+1 ) + u(xi−1 ) − 2u(xi )) − (u (xi+1 ) + u00 (xi−1 ) + 10u00 (xi ))
12
h2
= (u(xi+1 ) + u(xi−1 ) − 2u(xi )) − (u(xi+1 ) + u(xi−1 ) + 10u(xi ))00
12
2h 4 2h 6
= h2 u00 (xi ) + u(4) (xi ) + u(6) (xi ) + O(h7 )
4! 6!
00
h2 2h4 (4)

2 00 5
− h u (xi ) + u (xi ) + O(h ) + 12u(xi )
12 4!
 
1 1
= − h6 u(6) (xi ) + O(h7 )
360 144

Pour Ui = u(xi ), u une solution exacte de l’équation de Helmholtz en dimension 1 (équation (2.23)
de la présente page) :
u00 = g − k2 u
D’où, nous pouvons utiliser le schéma de Numerov (plus précis) :

h2 k2 h2 k2 h2
     
5 2 2 
1+ U j−1 − 2 − h k U j + 1 + U j+1 = g j−1 + 10g j + g j+1
12 6 12 12
k2 k2
     
1 2 5 2 1 g j−1 5g j g j+1
+ U j−1 − 2 − k U j + 2 + U j+1 = + + (2.24)
h2 12 h 6 h 12 12 6 12
10. Pour le calcul de AUi jk , le coefficient devant Ui( j+1)k est le même que devant Ui( j−1)k , . . .

35
Avec l’estimation local 11 (si U j = u(x j ) et i = j ± 1) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∃C ∈ R
2

h 00 00 00
u(xi+1 ) + u(xi−1 ) − 2u(xi ) − (u (xi+1 ) + u (xi−1 ) + 10u (xi )) 6 Ch6 ku(6) k∞

12

|Ui − u(xi )| 6 Ch6 ku(6) k∞ (2.25)


Et donc d’après l’estimation ci-dessus (2.25) et le schéma (2.24) : . . . . . . . . . . . . . . . . . . . . ∃C ∈ R
2 k2 
  
h 5 2 2
1+ (U j−1 − u(x j−1 )) − 2 − h k (U j − u(x j ))
12 6
h2 k2
 
(U j+1 − u(x j+1 )) 6 Ch6 ku(6) k∞

+ 1+
12
2
   
1 k 2 5 2
h2 + 12 (U j−1 − u(x j−1 )) − h2 − 6 k (U j − u(x j ))

k2
 
1
(U j+1 − u(x j+1 )) 6 Ch4 ku(6) k∞

+ 2+
h 12

Donc globalement la méthode de Numerov est d’ordre 4 : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∃D ∈ R

max |Ui − u(xi )| 6 Dh4 ku(6) k∞ (2.26)


∀i

2.4.2 Programmation en Matlab de la méthode des différences finies en di-


mension 1
En dimension 1, le problème discrétisé (2.24) page précédente est sous une forme exprimable
matriciellement 12 : [8]

AU = B

avec la matrice des coefficients, le vecteur des valeurs discrètes recherchées et le vecteur du second
membre :
A1
A = + k 2 A2
h2
2
 

1 k
g(a) − h2 + 12 ua 
   
U1 g1
 ..   ..  
 
 .   .   0 

U =  Ui 
 
B = A2 ×  gi  + 
   .. 
 .   .   . 
 ..   ..  

0 
2
   
Un − 1 gn − 1  1 k 
g(b) − 2 + ub
h 12
11. On connaît même une constante qui vérifie l’inégalité. Sa valeur est :

1 1 1
C= − =
360 144 240

12. C’est un cas particulier de la forme générale (2.22) page 34.

36
et :
 
−2 1 0 ··· 0
... ... .. 
1 −2 . 


A1

=  .. .. .. 
 0 . . . 0 
 .. .. .. 
 . . . −2 1
0 ··· 0 1 −2
 
10 1 0 · · · 0
. . .. 
 1 10 . . . . .

12A2

=  .. .. .. 
0 . . . 0 
. . .
 .. . . . . 10

1
0 ··· 0 1 10
D’où, la programmation en Matlab :
1 f u n c t i o n [U x ] = Numerov (N, k , g , u0 , u1 )
2 % Numerov donne l a s o l u t i o n de H e l m h o l t z p a r l a d i s c r é t i s a t i o n de
Numerov
3

4 x = l i n s p a c e ( 0 , 1 ,N+ 1) ;
5 X = x ( 2 : N) ;
6

7 A1 = d i a g ( o n e s ( 1 , N−2) , 1 ) − d i a g ( 2 ∗ o n e s ( 1 , N−1) ) + d i a g ( o n e s ( 1 , N−2)


, −1) ;
8 A2 = d i a g ( 1 / 1 2 ∗ o n e s ( 1 , N−2) , 1 ) + d i a g ( 5 / 6 ∗ o n e s ( 1 , N−1) ) + d i a g ( 1 / 1 2 ∗
o n e s ( 1 , N−2) , −1) ;
9 A = N^2∗A1 + k ^2∗A2 ;
10

11 % s e c o n d membre
12

13 B = A2∗g (X) ( : ) ;
14 B ( 1 ) = B ( 1 ) + ( g ( 0 ) − k ^2∗ u0 ) / 1 2 − N^2∗ u0 ;
15 B (N−1) = B(N−1) + ( g ( 1 ) − k ^2∗ u1 ) / 1 2 − N^2∗ u1 ;
16

17 % solution
18

19 U = A\B;
20 U= [ u0 ; U ( : ) ; u1 ] ;
21 x=x ( : ) ;
22 end
Ce problème discrétisé (équation (2.24) page 35) est théoriquement, localement d’ordre 6 (en
considérant la dérivée 6-ème de la solution, (2.25)), mais globalement d’ordre 4 (en considérant la
dérivée 6-ème de la solution, (2.26)). Numériquement, cet ordre (ord ∈ R+ ) peut légèrement différer
(ou beaucoup, suivant la forme de la fonction), on le met alors en évidence par le calcul de : [1]
 
ord
max |Uh (i) − u(xi )| = Ch ⇔ ln max |Uh (i) − u(xi )| = ln(C) + ord ln(h)
i∈~1,N i∈~1,N

On peut aussi considérer :


ln(maxi∈~1,N |Uh (i) − u(xi )|)
 
lim = ord
h→0 ln(h)

37
où Uh (i) est l’approximation de la solution exacte u(xi ).
Si N est le nombre de discrétisation (i ∈ ~1, N). Concernant les erreurs de calcul (même faibles)
de l’ordinateur, − ln(N) est (normalement) plus précis que ln(h), d’où la préférence pour chercher :
 
−ord
max |UN (i) − u(xi )| = CN ⇔ ln max |UN (i) − u(xi )| = ln(C) − ord ln(N)
i∈~1,N i∈~1,N

On peut aussi considérer :

ln(maxi∈~1,N |UN (i) − u(xi )|)


 
− lim = ord
N→∞ ln(N)

Exemple pour tester la programmation Matlab


On peut tester la théorie précédente sur un exemple, pour un problème soluble explicitement (et
−k2 , d’une valeur propre du problème homogène). Choisissons donc k = 1, Ω =]0; 1[ et g = exp
avec les conditions de Dirichlet homogènes ( f (∂ Ω) = {0}). Le problème devient donc : . . . . ∀x ∈ Ω
 00
u (x) + u(x) = ex
u(0) = u(1) = 0

L’équation caractéristique de cette équation différentielle ordinaire est :

r2 + 1 = 0 ⇔ r± = ±i

Donc la solution exacte (la solution cherchée est réelle) du problème homogène est de la forme
(a, b ∈ C, α, β ∈ R) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀x ∈ [0; 1]

u(x) = aeix + be−ix ⇔ u(x) = α sin(x) + β cos(x)

Remarquons qu’avec les conditions aux limites :

u(0) = u(1) = 0 ⇒ β = α = 0

Donc (−k2 , d’une valeur propre du problème homogène et) la solution exacte de l’équation sans
second membre est nulle, la solution est donc unique.
1
Or la fonction exp vérifie l’équation. D’où la solution est de la forme (α, β ∈ R) : . . ∀x ∈ [0; 1]
2
ex
u(x) = α sin(x) + β cos(x) +
2
Nous en déduisons l’unique solution exacte, avec les conditions initial :

sin(x) (cos(1) − e) 1 ex
u(x) = − cos(x) +
2 sin(1) 2 2
(voir la figure 2.5 : Solution exacte pour une représentation graphique).
On peut calculer (et afficher) la solution approchée et calculer l’erreur correspondante avec les
instructions :
1 % D é f f i n i t i o n de l a s o l u t i o n e x a c t e :
2 u = i n l i n e ( ’ 0 . 5 ∗ ( s i n ( x ) ∗ ( c o s ( 1 )−exp ( 1 ) ) / s i n ( 1 )−c o s ( x ) + exp ( x ) ) ’ , ’ x ’ )
;
3

4 % C a l c u l de l a s o l u t i o n a p p r o c h é

38
Avec les conditions initiales, la représentation graphique de l’unique solution est :

avec :
sin(x) (cos(1) − e) 1 ex
u(x) = − cos(x) +
2 sin(1) 2 2

F IGURE 2.5 – Solution exacte

5 g = i n l i n e ( ’ exp ( x ) ’ , ’ x ’ ) ;
6 u0 = 0 ;
7 u1 = 0 ;
8 k = 1;
9 N = [ 5 10 20 40 60 1 0 0 ] ;
10

11 f o r i = 1 : l e n g t h (N)
12 [U x ] = Numerov (N( i ) , k , g , u0 , u1 ) ;
13 subplot (2 ,3 , i ) ;
14 p l o t ( x , U)
15 t i t l e ( s p r i n t f ( ’ D i s c r e t i s a t i o n p o u r N = %i ’ ,N( i ) ) )
16 e r r ( i ) = max ( a b s ( u ( x ) − U) ) ;
17 end
18 figure ;
19 l o g l o g ( 1 . / N, e r r , ’ ; e r r e u r ( p a s ) ; ’ )
20 p o l e r r = p o l y f i t (− l o g (N) , l o g ( e r r ) , 1 ) ;
21 ord = p o l e r r ( 1 )
(voir la figure 2.6 : Résultat discret (pour la méthode des différences finies) pour avoir le résultat)

39
Le résultat de l’algorithme calculant l’approximation est :

 
1 1
Ainsi que l’erreur en fonction de N = = :
h pas

D’où en interpolant linéairement (polerr(N) = ord × ln(N) − ln(C)), ord = 3, 995.

F IGURE 2.6 – Résultat discret (pour la méthode des différences finies)

40
Deuxième partie

Application aux fibres microstructurées

41
Chapitre 3

Description du modèle et formulation du


problème de calcul de modes de fuite

3.1 Formulation de la propagation des ondes


Dans la première partie, (section 2.1 : Introduction page 18) nous avons décrit et étudié la so-
lution de propagation des ondes électromagnétiques en milieu linéaire homogène isotrope. Dans ce
cas, comme expliqué, les équations de Maxwell se simplifient en équation d’Helmholtz. Or cette des-
cription est (à priori) valable uniquement dans les ensembles connexes de la fibre optique (d’indice
homogène) et l’on a aux frontières entre les deux milieu (1 et 2) (pour les champs électromagnétique),


en notant →
−n i j la normale dirigée du milieu i vers le milieu j contenant le champ U j (U ∈ {E, B, H, D}
comme défini dans la sous-section Introduction page 18 de la section 2.1) :
Relation de passage Forme "locale"

− → →− →
− →

Continuité de la composante tangentielle de E − n 12 ∧ ( E 2 − E 1 ) = 0

− →
− →− →
− →

Saut de la composante tangentielle de H n 12 ∧ ( H 2 − H 1 ) = J s

− →
− →
− →

Saut de la composante normale de D n 12 · (D 2 − D 1 )= ρs

− →
− →
− →

Continuité de la composante normale de B n 12 · B 2 − B 1 = 0


Où J s et ρs représentent respectivement le vecteur densité superficielle de courant et la densité
superficielle de charge, qui peuvent exister à l’interface séparant les deux milieux.
Remarque 3.0.3
Ce dernier tableau peut se déduire des équations de Maxwell, si on les considère au sens des distributions 1 .

On peut donc (pour une fréquence donnée ω), résoudre sur tout le domaine l’équation de Helm-
holtz comme expliqué dans la section 2.1 : Introduction page 18 :


−  ω 2 →
→ − ∂ J −−→  ρ 
∆E + E = µ + grad (3.1)
v ∂t ε

−  ω 2 →
− →→
− −
∆H + H = − rot( J ) (3.2)
v
avec donc :
1. ρ(→
−r ,t) la densité volumique de charge électrique.

− −
2. J (→r ,t) le vecteur densité de courant.
des fonctions éventuellement discontinues, et aussi µ, ε et v des constantes par morceaux.


Or la propagation s’effectue dans dans un diélectrique, donc ρ ≡ 0 et J ≡ 0 dans Ω. Alors, les

− → −
champs E et H vérifient l’équation de Helmholtz homogène (second membre nul) sur le domaine Ω.
1. Mais il est plus simple de les considérer au sens des fonctions.

42
c
De plus, l’indice de réfraction d’un milieu est défini par n = ∈ C (la partie imaginaire correspondant
v
au coefficient d’absorption). De plus, l’indice d’un milieu peut (et c’est souvent le cas) varier avec la
fréquence (ω) : [3]

ωn(ω) 2 →
 

− −
∆E + E = 0 (3.3)
c
ωn(ω) 2 →
 

− −
∆H + H = 0 (3.4)
c


En notant k = k→ −e k le vecteur d’onde 2 , contenant le nombre d’onde k et le vecteur de propagation
de l’onde →

e k , nous avons l’équation de dispersion : [3]

ωn(ω)
k= (3.5)
c

− − →
− −
Les champs électromagnétiques E (→
x ,t) et H (→
x ,t) sont alors de la forme :

− → → →
− − → − →
− → −
E (−
x ,t) = E0 eℑ( k )· x ei(ωt−ℜ( k )· x )

− → → →
− − → − →
− → −
H (−x ,t) = H0 eℑ( k )· x ei(ωt−ℜ( k )· x )


La partie imaginaire de k (ℑ( k ) = ℑ(k)→−e ) est donc le coefficient d’atténuation dans la propagation.
k

Remarque 3.0.4 Remarque sur l’expression des champs


La notation complexe est d’usage courant, mais il ne faut pas oublier que les champs électromagnétiques « phy-

− →

siques » sont les parties réelles des champs complexes. Si E r et H r sont les champs électriques et magnétiques
réels, alors :

− → →
− −
E r (−
x ,t) = ℜ E (→
x ,t)

− → →

H r (−
x ,t) = ℜ H (→

x ,t)
De plus dans cette recherche, comme le milieu diélectrique est isotrope, la connaissance d’un des champs

− −
→ − →
est suffisante (en connaissant le vecteur d’onde k ) car E0 ⊥ H0 .

Démonstration. [4]
De plus, les champs électromagnétiques sont de la forme :

− → −
→ n→
− → −
A (−
x ,t) = A0 eiω (t− c e k · x )

− n→−→−→
−→ −o
où A ∈ E D B H .


On remarque que dériver A par rapport au temps t revient à le multiplier par iω et dériver dans la direction

− n− →
x revient à multiplier par −iω → e k ·−
x . On en déduit :
c
→→
− − n− → −
rot A = −iω →x ∧A
c
Dans notre cas (une région sans courant ni charges), considérons les équations de Maxwell homogène (équations
équation (2.1) page 18 et équation (2.2) page 18) :
→→
− −
→→
− − ∂ rot B
rot E + = 0
∂t
→→
− −
→→
− − ∂ rot D
rot H − = 0
∂t
2. Remarque : le vecteur d’onde a pour coordonnées les nombres d’ondes dans chaque direction de la base de Ω.

43
Elle devient alors :

− →
− c→− c → −
x ∧ E = B = µH
n n

− →
− c→− c →−
x ∧H =− D = εE
n n
 → − →

D’où l’orthogonalité des ondes électromagnétiques, →


x , E , H forment un trièdre rectangle direct. C . Q . F. D .

Concentrons nous alors sur le champ électrique se propageant dans la fibre microstructurée, de la
forme :

− → −
→ n→
− → −
E (−
x ,t) = E0 eiω (t− c e k · x ) (3.6)

3.2 Introduction à la notion de guide d’ondes en optique guidée


3.2.1 Les guides d’ondes [5]
Première hypothèse : Le milieu de propagation Ω̃ doit être cylindrique et infini dans la direction du
cylindre. Si x3 désigne cette direction, nous avons : Ω̃ = Ω × R et si nécessaire Γ̃ = Γ × R où
Γ = ∂ Ω et Ω est la section droite du milieu de propagation (voir, pour un exemple, la Figure
3.1 : Coupe d’une fibre microstructurée à huit trous et une couche de la présente page).
Dans la suite, nous noterons x̃ = (x, x3 ) ∈ Ω̃ et x = (x1 , x2 ) ∈ Ω.
Deuxième hypothèse : Les coefficients caractéristiques du milieu sont aussi invariants par transla-
tion dans la direction x3 .

F IGURE 3.1 – Coupe d’une fibre microstructurée à huit trous et une couche

Un guide d’ondes est donc ici une structure invariante par translation dans la direction de propa-
gation x3 . Il est donc complètement défini par sa section droite Ω.
– La conséquence essentielle de ces hypothèses est de pouvoir se ramener à un problème posé
dans Ω (au lieu de (Ω̃)) :
– On peut chercher des solutions à variables séparées (avec N = {1, 2, 3}) :
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀(→
− 2
x , x3 ,t) ∈ Ω × R+

− →
U (−
x , x3 ,t) = →

u (x)ℜ( f (x3 )g(t)) avec u(→

x ) ∈ RN

– On peut demander aux fonctions f et g de varier de manière harmonique, avec (β , ω) ∈ R2 :


2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀(x3 ,t) ∈ R+

f (x3 ) = e−iβ x3 et g(t) = eiωt

44
Définition d’un mode
On appelle mode toute solution des équations du modèle s’écrivant sous la forme : . . . . . . ∀(x, x3 ,t) ∈ Ω̃ × R+
 
U(x, x3 ,t) = ℜ u(x)ei(ωt−β x3 )

∗ 2
avec (ω, β ) ∈ (R+ ) . On a ω = kc0 en optique guidée, avec k le nombre d’onde et c0 la vitesse de la lumière.

Cette dépendance en x3 et t précise la manière dont l’onde se propage. On l’interprète comme une
ω
onde se propageant sans déformation dans la direction x3 à la vitesse v = , car : . . . . ∀(x, x3 , L,t) ∈
β
Ω̃ × R × R+
 
U(x, x3 + L,t) = ℜ u(x)ei(ωt−β (x3 +L))
 L

= ℜ u(x)ei(ω (t− v )−β x3 )
L
U(x, x3 + L,t) = U(x, x3 ,t − )
v
La fonction u(x) décrit la répartition de l’amplitude de l’onde dans la section transverse.
Définition de la terminologie utilisée
Nous notons :
– ω est la pulsation de l’onde.
– β est la constante de propagation du mode.
– ωt − β x3 est la phase.
ω
– v = est la vitesse de phase. Ce n’est pas la vitesse de déplacement de particules qui dans le cas d’une
β
corde vibrante horizontale se déplacent verticalement alors que l’onde se déplace horizontalement. Ce
sont les variations de hauteur des points de la corde qui se propagent. Ce sont les variations du champ
électromagnétique en électromagnétisme , de la pression en acoustique, de la hauteur d’eau pour la houle.

– T= est la période de l’onde.
ω

– λ= est la longueur d’onde (la distance parcourue par l’onde en une période : λ = vT ).
β
Remarque : Il arrive que l’on parle de fréquence pour ω mais en toute rigueur ce terme est
ω
impropre puisque la fréquence est définie par F = .

Définition d’un mode guidé
On appelle mode guidé, tout mode (ω, β ) dont l’énergie transverse est finie :
Z N
|u(x)|2 dx < +∞ ⇔ u ∈ L2 (Ω)

Les autres modes sont des modes de radiation.

Remarque 3.0.5
Dans le cas où Ω est borné, cette condition est peu contraignante. On montre d’ailleurs dans ce cas que tous les
modes sont guidés.

Dans le cas où Ω est non borné, cette condition est essentielle : elle impose à l’énergie transverse de l’onde d’être
localisée dans une région bornée de la section transverse Ω. Tous les modes ne sont pas guidés : certains modes
ont une énergie transverse infinie. On les appelle modes de radiation : ils dispersent une partie de l’énergie dans
le milieu. L’énergie de la source se décomposent sur tous les modes : la partie qui est guidée se décompose sur
les modes guidés et la partie qui se dissipe dans le milieu se décompose sur les modes de radiations.

Définition
On dit que le guide d’ondes est fermé (respectivement ouvert) si la section transverse Ω du milieu de propa-
gation est bornée (respectivement non bornée).

45
Remarque : L’étude des guides d’ondes ouvert est mathématiquement beaucoup plus délicate que
celle des guides d’ondes fermés. Dans la suite nous étudierons des cas simples de ces deux types de
guides d’ondes.
Dans un guide fermé : les modes guidés existent toujours, tous les modes sont guidés, il en existe
une infinité dénombrable.
Dans un guide ouvert : les modes guidés peuvent ne pas exister ou exister suivant la nature du mi-
lieu de propagation, il existe toujours d’autres modes (les modes de radiation), le nombre de
modes guidés peut être fini ou infini.
Un point commun essentiel entre les guides fermés et ouverts : pour qu’une fonction de la forme
précisée dans la définition 1 soit un mode guidé, il faut que ω et β soient reliés par une relation
appelée relation de dispersion (comme équation (3.5) page 43).

3.3 Exemple de guides d’ondes


3.3.1 Les fibres optiques [5, 6, 13]
 Une fibre optique est un guide d’ondes  ouvert défini par son profil d’indice de réfraction n
ε
qui dépend de la position, de plus n2 = . Elle est constituée d’un cœur (domaine borné) où n
ε0
peut être variable qui est entouré d’une gaine où n est constant. Les dimensions du cœur étant très
petites devant celles de la gaine, la frontière de la gaine n’a pas d’influence sur les modes guidés qui
sont exponentiellement décroissants dans la gaine et on suppose que Ω = R2 .
Considérons une fibre optique circulaire à saut d’indice de rayon R avec comme indice de réfrac-
tion n+ dans le cœur et n∞ dans la gaine tels que n+ > n∞ . Rechercher les modes guidés se ramène
alors à chercher les éléments propres (−β 2 , u), avec β ∈ R+ , de l’équation :

−∆u − k2 n2 u = −β 2 u, dans R2 (3.7)

tels que −k2 n2+ < −β 2 < −k2 n2∞ ou kn∞ < β < kn+ . La condition n+ > n∞ est indispensable pour
l’existence de modes guidés qui sont en nombre finis à k fixé.
La lumière guidée dans la fibre se décomposera sur les modes guidés de la fibre qui se propagent
à des vitesses différentes. Quand k augmente le nombre de modes augmente. Un mode apparaît donc
à partir d’une certaine valeur de k qui est appelée valeur de coupure.
Lorsque la lumière est injectée dans la fibre optique, il y a d’abord un phénomène transitoire qui
est souvent court où une partie de l’énergie est dispersée dans la gaine (en se décomposant sur les
modes de radiation), puis il ne reste plus que la partie guidée de l’onde ("sans perte" d’un point de
vue théorique) au voisinage du cœur du guide (en se décomposant sur les modes guidés), c’est le
régime stationnaire qui est étudié par le modèle de propagation ci-dessus.

3.3.2 Les modes de fuite [6]


Les modes de fuites sont des modes "presque guidés" au sens où les pertes lors de la propagation
existent (contrairement aux modes guidés) mais sont très faibles. Ils peuvent donc se propager sur de
longues distances contrairement aux autres modes de radiation. Ce qui permet d’utiliser des fibres op-
tiques comme les fibres optiques microstructurées qui n’ont pas de modes guidés (car n+ = n∞ ) mais
présente des modes de fuite avec un coefficient d’atténuation très faible. Il existe des décompositions
du champs de radiation sur les modes de fuite complété par une partie dite d’"onde spatiale".
Pour comprendre la relation entre les modes guidés et les modes de fuite, ils peuvent être envisagés
pour le modèle ci-dessus comme des "modes guidés" en-dessous de la valeur de coupure. Par exemple,
si un mode apparaît à partir de la valeur kc , pour k juste un peu inférieur à kc l’équation aux valeurs
propres donne un β qui devient complexe mais avec une petite partie imaginaire dont dépend le

46
coefficient d’atténuation dans la propagation et qui correspond à la petite partie de l’énergie du mode
qui est dispersée dans la gaine. Les modes de fuite sont donc ici les éléments propres (−β 2 , u) de
l’équation (3.7) page précédente pour lesquelles β = βr + iβi est complexe avec une petite partie
imaginaire (βi et 0 6 βr < kn∞ ).
Les modes de fuite se comporte comme des modes guidés au voisinage du cœur du guide (dans
un rayon qui peut être estimé), c’est à dire que le champs décroît avec la distance par rapport au cœur
(ce qui correspond à un comportement évanescent), au-delà le champs devient oscillant et provoque
la petite perte d’énergie par radiation.

3.3.3 Les fibres optiques micro-structurées [12, 13]


Les fibres optiques micro-structurées que l’on considère ici sont des fibres optiques à saut d’indice
composées d’un seul matériau d’indice de réfraction n∞ > 1 et de l’air (d’indice de réfraction 1). Le
profil d’indice de réfraction n est égal partout à n∞ sauf dans des inclusions circulaires où il vaut 1
(voir la Figure 3.1 : Coupe d’une fibre microstructurée à huit trous et une couche page 44). Une telle
fibre optique n’admet pas de modes guidés mais si la disposition de ces inclusions est bien choisi elles
admettent des modes de fuite avec des coefficient d’atténuation très faible.

47
Chapitre 4

Méthode multipôles [14, 12, 13]

Tout d’abord, il faut différencier la méthode mulitpôle décrite dans [12, 13], pour calculer les
modes de fuite d’une fibre optique micro-structurée, de la méthode mulitpôles rapide qui est une
méthode numérique pour accélérer certains calculs numériques complexes.
La méthode décrite dans [12, 13] est basée sur la résolution de l’équation (3.7) page 46 avec
des coordonnées polaires locales aux inclusions, en distinguant l’équation posée dans l’inclusion (de
rayon R) et en dehors (dans la gaine), pour avoir une fonction n constante. Dans ce cas, dans un anneau
autour de l’inclusion considérée, en décomposant u(r, θ ) en série de Fourier : . . . . . . . . . . . . ∀r ∈ R+
u(r, θ ) = ∑ fm (r)eimθ
m∈Z

on obtient, en reportant dans l’équation : . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀r ∈ [0; R[∪]R; +∞[, ∀m ∈ Z


m2
 
00 1 0 2
fm (r) + f (r) + k∞ − 2 fm (r) = 0 (4.1)
r r
q
avec k∞ = k2 n2∞ − β 2 . Avec le changement de variable s = k∞ r, on obtient l’équation différentielle
de Bessel ([5, 10, 9]) d’ordre m dont la solution est une combinaison linéaire des fonctions de Bessel
du premier et deuxième type et d’ordre m (Jm et Ym ) ou, de manière équivalente, des fonctions de
(1)
Bessel et d’Hankel (Hm = Jm + iYm ) du premier type et d’ordre m :
(1)
fm = Am Jm + Bm Hm
On obtient une série Fourier-Bessel : . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀r ∈ [0; R[∪]R; +∞[, ∀θ ∈ [0; 2π]
h i
(1)
u(r, θ ) = ∑ Am Jm (k∞ r) + Bm Hm (k∞ r) einθ
m∈Z

4.1 Complément sur les fibre optique micro-structurées


On peut trouver les résultats du chapitre 4 dans la 9th edition (de 1965) du livre « Handbook of
mathematical functions » d’auteur M. Abramowitz et I.A. Stegun, publier à "Dover Publications", à
New York. La page 355 9. « Bessel Functions of Integer Order » est accessible en ligne à l’adresse :

http ://mintaka.sdsu.edu/faculty/wfw/ABRAMOWITZ-STEGUN/frameindex.htm
Pour connaître les différents résultats possibles concernant la propagation dans les fibres micros-
trucrées, on peut consulter la page sur les « Fibres optiques microstructurées » :
http ://www.fresnel.fr/perso/renversez/node4.html

48
Chapitre 5

Annexes

Code C de la fonction gl.c :


1 # include " gl . h"
2

4 double gl ( double a , double b , i n t n , double (∗ f ) ( double ) )


5 {
6 c o n s t d o u b l e z e r o = 0 . 0 , one = 1 . 0 , two = 2 . 0 ;
7

8 / / T a b l e a u x d e s n o e u d s p o u r 1<n<21
9 double z [110] = { 0 . 0 , 0.577350269189626 ,
0.774596669241483 , 0 . 0 ,
10 0.861136311594053 , 0.339981043584856 ,
0.906179845938664 ,
11 0.538469310105683 , 0 . 0 ,
0.932469514203152 ,
12 0.661209386466265 , 0.238619186083197 ,
0.949107912342758 ,
13 0.741531185599394 , 0.405845151377397 ,
0.0 ,
14 0.960289856497536 , 0.796666477413627 ,
0.525532409916329 ,
15 0.183434642495650 , 0.968160239507626 ,
0.836031107326636 ,
16 0.613371432700591 , 0.324253423403809 ,
0.0 ,
17 0.973906528517172 , 0.865063366688984 ,
0.679409568299024 ,
18 0.433395394129247 , 0.148874338981631 ,
0.978228658146057 ,
19 0.887062599768095 , 0.730152005574049 ,
0.519096129206812 ,
20 0.269543155952345 , 0 . 0 ,
0.981560634246719 ,
21 0.904117256370475 , 0.769902674194305 ,
0.587317954286617 ,
22 0.367831498998180 , 0.125233408511469 ,
0.984183054718588 ,

49
23 0.917598399222978 , 0.801578090733310 ,
0.642349339440340 ,
24 0.448492751036447 , 0.230458315955135 ,
0.0 ,
25 0.986283808696812 , 0.928434883663573 ,
0.827201315069765 ,
26 0.687292904811685 , 0.515248636358154 ,
0.319112368927890 ,
27 0.108054948707344 , 0.987992518020485 ,
0.937273392400706 ,
28 0.848206583410427 , 0.724417731360170 ,
0.570972172608539 ,
29 0.394151347077563 , 0.201194093997435 ,
0.0 ,
30 0.989400934991650 , 0.944575023073233 ,
0.865631202387832 ,
31 0.755404408355003 , 0.617876244402644 ,
0.458016777657228 ,
32 0.281603550779259 , 0.095012509837638 ,
0.990575475314417 ,
33 0.950675521768768 , 0.880239153726986 ,
0.781514003896801 ,
34 0.657671159216691 , 0.512690537086477 ,
0.351231763453877 ,
35 0.178484181495848 , 0 . 0 ,
0.991565168420931 ,
36 0.955823949571398 , 0.8926024664975556 ,
0.803704958972523 ,
37 0.691687043060353 , 0.559770831073947 ,
0.411751161462843 ,
38 0.251886225691505 , 0.084775013041735 ,
0.992406843843584 ,
39 0.960208152134830 , 0.903155903614818 ,
0.822714656537143 ,
40 0.720966177335230 , 0.600545304661681 ,
0.464570741375961 ,
41 0.316564099963630 , 0.160358645640225 ,
0.0 ,
42 0.993128599185095 , 0.963971927277914 ,
0.912234428251326 ,
43 0.839116971822219 , 0.746331906460150 ,
0.636053680726515 ,
44 0.510867001950827 , 0.373706088715420 ,
0.227785851141645 ,
45 0.076526521133497
46 };
47

48 / / T a b l e a u x d e s p o i d s p o u r 1<n<21
49 d o u b l e w[ 1 1 0 ] = { 0 . 0 , 1 . 0 , 0 . 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 ,
0.888888888888889 ,

50
50 0.347854845137454 , 0.652145154862546 ,
0.236926885056189 ,
51 0.478628670499367 , 0.568888888888889 ,
0.171324492379170 ,
52 0.360761573048138 , 0.467913934572691 ,
0.129484966168870 ,
53 0.279705391489277 , 0.381830050505119 ,
0.417959183673469 ,
54 0.101228536290376 , 0.222381034453374 ,
0.313706645877887 ,
55 0.362683783378362 , 0.081274388361574 ,
0.180648160694858 ,
56 0.260610696402935 , 0.312347077040003 ,
0.330239355001260 ,
57 0.066671344308688 , 0.149451349150581 ,
0.219086362515982 ,
58 0.269266719309996 , 0.295524224714753 ,
0.055668567116174 ,
59 0.125580369464905 , 0.186290210927734 ,
0.233193764591991 ,
60 0.262804544510247 , 0.272925086777900 ,
0.047175336386512 ,
61 0.106939325995319 , 0.160078328543346 ,
0.203167426723066 ,
62 0.233492536538355 , 0.249147045813403 ,
0.040484004765316 ,
63 0.092121499837729 , 0.138873510219787 ,
0.178145980761946 ,
64 0.207816047536889 , 0.226283180262897 ,
0.232551553230874 ,
65 0.035119460331752 , 0.080158087159760 ,
0.121518570687903 ,
66 0.157203167158194 , 0.185538397477938 ,
0.205198463721296 ,
67 0.215263853463158 , 0.030753241996118 ,
0.070366047488108 ,
68 0.107159220467172 , 0.139570677926154 ,
0.166269205816994 ,
69 0.186161000015562 , 0.198431485327112 ,
0.202578241925561 ,
70 0.027152459411755 , 0.062253523938648 ,
0.095158511682493 ,
71 0.124628971255534 , 0.149595988816577 ,
0.169156519395003 ,
72 0.182603415044924 , 0.189450610455068 ,
0.024148302868548 ,
73 0.055459529373987 , 0.085036148317179 ,
0.111883847193404 ,
74 0.135136368468526 , 0.154045761076810 ,
0.168004102156450 ,

51
75 0.176562705366992 , 0.179446470356206 ,
0.021616013526484 ,
76 0.049714548894970 , 0.076425730254889 ,
0.100942044106287 ,
77 0.122555206711478 , 0.140642914670651 ,
0.154684675126265 ,
78 0.164276483745832 , 0.169142382963144 ,
0.019461788229727 ,
79 0.044814226765700 , 0.069044542737641 ,
0.091490021622450 ,
80 0.111566645547335 , 0.128753962539336 ,
0.142606702173606 ,
81 0.152766042065860 , 0.158968843393954 ,
0.161054449848783 ,
82 0.017614007139152 , 0.040601429800387 ,
0.062672048334109 ,
83 0.083276741576704 , 0.101930119817241 ,
0.118194531961519 ,
84 0.131688638449177 , 0.142096109318382 ,
0.149172986472603 ,
85 0.152753387130726
86 };
87

88 d o u b l e s c a l e , t , t l , t u , sum , r e s u l t ;
89 i n t i , m, i b a s e ;
90

91

92 / / E c h e l l e de c h a n g e m e n t de v a r i a b l e
93 s c a l e = ( b − a ) / two ;
94

95 / / C h o i x de c a s e du dà part c dans l e s t a b l e a u x s e l o n l a
parità c de n .
96 i f ( ( n / 2 ) ∗2 == n ) {
97 m = n/2;
98 i b a s e = m∗m;
99 sum = z e r o ;
100 } else {
101 m = ( n − 1) / 2 ;
102 i b a s e = ( n∗ n − 1 ) / 4 ;
103 / / Le m i l i e u de l ’ i n t e r v a l e [ a , b ] q u i c o r r e s p o n d Ã
l ’ o r i g i n e s u r [ −1 ,1]
104 sum = w[ i b a s e +m] ∗ ( ∗ f ) ( ( a + b ) / two ) ;
105 }
106

107 f o r ( i = 1 ; i <= m; i ++) {


108

109 / / R e c h e r c h e d e s p o i n t s de Gauss d a n s l e t a b l e a u z
110 t = z [ ibase + i − 1];
111

112 / / ( t ∗ ( b−a ) / 2 ) + ( ( a+b ) / 2 )

52
113 / / t l : c o r r e s p o n d au p o i n t de Gauss d a n s l ’
i n t e r v a l l e ] −1 ,0[
114 / / t u : c o r r e s p o n d au p o i n t da Gauss d a n s l ’
i n t e r v a l l e ]0 ,1[
115 t l = ( a ∗ ( one + t ) + ( one − t ) ∗ b ) / two ;
116 t u = ( a ∗ ( one − t ) + ( one + t ) ∗ b ) / two ;
117

118 sum = sum + w[ i b a s e + i − 1 ] ∗ ( ( ∗ f ) ( t l ) +(∗ f ) ( t u ) ) ;


119 }
120

121 / / C a l c u l de l ’ i n t e g r a l e d a n s [ a , b ]
122 r e s u l t = s c a l e ∗sum ;
123

124 return ( result ) ;


125 };
Code C de la fonction nc.c :
1 # i n c l u d e < s t d i o . h>
2 # i n c l u d e < s t d l i b . h>
3 # i n c l u d e " nc . h "
4

5 / / n : Ordre
6 d o u b l e nc ( d o u b l e a , d o u b l e b , i n t n , d o u b l e ( ∗ f ) ( d o u b l e ) ) {
7 c o n s t d o u b l e z e r o = 0 . 0 , one = 1 . 0 , two = 2 . 0 , h = ( b−a ) / n ;
8

9 / / T a b l e a u x d e s p o i d s p o u r 1<=n<7
10 d o u b l e w[ 2 0 ] = { 0 . 0 ,
11 0.500000000000000 , 0.333333333333333 ,
1.333333333333333 ,
12 0.375000000000000 , 1.125000000000000 ,
0.311111111111111 ,
13 1.422222222222222 , 0.533333333333334 ,
0.329861111111154 ,
14 1.302083333333147 , 0.868055555555876 ,
0.292857142857036 ,
15 1.542857142857391 , 0.192857142857036 ,
1.942857142856974 ,
16 0.304224537045291 , 1.449016203664079 ,
0.535937500085386 ,
17 1.210821759151241
18 };
19

20 d o u b l e pas , t , t l , t u , sum , r e s u l t ;
21 i n t i , m, i b a s e , p ;
22

23 p a s = ( b−a ) / n ;
24

25 / / l e nombre de p o i n t s s u r l ’ i n t e r v a l l e de l ’ i n t e g r a t i o n =
ordre + 1
26 p=n + 1 ;
27

53
28 / / C h o i x de c a s e du dà part
c dans l e s t a b l e a u x s e l o n l a
parità de p .
c
29

30 i f ( ( p / 2 ) ∗2 == p ) {
31 m = p/2;
32 i b a s e = m∗m;
33 sum = z e r o ;
34 } else {
35 m = ( p − 1) / 2 ;
36 i b a s e = ( p∗ p − 1 ) / 4 ;
37 sum = w[ i b a s e +m] ∗ ( ∗ f ) ( ( a + b ) / two ) ;
38 }
39

40 f o r ( i = 1 ; i <= m; i ++) {
41

42 t l = b − ( i −1)∗h ;
43 t u = a + ( i −1)∗h ;
44

45 sum = sum + w[ i b a s e + i − 1 ] ∗ ( ( ∗ f ) ( t l ) +(∗ f ) ( t u ) ) ;


46

47 }
48

49 / / C a l c u l de l ’ i n t e g r a l e d a n s [ a , b ]
50 r e s u l t = sum ∗ p a s ;
51 return ( result ) ;
52 };
Code C de la fonction glcomp.c :
1 # i n c l u d e < s t d i o . h>
2 # i n c l u d e < s t d l i b . h>
3 # i n c l u d e " glcomp . h "
4 # include " gl . h"
5

6 d o u b l e glcomp ( d o u b l e a , d o u b l e b , i n t m, i n t n , d o u b l e ( ∗ f ) ( d o u b l e )
){
7

8 d o u b l e h = ( b−a ) / m, sum = 0 . 0 ;
9 int i ;
10 f o r ( i = 0 ; i <m; i ++) {
11 sum += g l ( a+ i ∗h , a + ( i + 1 ) ∗h , n , f ) ;
12 };
13 r e t u r n sum ;
14 };
Code C de la fonction nccomp.c :
1 # i n c l u d e < s t d i o . h>
2 # i n c l u d e < s t d l i b . h>
3 # i n c l u d e " glcomp . h "
4 # include " gl . h"
5

6 d o u b l e glcomp ( d o u b l e a , d o u b l e b , i n t m, i n t n , d o u b l e ( ∗ f ) ( d o u b l e )
){

54
7

8 d o u b l e h = ( b−a ) / m, sum = 0 . 0 ;
9 int i ;
10 f o r ( i = 0 ; i <m; i ++) {
11 sum += g l ( a+ i ∗h , a + ( i + 1 ) ∗h , n , f ) ;
12 };
13 r e t u r n sum ;
14 };

55
Table des figures

1.1 log d’erreur en fonction du log du pas . . . . . . . . . . . . . . . . . . . . . . . . . 10


1.2 log d’erreur en fonction du log du pas pour la quadrature composée de Gauss-Legendre 12
1.3 log d’erreur en fonction de log du pas pour la quadrature composée de Newton-Cotes 16
1.4 Comparaison des ordres de convergence des quadratures de Gauss-Legendre et Newton-
Cotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.1 polynômes P1 pour 5 points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27


2.2 polynômes P2 pour 5 points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3 Représentation des 4 premières fonctions propres . . . . . . . . . . . . . . . . . . . 31
2.4 Représentation des erreurs des 4 premières fonctions propres et valeurs propres . . . 33
2.5 Solution exacte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6 Résultat discret (pour la méthode des différences finies) . . . . . . . . . . . . . . . . 40

3.1 Coupe d’une fibre microstructurée à huit trous et une couche . . . . . . . . . . . . . 44

56
Bibliographie

[1] Cours de « Méthodes numériques (MENU) » dispensé par Fabrice Mahé en Master première
année (M1) de mathématique, de septembre à décembre 2009 à l’Université de Rennes 1
(Beaulieu).
[2] Livre « Algèbre linéaire » 2e édition publier chez Cépaduès éditions, édition d’octobre 2002
d’auteur Joseph GRIFONE
[3] Cours d’« électromagnétisme » . . . . . . . . . . . . . . . . . . . dispensé par Guillaume VIGNAUD en
Licence troisième année (L3) de physique, de septembre à décembre 2007 à l’Université de
Bretagne Sud (Lorient).
Remarque : Ce contenu est aussi disponible dans :
[4] Document « Ondes électromagnétiques » 1 & 2 pour la « Licence de physique et applica-
tions » édition de janvier 1999 (ENSTB 10-95), créé à l’Université de Bretagne Sud (Lo-
rient) à l’U.E.F. de sciences et technologie d’auteur Pierre PELLAT-FINET chercheur et
enseignant à l’Université de Bretagne Sud (Lorient).
[5] Cours sur les « guides d’ondes » dispensé par Pierre PELLAT-FINET en Licence troisième
année (L3) de physique, de septembre à décembre 2007 à l’Université de Bretagne Sud (Lo-
rient).
[6] Livre « Optical waveguide theory » publier à Kluwer Academic Publishers, en 2000 d’auteur
A.W. Snyder et J.D. Love.
[7] Document « Logiciels d’éléments finis - Modulef », Support de cours 2006-2007 pour le
« Master 2 Math » créé à l’Université de Rennes 1 (Beaulieu) à l’U.F.R. Mathématiques,
d’auteurs Gabriel Caloz et Eric Darrigrand
[8] Cours de « Modélisation et simulation numérique de phénomène physique (MSNU) » dis-
pensé par Martin Costabel en Master première année (M1) de mathématique, de janvier à
mars 2010 à l’Université de Rennes 1 (Beaulieu).
[9] Cours de « Fonctions Spéciales et Fonction Holomorphe » dispensé par Frédéric Rousset
en Master première année (M1) de mathématique, de janvier à mars 2010 à l’Université de
Rennes 1 (Beaulieu).
[10] Livre « Optique de Fourier (Théorie métaxiale et fractionnaire) » publier chez Springer,
version du 19 mars 2007, d’auteur Pierre PELLAT-FINET chercheur et enseignant à l’Uni-
versité de Bretagne Sud (Lorient).
[11] thèse de doctorat « Étude mathématique et numérique de la propagation d’ondes électroma-
gnétiques dans les microguides de l’optique intégrée » de F. Mahé à l’Université de Rennes
1, en décembre 1993.
[12] Livre « Multipole method for microstructured optical fibers » I. Formulation d’auteur T.P.
White, B.T. Kuhlmey, R. C. McPhedran, D. Maystre, G. Renversez, C. Martijn de Sterke,
L. C. Botten
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J. Opt. Soc. Am. B/Vol. 19, No. 10 d’octobre 2002.
[13] Livre « Foundations of photonic crystal fibres » d’auteur F. Zolla, G. renversez, A. Nicolet,
B. Kuhlmey, S. Guenneau, D. Felbacq à l’"Imperial College Press", en 2005.

57
[14] thèse de doctorat « Couplage Méthodes Multipôles Rapides et Discrétisation Microlocale
pour les Équations Intégrales de l’Électromagnétisme » d’Éric Darrigrand à l’Université de
Bordeaux 1, en 2002
Remarque : Certaines propriétés et définitions (beaucoup de celles utilisées) concernant les dis-
tributions (issues de [8]) sont disponibles dans [10] dans les appendices A et B.
Remarque : Le contenu de [5] est aussi disponible dans [6].

58

Vous aimerez peut-être aussi