INITIATION

ET
TRAVAUX PRATIQUES
MATLAB
Yoann Morel Master 1
Table des mati`eres
Initiation Matlab 3
Pr´esentation et introduction `a Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Commandes Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Scripts et fonctions Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
TP 1 : Exercices d’initiation `a Matlab 7
TP 2 : Signaux num´eriques et transform´ee de Fourier discr`ete 11
1. Echantillonnage d’un signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2. Transform´ee de Fourier de signaux sinuso¨ıdaux . . . . . . . . . . . . . . . . . . . . . 11
3. Transform´ee de Fourier de signaux carr´es et triangulaires . . . . . . . . . . . . . . . . 11
TP 3 : R´eseaux et synth`ese de diagramme d’antennes 13
1. Rayonnement d’un dipole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2. R´eseau lin´eaire d’antennes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3. R´eseau bidimensionnel d’antennes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
TP 4 : M´ethode de Mont´e Carlo 19
TP 5 : Fractales de Mandelbrot, Julia et Sierpinski 21
TP 6 : Compression de donn´ees 23
TP 7 : Simulation de la diffusion thermique dans un mat´eriau 25
1. Approximation de la temp´erature `a l’´equilibre . . . . . . . . . . . . . . . . . . . . . . 25
2. Diffusion thermique - Approximation de l’´evolutiontemporelle du profil de temp´erature 26
TP 8 : Simulation monodimensionnelle de la propagation d’une onde 27
TP 9 : Simulation bidimensionnelle de la propagation d’une onde 31
TP 10 : Propagation d’ondes - Exemple de contrˆole non-destructif 35
1. Vitesse de propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2. Propagation d’une onde dans un milieu homog`ene . . . . . . . . . . . . . . . . . . . . 36
3. Propagation d’une onde dans un milieu inhomog`ene . . . . . . . . . . . . . . . . . . . 37
4. Exemple de contrˆole non destructif . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Y. Morel Initiation Matlab. 2/37
Initiation Matlab
Pr´esentation et introduction `a Matlab
Matlab, acronyme de “MATrix LABoratory”, est un logiciel con¸ cu pour fournir un environ-
nement de calcul num´erique de haut niveau. Il est particuli`erement performant pour le calcul
matriciel, et dispose de grandes capacit´es graphiques pour, par exemple, la visualisation d’objets
math´ematiques complexes.
Son fonctionnement repose sur un langage de programmation interpr´et´e qui permet un d´eveloppement
tr`es rapide. En contre-partie, pour des applications n´ecessitant des performances plus ´elev´ees en
temps de calcul, un langage compil´e, comme le C++ ou le fortran, est plus adapt´e.
Sous sa forme “graphique”, Matlab dispose d’une interface comprenant l’environnement Matlab
`a proprement parler, d’o` u les commandes Matlab peuvent ˆetre directement ex´ecut´ees, ainsi que
d’un environnement graphique, pouvant comprendre plusieurs fenˆetres : liste des variables en cours
d’utilisation, historique des commandes ex´ecut´ees, ..., et divers menus plus ou moins habituels,
“File”, (“New”, “Open”,...), “Configuration”, “Help”,...
Toutes les commandes des diff´erents menus ont leur alternative en “ligne de commande” dans
l’environnement propre `a Matlab, la r´eciproque ´etant bien ´evidemment fausse.
Dans ce paragraphe d’introduction `a Matlab, on ne s’interessera qu’`a l’environnement propre
`a Matlab, les commandes et syntaxes de base d’instructions Matlab.
Remarque : Matlab peut-ˆetre lanc´e sans son environnement graphique complet `a l’aide de la
commande matlab -nodesktop.
Commandes Matlab
Les commandes peuvent se taper directement suite au prompt de Matlab. L’op´eration est alors
imm´ediatement effectu´ee et le r´esultat retourn´e. Si la commande se termine par un point virgule,
la commande est effectu´ee, mais le r´esultat obtenu n’est pas retourn´e.
L’aide
help func affiche l’aide concernant la fonction func. Voir help help...
helpdesk version graphique et naviguable (html) de l’aide
lookfor mot cle lance une recherche sur toutes les fonctions Matlab, et retourne toutes
les fonctions dont l’aide contient le mot cl´e mot cle
demo Matlab contient de nombreuses d´emo. de ses capacit´es. Taper demo,
et naviguer...
Commandes g´en´erales
cd change/affiche le repertoire courant
which affiche le chemin complet d’une fonction Matlab
path variable Matlab contenant la liste des repertoires connus, dans lesquels Matlab
recherche une fonction lors de son appel
addpath permet d’ajouter un chemin dans le path
who liste des variables de l’espace de travail
whos idem avec tailles en m´emoire
clear var supprime la variable var de l’espace de travail
clear all supprime toutes les variables
close all ferme tous les graphiques
Y. Morel Initiation Matlab. 3/37
Op´erations usuelles
= affectation d’une valeur `a une variable (ex. a = 2)
+,-,*,/ op´erations usuelles sur les variables ou valeurs num´eriques
1i nombre complexe : (1i)
2
= −1
abs, angle, real, imag op´erations usuelles sur les nombres complexes
D´efinition et op´erations sur les vecteurs et matrices
D´efinition de matrices et vecteurs :
[ , , ; , , ] d´efinition manuelle d’une matrice (ex. A = [1, 2, 3; 4, 5, 6])
deb:pas:fin d´efinition d’un vecteur r´egulier balayant l’intervalle [deb, fin] avec
le pas pas (ex. A = 1 : 1 : 6) ; par d´efaut le pas est ´egal `a 1 s’il est
omis (ex. A = 1 : 6)
linspace(deb,fin,N) d´efinition d’un vecteur balayant l’intervalle [deb; fin] avec N valeurs
r´eguli`erement espac´ees
zeros, ones, eye, rand, matrices particuli`eres (cf. help...)
randn, vand, magic...
Les op´erations usuelles +,-,*,/,... agissent indiff´eremment sur les r´eels, complexes, ou matrices
(`a conditions que les dimensions de celles ci le permettent).
D’autres op´erations sont ´egalement disponibles :
.* , ./ , .^ ,... (les op´erateurs usuels pr´ec´ed´es d’un point) op´erations sur les ma-
trices effectu´ees terme `a terme (ex. calculer A = [1 : 6] .∗ [7 : 12])
length longueur d’un vecteur
size dimension d’une matrice
<, <=, >,>=, == comparaison des ´el´ements de deux matrices, terme `a terme
sum, mean,... somme, moyenne,..., des ´el´ements d’un vecteur
sin, cos, exp, log,... d’une fa¸ con g´en´erale toutes les fonctions usuelles s’appliquent `a des
matrices terme `a terme (ex. log([1, 2, 3]) = [log 1, log 2, log 3])
find recherche les ´el´ements non nuls dans une matrice
nnz compte le nombre d’´el´ements non nuls dans une matrice
Extraction des ´el´ements d’une matrice
M(i,j) ´el´ement de la matrice M situ´e sur la ligne i et la colonne j
V(end) dernier ´el´ement du vecteur V
M(5:9,3) les ´el´ements de la matrice M situ´es de la ligne 5 `a 9, et sur la colonne 3
M(:,j) toutes les lignes de la matrice M, colonne j
M(i,:) toutes les colonnes de la matrice M, ligne i
M(1:5,1:3) les ´el´ements de la matrice M situ´es sur les lignes 1 `a 5, et sur les colonnes
1 `a 3
Y. Morel Initiation Matlab. 4/37
M(1, 3)
M(3, : )
M( : , 6) M(6 : end , 2 : 4)
M =
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
Fonctions graphiques
figure cr´ee une nouvelle figure ; figure(n) (r´e)initialise la figure n

n
plot trac´e d’un ensemble de points
(ex. plot([0:0.1:2*pi],sin([0:0.1:2*pi])))
subplot partionne la figure courante en plusieurs sous-graphiques
imagesc affiche sur un graphique le contenu d’une matrice, la valeur
des ´el´ements ´etant repr´esent´ee par une ´echelle de couleur
axis permet de s´election manuellement l’´echelle utilis´ee
title, xlabel, ylabel,
legend
permet d’ajouter un titre g´en´eral, un titre sur les axes et une
l´egende `a une figure
grid on / off affiche une grille sur le graphique courant
hold on /off permet de superposer des graphiques sur une mˆeme figure
plot3, semilogx,
semilogy, loglog,
mesh, surf,...
autres fonctions graphiques (voir l’aide...)
Scripts et fonctions Matlab
L’ensemble des commandes ci-dessus peuvent ˆetre tap´ees directement dans l’environnement
Matlab, le r´esultat ´etant alors imm´ediatement affich´e (suivant la complexit´e du calcul requis).
Il est aussi possible de regrouper ces commandes dans un fichier “texte” comportant un ensemble
de commandes `a effectuer. Ce fichier doit ˆetre enegistr´e avec l’extension “.m” (ex. script1.m), et
peut ˆetre ex´ecut´e directement sous Matlab, si le r´epertoire dans lequel il est enregistr´e est soit
le r´epertoire courant (cf. cd, ou pwd), soit pr´esent dans la variable path de Matlab. Un tel fichier
peut-ˆetre cr´e´e en utilisant l’´editeur de Matlab (commande edit), soit en utilisant un quelconque
´editeur : vi, emacs, notepad, gedit, ...
Deux types de fichiers de commandes sont `a distinguer :
– les scripts : ils permettent simplement de regrouper un ensemble de commandes Matlab. A
l’appel du script, les commandes sont ex´ecut´ees s´equentiellement.
– les fonctions : de mˆeme que les scripts, elles permettent de regrouper un ensemble de com-
mandes effectuant une tˆache globale. Les fonctions prennent de plus un ensemble d’arguments
en entr´ee et d´elivrent un ensemble de valeurs de sortie.
Apr`es l’ex´ecution d’une fonction, l’ensemble des variables autres que celles utilis´ees en entr´ee
et en sortie de la fonction sont effac´ees (variables locales).
Y. Morel Initiation Matlab. 5/37
La structure g´en´erale d’une fonction est la suivante :
function [y1 y2 y3]=nom_func(x1,x2,x3,x4)
% Commentaires qui seront affich´es lors
% de l’appel ‘‘help nom_func’’
Corps de la fonction
o` u les x
i
sont les variables pass´ees en entr´ee de la fonction, tandis que les y
i
sont des valeurs
de sortie de la fonction, i.e. les variables que l’on r´ecup`ere une fois l’execution de la fonction
achev´ee.
Une telle fonction s’appelle ensuite par la commande
[y1,y2,y3]=nom_func(x1,x2,x3,x4);
ou, si on ne souhaite pas affecter les variables de sortie :
nom_func(x1,x2,x3,x4);
Commandes structur´ees d’une fonction ou script
Les structures usuelles dans tout langage de programmation sont disponible sous Matlab, par
exemple :
for. . .end , if. . .else. . .end , while. . .end , switch. . .case. . .end , . . .
L’aide (par exemple help for) permet de retrouver facilement la syntaxe de ces structures.
Y. Morel Initiation Matlab. 6/37
TP1
Exercices d’initiation `a Matlab
Exercice 1 : Initiation `a MATLAB - Vecteurs et courbes
a) D´efinir la variable x =
π
4
, et calculer y
1
= sin(x) et y
2
= cos(x), puis z = tan(x) `a partir de
y
1
et y
2
.
b) D´efinir la variable x = [
π
6
,
π
4
,
π
3
], et calculer y
1
= sin(x) et y
2
= cos(x).
Calculer alors tan(x) en utilisant exclusivement les vecteurs y
1
et y
2
pr´ec´edents.
c) D´efinir la variable x = [0 : 0.1 : 2π]. Combien y a-t-il de valeurs dans ce vecteur ? Afficher
la courbe du sinus.
Faire varier le pas. Qu’affiche exactement la commande plot ?
(plot, size, length).
Exercice 2 : Initiation `a MATLAB - Manipulation de matrices
a) D´efinir le vecteur V = [0 1 2 3 · · · 49 50]. Quelle est la taille de ce vecteur ?
D´efinir le vecteur W contenant les cinq premiers ´el´ements de V , et le vecteur X contenant
les cinq premiers et les cinq derniers ´el´ements.
D´efinir ensuite le vecteur Z = [0 2 4 · · · 48 50] `a partir de V .
b) D´efinir la matrice M =
_
_
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
_
_
Extraire de cette matrice la matrice N =
_
_
1 2
11 12
21 22
_
_
, la matrice P =
_
_
8 9 10
18 19 20
28 29 30
_
_
, puis
la matrice Q =
_
3 7
23 27
_
.
Extraire de la matrice M la matrice R obtenue en prenant dans la matrice M une colonne
sur 2.
c) D´efinir les matrices M = [2 4 6 8 · · · 100] et N = [−1 −3 −5 · · · −99], puis le vecteur
P = [−1 2 −3 4 −5 8 · · · −99 100].
d) D´efinir une matrice M al´eatoire `a trois lignes et sept colonnes. Combien de nombres dans
cette matrice sont plus grand que 0, 5 ? que 0, 8 ? Ou sont-ils situ´es ?
(rand, nnz, find, sum)
Construire alors la matrice P obtenue `a partir de la matrice M en rempla¸ cant tous les
nombres de M inf´erieurs `a 0, 4 par 0, et ceux sup´erieurs `a 0.4 par 1.
Construire de mˆeme la matrice Q obtenue `a partir de la matrice M en rempla¸ cant tous les
nombres de M inf´erieurs `a 0.5 par −3 et tous les nombres sup´erieurs `a 0.5 par 14.
e) Cr´eer un vecteur contenant N valeurs binaires (0 ou 1) tel que 10 % de ces valeurs soient
des 1.
Y. Morel Exercices d’initiation `a Matlab 7/37
Exercice 2 : Initiation `a MATLAB, fonctions graphiques
Repr´esenter sur une figure `a 4 cadrans, les fonctions sinuso¨ıde, exponentielle, logarithme et
tangente. (subplot)
Exercice 3 : Etude de la fonction Sig = exp(−A.t +j.2πf
0
.t)
a) Cr´eer le vecteur t=[0 : 0.1 : 100] ; quel est le nombre de points ? Quelle est la place utilis´ee
en m´emoire ? (size, length, whos)
b) Tracer la fonction demand´ee en choisissant A et f
0
de fa¸ con `a observer une dizaine de cycles
et une attenuation d’environ 90%. (plot, real, imag, abs)
c) Repr´esenter sur une figure 4 cadrans, la partie r´eelle, la partie imaginaire, le module et la
phase de cette courbe.
Mettre les titres et les l´egendes de chaque graphique. (subplot, title, legend)
d) Repr´esenter cette fonction complexe sous la forme d’une trajectoire 3d `a l’aide de la fonction
plot3.
e) Utiliser la fonction graphique rotate3d, pour retrouver les courbes 2D de (c) `a partir de la
repr´esentation 3D.
Exercice 4 : Initiation `a la programmation sous MATLAB
a) Quel est votre r´epertoire courant ? Cr´eer un nouveau r´epertoire Initiation_Matlab et se
placer dedans.
b) Reprendre le probl`eme de l’exercice 3. Ecrire un script de commande qui fixe au d´epart les
valeurs de A et f
0
, puis calcule la fonction et enfin repr´esente en 3D la courbe voulue.
c) Taper ’clear all’ puis who. Il n’y a plus de variables locales. Taper le nom de votre fichier de
commande : quelles sont les variables reconnues dans l’espace de travail ?
Exercice 7 : Cr´eation d’une fonction
a) Cr´eer, `a partir de votre fichier de commande, une fonction qui trace la courbe 3D de l’exercice
3, en fonction des variables A et f
0
pass´ees en param`etres et qui retourne les valeurs prises
par la fonction Sig.
b) Ajouter un “flag” pass´e `a la fonction qui permet de choisir ou non la visualisation de la
courbe (nargin)
Exercice 8 : Recherche d’un ´el´ement dans un vecteur
Ecrire une fonction Trouve qui prend en argument un vecteur v et un nombre x, et qui retourne
1 si x est un ´el´ement du vecteur v, et 0 sinon.
Deux versions de cette fonction peuvent-ˆetre impl´ement´ees, une `a l’aide d’une boucle for, et
d’un test if appropri´e, l’autre directement avec une comparaison globale == (et, par exemple, find
ou nnz).
Y. Morel Exercices d’initiation `a Matlab 8/37
Exercice 9 : Matrices et syst`emes lin´eaires
a) Ecrire une fonction, n’utilisant aucune boucle (for, while, ...) qui prend comme param`etre
un entier n et qui construit la matrice suivante (fonctions eye, diag) :
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
1 1 0 · · · 0 0 0
1
n
2
n−1
n
0 0 0
0
2
n
3 · · · 0 0 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 · · · n −1
2
n
0
0 0 0 · · ·
n−1
n
n
1
n
0 0 0 · · · 0 1 n + 1
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
b) Avec Matlab, on peut r´esoudre tout type de syst`eme lin´eaire en l’´ecrivant pr´ealablement
sous forme matricielle.
(i) La syst`eme lin´eaire, d’inconnues x, y et z suivant
_
_
_
6x + y − 5z = 10
2x + 2y + 3z = 11
4x − 9y + 7z = 12
s’´ecrit sous forme matricielle AX = b, o` u X = [x y z]
T
est le vecteur inconnu.
Le vecteur X se calcule alors suivant : AX = b ⇐⇒ X = A
−1
b, ou encore, avec Matlab,
X = A\ b (voir help slash). R´esoudre le syst`eme lin´eaire pr´ec´edent.
(ii) R´esoudre num´eriquement le syst`eme :
_
¸
¸
_
¸
¸
_
x + 2y + 3z + 4t = 1
2x + 3y + 4z + t = −2
−2x + 4y − 5z + 2t = 0
8x + y − z + 3t = 1
(iii) R´esoudre num´eriquement le syst`eme suivant (moindres carr´es) :
_
¸
¸
_
¸
¸
_
x + 3y = 5
−2x + 6y = 7
3x − 4y = 6
6x − 13y = −3
Y. Morel Exercices d’initiation `a Matlab 9/37
Y. Morel Exercices d’initiation `a Matlab 10/37
TP2
Signaux num´eriques et
transform´ee de Fourier discr`ete
1. Echantillonnage d’un signal
On consid`ere le signal x d´efini par x(t) = 2 cos(2πf
0
t + ϕ
0
), d’amplitude 2 et de fr´equence
fondamentale f
0
= 20 kHz.
G´en´erer dans un vecteur sig N = 1000 points du signal x, ´echantillonn´e au rythme de :
– un ´echantillon toutes les 50 microsecondes,
– un ´echantillon toutes les 10 microsecondes,
– un ´echantillon toutes les 1 microsecondes,
– un ´echantillon toutes les 0,1 microsecondes,
Repr´esenter graphiquement (sur quatre figure distinctes ou sur une figure avec quatre cadrants)
ces quatre signaux num´eriques, avec une ´echelle des temps correcte, et en indiquant sur chaque
courbe la fr´equence d’´echantillonnage et le nombre de points.
2. Transform´ee de Fourier de signaux sinuso¨ıdaux
On consid`ere les fonctions d´efinies pour t ∈ [0; 0.1] par
x
1
(t) = cos(2π f
1
t + p
1
)
x
2
(t) = cos(2π f
2
t + p
2
)
x
3
(t) = cos(2π f
3
t + p
3
)
x
4
(t) = x
1
(t) + x
2
(t) + x
3
(t)
o` u, f
1
= 50 Hz, f
2
= 75 Hz, f
3
= 125 Hz, p
1
=
π
2
, p
2
=
π
3
, et p
3
= 0.
On ´echantillonne ces signaux `a la fr´equence de f
e
= 20 kHz, soit un pas T
e
=
1
f
e
= 0.5 ms.
Tracer les fonctions x
i
et leur transform´ee de Fourier ´ x
i
(fonction fft).
Calculer et tracer ensuite les transform´ees de Fourier inverses des ´ x
i
(fonction ifft), et les comparer
avec les fonctions de d´epart.
3. Transform´ee de Fourier de signaux carr´es et triangulaires
On s’int´eresse dans ce TP `a la transform´ee de Fourier de fonctions (ou signaux).
On consid`ere les deux fonctions p´eriodiques f
1
et f
2
d´efinies par :
f
1
(x) =
_
_
_
0, si, −2 < x < −1
1, si −1 < x < 1
0, si 1 < x < 2
, f
2
(x) =
_
x + π, si, −π ≤ x ≤ 0
−x + π, si, 0 ≤ x ≤ π
Y. Morel Signaux num´eriques et transform´ee de Fourier discr`ete 11/37
-2 -1 0 1 2 −π π
0
π
1) D´efinir un vecteur x avec N valeurs et variant de −2 `a 2 pour la fonction f
1
et de
π
`a π
pour f
2
.
Coder et repr´esenter alors graphiquement ces deux fonctions f
1
et f
2
.
2) Calculer la transform´ee de Fourier de ces deux fonctions, puis v´erifier, en y appliquant la
transform´ee de Fourier inverse que l’on retrouve bien les fonctions originales (aucune perte
ou erreur n’est engendr´ee par transformation de Fourier).
3) Repr´esenter sur un mˆeme graphique, et pour chaque fonction, la fonction originale et la
reconstruction `a partir de la transform´ee de Fourier (i.e. la transform´ee inverse) obtenue
en ne consid´erant que le mode (ou harmonique) fondamental, les deux premiers, les trois
premiers...
Y. Morel Signaux num´eriques et transform´ee de Fourier discr`ete 12/37
TP3
R´eseaux et synth`ese
de diagramme d’antennes
Pour des antennes de communication, on cherche `a optimiser le ratio
P
U
P
T
, o` u P
U
est la puissance
re¸ cue par l’utilisateur, et P
T
est la puissance totale ´emise par l’antenne.
On cherche, en d’autres termes, `a ce que la plus grande partie de l’´energie fournie `a l’antenne
soit achemin´ee jusqu’`a l’utilisateur distant.
La directivit´e de ces antennes est donc un crit`ere d´eterminant.
Le contexte actuel du d´eveloppement massif des r´eseaux mobiles (Wi-Fi et GSM principale-
ment) rend par ailleurs inadapt´e le d´eveloppement d’antennes `a haute directivit´e ”statique”.
Comme les utilisateurs sont en mouvement et peuvent donc se trouver a priori dans n’importe
quelle direction vis-`a-vis de l’antenne, on a recours `a des antennes rayonnant de fa¸ con homog`ene
dans toutes les directions de l’espace (rayonnement isotrope). L’objectif initial est dans ce cas loin
d’ˆetre rempli.
Une strat´egie pour y rem´edier consiste `a utiliser plusieurs antennes, assembl´ees en un r´eseau
d’antennes, dans le but de pouvoir focaliser le signal, et donc la puissance ´emise, sur l’utilisateur.
Le syst`eme est alors d’autant plus efficace que les interf´erences entre syst`emes diff´erents s’en trouve
par la mˆeme occasion limit´ees.
On peut ainsi imaginer des syst`emes avec des diagrammes d’´emission `a plusieurs lobes prin-
cipaux, un par utilisateur communiquant, et capable de plus de suivre ces utilisateurs dans leur
mouvement.

Diagramme de rayonnement d’une antenne dipolaire (gauche) et d’un r´eseau de 4
antennes (droite).
Le rayonnement du r´eseau est adapt´e au nombre et la position des utilisateurs
(marqu´es par ), qui se r´epartissent donc plus efficacement la puissance ´emise.
Y. Morel R´eseaux et synth`ese de diagramme d’antennes 13/37
1. Rayonnement d’un dipole
Le potentiel ´electrostatique cr´e´e en un point M `a la distance
r (
−−→
OM =
−→
r ) par deux charges +q et −q distante de
−→
a (avec
a<<r) est donn´e par
V (
−→
r ) =
1
4πε
0
−→
p ·
−→
u
r
r
2
o` u,
−→
p = q
−→
a est le moment du dipole, et ainsi, le champ
´electrique cr´ee par le dipole est donc,
−→
E(
−→
r ) = −∇·V (
−→
r ) =
3
−→
u
r
(
−→
p ·
−→
u
r
) −
−→
p
4πε
0
r
3
=
2p cos θ
4πε
0
r
3
−→
u
r
+
p sin θ
4πε
0
r
3
−→
u
θ

- q

q
−→
a

M
−→
u
r
−→
u
θ
−→
r
Exercice 1 Repr´esenter sur une figure `a deux cadrans, les composantes E
r
et E
θ
du champ
´electrique du dipole.
(polar pour la repr´esentation en coordonn´ees polaires)
2. R´eseau lin´eaire d’antennes
On dispose de N antennes identiques, align´ees et s´epar´ees par une distance d.
Ces antennes sont aliment´ees `a la fr´equence f, sachant que l’on peut de plus imposer un
d´ephasage ϕ d’une antenne `a la suivante.
On s’int´eresse au champ rayonn´e lointain dans la direction
−→
r , et `a une distance r >> d.
Le champ rayonn´e par l’antenne situ´ee en A
2
a une avance de phase de kl, o` u k est le nombre
d’onde (k =

λ
o` u λ est la longueur d’onde),
A
1
A
2
A
3
A
4
−→
d
−→
d
−→
d
A
N
· · ·
−→
r
−→
r
θ
l
Les param`etres du r´eseau sont :
• N : nombre d’antennes

−→
d : vecteur entre chaque antenne (d =
−→
d est la distance entre chaque antenne)
• α
n
= ρ
n
e
jϕn
est le poids (alimentation) de l’antenne n; ρ
n
est le gain et ϕ
n
le d´ephasage
impos´es `a l’antenne n.
Y. Morel R´eseaux et synth`ese de diagramme d’antennes 14/37
Si
−→
E
1
est le champ de l’antenne 1, le champ ´emis par la n
i`eme
antenne est :
−→
E
n
= α
n
−→
E
1
.
• θ : angle d’observation
La synth`ese d’un diagramme de rayonnement consiste `a d´eterminer les excitations complexes
α
p
pour que le champ total ´emis par le r´eseau r´eponde `a des sp´ecifications pr´ecises (r´eunies dans
un gabarit).
Le champ total rayonn´e par le r´eseau est la somme vectorielle de chaque champ ´emis indivi-
duellement par les N antennes :
−→
E =
N

n=1
α
n
−→
E
n
=
−→
E
1
N

n=1
α
n
e
j(n−1)kl
, avec l = d cos θ
soit, si on suppose dans un premier temps que α
n
= e
−j(n−1)ϕ
, c’est-`a-dire qu’on impose simplement
un d´ephasage constant ϕ entre chaque antenne, alors le champ total devient :
−→
E =
−→
E
1
N

n=1
e
−j(n−1)ϕ
e
j(n−1)kl
=
−→
E
1
N−1

n=0
e
−jnϕ
e
jnkl
=
−→
E
1
N−1

n=0
e
jn(−ϕ+kl)
qui est la somme des termes d’une suite g´eom´etrique, soit aussi :
−→
E = N
−→
E
1
e
j
φ
2
sin
_

2
_
N sin
_
φ
2
_ avec, φ = k
−→
d ·
−→
r −ϕ
= kd cos θ −ϕ
On a ainsi,
−→
E = N
−→
E
0
F, o` u F est le facteur (ou diagramme) du r´eseau :
F(θ, d, ϕ) =
sin
_

2
_
N sin
_
φ
2
_
Exercice 2 On consid`ere un r´eseau d’antennes fonctionnant `a la fr´equence f = 3.10
8
Hz.
1. L’´ecart entre chaque antenne est fix´e ici `a d =
λ
2
; et le d´ephasage ϕ est nul entre elles.
Tracer diff´erents graphiques repr´esentant le diagramme du r´eseau F(θ, d, ϕ) pour diff´erentes
valeurs de N.
Indiquer comment varie la largeur du lobe principal en fonction du nombre d’antennes N du
r´eseau.
2. On consid`ere maintenant un r´eseau de N = 10 antennes aliment´ees en phase, espac´ees de
d =
λ
2
.
Quel d´ephasage ϕ doit-on appliquer entre chaque antenne pour que la direction du lobe
principal soit 60

?
3. On consid`ere un r´eseau de 10 antennes aliment´ees en phase (ϕ = 0).
Quelle est l’influence de la distance d entre chaque antenne ?
Y. Morel R´eseaux et synth`ese de diagramme d’antennes 15/37
Exercice 3 On consid`ere un satellite situ´e `a une distance de D = 20 000 km de la Terre (satellite
GPS).
θ
0
θ
0
S
T
S
R ≃ 6 400 km
On souhaiterait ´emettre `a partir de ce satellite principalement en direction de la Terre, c’est-
`a-dire focaliser la puissance ´emise dans [−θ
0
; θ
0
].
L’angle θ
0
se d´etermine directement par la relation trigonom´etrique : sin(θ
0
) =
R
R + D
.
On souhaite d´eterminer les coefficients α
1
, α
2
, . . ., α
N
qui permettent d’avoir un diagramme
de rayonnement respectant au mieux le gabarit suivant :
_
_
_
F(θ) = 1 pour θ ∈ [−θ
0
; θ
0
]
F(θ) = 0 pour θ ∈
_

π
2
; −θ
0
_

_
θ
0
;
π
2
_
On peut chercher les coefficients α
n
en interpolant ”au mieux” le gabarit id´eal souhait´e.
On ´echantillonne les angles θ ∈ [−
π
2
;
π
2
] en Q valeurs θ
n
∈ [−
π
2
: δ
θ
:
π
2
], et de mˆeme le gabarit
souhait´e :
g(θ
n
) = g
n
=
_
1 si θ
n
∈ [−θ
0
; θ
0
]
0 si θ
n

_

π
2
; −θ
0
_

¸
θ
0
;
π
2
¸
Si on d´efinit les vecteurs X = [α
1
α
2
· · · α
N
]
T
et G = [g
1
g
2
· · · g
Q
]
T
, et la matrice (Q× N)
par
M =
_
¸
¸
¸
_
1 e

1
e

1
· · · e
j(N−1)ϕ
1
1 e

2
e

2
· · · e
j(N−1)ϕ
2
.
.
.
.
.
.
.
.
. · · ·
.
.
.
1 e
jϕq
e
jϕq
· · · e
j(N−1)ϕq
_
¸
¸
¸
_
o` u ϕ
n
= kd cos(θ
n
)
alors le syst`eme `a r´esoudre s’´ecrit : MX = G, et se ”r´esout” `a l’aide de Matlab par X = M \ B.
Une fois les coefficients α
n
d´etermin´es, le diagramme de rayonnement du r´eseau est donn´e par
S(θ) =
¸
¸
¸
¸
¸
N

n=1
α
n
e
jnϕ
¸
¸
¸
¸
¸
2
avec ϕ = kd cos(θ)
On choisit un r´eseau de N = 10 antennes, et Q = 100 points d’interpolation.
Les antennes du r´eseau fonctionnent `a la fr´equence f = 3.10
8
Hz et sont distantes de d =
λ
2
.
1) D´eterminer l’angle θ
0
.
2) D´efinir la matrice M.
3) R´esoudre le syst`eme au sens des moindres carr´es (X = M \ B, voir help slash et TP1,
Ex. 9).
4) Tracer le diagramme de rayonnement S(θ) obtenu, ainsi que la valeur des alimentations α
n
correspondantes.
Y. Morel R´eseaux et synth`ese de diagramme d’antennes 16/37
3. R´eseau bidimensionnel d’antennes
Le cas des r´eseau bidimensionnels se traˆıte d’une mani`ere similaire.
y
z
x






• •
.
.
.
.
.
.
δ
x
δ
y
ϕ
θ
Si on impose un d´ephasage constant horizontalement
ϕ
x
et verticalement ϕ
y
, alors on obtient
−→
E = NM
−→
E
0
e
j
φx+φy
2
sin
_

x
2
_
N sin
_
φ
x
2
_
sin
_

y
2
_
M sin
_
φ
y
2
_
avec,
_
φ
x
= k
−→
δ
x
·
−→
r −ϕ
x
= kδ
x
cos θ sin ϕ −ϕ
x
φ
y
= k
−→
δ
y
·
−→
r −ϕ
y
= kδ
y
cos θ sin ϕ −ϕ
y
La formation en r´eseau permet ainsi de mieux focali-
ser la puissance globale ´emise.
Remarque : Dans tous les d´eveloppements pr´ec´edents, les interf´erences entre les antennes
ont ´et´e n´eglig´ees : chaque antenne a ´et´e consid´er´ee comme rayonnant un champ
ind´ependamment des autres antennes.
En fait, le champ rayonn´e par une antenne quelconque induit des courants dans
les antennes voisines, modifiant ainsi d’une certaine fa¸ con son alimentation r´eelle.
Plus particuli`erement, on peut utiliser un r´eseau d’antennes en n’alimentant
qu’un seul de ses ´el´ements, celui-ci alimentant les ´el´ements voisins par induction,
qui eux-mˆemes alimentent leurs voisins . . .
La phase de chaque ´el´ement est dans ce cas uniquement fix´e par la g´eom´etrie
du r´eseau (distance entre les ´el´ements dans le cas d’un r´eseau lin´eaire).
Cette solution est d’ailleurs sp´ecifiquement mise en œuvre dans les antennes
de type Yagi-Uda (ou antenne-rˆateau) qui reposent sur le principe d’induction
mutuelle entre les ´el´ements proches.
Une autre strat´egie peut consister `a ´eviter les interactions parasites entre an-
tennes, en utilisant des antennes dont le diagramme de rayonnement est nul dans
la direction des ´el´ements voisins. C’est le cas par exemple d’un r´eseau lin´eaire
d’antennes dipolaires dispos´ees convenablement (voir partie I, rayonnement d’un
dipole).
Y. Morel R´eseaux et synth`ese de diagramme d’antennes 17/37
Y. Morel R´eseaux et synth`ese de diagramme d’antennes 18/37
TP4
M´ethode de Mont´e Carlo
Approximation de π
La m´ethode de Mont´e Carlo est une m´ethode probabiliste de calcul d’int´egrale. Nous allons
nous en servir dans ce TP pour approximer le nombre π (aire d’un cercle de rayon 1).
On consid`ere un disque de rayon 1 centr´e `a l’origine, inscrit dans un carr´e de cˆot´e 2.
La m´ethode de Mont´e Carlo consiste `a tirer N points du plan, al´eatoirement (fonction Matlab
rand), situ´es dans le carr´e.
En probabilit´e, le ratio du nombre de points situ´es dans le disque sur le nombre total de points
tend, lorsque N devient grand vers le ratio aire du disque sur aire du carr´e, soit π/4.
1- A quelle condition un point de coordonn´ees (x; y) est-il situ´e dans le carr´e ? dans le disque ?
2- Ecrire une fonction Matlab MonteCarlo qui prend un seul param`etre N en argument, et
qui, apr`es avoir g´en´erer N points al´eatoirement dans le carr´e, retourne le ratio souhait´e (i.e.
nombre de points dans le disque divis´e par le nombre de points total dans la carr´e).
V´erifier que l’on obtient bien une approximation de π.
3- Ecrire un script Matlab qui trace en fonction du nombre total de points N, la valeur ap-
proch´ee de π trouv´ee.
Tracer l’erreur, en fonction de N, entre l’approximation calcul´ee par la m´ethode de Mont´e
Carlo et la valeur exacte de π (donn´ee par Matlab).
Commenter.
Calcul de l’int´egrale d’une fonction quelconque
Plus g´en´eralement, la m´ethode de Mont´e Carlo est une m´ethode stochastique de calcul d’int´egrale.
On cherche `a d´eterminer la valeur de l’int´egrale I =
_
1
0
f(x) dx, o` u f est une fonction connue
mais dont l’int´egrale peut-ˆetre tr`es difficilement calculable.
On pourra prendre pour commencer la fonction simple f(x) = x
2
, pour laquelle on calcule
facilement I =
1
3
.
Dans la suite, on note M = sup
x∈[0,1]
f(x) (M = 1 pour la fonction carr´e).
Ecrire une fonction Matlab Montecarlo Int qui fournit, en fonction du nombre de points N
souhait´es, le ration N/n o` u n est le nombre de points, parmi les N, qui sont sous la courbe
repr´esentative de f.
Que vaut la limite de ce ratio lorsque N devient grand?
lim
N→∞
N
n
= . . .
Calculer alors une valeur approch´ee de I.
Utiliser cette m´ethode pour d´eterminer num´eriquement, puis repr´esenter graphiquement, la
fonction d’erreur :
erf(x) =
_
x
0
e
−t
2
dt
Y. Morel M´ethode de Mont´e Carlo 19/37
Y. Morel M´ethode de Mont´e Carlo 20/37
TP5
Fractales de Mandelbrot, Julia et Sierpinski
Les fractales sont des courbes ou surfaces de forme irr´eguli`ere
ou morcel´ee qui se cr´ee en suivant des r`egles d´eterministes ou
stochastiques.
Le terme “fractale” est un n´eologisme cr´e´e par Benoˆıt Man-
delbrot en 1974 `a partir de la racine latine fractus, qui signifie
bris´e, irr´egulier.
Ces objets fractals, initialement objets purement
math´ematiques, ont trouv´e depuis de nombreux champs
d’applications.
Pour en citer quelques-uns :
– En informatique. Les fractales (plus pr´ecis´ement dans ce cadre fractales IFS pour Syst`emes
de Fonctions It´er´ees) permettent de d´ecrire des paysages naturels, des nuages . . .avec une
grande fid´elit´e. On rep`ere dans l’image les parties qui pr´esentent une certaines similarit´e,
c’est-`a-dire des parties qui peuvent se d´edurie les unes des autres par des transformations
g´eom´etriques (changement d’´echelle, rotation). En ne stockant que ces informations, la taille
de l’image peut-ˆetre nettement r´eduite.
La compression fractale est tr`es utilis´ee dans les animations en “temps r´eel” : images de
synth`ese, jeux vid´eos . . ..
– En biologie. De nombreux exemples de g´eom´etrie fractale peuvent ˆetre trouv´es dans la
nature. Chez les v´eg´etaux (d’o` u l’id´ee d’ailleurs de compression d’image fractale), voir le
choux Romanesco pour s’en convaincre ! Chez l’homme (ou autres animaux) dont les organes
peuvent ˆetre mod´elis´es efficacement en utilisant des g´eom´etries de type fractale.
– En physique. Les proprit´es d’auto-similarit´e (r´ep´etition `a toutes les ´echelles de mˆeme mo-
tifs) des fractales ont aussi donn´e des id´ees aux physiciens : `a grande ´echelle, l’Univers semble
avoir une organisation fractale. La structure de notre galaxie se retrouve `a l’´echelle sup´erieure
des amas de galaxie, mais aussi dans d’autres structures stellaires telles que les ´etoiles, nuages
de gaz. . .
On se propose dans ce TP de g´en´erer trois types de g´eom´etrie fractales, celle de Mandelbrot
(initiateur mˆeme des fractales), de Julia et enfin le triangle (ou ´eponge) de Sierpinski.
Fractale de Mandelbrot
Pour chaque point du plan M(x; y), on note z = x + iy, et on d´efinit la suite de nombres
complexes (u
n
) par
_
u
0
= 0
u
n+1
= u
2
n
+ z
.
Pour certains points M, donc certaines valeurs de x et y, la suite (u
n
) ainsi d´efinie diverge.
L’ensemble de Mandelbrot est justement l’ensemble des points M tels que la suite (u
n
) ne diverge
pas, i.e. lim
n→∞
|u
n
| = +∞.
Y. Morel Fractales de Mandelbrot, Julia et Sierpinski 21/37
Travail `a r´ealiser. Nous allons balayer le plan `a la recherche des points appartenant `a l’en-
semble de Mandelbrot. On fera varier les valeurs de x et y (deux boucles for) de −2 `a 2 par pas
respectivement de δ
x
et δ
y
.
Pour chaque position du point M, donc chaque valeur de x et y, calculer jusqu’`a Nmax termes
de la suite (u
n
) : u
1
, u
2
, u
3
, . . ., u
Nmax
. Apr`es le calcul de chaque terme, verifier si |u
n
| est plus
grand que la valeur Seuil ; si c’est le cas, on consid`erera que la suite diverge, et on pourra se passer
du calcul des derniers termes de la suite.
Stocker alors dans une matrice Mat le nombre de termes calcul´es pour cette suite (la valeur
Nmax si la suite est toujours rest´ee en de¸ c`a du seuil, ou une valeur n inf´erieur dans le cas contraire).
Repr´esenter graphiquement le contenu de la matrice Mat (fonction imagesc).
On pourra prendre les valeurs num´eriques suivantes : δ
x
= δ
y
= 0.01, Nmax = 30, Seuil = 2
Fractale de Julia
Soit c un nombre complexe quelconque : c ∈ C, et M(x; y) un point du plan. On note z = x+iy.
On d´efinit alors la suite de nombres complexes (u
n
) par
_
u
0
= z
u
n+1
= u
2
n
+ c
De mˆeme que pour la suite de Mandelbrot, cette suite peut diverger ou non. L’ensemble de
Julia est justement l’ensemble des points M du plan, donc des valeurs de z, tels que la suite ne
diverge pas, i.e. lim
n→∞
|u
n
| = +∞.
Travail `a r´ealiser. Le principe est le mˆeme que pour l’ensemble de Mandelbrot, seul le calcul
des termes successifs de la suite diff`ere quelque peu.
On pourra prendre les mˆemes valeurs num´eriques pour pr´ec´edemment, avec de plus, pour le
param`etre c les valeurs suivantes : c = −1, c = −1 + 0.2312i, c = 0.112 −0.64i.
Triangle de Sierpinski
La construction du triangle de Sierpinski peut se faire de mani`ere g´eom´etrique.
Soit trois points A(0; 0), B(1; 0) et C(0; 1). L’algorithme permettant d’obtenir le triangle de
Sierpinski est le suivant :
1. Chosisir un point P au hasard `a l’int´erieur du triangle ABC (`a l’aide de la fonction rand).
2. Choisir un des trois sommets A, B ou C au hasard. On nommera S ce point par la suite.
3. Calculer le point M milieu du segment [PS].
4. Red´efinir le point P par P = M. Stocker dans une matrice X l’abscisse de P, et dans une
matrice Y l’ordonn´ee de P.
5. R´eit´erer N fois `a partir de l’´etape 2 (N = 20 000 par exemple).
Finalement, afficher l’ensemble des points obtenus.
Y. Morel Fractales de Mandelbrot, Julia et Sierpinski 22/37
TP6
Compression de donn´ees
Un message, ou texte, num´erique est une suite de nombres binaires (de 0 et 1). Cette suite
de nombres provient, par exemple, du codage binaire d’un texte alphanum´erique (en fran¸ cais par
exemple...). Chaque caract`ere du texte, les lettres de l’alphabet (y compris les caract`eres sp´eciaux :
espaces, virgules,...) sont remplac´es par un nombre `a b chiffres constitu´e de 0 et 1.
En g´en´eral, on utilise un codage de chaque lettre sur 8 bits, i.e. une s´equence de 8 chiffres
binaires. On peut ainsi coder diff´eremment 2
8
= 256 caract`eres : c’est le code ASCII.
Ainsi un texte alphanum´erique compos´e de N caract`eres est repr´esent´e par N ×8 bits, soit N
octets. Le but de ce TP est de mettre en œuvre une m´ethode de compression de donn´ees, i.e. une
m´ethode de r´eduction du nombre d’octets utilis´es pour coder un message.
Il arrive fr´equement qu’un texte donn´e pr´esente des r´ep´etitions : des caract`eres utilis´es bien sˆ ur
(seulement 26 lettres composent notre alphabet...), mais aussi r´ep´etitions de mots complets, voir
s´equences de mots...
C’est cette observation qui est `a la base des m´ethodes de compression : au lieu de coder
un message par une suite de nombres binaires directement issue du codage de chaque caract`ere
successif constituant le message, on code le message suivant deux listes : la liste des mots utilis´es
(bien sˆ ur sans r´ep´etition cette fois), ou dictionnaire, et la liste des positions de chaque mots du
dictionnaire dans le message original.
Sous r´eserve d’un nombre assez important de r´ep´etitions des mots du dictionnaire utilis´e, la
taille de ces deux listes peut-ˆetre bien moindre que celle du codage direct du message.
1- Ecrire une fonction Matlab g´en´erant un message de N mots cod´es sur 8 bits (soit un message
de 8N bits, ou N octets, au total), n’utilisant (ou r´ep´etant) que n mots d’un dictionnaire.
On pourra commencer par cr´eer le dictionnaire comme ´etant une matrice (ou tableau) `a
n lignes (une pour chaque mot) et 8 colonnes ; chaque ligne de ce tableau ´etant une suite
al´eatoire de 8 chiffres binaires.
Ensuite, le message peut se construire en choisissant al´eatoirement des mots dans ce diction-
naire, que l’on concat´enera.
Ce message ´etant construit, on consid`ere par la suite que ce dictionnaire est inconnu; seul le
message de N mots est donn´e.
2- Ecrire une fonction Matlab Compress qui permet de compresser ce message.
Le principe de cette fonction est le suivant. On part du premier mot du message (premier
octet), on l’ajoute `a au dictionnaire (liste des mots du message, sans r´ep´etition), on recherche
dans le message les autres occurences de ce mot, et on enregistre dans un tableau la position
dans ce message de ces occurences.
On r´eit`ere ensuite le proc´ed´e `a partir du mot suivant dans le message qui n’est pas encore
dans le dictionnaire.
On cr´ee ainsi deux tableaux : le premier est le dictionnaire, le deuxi`eme contient la position
de chacun des mots du dictionnaire dans le message
On pourra construire une fonction interm´ediaire retournant le n
`eme
mot du message.
3- Ecrire une fonction Matlab DeCompress permettant, `a partir des deux tableaux pr´ec´edants
de reconstruire le message, et s’assurer ainsi que l’on a bien un codage ´equivalent du message
original.
4- Calculer le taux de compression obtenu, i.e. le ratio taille des deux tableaux “compress´es”
sur taille du message initial.
Y. Morel Compression de donn´ees 23/37
Y. Morel Compression de donn´ees 24/37
TP7
Simulation de la diffusion thermique
dans un mat´eriau
L’objectif de ce TP est la simulation de la diffusion thermique dans un milieu.
On suppose ce milieu 1-dimensionel (un cˆable par exemple), pour simplifier l’´etude. On d´ecrit
ainsi g´eom´etriquement ce milieu par le segment [0, L].
Le probl`eme est le suivant : on impose une temp´erature fix´ee et constante aux deux ext´emit´es,
T
0
en x = 0 et T
L
en x = L, du milieu suppos´e `a temp´erature nulle initialement, et ´eventuellement
la pr´esence d’une source de chaleur d´ecrite par une fonction f(x) ind´ependante du temps, ou une
fonction f(x, t) d´ependante du temps.
Dans ces conditions, on peut chercher `a r´epondre aux questions,
– Quel est le profil de temp´erature final dans le milieu (i.e. quelle est la temp´erature T(x) pour
x ∈ [0, L] pour un temps assez grand) ?
– Comment ´evolue le profil de temp´erature en fonction du temps, depuis la temp´erature nulle
impos´ee initialement jusqu’au profil final calcul´e pr´ec´edemment ?
– Comment d´etecter l’´eventuelle pr´esence d’une source de chaleur `a l’int´erieur du milieu?
Mod´elisation du probl`eme On note T(x, t) la temp´erature dans le milieu `a l’abscisse x et `a
l’instant t, x ∈ [0; L] et t ∈ [0; +∞[.
La diffusion thermique dans un milieu est r´egie par l’´equation dite “de la chaleur” :
∂T
∂t


2
T
∂x
2
= f(x, t), (1)
o` u f(x, t), ´eventuellement f(x, t) = f(x) est ind´ependante du temps, est la source de chaleur
fournie au milieu au cours du temps.
1. Approximation de la temp´erature `a l’´equilibre
On suppose dans ce paragraphe que la source de chaleur est ind´ependante du temps : f(x, t) =
f(x). On cherche alors `a r´esoudre num´eriquement l’´equation de la chaleur (1) en r´egime stationnaire
(`a l’´equilibre) ; cela revient `a consid´erer que la temp´erature ne varie plus en fonction du temps,
et que, par cons´equent,
∂T
∂t
= 0 : la fonction temp´erature n’est plus qu’une fonction d’une seule
variable T(x). Dans ce cas l’´equation de la chaleur (1) est une ´equation diff´erentielle du second
ordre `a coefficient constant :
T
′′
(x) = f(x) .
Selon la fonction source f que l’on impose, on sait r´esoudre th´eoriquement cette ´equation. Le
but de la simulation est n´eanmoins double :
– s’assurer que le code programm´e fonctionne correctement, ce qui est possible dans ce cas car
on connaˆıt la solution attendue ;
– calculer num´eriquement la solution de cette ´equation mˆeme lorsque le second membre f ne
permet pas de le faire th´eoriquement.
Discr´etisation On discr´etise le segment [0, L] par N
x
segments de longueur identique δ
x
=
L/N
x
: [0; L] → [0 : δ
x
: L]. On a ainsi ´echantillonn´e le segment [0; L] en N
x
+1 points x
n
= nδ
x
.
On cherche alors ´evaluer la temp´erature `a chacun de ces points. On note pour cela :
T
n
= T(nδ
x
) .
Y. Morel Simulation de la diffusion thermique dans un mat´eriau 25/37
La formule de Taylor `a l’ordre 2 nous donne, dans la limite o` u le pas δ
x
est suppos´e assez petit,
T
n+1
= T((n + 1)δ
x
) ∼ T(nδ
x
) + δ
x
dT
dx
(nδ
x
) +
δ
2
x
2
d
2
T
dx
2
(nδ
x
) ,
soit
T
n+1
∼ T
n
+ δ
x
dT
n
dx
+
δ
2
x
2
d
2
T
n
dx
2
.
De mˆeme, on a
T
n−1
∼ T
n
−δ
x
dT
n
dx
+
δ
2
x
2
d
2
T
n
dx
2
,
puis, apr`es addition de ces deux relations,
d
2
T
dx
2

T
n+1
+ T
n−1
−2T
n
δ
2
x
Si on pose alors f
n
= f(nδ
x
), on obtient alors la relation de r´ecurrence :
T
n+1
= δ
x
f
n
+ 2T
n
−T
n−1
(2)
On pourra prendre comme donn´ees initiales :
T
1
= α (une temp´erature en degr´e) et, T
2
= T
1
(pas de vitesse intiale de propagation)
On remarque qu’avec ce mod`ele statique, on ne peut pas imposer une temp´erature aux deux
extr´emit´es `a la fois du milieu : la relation de r´ecurrence (2) permet en effet de calculer toutes les
temp´eratures de proche en proche `a partir de T
0
et T
1
.
2. Diffusion thermique - Approximation de l’´evolution
temporelle du profil de temp´erature
On cherche maintenant `a ´etudier l’´evolution du profil de temp´erature au cours du temps : le
terme
∂T
∂t
n’est plus nul et la temp´erature est fonction `a la fois de l’abscisse x et du temps t, T(x, t).
La discr´etisation en x se fait comme pr´ec´edemment en N
x
+ 1 points, [0 : L] → [0 : δ
x
: L].
On effectue la mˆeme op´eration sur les temps. On d´ecoupe l’intervalle temporel d’´etude [0; ∆
t
]
en N
t
+ 1 points : [0 : ∆
t
] → [0 : δ
t
: ∆
t
].
On note alors, T
i,j
= T(iδ
x
, jδ
t
), et de mˆeme pour la source de chaleur : f
i,j
= f(iδ
x
, jδ
t
). La
discr´etisation de la d´eriv´ee seconde par rapport `a x peut se faire identiquement `a celle utilis´ee
pr´ec´edemment.
De la mˆeme fa¸ con, la d´eriv´ee par rapport au temps peut-ˆetre approch´ee par
∂T
∂t

T
i+1,j
−T
i,j
δ
t
.
On obtient alors la nouvelle relation de r´ecurrence :
T
i,n+1
= T
i,n
+ δ
t
f
i,n
+
δ
t
δ
2
x
(T
i+1,n
+ T
i−1,n
−2T
i,n
) (3)
`a laquelle il faut ajouter les conditions en x = 0 et x = L :
T(1, :) = α et , T(end, :) = β
o` u α est donc la temp´erature en x = 0 et β celle en x = L.
Application num´erique On pourra prendre les valeurs num´eriques (pour commencer. . .) sui-
vantes :
L = 1, δ
x
= 0.1, δ
t
= 0.0001, α = 0, β = 100,
f(x) = . . . au choix : toute fonction d´efinie sur [0; L].
Y. Morel Simulation de la diffusion thermique dans un mat´eriau 26/37
TP8
Simulation monodimensionnelle
de la propagation d’une onde
La propagation d’une onde, acoustique ou ´electromagn´etique, est r´egie par l’´equation de Hel-
mohltz, pour t > 0 et x ∈ D, le domaine g´eom´etrique ´etudi´e :

2
f
∂t
2
(x, t) −c
2

2
f
∂x
2
(x, t) = 0 , (4)
o` u c d´esigne la c´el´erit´e de l’onde dans le milieu consid´er´e (c = 3.10
8
m.s
−1
pour la lumi`ere dans le
vide, par exemple), et la fonction f d´esigne l’amplitude de l’onde au point x et `a l’instant t.
Cette ´equation n’est pas suffisante pour d´ecrire compl`etement la propagation de l’onde ; il faut
la compl´eter de conditions initiales (´etat et vitesse de l’onde `a l’instant initial t = 0), ainsi que des
conditions au bord (comportement de l’onde lorsqu’elle rencontre les limites physiques du domaine
´etudi´e).
Ces conditions peuvent se formuler suivant :
_
¸
_
¸
_
f(x, 0) = h(x) , ∀x ∈ D
∂f
∂t
(x, 0) =
˜
h(x) , ∀x ∈ D
f(x, t) = g(t) , ∀t > 0 et, ∀x ∈ ∂D,
(5)
les fonctions h,
˜
h et g ´etant des donn´ees du probl`eme.
Le but de cette partie est de r´esoudre num´eriquement sous Matlab la propagation d’une onde,
i.e. de r´esoudre num´eriquement le jeu d’´equations (4) et (5), dans le cas simple 1-D, c’est-`a-dire
lorsque le domaine D est un intervalle : D =]a, b[.
La cas 1-D correspond par exemple `a la simulation du mouvement d’une corde (de piano ou de
guitare par exemple), ou de l’amplitude d’un champ ´electrique ou magn´etique en polarisation TE
ou TM.
Discr´etisation de l’´equation de Helmohltz (4)
On cherche une solution approch´ee de (4) en 1-D : le domaine g´eom´etrique dans lequel l’onde
peut se propager est le segment [0 , L]. On s’interesse alors `a l’onde f(x, t) pour x ∈ [0 , L] et
t ∈ [0 , T].
Discr´etisation de (4) : Pour approximer l’onde solution de (4), nous allons utilis´e la m´ethode
num´erique dite des diff´erences finies.
On se donne tout d’abord pour cela une “grille” r´eguli`ere de calcul, c’est-`a-dire une discr´etisation
de l’ensemble [0 , L] ×[0 , T] : soit les deux suites
{x
k
} = {k δ
x
}
k=0...L/δx
, et, {t
k
} = {k δ
t
}
k=0...T/δt
,
o` u δ
x
et δ
t
d´esignent respectivement le pas de la grille en x (espace) et en t (temps).
Cette grille ´etant donn´ee, on cherche `a calculer les valeurs de f aux noeuds de la grille. On
notera
f
i,j
:= f(x
i
, t
j
) .
Y. Morel Simulation monodimensionnelle de la propagation d’une onde 27/37
La deuxi`eme ´etape est l’approximation des d´eriv´ees partielles de f `a l’aide des ´el´ements f
i,j
.
Cela s’effectue `a l’aide de la formule de Taylor, par exemple pour la d´eriv´ee selon x :
f(x + δ
x
, t) = f(x, t) + δ
x
∂f
∂x
(x, t) +
δ
2
x
2

2
f
∂x
2
(x, t) + O(δ
3
x
) ,
ou, en d’autres termes
f
i+1,j
= f
i,j
+ δ
x
∂f
i,j
∂x
+
δ
2
x
2

2
f
i,j
∂x
2
+ O(δ
3
x
) .
On peut de cette mani`ere approximer les d´eriv´ees secondes de f par rapport `a x et t (en consid´erant
aussi par exemple le d´eveloppement de Taylor de f(x −δ
x
, t) et en sommant les relations).
On obtient, tous calculs fait :

2
f
i,j
∂t
2

1
δ
2
t
[f
i,j+1
+ f
i,j−1
−2f
i,j
] ,
et,

2
f
i,j
∂x
2

1
δ
2
x
[f
i+1,j
+ f
i−1,j
−2f
i,j
] .
En combinant ces deux expressions avec l’´equation de Helmohltz (4), on obtient la relation de
r´ecurrence :
f
i,j+1
= −f
i,j−1
+ γf
i+1,j
+ γf
i−1,j
−2(1 −γ)f
i,j
, (6)
o` u γ = c
2
δ
2
t

2
x
.
Il ne reste plus alors qu’`a initialiser la suite f
i,j
au moyen des ´equations (5).
Pour commencer, on pourra prendre g = 0. Cette condition mod´elise une paroi infiniment dure ;
l’onde y sera totalement r´efl´echie.
La fonction h(x) mod´elise l’´etat initial de l’onde, `a l’instant t = 0. On pourra utiliser la fonction
h, infiniment r´eguli`ere :
h(x) =
_
_
_
Aexp
_

1
|(x −x
0
)
2
−r
2
|
_
, pour |x −x
0
| ≤ d
0 , ailleurs ,
o` u A = exp(1/r
2
) permet de normaliser h, et o` u x
0
∈ [0, L] est le centre de la “cloche” h(x) et
r > 0 sa largeur.
La fonction
˜
h mod´elise l”’impulsion”, ou la vitesse, initiale donn´ee ` a l’onde. On pourra choisir
pour commencer
˜
h = 0.
Travail `a r´ealiser
Initialisation On prendra (pour commencer) les valeurs num´eriques suivantes : c = 1m.s
−1
,
δ
x
= δ
t
= 10
−3
m, soit γ = 1, et L = 1m, T = 1s.
On d´efinit ainsi la grille de calcul : (x
i
, t
j
) ∈ [0 : δ
x
: L] ×[0 : δ
t
: T].
La solution f(x, t), approxim´ee aux point (x
i
, t
j
), sera alors stock´ee dans une matrice rectan-
gulaire F
i,j
.
On utilisera la fonction h(x) d´efinie pr´ec´edemment pour d´efinir l’´etat initial de l’onde, avec
x
0
= L/2 et r = L/5, tandis que l’on imposera
˜
h(x) = 0 (vitesse initiale nulle).
L’initialisation s’impl´emente alors simplement suivant :
F(:, 1) = h(:) , et, F(:, 2) = F(:, 1) +δ
t
h
t
(:) ,
o` u h
t
(x) est la vitesse initiale de l’onde (on pourra prendre pour commencer h
t
= 0).
La condition au bord : f(x = 0, t) = f(x = L, t) , ∀t se traduit quant `a elle par :
F(1, :) = 0 , et, F(end, :) = 0 .
Y. Morel Simulation monodimensionnelle de la propagation d’une onde 28/37
R´ecurrence Il s’agit ici d’impl´ementer la relation de r´ecurrence (6). Le calcul peut se faire `a
l’aide de deux boucles imbriqu´ees : `a chaque pas de temps (i.e. pour chaque j), on calcul tout les
F
i,j
r´ecursivement.
Visualisation du r´esultat Le comportement complet de l’onde est contenu dans la matrice F :
chaque colonne contient l’amplitude de l’onde `a un instant donn´e, chaque ligne correspondant `a
une abscisse.
On peut simplement visualiser la propagation de l’onde en utilisant la commande imagesc(F).
L’amplitude de l’onde au n
i`eme
pas de temps s’affiche alors simplement par la commande
plot([0 : δ
x
: L], F(:, n)).
Comme il s’agit d’un probl`eme d’´evolution, il peut aussi ˆetre interessant de repr´esenter ces
trac´es successivement. On pourra, par exemple, regrouper ces graphiques successifs dans une video
`a l’aide des commandes getframe, et avifile.
Suite de l’´etude... On peut reprendre l’´etude pr´ec´edente, et modifier les conditions initiales et
la condition au bord.
On pourra, par exemple, s’interesser au cas ou deux ondes existent initialement, et qui vont
donner lieu `a des ph´enom`enes d’interf´erences (constructives ou destructives).
La condition au bord pourra elle aussi ˆetre modifi´ee en la condition dite de Neumann :
∂f
∂x
(x, t) = 0 , pour x = 0 et x = L.
Y. Morel Simulation monodimensionnelle de la propagation d’une onde 29/37
Y. Morel Simulation monodimensionnelle de la propagation d’une onde 30/37
TP9
Simulation bidimensionnelle
de la propagation d’une onde
Ce TP fait suite au pr´ec´edent et propose de simuler la propagation d’une onde dans une cavit´e,
dans l’espace libre, puis sa diffraction `a travers une fente.
Cette propagation est r´egie par l’´equation des ondes : si u(x, y, t) d´esigne l’amplitude de l’onde
au point d’espace de coordonn´ees (x, y) et `a l’instant t, alors u est solution de l’´equation

2
u
∂t
2
−c
2
∆u = s(x, y, t) (1)
o` u, ∆u =

2
u
∂x
2
+

2
u
∂y
2
d´esigne le laplacien de u, c la c´el´erit´e de l’onde dans le milieu, et s(x, y, t) la
source.
On cherche une solution approch´ee de l’´equation (1) en 2-D : le domaine g´eom´etrique dans
lequel l’onde peut se propager est le rectangle [0 , Lx] ×[0 , Ly]. On s’interesse alors `a l’amplitude
de l’onde u(x, y, t) pour x ∈ [0 , L
x
], y ∈ [0 , L
y
] et t ∈ [0 , T].
Afin de traiter num´eriquement cette ´equation, le domaine est d´ecoup´e en une grille de calcul :
[0 , L
x
] → [0 : δ
x
: L
x
] , [0 , L
y
] → [0 : δ
y
: L
x
] , [0 , T] → [0 : δ
t
: T].
On notera par la suite n
x
, n
y
et n
t
les nombres de points utilis´es pour les discr´etisations suivant
respectivement l’axe des x, des y, et des temps t.
Discr´etisation de l’´equation des ondes De mˆeme que dans le TP pr´ec´edent, on pose u
k
i,j
=
u(x
i
, y
j
, t
k
), les x
i
, y
j
et t
k
´etant des points de notre grille de calcul.
L’utilisation des formules de Taylor (cf. TP pr´ec´edent) nous permet alors de formuler l’´equation
des ondes (1) sous forme discr`ete selon la relation de r´ecurrence :
u
k+1
i,j
= 2u
k
i,j
−u
k−1
i,j
+ γ
x
_
u
k
i−1,j
+ u
k
i+1,j
−2u
k
i,j
¸
+ γ
y
_
u
k
i,j−1
+ u
k
i,j+1
−2u
k
i,j
¸
(2)
o` u, γ
x
=
c
2
δ
2
t
δ
2
x
, et γ
y
=
c
2
δ
2
t
δ
2
y
Initialisation Pour initialiser la relation de r´ecurrence pr´ec´edente, on suppose que le milieu est
au repos : la vitesse intiale de l’onde est nulle.
Ceci se traduit par u
2
i,j
= u
1
i,j
, et donc dans la relation de r´ecurrence pr´ec´edente par :
u
2
i,j
= u
1
i,j
+
γ
x
2
_
u
1
i−1,j
+ u
1
i+1,j
−2u
1
i,j
¸
+
γ
y
2
_
u
1
i,j−1
+ u
1
i,j+1
−2u
1
i,j
¸
(3)
Source La source est une source sinuso¨ıdale d’amplitude 1 et de fr´equence ν = 2 Hz, situ´ee en
(L
x
/3, L
y
/2).
A chaque it´eration temporelle, l’amplitude de l’onde doit donc ˆetre modifi´ee suivant :
u
k+1
sx,sy
= u
k
sx,sy
+ sin(2πνkδ
t
) (4)
o` u, s
x
= n
x
/3 et s
y
= n
y
/2 d´esignent les indices de la position (L
x
/3, L
y
/2) de la source dans notre
grille de calcul.
Y. Morel Simulation bidimensionnelle de la propagation d’une onde 31/37
R´eflections parasites contre les bords du domaine
Le domaine de calcul [0 , L
x
] ×[0 , L
y
] a ´et´e introduit ici artificiellement : l’´equation des ondes
est valable dans tout l’espace (espace libre) ; n´eanmoins les calculs num´eriques requi`erent une
d´elimitation de ce domaine.
On observe alors dans le r´esultat de nos calculs des r´eflexions parasites le long des bords de
notre domaine. Ces r´eflexions, quoique expliquables physiquement, n’ont pas ici lieu d’ˆetre, la
prapagation ´etant suppos´ee se faire en espace libre (et donc infini).
Pour pallier cet inconv´enient, on peut introduire des conditions dites absorbantes au bord
de notre domaine (CLA, pour Conditions aux Limites Absorbantes) , de mani`ere `a ´eliminer ces
r´eflexions parasites.
Ces conditions absorbantes peuvent ˆetre simul´ees de la mani`ere suivante :
u(1, : , k + 1) = u(2, : , k)
u(n
x
, : , k + 1) = u(n
x
−1, : , k)
u( : , 1, k + 1) = u( : , 2, k)
u( : , n
y
, k + 1) = u( : , n
y
−1, k)
(5)
Pr´esence d’un obstacle
On peut simuler la pr´esence d’un obstacle en imposant u
k
i,j
= 0 pour tout k (tout instant), et
pour des indices i et j correspond `a la position de l’obstacle.
Diffraction par une fente simple
On simule la pr´esence d’une fente simple par un
“masque” :
On impose donc,
u(I
x
, I
y
, : ) = 0,
avec I
x
et I
y
des indices correspondants `a la posi-
tion de la fente dans la grille de calcul.
Diffraction par une double fente : interf´erences
Le principe est le mˆeme que pour la mod´elisation
de la pr´esence d’une fente simple.
La fente double est introduite par l’interm´ediaire
d’un “masque” :
u(I
x
, I
y
, : ) = 0,
avec I
x
et I
y
des indices correspondants `a la posi-
tion de la fente dans la grille de calcul.
Travail `a r´ealiser Le but du programme est de calculer les valeurs u(i, j, k) pour 1 ≤ i ≤ n
x
,
1 ≤ j ≤ n
y
, et 1 ≤ k ≤ n
t
.
Pour cela, on commencera par initialiser les valeurs de la matrice u (zeros), puis grˆace `a
l’initialisation (3).
Ensuite, on impl´ementera la discr´etisation de l’´equation des ondes (2), que l’on compl´etera pour
prendre en compte la pr´esence de la source sinuso¨ıdale donn´ee par la relation (4).
Ce programme ainsi contistu´e simule la propagation d’une onde dans une cavit´e. On pourra en
particulier observer les ph´enom`enes de r´eflection sur les parois, et les ph´enom`enes d’interf´erence
qui s’en suivent.
Y. Morel Simulation bidimensionnelle de la propagation d’une onde 32/37
On compl´etera ensuite ce mod`ele et ces simulations en int´egrant les conditions aux limites
absorbantes donn´ees par les relations (5) : on obtient une simulation de la propagation en espace
libre. Les bords du domaine sont “transparents” vis-`a-vis des ondes, et les interf´erences parasites
ont ´et´e supprim´ees.
Enfin, on pourra ajouter une fente simple ou double et ainsi observer des ph´enom`enes de
diffraction d’onde par une fente, et les ph´enom`enes d’interf´erences.
Valeurs num´eriques On prendra (pour commencer) les valeurs num´eriques suivantes : c =
10m.s
−1
, L
x
= L
y
= 100 m, δ
x
= L
x
/200, δ
y
= L
y
/200, δ
t
=

δ
2
x

2
y
2c
, ν = 2 Hz, T = 10 s.
Y. Morel Simulation bidimensionnelle de la propagation d’une onde 33/37
Y. Morel Simulation bidimensionnelle de la propagation d’une onde 34/37
TP10
Propagation d’ondes
Exemple de contrˆole non-destructif
Mod`ele physique. On cherche `a mod´eliser la propagation d’ondes dans un m´elange liquide-gaz.
On suppose que le liquide est incompressible, et que le gaz, compressible, se trouve sous la forme de
petites bulles qui contiennent le mˆeme nombre de mol´ecules. On s’int´eressera ici `a une mod´elisation
mono dimensionnelle de cette situation : on consid`ere sur le segment [0, L] une alternance de gaz
rt de liquide, comme illustr´e sur la figure ci-dessous.
X = 0
0
a b
X
n+1
X = L
i
gaz
liquide
On note ρ la masse lin´eique du liquide, de telle sorte que la masse d’un “segment” S
i
centr´e en
x
i
est ρb. Le gaz pi´eg´e entre deux segments successifs est suppos´e ob´eir `a la loi des gaz parfaits `a
temp´erature constante, c’et-`a-dire
(pression) × (volume) = Constante × (nombre de mol´ecules de gaz)
soit,
PV = kN ,
o` u le “volume“ repr´esente en fait une longueur dans le cadre mono dimensionnel. On suppose les
deux extr´emit´es fixes (x
0
et x
n+1
positionn´es en 0 et L, respectivement), et on prend un nombre
de mol´ecules de gaz dans chaque poche constant ´egal `a N. On consid´erera que N s’´ecrit β(a + b)
o` u β est le nombre de mol´ecules de gaz par unit´e de longueur du m´elange. Ce syst`eme liquide/gaz
admet un ´etat d’´equilibre, repr´esent´e sch´ematiquement sur la figure pr´ec´edente, pour lequel toutes
les bulles ont mˆeme taille b. Les positions des centres des segments fluides sont, dans ce cas, en
notant h = a + b,
X
0
= 0, X
1
= h, · · · , X
i
= ih, · · · , X
n+1
= (n + 1)h = L.
Equation d’´evolution. On note x
i
= X
i
+ u
i
la position du centre de S
i
(i
`eme
segment), de
telle sorte que l’´etat d’´equilibre correspond `a u
i
= 0 pour tout i. Le bilan F
i
des forces s’exer¸ cant
sur un ´el´ement de liquide centr´e en x
i
est la somme des pressions exerc´ees `a droite et `a gauche par
le gaz, c’est-`a-dire, d’apr`es le mod`ele pr´ec´edent,
F
i
= kβh
_
1
a + u
i
−u
i−1

1
a + u
i+1
−u
i
_
.
La masse de S
i
´etant ρb, la relation fondamentale de la dynamique s’´ecrit donc
ρbu
′′
i
= F
i
.
On note u = (u
1
, u
2
, · · · , u
n
) le vecteur des inconnues, v
i
= u

i
la vitesse de S
i
, v le vecteur
des v
i
(donc v
i
=
du
i
dt
, et v =
du
dt
)
Y. Morel Propagation d’ondes - Exemple de contrˆole non-destructif 35/37
et F le vecteur des forces F
i
. On peut se ramener de cette fa¸ con `a une ´equation diff´erentielle
ordinaire (dans IR
2n
),
_
¸
¸
_
¸
¸
_
du
dt
= v
ρb
dv
dt
= F(u) .
(6)
1. Vitesse de propagation
On cherche `a estimer la vitesse de propagation associ´ee au mod`ele d´ecrit ci-dessus, pour des
ondes de faible amplitude (i.e. u
i
<< a + b). La force F
i
peut s’exprimer suivant
F
i
= kβh
_
1
a + u
i
−u
i−1

1
a + u
i+1
−u
i
_
= kβh
u
i+1
−2u
i
+ u
i−1
(a + u
i
−u
i−1
)(a + u
i+1
−u
i
)
= kβh
u
i+1
−2u
i
+ u
i−1
h
2
1
_
α +
u
i
−u
i−1
h
_ _
α +
u
i+1
−u
i
h
_ ,
avec h = a + b et α = a/(a + b) = a/h. On identifie maintenant les expressions faisant intervenir
les u
i
`a des d´eriv´ees en espace de u (cf. m´ethode des diff´erences finies) :
u
i+1
−2u
i
+ u
i−1
h
2


2
u
∂x
2
(X
i
) ,
u
i
−u
i−1
h

u
i+1
−u
i
h

∂u
∂x
(X
i
) .
On aboutit donc, formellement, `a l’´equation aux d´eriv´ees partielles sur u (en remarquant que
b/h = 1 −α)
ρ(1 −α)u
′′


(α + u

)
2

2
u
∂x
2
= 0 .
Si l’on fait l’hypoth`ese suppl´ementaire que u

reste petit devant α, on obtient, toujours formelle-
ment, l’´equation
u
′′
−c
2

2
u
∂x
2
= 0 , avec c
2
=

ρ(1 −α)α
2
,
o` u c est donc la vitesse de propagation de l’onde dans ce milieu.
Cette ´equation est l’´equation des ondes. Son ´etude et sa simulation ont fait l’objet du TP
pr´ec´edent.
2. Propagation d’une onde dans un milieu homog`ene
On se propose de r´esoudre num´eriquement le syst`eme (6) pour mod´eliser la propagation d’une
onde dans le milieu (sans faire, a priori d’hypoth`ese de type “petits d´eplacements”).
Pour perturber le syst`eme, on va agir sur la position du point x
0
, qu’on ne supposera donc plus
fixe, mais dont la position va ˆetre impos´ee au cours du temps.
On introduit une discr´etisation de l’intervalle en temps [0, T] :
t
0
= 0 < t
1
= δ
t
< t
2
= 2δ
t
< · · · < t
M
= Mδ
t
= T ,
et on note u
m
n
(resp. v
m
n
) l’approximation de u
n
(resp. v
n
) au temps t
m
. On discr´etise alors le
syst`eme (6) de la fa¸ con suivante :
_
¸
¸
_
¸
¸
_
u
m
n
−u
m−1
n
δ
t
= v
m
n
ρb
v
m+1
n
−v
m
n
δ
t
= kβh
_
1
a + u
m
n
−u
m
n−1

1
a + u
m
n+1
−u
m
n
_
,
Y. Morel Propagation d’ondes - Exemple de contrˆole non-destructif 36/37
ce qu’on peut finalement ´ecrire, en ´eliminant les v :
u
m+1
n
= 2u
m
n
−u
m−1
n
+ δ
2
t
µ
_
1
a + u
m
n
−u
m
n−1

1
a + u
m
n+1
−u
m
n
_
,
avec µ = kβh/ρb. Les conditions aux limites en espace s’´ecrivent
u
m
0
= λ(t) , u
m
N
= 0 ∀ m = 0, · · · , M ,
o` u λ(t) est donn´ee, et les conditions en temps
u
0
n
= U
0
n
, u
−1
n
= U
−1
n
∀ n = 0, · · · , N ,
o` u les U
0
n
et U
−1
n
sont des donn´ees qui permettent de repr´esenter l’´etat du syst`eme au temps initial.
A partir de ces relations, on peut alors calculer les u
m
n
pour tout n et tout M.
Calcul num´erique. Calculer num´eriquement les u
m
n
. On pourra prendre comme valeur des pa-
ram`etres :
ρ = 1 , N = 99 , L = 1.0 , α = 0.2 , β = 1 , k = 1.0 , δ
t
= 10
−3
, T = 2 , h = 10
−2
, b = 1.
3. Propagation d’une onde dans un milieu inhomog`ene
On consid`ere maintenant que la densit´e, ou masse lin´eique, ρ n’est plus constante, soit ρ := ρ(x).
On discr´etise comme pr´ec´edemment : ρ
n
= ρ(X
n
).
Modifier le programme de calcul pr´ec´edent afin de permettre la prise en compte d’une densit´e
non constante, i.e. un milieu inhomog`ene.
Reprendre les valeurs num´eriques pr´ec´edentes, en modifiant uniquement ρ suivant :
ρ
n
=
_
2 , si n = 50
1 , sinon
.
4. Exemple de contrˆole non destructif
La probl´ematique est maintenant la suivante : comment `a partir des seules donn´ees et obser-
vations en x = 0 et/ou x = L d´eterminer si le mat´eriau est homog`ene ou non, et alors dans ce cas,
de mani`ere plus ambitieuse, d´eterminer la profondeur `a laquelle est situ´e l’inhomog´en´eit´e ?
A partir des calculs et observations effectu´es dans les deux paragraphes pr´ec´edents, donner une
m´ethode permettant de
– d´etecter la pr´esence d’une inhomog´en´eit´e dans le milieu;
– calculer la profondeur (abscisse) `a laquelle se trouve cette inhomg´en´eit´e .
Y. Morel Propagation d’ondes - Exemple de contrˆole non-destructif 37/37

Table des mati`res e
Initiation Matlab Pr´sentation et introduction ` Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . e a Commandes Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scripts et fonctions Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TP 1 : Exercices d’initiation ` Matlab a TP 2 : Signaux num´riques et transform´e de Fourier discr`te e e e 2. Transform´e de Fourier de signaux sinuso¨ e ıdaux 3 3 3 5 7 11

1. Echantillonnage d’un signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 . . . . . . . . . . . . . . . . . . . . . 11 3. Transform´e de Fourier de signaux carr´s et triangulaires . . . . . . . . . . . . . . . . 11 e e TP 3 : R´seaux et synth`se de diagramme d’antennes e e 13

1. Rayonnement d’un dipole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2. R´seau lin´aire d’antennes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 e e 3. R´seau bidimensionnel d’antennes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 e TP 4 : M´thode de Mont´ Carlo e e TP 5 : Fractales de Mandelbrot, Julia et Sierpinski TP 6 : Compression de donn´es e TP 7 : Simulation de la diffusion thermique dans un mat´riau e 19 21 23 25

1. Approximation de la temp´rature ` l’´quilibre . . . . . . . . . . . . . . . . . . . . . . 25 e a e 2. Diffusion thermique - Approximation de l’´volutiontemporelle du profil de temp´rature 26 e e TP 8 : Simulation monodimensionnelle de la propagation d’une onde TP 9 : Simulation bidimensionnelle de la propagation d’une onde TP 10 : Propagation d’ondes - Exemple de contrˆle non-destructif o 27 31 35

1. Vitesse de propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2. Propagation d’une onde dans un milieu homog`ne . . . . . . . . . . . . . . . . . . . . 36 e 3. Propagation d’une onde dans un milieu inhomog`ne . . . . . . . . . . . . . . . . . . . 37 e 4. Exemple de contrˆle non destructif . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 o

Y. Morel

Initiation Matlab.

2/37

Initiation Matlab
Pr´sentation et introduction ` Matlab e a
Matlab, acronyme de “MATrix LABoratory”, est un logiciel con¸u pour fournir un environc nement de calcul num´rique de haut niveau. Il est particuli`rement performant pour le calcul e e matriciel, et dispose de grandes capacit´s graphiques pour, par exemple, la visualisation d’objets e math´matiques complexes. e Son fonctionnement repose sur un langage de programmation interpr´t´ qui permet un d´veloppement ee e tr`s rapide. En contre-partie, pour des applications n´cessitant des performances plus ´lev´es en e e e e temps de calcul, un langage compil´, comme le C++ ou le fortran, est plus adapt´. e e Sous sa forme “graphique”, Matlab dispose d’une interface comprenant l’environnement Matlab ` proprement parler, d’o` les commandes Matlab peuvent ˆtre directement ex´cut´es, ainsi que a u e e e d’un environnement graphique, pouvant comprendre plusieurs fenˆtres : liste des variables en cours e d’utilisation, historique des commandes ex´cut´es, ..., et divers menus plus ou moins habituels, e e “File”, (“New”, “Open”,...), “Configuration”, “Help”,... Toutes les commandes des diff´rents menus ont leur alternative en “ligne de commande” dans e l’environnement propre ` Matlab, la r´ciproque ´tant bien ´videmment fausse. a e e e Dans ce paragraphe d’introduction ` Matlab, on ne s’interessera qu’` l’environnement propre a a ` Matlab, les commandes et syntaxes de base d’instructions Matlab. a Remarque : Matlab peut-ˆtre lanc´ sans son environnement graphique complet ` l’aide de la e e a commande matlab -nodesktop.

Commandes Matlab
Les commandes peuvent se taper directement suite au prompt de Matlab. L’op´ration est alors e imm´diatement effectu´e et le r´sultat retourn´. Si la commande se termine par un point virgule, e e e e la commande est effectu´e, mais le r´sultat obtenu n’est pas retourn´. e e e L’aide help func helpdesk lookfor mot cle demo affiche l’aide concernant la fonction func. Voir help help... version graphique et naviguable (html) de l’aide lance une recherche sur toutes les fonctions Matlab, et retourne toutes les fonctions dont l’aide contient le mot cl´ mot cle e Matlab contient de nombreuses d´mo. de ses capacit´s. Taper demo, e e et naviguer...

Commandes g´n´rales e e change/affiche le repertoire courant affiche le chemin complet d’une fonction Matlab variable Matlab contenant la liste des repertoires connus, dans lesquels Matlab recherche une fonction lors de son appel addpath permet d’ajouter un chemin dans le path who liste des variables de l’espace de travail whos idem avec tailles en m´moire e clear var supprime la variable var de l’espace de travail clear all supprime toutes les variables close all ferme tous les graphiques cd which path

Y. Morel

Initiation Matlab.

3/37

a D’autres op´rations sont ´galement disponibles : e e . ou matrices e e e (` conditions que les dimensions de celles ci le permettent).. >. . angle. des ´l´ments d’un vecteur ee d’une fa¸on g´n´rale toutes les fonctions usuelles s’appliquent ` des c e e a matrices terme ` terme (ex. help. ones.. 3]) = [log 1.>=... A = 1 : 1 : 6) .. f in] avec N valeurs e r´guli`rement espac´es e e e zeros..N) d´finition d’un vecteur balayant l’intervalle [deb.j) toutes les lignes de la matrice M.. sin. 2..∗ [7 : 12]) e a longueur d’un vecteur dimension d’une matrice comparaison des ´l´ments de deux matrices. et sur la colonne 3 ee e a M(:. 5./ ..Op´rations usuelles e = +./ 1i abs.. real.fin.. 3. <=. rand.:) toutes les colonnes de la matrice M. f in] avec e e le pas pas (ex. A = 1 : 6) linspace(deb. length size <. Morel Initiation Matlab.*.j) ´l´ment de la matrice M situ´ sur la ligne i et la colonne j ee e V(end) dernier ´l´ment du vecteur V ee M(5:9. == sum. find nnz (les op´rateurs usuels pr´c´d´s d’un point) op´rations sur les mae e e e e trices effectu´es terme ` terme (ex.-. moyenne. a = 2) a op´rations usuelles sur les variables ou valeurs num´riques e e nombre complexe : (1i)2 = −1 op´rations usuelles sur les nombres complexes e D´finition et op´rations sur les vecteurs et matrices e e D´finition de matrices et vecteurs : e [ . 4/37 . et sur les colonnes ee e a 1`3 a Y..1:3) les ´l´ments de la matrice M situ´s sur les lignes 1 ` 5. par d´faut le pas est ´gal ` 1 s’il est e e a omis (ex. eye.) e randn.-. cos. log 3]) a recherche les ´l´ments non nuls dans une matrice ee compte le nombre d’´l´ments non nuls dans une matrice ee Extraction des ´l´ments d’une matrice ee M(i..* . magic. Les op´rations usuelles +. log([1. . calculer A = [1 : 6] . . matrices particuli`res (cf. .. exp./. agissent indiff´remment sur les r´els.^ . imag affectation d’une valeur ` une variable (ex. . terme ` terme ee a somme. ligne i M(1:5... 6]) e deb:pas:fin d´finition d’un vecteur r´gulier balayant l’intervalle [deb. mean. ] d´finition manuelle d’une matrice (ex.. ..*... 4. log 2. complexes. log. vand. colonne j M(i. 2.3) les ´l´ments de la matrice M situ´s de la ligne 5 ` 9. A = [1.

2 : 4) Fonctions graphiques figure plot M( : . xlabel.. figure(n) (r´)initialise la figure n◦ n e e trac´ d’un ensemble de points e (ex. e Y.. : ) M(6 : end . e e Apr`s l’ex´cution d’une fonction. loglog. e Deux types de fichiers de commandes sont ` distinguer : a – les scripts : ils permettent simplement de regrouper un ensemble de commandes Matlab. cd. .. e e e – les fonctions : de mˆme que les scripts. Les fonctions prennent de plus un ensemble d’arguments a en entr´e et d´livrent un ensemble de valeurs de sortie.1:2*pi].m” (ex. et a e e peut ˆtre ex´cut´ directement sous Matlab. surf. elles permettent de regrouper un ensemble de come mandes effectuant une tˆche globale. mesh. gedit. emacs. Morel Initiation Matlab.. 6) cr´e une nouvelle figure . le r´sultat ´tant alors imm´diatement affich´ (suivant la complexit´ du calcul requis). permet d’ajouter un titre g´n´ral. Ce fichier doit ˆtre enegistr´ avec l’extension “. notepad. Un tel fichier e e peut-ˆtre cr´´ en utilisant l’´diteur de Matlab (commande edit).. soit pr´sent dans la variable path de Matlab.M(1. script1..1:2*pi]))) subplot partionne la figure courante en plusieurs sous-graphiques imagesc affiche sur un graphique le contenu d’une matrice. semilogx. e e e e e Il est aussi possible de regrouper ces commandes dans un fichier “texte” comportant un ensemble de commandes ` effectuer. 3)       M =        11 21 31 41 51 61 71 81 91 12 22 32 42 52 62 72 82 92 13 23 33 43 53 63 73 83 93 14 24 34 44 54 64 74 84 94 15 25 35 45 55 65 75 85 95 16 26 36 46 56 66 76 86 96 17 27 37 47 57 67 77 87 97 18 28 38 48 58 68 78 88 98 19 20 29 30 39 40 49 50 59 60 69 70 79 80 89 90 99 100               M(3. un titre sur les axes et une e e legend l´gende ` une figure e a grid on / off affiche une grille sur le graphique courant hold on /off permet de superposer des graphiques sur une mˆme figure e plot3.) semilogy. l’ensemble des variables autres que celles utilis´es en entr´e e e e e et en sortie de la fonction sont effac´es (variables locales). soit en utilisant un quelconque e ee e ´diteur : vi. autres fonctions graphiques (voir l’aide.sin([0:0. la valeur des ´l´ments ´tant repr´sent´e par une ´chelle de couleur ee e e e e axis permet de s´lection manuellement l’´chelle utilis´e e e e title. Scripts et fonctions Matlab L’ensemble des commandes ci-dessus peuvent ˆtre tap´es directement dans l’environnement e e Matlab. 5/37 . les commandes sont ex´cut´es s´quentiellement.m).. plot([0:0. ylabel. A l’appel du script. ou pwd). si le r´pertoire dans lequel il est enregistr´ est soit e e e e e le r´pertoire courant (cf.

while. si on ne souhaite pas affecter les variables de sortie : nom_func(x1. les variables que l’on r´cup`re une fois l’execution de la fonction e e achev´e.else. .x2.y3]=nom_func(x1.x4) % Commentaires qui seront affich´s lors e % de l’appel ‘‘help nom_func’’ Corps de la fonction o` les xi sont les variables pass´es en entr´e de la fonction.x3.La structure g´n´rale d’une fonction est la suivante : e e function [y1 y2 y3]=nom_func(x1. . .x2. . switch. . ou.x3.case.y2.end . . . tandis que les yi sont des valeurs u e e de sortie de la fonction. i. .end . e Une telle fonction s’appelle ensuite par la commande [y1. .x4).x2. . if. 6/37 . .end . .x4). par exemple : for. Y. L’aide (par exemple help for) permet de retrouver facilement la syntaxe de ces structures.x3.e. Commandes structur´es d’une fonction ou script e Les structures usuelles dans tout langage de programmation sont disponible sous Matlab. . .end . . Morel Initiation Matlab.

]. puis 21 22 28 29 30 3 7 la matrice Q = .Manipulation de matrices a a) D´finir le vecteur V = [0 1 2 3 · · · 49 50]. e e c) D´finir la variable x = [0 : 0. 5 ? que 0. e a e a Construire de mˆme la matrice Q obtenue ` partir de la matrice M en rempla¸ant tous les e a c nombres de M inf´rieurs ` 0. et ceux sup´rieurs ` 0. et calculer y1 = sin(x) et y2 = cos(x). Qu’affiche exactement la commande plot ? (plot. length). size. la matrice P =  18 19 20 . Faire varier le pas. Combien y a-t-il de valeurs dans ce vecteur ? Afficher e la courbe du sinus. Y. e 6 4 3 Calculer alors tan(x) en utilisant exclusivement les vecteurs y1 et y2 pr´c´dents.TP 1 Exercices d’initiation ` Matlab a Exercice 1 : Initiation ` MATLAB . π π π b) D´finir la variable x = [ . Exercice 2 : Initiation ` MATLAB .Vecteurs et courbes a π a a) D´finir la variable x = .5 par 14. find. puis z = tan(x) ` partir de e 4 y1 et y2 . nnz. d) D´finir une matrice M al´atoire ` trois lignes et sept colonnes. e a   1 2 3 4 5 6 7 8 9 10 b) D´finir la matrice M =  11 12 13 14 15 16 17 18 19 20  e 21 22 23 24 25 26 27 28 29 30     1 2 8 9 10 Extraire de cette matrice la matrice N =  11 12 . ee D´finir ensuite le vecteur Z = [0 2 4 · · · 48 50] ` partir de V . 23 27 Extraire de la matrice M la matrice R obtenue en prenant dans la matrice M une colonne sur 2. 4 par 0.1 : 2π].4 par 1. et calculer y1 = sin(x) et y2 = cos(x). puis le vecteur e P = [−1 2 − 3 4 − 5 8 · · · − 99 100]. sum) Construire alors la matrice P obtenue ` partir de la matrice M en rempla¸ant tous les a c nombres de M inf´rieurs ` 0. Quelle est la taille de ce vecteur ? e D´finir le vecteur W contenant les cinq premiers ´l´ments de V . c) D´finir les matrices M = [2 4 6 8 · · · 100] et N = [−1 − 3 − 5 · · · − 99].5 par −3 et tous les nombres sup´rieurs ` 0. . et le vecteur X contenant e ee les cinq premiers et les cinq derniers ´l´ments. Morel Exercices d’initiation ` Matlab a 7/37 . 8 ? Ou sont-ils situ´s ? e (rand. Combien de nombres dans e e a cette matrice sont plus grand que 0. e a e a e) Cr´er un vecteur contenant N valeurs binaires (0 ou 1) tel que 10 % de ces valeurs soient e des 1.

la partie r´elle.1 : 100] . quel est le nombre de points ? Quelle est la place utilis´e e e en m´moire ? (size. Mettre les titres et les l´gendes de chaque graphique. legend) e d) Repr´senter cette fonction complexe sous la forme d’une trajectoire 3d ` l’aide de la fonction e a plot3. fonctions graphiques a Repr´senter sur une figure ` 4 cadrans. Il n’y a plus de variables locales. abs) c) Repr´senter sur une figure 4 cadrans. les fonctions sinuso¨ e a ıde. en fonction des variables A et f0 pass´es en param`tres et qui retourne les valeurs prises e e par la fonction Sig. (subplot. find e ou nnz). par exemple. pour retrouver les courbes 2D de (c) ` partir de la a repr´sentation 3D. logarithme et tangente. e) Utiliser la fonction graphique rotate3d. et qui retourne 1 si x est un ´l´ment du vecteur v. e c) Taper ’clear all’ puis who. length. (subplot) Exercice 3 : Etude de la fonction Sig = exp(−A.t) a) Cr´er le vecteur t=[0 : 0. b) Reprendre le probl`me de l’exercice 3. (plot. title. l’autre directement avec une comparaison globale == (et. et 0 sinon. imag.2πf0 .Exercice 2 : Initiation ` MATLAB. ee Deux versions de cette fonction peuvent-ˆtre impl´ment´es. ` partir de votre fichier de commande. une ` l’aide d’une boucle for. le module et la e e phase de cette courbe. Y. Taper le nom de votre fichier de commande : quelles sont les variables reconnues dans l’espace de travail ? Exercice 7 : Cr´ation d’une fonction e a) Cr´er. et e e e a d’un test if appropri´. Morel Exercices d’initiation ` Matlab a 8/37 .t + j. exponentielle. puis calcule la fonction et enfin repr´sente en 3D la courbe voulue. whos) e b) Tracer la fonction demand´e en choisissant A et f0 de fa¸on ` observer une dizaine de cycles e c a et une attenuation d’environ 90%. e Exercice 4 : Initiation ` la programmation sous MATLAB a a) Quel est votre r´pertoire courant ? Cr´er un nouveau r´pertoire Initiation_Matlab et se e e e placer dedans. la partie imaginaire. une fonction qui trace la courbe 3D de l’exercice e a 3. Ecrire un script de commande qui fixe au d´part les e e valeurs de A et f0 . b) Ajouter un “flag” pass´ ` la fonction qui permet de choisir ou non la visualisation de la e a courbe (nargin) Exercice 8 : Recherche d’un ´l´ment dans un vecteur ee Ecrire une fonction Trouve qui prend en argument un vecteur v et un nombre x. real.

  . .  . e e e e e (ii) R´soudre num´riquement le syst`me : e e e   x + 2y   2x + 3y −2x + 4y    8x + y + 3z + 4t = 1 + 4z + t = −2 − 5z + 2t = 0 − z + 3t = 1 (iii) R´soudre num´riquement le syst`me suivant (moindres carr´s) : e e e e   x + 3y = 5   −2x + 6y = 7  3x − 4y = 6   6x − 13y = −3 Y... ..   . e u Le vecteur X se calcule alors suivant : AX = b ⇐⇒ X = A−1 b. on peut r´soudre tout type de syst`me lin´aire en l’´crivant pr´alablement e e e e e sous forme matricielle.) qui prend comme param`tre e un entier n et qui construit la matrice suivante (fonctions eye. . . . .Exercice 9 : Matrices et syst`mes lin´aires e e a) Ecrire une fonction. . . Morel Exercices d’initiation ` Matlab a 9/37 . avec Matlab. . e e   6x 2x  4x y et z suivant + y − 5z = 10 + 2y + 3z = 11 − 9y + 7z = 12 s’´crit sous forme matricielle AX = b. o` X = [x y z]T est le vecteur inconnu. . ou encore. . X = A \ b (voir help slash). while. .  0 0 0 ··· n−1 2 0  n   1   0 0 0 · · · n−1 n n n 0 0 0 ··· 0 1 n+1 b) Avec Matlab. d’inconnues x. . diag) :   1 1 0 ··· 0 0 0   1 2 n−1 0 0 0   n n  0 2 3 ··· 0 0 0    n  . . . (i) La syst`me lin´aire. . . R´soudre le syst`me lin´aire pr´c´dent. n’utilisant aucune boucle (for.

Y. Morel Exercices d’initiation ` Matlab a 10/37 .

0 ≤ x ≤ π  0. e 1 = 0. e a e On consid`re les deux fonctions p´riodiques f1 et f2 d´finies par : e e e   0. si. si − 1 < x < 1 f1 (x) = . 10 microsecondes. Transform´e de Fourier de signaux carr´s et triangulaires e e On s’int´resse dans ce TP ` la transform´e de Fourier de fonctions (ou signaux). f2 (x) = −x + π.1 microsecondes. si 1 < x < 2 Y. si.TP 2 Signaux num´riques et e transform´e de Fourier discr`te e e 1.5 ms. e 3. et p3 = 0. f2 = 75 Hz. et en indiquant sur chaque e e courbe la fr´quence d’´chantillonnage et le nombre de points. − 2 < x < −1 x + π. p1 = . Transform´e de Fourier de signaux sinuso¨ e ıdaux On consid`re les fonctions d´finies pour t ∈ [0. Morel Signaux num´riques et transform´e de Fourier discr`te e e e 11/37 . soit un pas Te = e a e Tracer les fonctions xi et leur transform´e de Fourier xi (fonction fft). 0.1] par e e x1 (t) = cos(2π f1 t + p1 ) x2 (t) = cos(2π f2 t + p2 ) x3 (t) = cos(2π f3 t + p3 ) x4 (t) = x1 (t) + x2 (t) + x3 (t) π π o` . Echantillonnage d’un signal On consid`re le signal x d´fini par x(t) = 2 cos(2πf0 t + ϕ0 ). p2 = . Repr´senter graphiquement (sur quatre figure distinctes ou sur une figure avec quatre cadrants) e ces quatre signaux num´riques. fe Calculer et tracer ensuite les transform´es de Fourier inverses des xi (fonction ifft). f3 = 125 Hz. G´n´rer dans un vecteur sig N = 1000 points du signal x. e e 2. u 2 3 On ´chantillonne ces signaux ` la fr´quence de fe = 20 kHz. − π ≤ x ≤ 0 1. d’amplitude 2 et de fr´quence e e e fondamentale f0 = 20 kHz. si. ´chantillonn´ au rythme de : e e e e – – – – un ´chantillon e un ´chantillon e un ´chantillon e un ´chantillon e toutes toutes toutes toutes les les les les 50 microsecondes. avec une ´chelle des temps correcte. 1 microsecondes. f1 = 50 Hz. et les comparer e avec les fonctions de d´part. 0.

les trois e premiers.e. la transform´e inverse) obtenue a e e en ne consid´rant que le mode (ou harmonique) fondamental. la fonction originale et la e e reconstruction ` partir de la transform´e de Fourier (i.. e 2) Calculer la transform´e de Fourier de ces deux fonctions. Morel Signaux num´riques et transform´e de Fourier discr`te e e e 12/37 . e 3) Repr´senter sur un mˆme graphique. et pour chaque fonction. en y appliquant la e e transform´e de Fourier inverse que l’on retrouve bien les fonctions originales (aucune perte e ou erreur n’est engendr´e par transformation de Fourier). les deux premiers. Y. Coder et repr´senter alors graphiquement ces deux fonctions f1 et f2 . puis v´rifier.π -2 -1 0 1 2 −π 0 π 1) D´finir un vecteur x avec N valeurs et variant de −2 ` 2 pour la fonction f1 et de π ` π e a a pour f2 ..

Le rayonnement du r´seau est adapt´ au nombre et la position des utilisateurs e e (marqu´s par ). e a La directivit´ de ces antennes est donc un crit`re d´terminant. en d’autres termes. on cherche ` optimiser le ratio a Le contexte actuel du d´veloppement massif des r´seaux mobiles (Wi-Fi et GSM principalee e ment) rend par ailleurs inadapt´ le d´veloppement d’antennes ` haute directivit´ ”statique”. Morel R´seaux et synth`se de diagramme d’antennes e e 13/37 . dans le but de pouvoir focaliser le signal. e Le syst`me est alors d’autant plus efficace que les interf´rences entre syst`mes diff´rents s’en trouve e e e e par la mˆme occasion limit´es. un par utilisateur communiquant. qui se r´partissent donc plus efficacement la puissance ´mise. et donc la puissance ´mise. • • Diagramme de rayonnement d’une antenne dipolaire (gauche) et d’un r´seau de 4 e antennes (droite).TP 3 R´seaux et synth`se e e de diagramme d’antennes PU . e e a e Comme les utilisateurs sont en mouvement et peuvent donc se trouver a priori dans n’importe quelle direction vis-`-vis de l’antenne. o` PU est la puissance u PT re¸ue par l’utilisateur. et PT est la puissance totale ´mise par l’antenne. e e On peut ainsi imaginer des syst`mes avec des diagrammes d’´mission ` plusieurs lobes prine e a cipaux. e Une strat´gie pour y rem´dier consiste ` utiliser plusieurs antennes. L’objectif initial est dans ce cas loin d’ˆtre rempli. on a recours ` des antennes rayonnant de fa¸on homog`ne a a c e dans toutes les directions de l’espace (rayonnement isotrope). e e e Y. assembl´es en un r´seau e e a e e d’antennes. sur l’utilisateur. et capable de plus de suivre ces utilisateurs dans leur mouvement. e e e Pour des antennes de communication. ` ce que la plus grande partie de l’´nergie fournie ` l’antenne a e a soit achemin´e jusqu’` l’utilisateur distant. c e On cherche.

Rayonnement d’un dipole Le potentiel ´lectrostatique cr´´ en un point M ` la distance e ee a −→ − − →) par deux charges +q et −q distante de − (avec → r (OM = r a a < r) est donn´ par < e − − → → − ) = 1 p · ur → V(r 4πε0 r 2 → o` .q• − → uθ • − → r M − → ur Exercice 1 Repr´senter sur une figure ` deux cadrans. e a Y. e e r a > Le champ rayonn´ par l’antenne situ´e en A2 a une avance de phase de kl.1. Morel R´seaux et synth`se de diagramme d’antennes e e 14/37 . e (polar pour la repr´sentation en coordonn´es polaires) e e 2. u d’onde (k = λ − → r θ − → r l A1 − → d A2 − → d A3 − → d A4 ··· AN Les param`tres du r´seau sont : e e • N : nombre d’antennes − → − → • d : vecteur entre chaque antenne (d = d est la distance entre chaque antenne) • αn = ρn ejϕn est le poids (alimentation) de l’antenne n . align´es et s´par´es par une distance d. e a → On s’int´resse au champ rayonn´ lointain dans la direction − . et ainsi. le champ u → p a ´lectrique cr´e par le dipole est donc. ρn est le gain et ϕn le d´phasage e impos´s ` l’antenne n. − = q − est le moment du dipole. les composantes Er et Eθ du champ e a ´lectrique du dipole. e e − − − →→ → − → − − →→ − ) = 3 ur ( p · ur ) − p = 2p cos θ − + p sin θ − → → → E ( r ) = −∇·V ( r u u 3 3 r 4πε r 3 θ 4πε0 r 4πε0 r 0 q• − → a . sachant que l’on peut de plus imposer un e a e d´phasage ϕ d’une antenne ` la suivante. et ` une distance r > d. R´seau lin´aire d’antennes e e On dispose de N antennes identiques. e e e Ces antennes sont aliment´es ` la fr´quence f . o` k est le nombre e e u 2π o` λ est la longueur d’onde).

On consid`re maintenant un r´seau de N = 10 antennes aliment´es en phase. espac´es de e e e e λ d= . c’est-`-dire qu’on impose simplement a un d´phasage constant ϕ entre chaque antenne. L’´cart entre chaque antenne est fix´ ici ` d = . On consid`re un r´seau de 10 antennes aliment´es en phase (ϕ = 0).108 Hz. e e e Quelle est l’influence de la distance d entre chaque antenne ? Y. le champ ´mis par la ni`me antenne est : E n = αn E 1 . e e a 2 Tracer diff´rents graphiques repr´sentant le diagramme du r´seau F (θ. e • θ : angle d’observation La synth`se d’un diagramme de rayonnement consiste ` d´terminer les excitations complexes e a e αp pour que le champ total ´mis par le r´seau r´ponde ` des sp´cifications pr´cises (r´unies dans e e e a e e e un gabarit). avec l = d cos θ n=1 n=1 soit. − → − → On a ainsi.− → − → − → e Si E 1 est le champ de l’antenne 1. d. ϕ) = φ N sin 2 sin Exercice 2 On consid`re un r´seau d’antennes fonctionnant ` la fr´quence f = 3. et le d´phasage ϕ est nul entre elles. soit aussi : e e − → − φ → E = N E1 ej 2 Nφ 2 φ N sin 2 sin − → → φ =k d ·− −ϕ r = kd cos θ − ϕ avec. Indiquer comment varie la largeur du lobe principal en fonction du nombre d’antennes N du r´seau. Morel R´seaux et synth`se de diagramme d’antennes e e 15/37 . o` F est le facteur (ou diagramme) du r´seau : u e Nφ 2 F (θ. si on suppose dans un premier temps que αn = e−j(n−1)ϕ . 2 Quel d´phasage ϕ doit-on appliquer entre chaque antenne pour que la direction du lobe e principal soit 60 ◦ ? 3. alors le champ total devient : e − → − → E = E1 N e n=1 −j(n−1)ϕ j(n−1)kl e − → = E1 N −1 e n=0 −jnϕ jnkl e − → = E1 N −1 ejn(−ϕ+kl) n=0 qui est la somme des termes d’une suite g´om´trique. e e a e λ e 1. ϕ) pour diff´rentes e e e e valeurs de N. Le champ total rayonn´ par le r´seau est la somme vectorielle de chaque champ ´mis indivie e e duellement par les N antennes : − → E = N − → − → αn E n = E 1 N αn ej(n−1)kl . E = N E0 F . e 2. d.

4) Tracer le diagramme de rayonnement S(θ) obtenu. . ··· . θ0 ]. . 2 2 On peut chercher les coefficients αn en interpolant ”au mieux” le gabarit id´al souhait´. −θ0 ∪ θ0 . . et la matrice (Q × N) e   M =   1 ejϕ1 ejϕ1 1 ejϕ2 ejϕ2 . a e R . · · · ej(N −1)ϕq      o` ϕn = kd cos(θn ) u alors le syst`me ` r´soudre s’´crit : MX = G. e e e Ex. 9).108 Hz et sont distantes de d = e a e 1) D´terminer l’angle θ0 . . e 2) D´finir la matrice M. . . le diagramme de rayonnement du r´seau est donn´ par e e e e S(θ) = n=1 αn e jnϕ avec ϕ = kd cos(θ) On choisit un r´seau de N = 10 antennes. . c’este a `-dire focaliser la puissance ´mise dans [−θ0 . e a e e e a N 2 Une fois les coefficients αn d´termin´s. αN qui permettent d’avoir un diagramme e de rayonnement respectant au mieux le gabarit suivant :   F (θ) = 1 pour θ ∈ [−θ0 . θ0 ] π π  F (θ) = 0 pour θ ∈ − . . . . e λ . π 2 2 par Si on d´finit les vecteurs X = [α1 α2 · · · αN ]T et G = [g1 g2 · · · gQ ]T .. −θ0 ∪ θ0 . et Q = 100 points d’interpolation. voir help slash et TP1. . et se ”r´sout” ` l’aide de Matlab par X = M \ B.Exercice 3 On consid`re un satellite situ´ ` une distance de D = 20 000 km de la Terre (satellite e ea GPS). Morel R´seaux et synth`se de diagramme d’antennes e e 16/37 . et de mˆme le gabarit e e souhait´ : e 1 si θn ∈ [−θ0 . 2 ] en Q valeurs θn ∈ [− 2 : δθ : 2 ]. L’angle θ0 se d´termine directement par la relation trigonom´trique : sin(θ0 ) = e e R+D On souhaite d´terminer les coefficients α1 . . ainsi que la valeur des alimentations αn correspondantes. e Les antennes du r´seau fonctionnent ` la fr´quence f = 3. Y. S S θ0 θ0 T R ≃ 6 400 km On souhaiterait ´mettre ` partir de ce satellite principalement en direction de la Terre. 2 3) R´soudre le syst`me au sens des moindres carr´s (X = M \ B. jϕq jϕq 1 e e · · · ej(N −1)ϕ1 · · · ej(N −1)ϕ2 . e e π π π π On ´chantillonne les angles θ ∈ [− 2 . θ0 ] g(θn ) = gn = 0 si θn ∈ − π . α2 .

Y.3. • . e e e e e Remarque : Dans tous les d´veloppements pr´c´dents. c e Plus particuli`rement. . Morel R´seaux et synth`se de diagramme d’antennes e e 17/37 . e En fait. e La phase de chaque ´l´ment est dans ce cas uniquement fix´ par la g´om´trie ee e e e du r´seau (distance entre les ´l´ments dans le cas d’un r´seau lin´aire). e ee e e Cette solution est d’ailleurs sp´cifiquement mise en œuvre dans les antennes e de type Yagi-Uda (ou antenne-rˆteau) qui reposent sur le principe d’induction a mutuelle entre les ´l´ments proches. − → → φx = k δx · − − ϕx = kδx cos θ sin ϕ − ϕx r − − → → φy = k δy · r − ϕy = kδy cos θ sin ϕ − ϕy δy La formation en r´seau permet ainsi de mieux focalie ser la puissance globale ´mise. on peut utiliser un r´seau d’antennes en n’alimentant e e qu’un seul de ses ´l´ments. en utilisant des antennes dont le diagramme de rayonnement est nul dans la direction des ´l´ments voisins. le champ rayonn´ par une antenne quelconque induit des courants dans e les antennes voisines. R´seau bidimensionnel d’antennes e Le cas des r´seau bidimensionnels se traˆ d’une mani`re similaire. celui-ci alimentant les ´l´ments voisins par induction. C’est le cas par exemple d’un r´seau lin´aire ee e e d’antennes dipolaires dispos´es convenablement (voir partie I.. les interf´rences entre les antennes ont ´t´ n´glig´es : chaque antenne a ´t´ consid´r´e comme rayonnant un champ ee e e ee ee ind´pendamment des autres antennes. . modifiant ainsi d’une certaine fa¸on son alimentation r´elle. alors on obtient Nφx − → − φx +φy → 2 E = NM E0 ej 2 φx N sin 2 sin Mφy 2 φy M sin 2 sin avec. . e ıte e y x θ ϕ • . ee ee qui eux-mˆmes alimentent leurs voisins . .. rayonnement d’un e dipole). • • • • • • δx z Si on impose un d´phasage constant horizontalement e ϕx et verticalement ϕy . ee Une autre strat´gie peut consister ` ´viter les interactions parasites entre ane a e tennes.

Y. Morel R´seaux et synth`se de diagramme d’antennes e e 18/37 .

en fonction de N. e 3. e ea e oe La m´thode de Mont´ Carlo consiste ` tirer N points du plan. inscrit dans un carr´ de cˆt´ 2. e e e On pourra prendre pour commencer la fonction simple f (x) = x2 . pour laquelle on calcule 1 facilement I = . le ration N/n o` n est le nombre de points. e Commenter.A quelle condition un point de coordonn´es (x. et e qui. e e En probabilit´. entre l’approximation calcul´e par la m´thode de Mont´ e e e Carlo et la valeur exacte de π (donn´e par Matlab). e e Tracer l’erreur. N →∞ n Calculer alors une valeur approch´e de I. e x∈[0. la valeur approch´e de π trouv´e. Morel M´thode de Mont´ Carlo e e 19/37 .. retourne le ratio souhait´ (i. e e e e e e nombre de points dans le disque divis´ par le nombre de points total dans la carr´). soit π/4. parmi les N. e 1. Nous allons e e e e nous en servir dans ce TP pour approximer le nombre π (aire d’un cercle de rayon 1). e lim Utiliser cette m´thode pour d´terminer num´riquement. la e e e e fonction d’erreur : x 2 erf(x) = e−t dt 0 Y.e.Ecrire une fonction Matlab MonteCarlo qui prend un seul param`tre N en argument. e Que vaut la limite de ce ratio lorsque N devient grand ? N = . Calcul de l’int´grale d’une fonction quelconque e Plus g´n´ralement. la m´thode de Mont´ Carlo est une m´thode stochastique de calcul d’int´grale.Ecrire un script Matlab qui trace en fonction du nombre total de points N. en fonction du nombre de points N souhait´s. 3 Dans la suite. apr`s avoir g´n´rer N points al´atoirement dans le carr´. e e V´rifier que l’on obtient bien une approximation de π. qui sont sous la courbe e u repr´sentative de f . on note M = sup f (x) (M = 1 pour la fonction carr´). le ratio du nombre de points situ´s dans le disque sur le nombre total de points e e tend. o` f est une fonction connue u mais dont l’int´grale peut-ˆtre tr`s difficilement calculable. e e e e e e 1 On cherche ` d´terminer la valeur de l’int´grale I = a e e 0 f (x) dx.TP 4 M´thode de Mont´ Carlo e e Approximation de π La m´thode de Mont´ Carlo est une m´thode probabiliste de calcul d’int´grale. On consid`re un disque de rayon 1 centr´ ` l’origine. y) est-il situ´ dans le carr´ ? dans le disque ? e e e 2.1] Ecrire une fonction Matlab Montecarlo Int qui fournit. puis repr´senter graphiquement.. situ´s dans le carr´. lorsque N devient grand vers le ratio aire du disque sur aire du carr´. al´atoirement (fonction Matlab e e a e rand).

Morel M´thode de Mont´ Carlo e e 20/37 .Y.

de Julia et enfin le triangle (ou ´ponge) de Sierpinski. Chez les v´g´taux (d’o` l’id´e d’ailleurs de compression d’image fractale). . On rep`re dans l’image les parties qui pr´sentent une certaines similarit´. irr´gulier. jeux vid´os . ont trouv´ depuis de nombreux champs e e d’applications. e e Fractale de Mandelbrot Pour chaque point du plan M(x. voir le e e u e choux Romanesco pour s’en convaincre ! Chez l’homme (ou autres animaux) dont les organes peuvent ˆtre mod´lis´s efficacement en utilisant des g´om´tries de type fractale. lim |un | = +∞. n→∞ Y. Julia et Sierpinski Les fractales sont des courbes ou surfaces de forme irr´guli`re e e ou morcel´e qui se cr´e en suivant des r`gles d´terministes ou e e e e stochastiques. l’Univers semble e e a e avoir une organisation fractale. e e e e e – En physique. mais aussi dans d’autres structures stellaires telles que les ´toiles. la suite (un ) ainsi d´finie diverge. i. y). Les fractales (plus pr´cis´ment dans ce cadre fractales IFS pour Syst`mes e e e de Fonctions It´r´es) permettent de d´crire des paysages naturels. qui signifie a bris´. En ne stockant que ces informations. celle de Mandelbrot e e e e (initiateur mˆme des fractales). e L’ensemble de Mandelbrot est justement l’ensemble des points M tels que la suite (un ) ne diverge pas. initialement objets purement math´matiques. nuages e de gaz. Le terme “fractale” est un n´ologisme cr´´ par Benoˆ Mane ee ıt delbrot en 1974 ` partir de la racine latine fractus.avec une e e e grande fid´lit´. Morel Fractales de Mandelbrot. De nombreux exemples de g´om´trie fractale peuvent ˆtre trouv´s dans la e e e e nature. donc certaines valeurs de x et y. e e Ces objets fractals. e e – En biologie. un+1 = u2 + z n Pour certains points M. ..TP 5 Fractales de Mandelbrot. des nuages . on note z = x + iy. la taille e e e de l’image peut-ˆtre nettement r´duite. . Julia et Sierpinski 21/37 . Pour en citer quelques-uns : – En informatique. La structure de notre galaxie se retrouve ` l’´chelle sup´rieure a e e des amas de galaxie. e e e e e c’est-`-dire des parties qui peuvent se d´durie les unes des autres par des transformations a e g´om´triques (changement d’´chelle. On se propose dans ce TP de g´n´rer trois types de g´om´trie fractales. rotation). . et on d´finit la suite de nombres e u0 = 0 complexes (un ) par . .e. . Les proprit´s d’auto-similarit´ (r´p´tition ` toutes les ´chelles de mˆme moe e e e a e e tifs) des fractales ont aussi donn´ des id´es aux physiciens : ` grande ´chelle. e e La compression fractale est tr`s utilis´e dans les animations en “temps r´el” : images de e e e synth`se.

afficher l’ensemble des points obtenus. Morel Fractales de Mandelbrot. L’ensemble de e Julia est justement l’ensemble des points M du plan.01. Seuil = 2 e Fractale de Julia Soit c un nombre complexe quelconque : c ∈ C. e e a e Finalement.112 − 0. e ca e Repr´senter graphiquement le contenu de la matrice Mat (fonction imagesc). 0) et C(0. On fera varier les valeurs de x et y (deux boucles for) de −2 ` 2 par pas a respectivement de δx et δy . Le principe est le mˆme que pour l’ensemble de Mandelbrot. c = 0. ou une valeur n inf´rieur dans le cas contraire). R´it´rer N fois ` partir de l’´tape 2 (N = 20 000 par exemple). Nmax = 30. 4. n→∞ Travail ` r´aliser.e. B ou C au hasard. On note z = x+iy.Travail ` r´aliser. uN max . a e a Choisir un des trois sommets A. B(1. avec de plus. Stocker dans une matrice X l’abscisse de P . u0 = z On d´finit alors la suite de nombres complexes (un ) par e un+1 = u2 + c n De mˆme que pour la suite de Mandelbrot. si c’est le cas. 2. Stocker alors dans une matrice Mat le nombre de termes calcul´s pour cette suite (la valeur e Nmax si la suite est toujours rest´e en de¸` du seuil. Nous allons balayer le plan ` la recherche des points appartenant ` l’ena e a a semble de Mandelbrot. L’algorithme permettant d’obtenir le triangle de Sierpinski est le suivant : 1. calculer jusqu’` Nmax termes a de la suite (un ) : u1 . cette suite peut diverger ou non. et on pourra se passer e du calcul des derniers termes de la suite. et dans une e matrice Y l’ordonn´e de P .2312i. Y. . Julia et Sierpinski 22/37 . c = −1 + 0. e Triangle de Sierpinski La construction du triangle de Sierpinski peut se faire de mani`re g´om´trique. donc chaque valeur de x et y. 0). Red´finir le point P par P = M. e On pourra prendre les mˆmes valeurs num´riques pour pr´c´demment. Pour chaque position du point M. pour le e e e e param`tre c les valeurs suivantes : c = −1. e On pourra prendre les valeurs num´riques suivantes : δx = δy = 0. Apr`s le calcul de chaque terme.. donc des valeurs de z. i. Calculer le point M milieu du segment [P S]. . u3 . verifier si |un | est plus e grand que la valeur Seuil . e 5. 3. tels que la suite ne diverge pas. seul le calcul a e e des termes successifs de la suite diff`re quelque peu. 1). y) un point du plan. On nommera S ce point par la suite. Chosisir un point P au hasard ` l’int´rieur du triangle ABC (` l’aide de la fonction rand).64i. et M(x. . u2 . lim |un | = +∞. e e e Soit trois points A(0. on consid`rera que la suite diverge.

le ratio taille des deux tableaux “compress´s” e sur taille du message initial. e e e Il arrive fr´quement qu’un texte donn´ pr´sente des r´p´titions : des caract`res utilis´s bien sˆ r e e e e e e e u (seulement 26 lettres composent notre alphabet.. du codage binaire d’un texte alphanum´rique (en fran¸ais par e c exemple.Calculer le taux de compression obtenu. i. i. Morel Compression de donn´es e 23/37 . Cette suite e de nombres provient. voir e e s´quences de mots. on utilise un codage de chaque lettre sur 8 bits. e 3. et on enregistre dans un tableau la position dans ce message de ces occurences. On peut ainsi coder diff´remment 2 = 256 caract`res : c’est le code ASCII. par exemple. on recherche a e e dans le message les autres occurences de ce mot. et la liste des positions de chaque mots du u e e dictionnaire dans le message original. e e On pourra commencer par cr´er le dictionnaire comme ´tant une matrice (ou tableau) ` e e a n lignes (une pour chaque mot) et 8 colonnes . le message peut se construire en choisissant al´atoirement des mots dans ce dictione naire. i. une s´quence de 8 chiffres e e e 8 binaires. on l’ajoute ` au dictionnaire (liste des mots du message. 4. sans r´p´tition).Ecrire une fonction Matlab g´n´rant un message de N mots cod´s sur 8 bits (soit un message e e e de 8N bits. e 1.Ecrire une fonction Matlab Compress qui permet de compresser ce message. Sous r´serve d’un nombre assez important de r´p´titions des mots du dictionnaire utilis´.).Ecrire une fonction Matlab DeCompress permettant. ou dictionnaire. n’utilisant (ou r´p´tant) que n mots d’un dictionnaire. e 2.e. soit N e e e e e octets. Chaque caract`re du texte. chaque ligne de ce tableau ´tant une suite e al´atoire de 8 chiffres binaires.. On r´it`re ensuite le proc´d´ ` partir du mot suivant dans le message qui n’est pas encore e e e ea dans le dictionnaire. une e e m´thode de r´duction du nombre d’octets utilis´s pour coder un message. que l’on concat´nera. num´rique est une suite de nombres binaires (de 0 et 1).. la e e e e taille de ces deux listes peut-ˆtre bien moindre que celle du codage direct du message.TP 6 Compression de donn´es e Un message. e Ensuite. Le principe de cette fonction est le suivant. e e Ainsi un texte alphanum´rique compos´ de N caract`res est repr´sent´ par N × 8 bits. e Ce message ´tant construit.).. au total). le deuxi`me contient la position e e de chacun des mots du dictionnaire dans le message e On pourra construire une fonction interm´diaire retournant le n`me mot du message. on consid`re par la suite que ce dictionnaire est inconnu . Le but de ce TP est de mettre en œuvre une m´thode de compression de donn´es. on code le message suivant deux listes : la liste des mots utilis´s e (bien sˆ r sans r´p´tition cette fois). e a e En g´n´ral... les lettres de l’alphabet (y compris les caract`res sp´ciaux : e e e espaces. On part du premier mot du message (premier octet). e C’est cette observation qui est ` la base des m´thodes de compression : au lieu de coder a e un message par une suite de nombres binaires directement issue du codage de chaque caract`re e successif constituant le message.) sont remplac´s par un nombre ` b chiffres constitu´ de 0 et 1. ou N octets. On cr´e ainsi deux tableaux : le premier est le dictionnaire... ` partir des deux tableaux pr´c´dants a e e de reconstruire le message. ou texte. et s’assurer ainsi que l’on a bien un codage ´quivalent du message e original. virgules. Y.. seul le e e message de N mots est donn´. mais aussi r´p´titions de mots complets.e.e.

Morel Compression de donn´es e 24/37 .Y.

ıt – calculer num´riquement la solution de cette ´quation mˆme lorsque le second membre f ne e e e permet pas de le faire th´oriquement. L] par Nx segments de longueur identique δx = e e L/Nx : [0. L] pour un temps assez grand) ? – Comment ´volue le profil de temp´rature en fonction du temps. e e e e e T0 en x = 0 et TL en x = L. on sait r´soudre th´oriquement cette ´quation. On note pour cela : e e a Tn = T (nδx ) . On a ainsi ´chantillonn´ le segment [0. du milieu suppos´ ` temp´rature nulle initialement. Y. x ∈ [0. L] en Nx + 1 points xn = nδx . est la source de chaleur u e e fournie au milieu au cours du temps. L] et t ∈ [0. t) = f (x) est ind´pendante du temps. a e a e e ∂T et que. t) = e e f (x). t) la temp´rature dans le milieu ` l’abscisse x et ` e e e a a l’instant t.e. t) d´pendante du temps. ou une e e e fonction f (x. quelle est la temp´rature T (x) pour e e x ∈ [0. t). pour simplifier l’´tude. Selon la fonction source f que l’on impose. 1. a e – Quel est le profil de temp´rature final dans le milieu (i. L] → [0 : δx : L]. ∂t ∂x2 (1) o` f (x.TP 7 Simulation de la diffusion thermique dans un mat´riau e L’objectif de ce TP est la simulation de la diffusion thermique dans un milieu. e e Le probl`me est le suivant : on impose une temp´rature fix´e et constante aux deux ext´mit´s. +∞[. Approximation de la temp´rature ` l’´quilibre e a e On suppose dans ce paragraphe que la source de chaleur est ind´pendante du temps : f (x. e e On cherche alors ´valuer la temp´rature ` chacun de ces points. Morel Simulation de la diffusion thermique dans un mat´riau e 25/37 . Dans ce cas l’´quation de la chaleur (1) est une ´quation diff´rentielle du second e e e ordre ` coefficient constant : a T ′′ (x) = f (x) . e Discr´tisation On discr´tise le segment [0. par cons´quent. ce qui est possible dans ce cas car e on connaˆ la solution attendue . L]. depuis la temp´rature nulle e e e impos´e initialement jusqu’au profil final calcul´ pr´c´demment ? e e e e – Comment d´tecter l’´ventuelle pr´sence d’une source de chaleur ` l’int´rieur du milieu ? e e e a e Mod´lisation du probl`me On note T (x. e Dans ces conditions. ∂t = 0 : la fonction temp´rature n’est plus qu’une fonction d’une seule e e variable T (x). On cherche alors ` r´soudre num´riquement l’´quation de la chaleur (1) en r´gime stationnaire a e e e (` l’´quilibre) . On suppose ce milieu 1-dimensionel (un cˆble par exemple). La diffusion thermique dans un milieu est r´gie par l’´quation dite “de la chaleur” : e e ∂2T ∂T − = f (x. et ´ventuellement ea e e la pr´sence d’une source de chaleur d´crite par une fonction f (x) ind´pendante du temps. cela revient ` consid´rer que la temp´rature ne varie plus en fonction du temps. On d´crit a e e ainsi g´om´triquement ce milieu par le segment [0. Le e e e but de la simulation est n´anmoins double : e – s’assurer que le code programm´ fonctionne correctement. t). on peut chercher ` r´pondre aux questions. ´ventuellement f (x.

au choix : toute fonction d´finie sur [0. u e Application num´rique On pourra prendre les valeurs num´riques (pour commencer. T (x. dx 2 dx 2 2. ∆t ] e e e e en Nt + 1 points : [0 : ∆t ] → [0 : δt : ∆t ]. . e e De la mˆme fa¸on.n + Ti−1. e Y.j ∼ . La e discr´tisation de la d´riv´e seconde par rapport ` x peut se faire identiquement ` celle utilis´e e e e a a e pr´c´demment. On note alors. On d´coupe l’intervalle temporel d’´tude [0.n + δt fi. α = 0. + dx 2 dx 2 2 d Tn δx d 2 Tn + . e e e On effectue la mˆme op´ration sur les temps. dx 2 dx 2 d Tn δx d 2 Tn .0001.j = T (iδx . ∂t δt On obtient alors la nouvelle relation de r´currence : e δt Ti. :) = α et .La formule de Taylor ` l’ordre 2 nous donne.) suie e vantes : L = 1.1.Approximation de l’´volution e temporelle du profil de temp´rature e On cherche maintenant ` ´tudier l’´volution du profil de temp´rature au cours du temps : le ae e e e a terme ∂T n’est plus nul et la temp´rature est fonction ` la fois de l’abscisse x et du temps t. t).n − 2Ti.j = f (iδx . β = 100. e a (2) δ2 d 2 T dT (nδx ) + x 2 (nδx ) . jδt ). on a e Tn−1 ∼ Tn − δx puis. δx = 0. e Tn+1 + Tn−1 − 2Tn d2 T 2 ∼ 2 δx dx Si on pose alors fn = f (nδx ). :) = β o` α est donc la temp´rature en x = 0 et β celle en x = L. on obtient alors la relation de r´currence : e Tn+1 = δx fn + 2Tn − Tn−1 On pourra prendre comme donn´es initiales : e T1 = α (une temp´rature en degr´) et. Diffusion thermique . apr`s addition de ces deux relations. T (end. .n+1 = Ti. f (x) = . on ne peut pas imposer une temp´rature aux deux e e extr´mit´s ` la fois du milieu : la relation de r´currence (2) permet en effet de calculer toutes les e e a e temp´ratures de proche en proche ` partir de T0 et T1 . et de mˆme pour la source de chaleur : fi.j − Ti. [0 : L] → [0 : δx : L]. T2 = T1 (pas de vitesse intiale de propagation) e e On remarque qu’avec ce mod`le statique. dans la limite o` le pas δx est suppos´ assez petit. Morel Simulation de la diffusion thermique dans un mat´riau e 26/37 (3) . a u e Tn+1 = T ((n + 1)δx ) ∼ T (nδx ) + δx soit Tn+1 ∼ Tn + δx De mˆme.n ) δx ` laquelle il faut ajouter les conditions en x = 0 et x = L : a T (1. . Ti. L]. . ∂t La discr´tisation en x se fait comme pr´c´demment en Nx + 1 points. la d´riv´e par rapport au temps peut-ˆtre approch´e par e c e e e e ∂T Ti+1. jδt ). δt = 0.n + 2 (Ti+1.

il faut e e e la compl´ter de conditions initiales (´tat et vitesse de l’onde ` l’instant initial t = 0).. e e e Le but de cette partie est de r´soudre num´riquement sous Matlab la propagation d’une onde. u e Cette grille ´tant donn´e. ˜ les fonctions h.TP 8 Simulation monodimensionnelle de la propagation d’une onde La propagation d’une onde. t) = 0 .j := f (xi . e a Cette ´quation n’est pas suffisante pour d´crire compl`tement la propagation de l’onde . le domaine g´om´trique ´tudi´ : e e e e ∂2f ∂2f (x.T /δt . 0) = h(x) . h et g ´tant des donn´es du probl`me. et. Morel Simulation monodimensionnelle de la propagation d’une onde 27/37 . T ] : soit les deux suites {xk } = {k δx }k=0. de r´soudre num´riquement le jeu d’´quations (4) et (5). c’est-`-dire une discr´tisation e e a e de l’ensemble [0 . t) pour x ∈ [0 .L/δx . 0)  ∂f ˜ (5) (x. Y. ∂t2 ∂x (4) o` c d´signe la c´l´rit´ de l’onde dans le milieu consid´r´ (c = 3. ∀x ∈ D  f (x. b[. ∀x ∈ D  ∂t  f (x. est r´gie par l’´quation de Hele e e e mohltz. ou de l’amplitude d’un champ ´lectrique ou magn´tique en polarisation TE e e ou TM. c’est-`-dire e e e lorsque le domaine D est un intervalle : D =]a. et la fonction f d´signe l’amplitude de l’onde au point x et ` l’instant t. t) − c2 2 (x.s−1 pour la lumi`re dans le u e ee e ee e vide.108 m.e. nous allons utilis´ la m´thode e e e num´rique dite des diff´rences finies. On e e a notera fi. L]. par exemple). e e a i. acoustique ou ´lectromagn´tique. ∀x ∈ ∂D . ainsi que des e e a conditions au bord (comportement de l’onde lorsqu’elle rencontre les limites physiques du domaine ´tudi´). e e On se donne tout d’abord pour cela une “grille” r´guli`re de calcul.. t) = g(t) . ∀t > 0 et. On s’interesse alors ` l’onde f (x. Discr´tisation de (4) : Pour approximer l’onde solution de (4). o` δx et δt d´signent respectivement le pas de la grille en x (espace) et en t (temps). e e Ces conditions peuvent se formuler suivant :  = h(x) . Discr´tisation de l’´quation de Helmohltz (4) e e e e On cherche une solution approch´e de (4) en 1-D : le domaine g´om´trique dans lequel l’onde e peut se propager est le segment [0 . tj ) . {tk } = {k δt }k=0. L] × [0 . pour t > 0 et x ∈ D. on cherche ` calculer les valeurs de f aux noeuds de la grille. dans le cas simple 1-D.. L] et a t ∈ [0 . T ]. La cas 1-D correspond par exemple ` la simulation du mouvement d’une corde (de piano ou de a guitare par exemple)..

j 1 ∼ 2 [fi+1.La deuxi`me ´tape est l’approximation des d´riv´es partielles de f ` l’aide des ´l´ments fi. t). Travail ` r´aliser a e Initialisation On prendra (pour commencer) les valeurs num´riques suivantes : c = 1m. t) + O(δx ) . par exemple pour la d´riv´e selon x : a e e 2 δx ∂ 2 f ∂f 3 (x. avec e e e e e ˜ x0 = L/2 et r = L/5. 1) = h(:) . L’initialisation s’impl´mente alors simplement suivant : e F (:.j 3 fi+1. Y.j ] . On utilisera la fonction h(x) d´finie pr´c´demment pour d´finir l’´tat initial de l’onde. 1) + δt ht (:) . e e e e a ee Cela s’effectue ` l’aide de la formule de Taylor. ` l’instant t = 0. on obtient la relation de e r´currence : e fi. t) . 2 ∂t δt et.j+1 = −fi. ∀t se traduit quant ` elle par : a F (1. et. approxim´e aux point (xi . initiale donn´e a l’onde. 2) = F (:. on pourra prendre g = 0. 2 ∂x δx En combinant ces deux expressions avec l’´quation de Helmohltz (4). t) + 2 ∂x 2 ∂x ou.j+1 + fi.j = fi.j . et L = 1m. e On obtient.j ] . ou la vitesse. On d´finit ainsi la grille de calcul : (xi . e l’onde y sera totalement r´fl´chie. Morel Simulation monodimensionnelle de la propagation d’une onde 28/37 . et.j au moyen des ´quations (5).j + fi−1. et o` x0 ∈ [0. On pourra utiliser la fonction e e a h. ∂ 2 fi. o` ht (x) est la vitesse initiale de l’onde (on pourra prendre pour commencer ht = 0).j .j − 2(1 − γ)fi. F (:.j ∼ 2 [fi. e −3 δx = δt = 10 m. On pourra choisir e e ` ˜ pour commencer h = 0.s−1 . F (end.j − 2fi. e e La fonction h(x) mod´lise l’´tat initial de l’onde. Cette condition mod´lise une paroi infiniment dure . t) = f (x = L. tj ).j + δx + + O(δx ) .j−1 + γfi+1.j + γfi−1.j−1 − 2fi. u La condition au bord : f (x = 0. tandis que l’on imposera h(x) = 0 (vitesse initiale nulle). infiniment r´guli`re : e e  1  A exp − . tous calculs fait : 1 ∂ 2 fi. :) = 0 . :) = 0 . tj ) ∈ [0 : δx : L] × [0 : δt : T ]. t) = f (x. ailleurs . soit γ = 1. o` A = exp(1/r 2 ) permet de normaliser h.j δx ∂ 2 fi. t) + δx (x. en d’autres termes 2 ∂fi. (6) 2 2 o` γ = c2 δt /δx . ˜ La fonction h mod´lise l”’impulsion”. L] est le centre de la “cloche” h(x) et u u r > 0 sa largeur. ∂x 2 ∂x2 On peut de cette mani`re approximer les d´riv´es secondes de f par rapport ` x et t (en consid´rant e e e a e aussi par exemple le d´veloppement de Taylor de f (x − δx . sera alors stock´e dans une matrice rectane e gulaire Fi. a e Pour commencer. T = 1s. t) et en sommant les relations). f (x + δx . e La solution f (x. pour |x − x0 | ≤ d h(x) = |(x − x0 )2 − r 2 |  0 .j . u Il ne reste plus alors qu’` initialiser la suite fi.

On pourra. n)). par exemple.j r´cursivement. pour x = 0 et x = L . e Visualisation du r´sultat Le comportement complet de l’onde est contenu dans la matrice F : e chaque colonne contient l’amplitude de l’onde ` un instant donn´. a e e e La condition au bord pourra elle aussi ˆtre modifi´e en la condition dite de Neumann : e e ∂f (x. a Suite de l’´tude. ∂x Y. Le calcul peut se faire ` e e e a l’aide de deux boucles imbriqu´es : ` chaque pas de temps (i. chaque ligne correspondant ` a e a une abscisse.. On pourra.. s’interesser au cas ou deux ondes existent initialement. par exemple. regrouper ces graphiques successifs dans une video e ` l’aide des commandes getframe. et avifile. e L’amplitude de l’onde au ni`me pas de temps s’affiche alors simplement par la commande plot([0 : δx : L]. pour chaque j).e. F (:. Comme il s’agit d’un probl`me d’´volution. et qui vont donner lieu ` des ph´nom`nes d’interf´rences (constructives ou destructives). on calcul tout les e a Fi. On peut simplement visualiser la propagation de l’onde en utilisant la commande imagesc(F). t) = 0 . Morel Simulation monodimensionnelle de la propagation d’une onde 29/37 . il peut aussi ˆtre interessant de repr´senter ces e e e e trac´s successivement. et modifier les conditions initiales et e e e e la condition au bord.R´currence Il s’agit ici d’impl´menter la relation de r´currence (6). On peut reprendre l’´tude pr´c´dente.

Y. Morel Simulation monodimensionnelle de la propagation d’une onde 30/37 .

j u(xi .j + ui+1. Ly]. Ly /2) de la source dans notre u e grille de calcul. γx = u 2 c2 δt c2 δ 2 .j u2 = u1 + i. et s(x. Ly /2). On notera par la suite nx . situ´e en e e (Lx /3. On s’interesse alors ` l’amplitude a de l’onde u(x.TP 9 Simulation bidimensionnelle de la propagation d’une onde Ce TP fait suite au pr´c´dent et propose de simuler la propagation d’une onde dans une cavit´. Ceci se traduit par u2 = u1 . y) et ` l’instant t. yj .j−1 + ui.j i−1.j+1 − 2ui. Morel Simulation bidimensionnelle de la propagation d’une onde 31/37 . puis sa diffraction ` travers une fente. t) la u e ee e ∂x ∂y source. y. Afin de traiter num´riquement cette ´quation. Lx ] → [0 : δx : Lx ] . on pose uk = e e e e e i. T ] → [0 : δt : T ].j + γy ui.j + u1 u + u1 i+1. c la c´l´rit´ de l’onde dans le milieu. t) pour x ∈ [0 .j−1 (3) Source La source est une source sinuso¨ ıdale d’amplitude 1 et de fr´quence ν = 2 Hz. T ]. des y. et donc dans la relation de r´currence pr´c´dente par : e e e i. alors u est solution de l’´quation e a e ∂2u − c2 ∆u = s(x. t) d´signe l’amplitude de l’onde e e e au point d’espace de coordonn´es (x. ny et nt les nombres de points utilis´s pour les discr´tisations suivant e e respectivement l’axe des x.j i. A chaque it´ration temporelle. e e On cherche une solution approch´e de l’´quation (1) en 2-D : le domaine g´om´trique dans e e lequel l’onde peut se propager est le rectangle [0 . Ly ] et t ∈ [0 . Discr´tisation de l’´quation des ondes De mˆme que dans le TP pr´c´dent. Lx] × [0 .j + γx uk i.j − 2ui. sx = nx /3 et sy = ny /2 d´signent les indices de la position (Lx /3. yj et tk ´tant des points de notre grille de calcul.sy + sin(2πνkδt ) s sx .j − 2ui. et γy = 2t 2 δx δy Initialisation Pour initialiser la relation de r´currence pr´c´dente. y.j i. y ∈ [0 . y. tk ).j i. on suppose que le milieu est e e e au repos : la vitesse intiale de l’onde est nulle. Ly ] → [0 : δy : Lx ] . y.j γx 1 γy 1 1 1 ui−1.j+1 − 2ui. et des temps t. a Cette propagation est r´gie par l’´quation des ondes : si u(x. t) ∂t2 (1) ∂2u ∂2u o` . les xi .j 2 2 i. [0 .j (2) o` . le domaine est d´coup´ en une grille de calcul : e e e e [0 . TP pr´c´dent) nous permet alors de formuler l’´quation e e e des ondes (1) sous forme discr`te selon la relation de r´currence : e e k−1 k k k k k uk+1 = 2uk − ui. e e e dans l’espace libre. [0 . l’amplitude de l’onde doit donc ˆtre modifi´e suivant : e e e uk+1y = ukx .j + i. e L’utilisation des formules de Taylor (cf. Lx ]. ∆u = 2 + 2 d´signe le laplacien de u. Y.s (4) o` .

e e Pour pallier cet inconv´nient. : . puis grˆce ` a a l’initialisation (3). e Ensuite. et 1 ≤ k ≤ nt . que l’on compl´tera pour e e e prendre en compte la pr´sence de la source sinuso¨ e ıdale donn´e par la relation (4). e On observe alors dans le r´sultat de nos calculs des r´flexions parasites le long des bords de e e notre domaine. 1. k + 1) = u(2. k + 1) = u( : . a Diffraction par une fente simple On simule la pr´sence d’une fente simple par un e “masque” : On impose donc. On pourra en e e particulier observer les ph´nom`nes de r´flection sur les parois. Morel Simulation bidimensionnelle de la propagation d’une onde 32/37 . pour Conditions aux Limites Absorbantes) . ny − 1. k) u(nx . : ) = 0. n´anmoins les calculs num´riques requi`rent une e e e d´limitation de ce domaine. Iy . : . Y. on impl´mentera la discr´tisation de l’´quation des ondes (2). Diffraction par une double fente : interf´rences e Le principe est le mˆme que pour la mod´lisation e e de la pr´sence d’une fente simple. e Ces conditions absorbantes peuvent ˆtre simul´es de la mani`re suivante : e e e u(1. j.j pour des indices i et j correspond ` la position de l’obstacle. avec Ix et Iy des indices correspondants ` la posia tion de la fente dans la grille de calcul. e Ce programme ainsi contistu´ simule la propagation d’une onde dans une cavit´. et les ph´nom`nes d’interf´rence e e e e e e qui s’en suivent. Lx ] × [0 . on peut introduire des conditions dites absorbantes au bord e de notre domaine (CLA. : ) = 0. : . k + 1) = u( : . et e i. Iy . k) u( : . k) (5) Pr´sence d’un obstacle e On peut simuler la pr´sence d’un obstacle en imposant uk = 0 pour tout k (tout instant). k) pour 1 ≤ i ≤ nx . quoique expliquables physiquement. : .R´flections parasites contre les bords du domaine e Le domaine de calcul [0 . 2. Pour cela. k) u( : . ny . k + 1) = u(nx − 1. on commencera par initialiser les valeurs de la matrice u (zeros). la e e prapagation ´tant suppos´e se faire en espace libre (et donc infini). a e 1 ≤ j ≤ ny . n’ont pas ici lieu d’ˆtre. de mani`re ` ´liminer ces e ae r´flexions parasites. Ces r´flexions. u(Ix . avec Ix et Iy des indices correspondants ` la posia tion de la fente dans la grille de calcul. Ly ] a ´t´ introduit ici artificiellement : l’´quation des ondes ee e est valable dans tout l’espace (espace libre) . Travail ` r´aliser Le but du programme est de calculer les valeurs u(i. e La fente double est introduite par l’interm´diaire e d’un “masque” : u(Ix .

δy = Ly /200. Les bords du domaine sont “transparents” vis-`-vis des ondes.On compl´tera ensuite ce mod`le et ces simulations en int´grant les conditions aux limites e e e absorbantes donn´es par les relations (5) : on obtient une simulation de la propagation en espace e libre. et les ph´nom`nes d’interf´rences. T = 10 s. e e e Valeurs num´riques On prendra (pour commencer) les√ e valeurs num´riques suivantes : c = e 2 2 δx +δy 10m. et les interf´rences parasites a e ont ´t´ supprim´es. Y. δx = Lx /200. ee e Enfin. Lx = Ly = 100 m. on pourra ajouter une fente simple ou double et ainsi observer des ph´nom`nes de e e diffraction d’onde par une fente.s−1 . δt = 2c . Morel Simulation bidimensionnelle de la propagation d’une onde 33/37 . ν = 2 Hz.

Morel Simulation bidimensionnelle de la propagation d’une onde 34/37 .Y.

On cherche ` mod´liser la propagation d’ondes dans un m´lange liquide-gaz. en e notant h = a + b. c’et-`-dire e a (pression) × (volume) = Constante × (nombre de mol´cules de gaz) e soit. Le bilan Fi des forces s’exer¸ant e e a c sur un ´l´ment de liquide centr´ en xi est la somme des pressions exerc´es ` droite et ` gauche par ee e e a a le gaz. compressible. La masse de Si ´tant ρb. et que le gaz. On s’int´ressera ici ` une mod´lisation e e e a e mono dimensionnelle de cette situation : on consid`re sur le segment [0. On consid´rera que N s’´crit β(a + b) e e a e e o` β est le nombre de mol´cules de gaz par unit´ de longueur du m´lange. respectivement). et v = du ) dt dt Y. pour lequel toutes e e e e e e e les bulles ont mˆme taille b. · · · . c’est-`-dire.TP 10 Propagation d’ondes Exemple de contrˆle non-destructif o Mod`le physique.Exemple de contrˆle non-destructif o 35/37 ′′ . dans ce cas. de telle sorte que la masse d’un “segment” Si centr´ en e e xi est ρb. P V = kN . d’apr`s le mod`le pr´c´dent. Xi = ih. vi = u′i la vitesse de Si . et on prend un nombre e e e de mol´cules de gaz dans chaque poche constant ´gal ` N. Morel Propagation d’ondes . e Equation d’´volution. u2 . o` le “volume“ repr´sente en fait une longueur dans le cadre mono dimensionnel. On note xi = Xi + ui la position du centre de Si (i`me segment). e gaz b a X0 = 0 Xi Xn+1 = L liquide On note ρ la masse lin´ique du liquide. · · · . · · · . la relation fondamentale de la dynamique s’´crit donc e e . e a e e On suppose que le liquide est incompressible. de e telle sorte que l’´tat d’´quilibre correspond ` ui = 0 pour tout i. Le gaz pi´g´ entre deux segments successifs est suppos´ ob´ir ` la loi des gaz parfaits ` e e e e a a temp´rature constante. repr´sent´ sch´matiquement sur la figure pr´c´dente. X0 = 0. On suppose les u e deux extr´mit´s fixes (x0 et xn+1 positionn´s en 0 et L. On note u = (u1 . se trouve sous la forme de petites bulles qui contiennent le mˆme nombre de mol´cules. Xn+1 = (n + 1)h = L . a e e e e Fi = kβh 1 1 − a + ui − ui−1 a + ui+1 − ui ρbui = Fi . v le vecteur des vi (donc vi = dui . comme illustr´ sur la figure ci-dessous. Ce syst`me liquide/gaz u e e e e admet un ´tat d’´quilibre. X1 = h. un ) le vecteur des inconnues. Les positions des centres des segments fluides sont. L] une alternance de gaz e rt de liquide.

on va agir sur la position du point x0 . ` l’´quation aux d´riv´es partielles sur u (en remarquant que a e e e b/h = 1 − α) ∂2u kβ =0. On discr´tise alors le e n syst`me (6) de la fa¸on suivante : e c  m m−1  un − un m  = vn  δt m+1 m 1 1  vn − vn  ρb  − . avec h = a + b et α = a/(a + b) = a/h. dt On cherche ` estimer la vitesse de propagation associ´e au mod`le d´crit ci-dessus. Son ´tude et sa simulation ont fait l’objet du TP e e e pr´c´dent. T ] : e t0 = 0 < t1 = δt < t2 = 2δt < · · · < tM = Mδt = T . La force Fi peut s’exprimer suivant Fi = kβh 1 1 − a + ui − ui−1 a + ui+1 − ui ui+1 − 2ui + ui−1 = kβh (a + ui − ui−1 )(a + ui+1 − ui ) 1 ui+1 − 2ui + ui−1 = kβh ui −ui−1 2 h α+ h α+ ui+1 −ui h . vn ) au temps tm . On identifie maintenant les expressions faisant intervenir les ui ` des d´riv´es en espace de u (cf.Exemple de contrˆle non-destructif o 36/37 . vn ) l’approximation de un (resp. l’´quation e ∂2u kβ u′′ − c2 2 = 0 . u Cette ´quation est l’´quation des ondes.1. e e Pour perturber le syst`me. ui << a + b). e e 2. on obtient. ρ(1 − α)u′′ − (α + u′)2 ∂x2 Si l’on fait l’hypoth`se suppl´mentaire que u′ reste petit devant α. qu’on ne supposera donc plus e fixe. = kβh m m − um δt a + un a + un+1 − um n−1 n Y. mais dont la position va ˆtre impos´e au cours du temps.e.   du = v   dt (6)  dv   ρb = F(u) . 2 2 h ∂x h h ∂x On aboutit donc. Propagation d’une onde dans un milieu homog`ne e e On se propose de r´soudre num´riquement le syst`me (6) pour mod´liser la propagation d’une e e e onde dans le milieu (sans faire. formellement. pour des a e e e ondes de faible amplitude (i. a priori d’hypoth`se de type “petits d´placements”). ∂x ρ(1 − α)α2 o` c est donc la vitesse de propagation de l’onde dans ce milieu. Morel Propagation d’ondes . e e On introduit une discr´tisation de l’intervalle en temps [0. m et on note um (resp. ∼ ∼ (Xi ) . On peut se ramener de cette fa¸on ` une ´quation diff´rentielle c a e e ordinaire (dans IR2n ). avec c2 = . m´thode des diff´rences finies) : a e e e e ui+1 − 2ui + ui−1 ∂2u ui − ui−1 ui+1 − ui ∂u ∼ (Xi ) . toujours formellee e ment. Vitesse de propagation et F le vecteur des forces Fi .

M . e e e On discr´tise comme pr´c´demment : ρn = ρ(Xn ). L = 1. b = 1. u e e e e m A partir de ces relations.e.ce qu’on peut finalement ´crire. a e e e Y. un milieu inhomog`ne. si n = 50 1 . e Reprendre les valeurs num´riques pr´c´dentes. avec µ = kβh/ρb. et les conditions en temps u e 0 −1 u0 = Un . ou masse lin´ique. um = 0 ∀ m = 0. Calculer num´riquement les um . donner une e e e m´thode permettant de e – d´tecter la pr´sence d’une inhomog´n´it´ dans le milieu . ρ n’est plus constante. e e e de mani`re plus ambitieuse. Calcul num´rique. 0 N o` λ(t) est donn´e.2 .0 . Morel Propagation d’ondes . N = 99 . sinon . 4. α = 0. et alors dans ce cas. u−1 = Un ∀ n = 0. N . en modifiant uniquement ρ suivant : e e e ρn = 2 . on peut alors calculer les un pour tout n et tout M.0 . n n 0 −1 o` les Un et Un sont des donn´es qui permettent de repr´senter l’´tat du syst`me au temps initial. h = 10−2 . Exemple de contrˆle non destructif o La probl´matique est maintenant la suivante : comment ` partir des seules donn´es et obsere a e vations en x = 0 et/ou x = L d´terminer si le mat´riau est homog`ne ou non.Exemple de contrˆle non-destructif o 37/37 . en ´liminant les v : e e 2 um+1 = 2um − um−1 + δt µ n n n a+ um n 1 1 − m m − un−1 a + un+1 − um n . e e e e e – calculer la profondeur (abscisse) ` laquelle se trouve cette inhomg´n´it´ . β = 1 . Les conditions aux limites en espace s’´crivent e um = λ(t) . · · · . soit ρ := ρ(x). i. On pourra prendre comme valeur des pae e n ram`tres : e ρ = 1 . · · · . Propagation d’une onde dans un milieu inhomog`ne e On consid`re maintenant que la densit´. e e e Modifier le programme de calcul pr´c´dent afin de permettre la prise en compte d’une densit´ e e e non constante. δt = 10−3 . T = 2 . k = 1. 3. d´terminer la profondeur ` laquelle est situ´ l’inhomog´n´it´ ? e e a e e e e A partir des calculs et observations effectu´s dans les deux paragraphes pr´c´dents.

Sign up to vote on this title
UsefulNot useful