Académique Documents
Professionnel Documents
Culture Documents
microstructurées
Projet tutoré (Analyse numérique et Optique Guidée)
16 mai 2010
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
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
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
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.
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.
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
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
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
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
où
(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
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
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
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 )
h = max (xk+1 − xk )
06k6n−1
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
F IGURE 1.2 – log d’erreur en fonction du log du pas pour la quadrature composée de Gauss-Legendre
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
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)
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)
15
F IGURE 1.3 – log d’erreur en fonction de log du pas pour la quadrature composée de Newton-Cotes
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
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
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.
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
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
→
−
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
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.
[8]
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.
◦
(
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 ∂ Ω
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ϕ
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
Ω Ω Ω
∂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
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
D’où, (2.16) est équivalent à l’équation de Helmholtz (équation (2.14) page 19) :
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
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.
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
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
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
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 :
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
Suivant la même construction que pour P1 , représentons quelques uns des 7 polynômes P2 de La-
grange pour 5 points :
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
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
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
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
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
31
Les solutions exactes sont alors de la forme (k2 > 0) 7 : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∀x ∈ [0; 1]
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
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)
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
k2
1
(U j+1 − u(x j+1 )) 6 Ch4 ku(6) k∞
+ 2+
h 12
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
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
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
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
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(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
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
40
Deuxième partie
41
Chapitre 3
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
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)
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
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.
2π
– T= est la période de l’onde.
ω
2π
– λ= 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 = .
2π
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 (Ω)
Ω
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).
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.
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.
47
Chapitre 4
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
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
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
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
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
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
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
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
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