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

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. <=... 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.3) les ´l´ments de la matrice M situ´s de la ligne 5 ` 9.. A = [1.* . log([1. a D’autres op´rations sont ´galement disponibles : e e . cos. vand.*. moyenne./ .. mean. f in] avec e e le pas pas (ex. complexes. 3.:) toutes les colonnes de la matrice M. 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 [ .Op´rations usuelles e = +. . log 2.^ . par d´faut le pas est ´gal ` 1 s’il est e e a omis (ex. .N) d´finition d’un vecteur balayant l’intervalle [deb. == sum. . 4/37 .fin.. colonne j M(i. help. . 3]) = [log 1.. et sur la colonne 3 ee e a M(:. imag affectation d’une valeur ` une variable (ex. ones. Morel Initiation Matlab. magic.*... 4. 5. exp.. . eye. rand. 2./.. A = 1 : 1 : 6) .-... sin.-. length size <..∗ [7 : 12]) e a longueur d’un vecteur dimension d’une matrice comparaison des ´l´ments de deux matrices. agissent indiff´remment sur les r´els. real. matrices particuli`res (cf. 2. terme ` terme ee a somme.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.>=./ 1i abs. et sur les colonnes ee e a 1`3 a Y.) e randn. . log. angle. 6]) e deb:pas:fin d´finition d’un vecteur r´gulier balayant l’intervalle [deb. A = 1 : 6) linspace(deb.. ou matrices e e e (` conditions que les dimensions de celles ci le permettent).. Les op´rations usuelles +. calculer A = [1 : 6] ... 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. ] d´finition manuelle d’une matrice (ex.1:3) les ´l´ments de la matrice M situ´s sur les lignes 1 ` 5..j) toutes les lignes de la matrice M. >.. f in] avec N valeurs e r´guli`rement espac´es e e e zeros.. ligne i M(1:5.

. mesh. surf. ylabel. si le r´pertoire dans lequel il est enregistr´ est soit e e e e e le r´pertoire courant (cf. e e Apr`s l’ex´cution d’une fonction. xlabel. figure(n) (r´)initialise la figure n◦ n e e trac´ d’un ensemble de points e (ex. cd.m). 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. : ) M(6 : end .. Un tel fichier e e peut-ˆtre cr´´ en utilisant l’´diteur de Matlab (commande edit).1:2*pi].M(1. et a e e peut ˆtre ex´cut´ directement sous Matlab. elles permettent de regrouper un ensemble de come mandes effectuant une tˆche globale. gedit. e e e e e Il est aussi possible de regrouper ces commandes dans un fichier “texte” comportant un ensemble de commandes ` effectuer. 2 : 4) Fonctions graphiques figure plot M( : . Morel Initiation Matlab. les commandes sont ex´cut´es s´quentiellement. A l’appel du script. notepad..sin([0:0.m” (ex. ou pwd).) semilogy. 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. soit pr´sent dans la variable path de Matlab. 5/37 . e e e – les fonctions : de mˆme que les scripts.. . emacs. plot([0:0. le r´sultat ´tant alors imm´diatement affich´ (suivant la complexit´ du calcul requis). autres fonctions graphiques (voir l’aide. soit en utilisant un quelconque e ee e ´diteur : vi. permet d’ajouter un titre g´n´ral. 6) cr´e une nouvelle figure . e Y. loglog. 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). script1.. semilogx. e Deux types de fichiers de commandes sont ` distinguer : a – les scripts : ils permettent simplement de regrouper un ensemble de commandes Matlab. Scripts et fonctions Matlab L’ensemble des commandes ci-dessus peuvent ˆtre tap´es directement dans l’environnement e e Matlab.. 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..1:2*pi]))) subplot partionne la figure courante en plusieurs sous-graphiques imagesc affiche sur un graphique le contenu d’une matrice. Ce fichier doit ˆtre enegistr´ avec l’extension “. Les fonctions prennent de plus un ensemble d’arguments a en entr´e et d´livrent un ensemble de valeurs de sortie.

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

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

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. (plot. Il n’y a plus de variables locales.Exercice 2 : Initiation ` MATLAB. e) Utiliser la fonction graphique rotate3d.t + j. en fonction des variables A et f0 pass´es en param`tres et qui retourne les valeurs prises e e par la fonction Sig. par exemple. fonctions graphiques a Repr´senter sur une figure ` 4 cadrans. logarithme et tangente. la partie r´elle. real. ` partir de votre fichier de commande. Ecrire un script de commande qui fixe au d´part les e e valeurs de A et f0 . 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%. pour retrouver les courbes 2D de (c) ` partir de la a repr´sentation 3D. l’autre directement avec une comparaison globale == (et. ee Deux versions de cette fonction peuvent-ˆtre impl´ment´es. quel est le nombre de points ? Quelle est la place utilis´e e e en m´moire ? (size. les fonctions sinuso¨ e a ıde. b) Reprendre le probl`me de l’exercice 3. puis calcule la fonction et enfin repr´sente en 3D la courbe voulue.2πf0 . et 0 sinon. 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. abs) c) Repr´senter sur une figure 4 cadrans.t) a) Cr´er le vecteur t=[0 : 0. le module et la e e phase de cette courbe. (subplot. title. 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. legend) e d) Repr´senter cette fonction complexe sous la forme d’une trajectoire 3d ` l’aide de la fonction e a plot3. Morel Exercices d’initiation ` Matlab a 8/37 . et e e e a d’un test if appropri´. find e ou nnz). Mettre les titres et les l´gendes de chaque graphique. exponentielle. la partie imaginaire. (subplot) Exercice 3 : Etude de la fonction Sig = exp(−A. length.1 : 100] . e c) Taper ’clear all’ puis who. imag. et qui retourne 1 si x est un ´l´ment du vecteur v. une ` l’aide d’une boucle for. une fonction qui trace la courbe 3D de l’exercice e a 3.

. R´soudre le syst`me lin´aire pr´c´dent. . . . o` X = [x y z]T est le vecteur inconnu. . . . avec Matlab.Exercice 9 : Matrices et syst`mes lin´aires e e a) Ecrire une fonction.) qui prend comme param`tre e un entier n et qui construit la matrice suivante (fonctions eye.. X = A \ b (voir help slash).   .  .  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. n’utilisant aucune boucle (for. . ou encore. . 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.. (i) La syst`me lin´aire. diag) :   1 1 0 ··· 0 0 0   1 2 n−1 0 0 0   n n  0 2 3 ··· 0 0 0    n  . . 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. while. . d’inconnues x.   . Morel Exercices d’initiation ` Matlab a 9/37 . on peut r´soudre tout type de syst`me lin´aire en l’´crivant pr´alablement e e e e e sous forme matricielle. . .

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

e 1 = 0. 1 microsecondes. e a e On consid`re les deux fonctions p´riodiques f1 et f2 d´finies par : e e e   0. e 3. 0 ≤ x ≤ π  0.5 ms. et en indiquant sur chaque e e courbe la fr´quence d’´chantillonnage et le nombre de points. si − 1 < x < 1 f1 (x) = . p2 = . et p3 = 0. p1 = . 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).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` . f2 = 75 Hz. si. u 2 3 On ´chantillonne ces signaux ` la fr´quence de fe = 20 kHz. ´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. G´n´rer dans un vecteur sig N = 1000 points du signal x. 0. f2 (x) = −x + π. si.1 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). fe Calculer et tracer ensuite les transform´es de Fourier inverses des xi (fonction ifft). − π ≤ x ≤ 0 1. Repr´senter graphiquement (sur quatre figure distinctes ou sur une figure avec quatre cadrants) e ces quatre signaux num´riques. Echantillonnage d’un signal On consid`re le signal x d´fini par x(t) = 2 cos(2πf0 t + ϕ0 ). 10 microsecondes. e e 2. d’amplitude 2 et de fr´quence e e e fondamentale f0 = 20 kHz. Transform´e de Fourier de signaux sinuso¨ e ıdaux On consid`re les fonctions d´finies pour t ∈ [0. et les comparer e avec les fonctions de d´part. si.TP 2 Signaux num´riques et e transform´e de Fourier discr`te e e 1. 0. f1 = 50 Hz. si 1 < x < 2 Y. − 2 < x < −1 x + π. avec une ´chelle des temps correcte. f3 = 125 Hz.

les trois e premiers. e 3) Repr´senter sur un mˆme graphique. les deux premiers.π -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 . Coder et repr´senter alors graphiquement ces deux fonctions f1 et f2 . e 2) Calculer la transform´e de Fourier de ces deux fonctions. 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. puis v´rifier.e. Y.. 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). Morel Signaux num´riques et transform´e de Fourier discr`te e e e 12/37 .

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”. 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. e e On peut ainsi imaginer des syst`mes avec des diagrammes d’´mission ` plusieurs lobes prine e a cipaux. Morel R´seaux et synth`se de diagramme d’antennes e e 13/37 . en d’autres termes. et capable de plus de suivre ces utilisateurs dans leur mouvement. on a recours ` des antennes rayonnant de fa¸on homog`ne a a c e dans toutes les directions de l’espace (rayonnement isotrope). et donc la puissance ´mise. 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. e a La directivit´ de ces antennes est donc un crit`re d´terminant.TP 3 R´seaux et synth`se e e de diagramme d’antennes PU . L’objectif initial est dans ce cas loin d’ˆtre rempli. dans le but de pouvoir focaliser le signal. • • Diagramme de rayonnement d’une antenne dipolaire (gauche) et d’un r´seau de 4 e antennes (droite). assembl´es en un r´seau e e a e e d’antennes. et PT est la puissance totale ´mise par l’antenne. c e On cherche. 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. Le rayonnement du r´seau est adapt´ au nombre et la position des utilisateurs e e (marqu´s par ). e Une strat´gie pour y rem´dier consiste ` utiliser plusieurs antennes. sur l’utilisateur. e e e Y. qui se r´partissent donc plus efficacement la puissance ´mise.

ρn est le gain et ϕn le d´phasage e impos´s ` l’antenne n. 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` . les composantes Er et Eθ du champ e a ´lectrique du dipole. e a Y. e (polar pour la repr´sentation en coordonn´es polaires) e e 2.q• − → uθ • − → r M − → ur Exercice 1 Repr´senter sur une figure ` deux cadrans. le champ u → p a ´lectrique cr´e par le dipole est donc. 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).1. − = q − est le moment du dipole. 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 . e e r a > Le champ rayonn´ par l’antenne situ´e en A2 a une avance de phase de kl. 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 . R´seau lin´aire d’antennes e e On dispose de N antennes identiques. et ` une distance r > d. Morel R´seaux et synth`se de diagramme d’antennes e e 14/37 . align´es et s´par´es par une distance d. et ainsi. e a → On s’int´resse au champ rayonn´ lointain dans la direction − . sachant que l’on peut de plus imposer un e a e d´phasage ϕ d’une antenne ` la suivante.

d. E = N E0 F . et le d´phasage ϕ est nul entre elles. si on suppose dans un premier temps que αn = e−j(n−1)ϕ . avec l = d cos θ n=1 n=1 soit. 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). ϕ) pour diff´rentes e e e e valeurs de N. Morel R´seaux et synth`se de diagramme d’antennes e e 15/37 . 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 . d. le champ ´mis par la ni`me antenne est : E n = αn E 1 . ϕ) = φ N sin 2 sin Exercice 2 On consid`re un r´seau d’antennes fonctionnant ` la fr´quence f = 3. e e a 2 Tracer diff´rents graphiques repr´sentant le diagramme du r´seau F (θ. e 2. soit aussi : e e − → − φ → E = N E1 ej 2 Nφ 2 φ N sin 2 sin − → → φ =k d ·− −ϕ r = kd cos θ − ϕ avec. − → − → On a ainsi. L’´cart entre chaque antenne est fix´ ici ` d = . c’est-`-dire qu’on impose simplement a un d´phasage constant ϕ entre chaque antenne. 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. espac´es de e e e e λ d= .108 Hz. e e a e λ e 1. On consid`re un r´seau de 10 antennes aliment´es en phase (ϕ = 0). 2 Quel d´phasage ϕ doit-on appliquer entre chaque antenne pour que la direction du lobe e principal soit 60 ◦ ? 3. e e e Quelle est l’influence de la distance d entre chaque antenne ? Y.− → − → − → e Si E 1 est le champ de l’antenne 1. On consid`re maintenant un r´seau de N = 10 antennes aliment´es en phase. o` F est le facteur (ou diagramme) du r´seau : u e Nφ 2 F (θ. Indiquer comment varie la largeur du lobe principal en fonction du nombre d’antennes N du r´seau.

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

modifiant ainsi d’une certaine fa¸on son alimentation r´elle. en utilisant des antennes dont le diagramme de rayonnement est nul dans la direction des ´l´ments voisins. . 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. R´seau bidimensionnel d’antennes e Le cas des r´seau bidimensionnels se traˆ d’une mani`re similaire. • • • • • • δx z Si on impose un d´phasage constant horizontalement e ϕx et verticalement ϕy . . e En fait. ee Une autre strat´gie peut consister ` ´viter les interactions parasites entre ane a e tennes. . Morel R´seaux et synth`se de diagramme d’antennes e e 17/37 . rayonnement d’un e dipole). 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. ee ee qui eux-mˆmes alimentent leurs voisins .. C’est le cas par exemple d’un r´seau lin´aire ee e e d’antennes dipolaires dispos´es convenablement (voir partie I. c e Plus particuli`rement. Y.3. − → → φ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. e ıte e y x θ ϕ • . le champ rayonn´ par une antenne quelconque induit des courants dans e les antennes voisines. .. on peut utiliser un r´seau d’antennes en n’alimentant e e qu’un seul de ses ´l´ments. 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). 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 e e e e Remarque : Dans tous les d´veloppements pr´c´dents. celui-ci alimentant les ´l´ments voisins par induction.

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

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

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

Pour en citer quelques-uns : – En informatique. e e – En biologie. l’Univers semble e e a e avoir une organisation fractale. e L’ensemble de Mandelbrot est justement l’ensemble des points M tels que la suite (un ) ne diverge pas. On rep`re dans l’image les parties qui pr´sentent une certaines similarit´. . jeux vid´os . un+1 = u2 + z n Pour certains points M..avec une e e e grande fid´lit´. i. on note z = x + iy. la taille e e e de l’image peut-ˆtre nettement r´duite. la suite (un ) ainsi d´finie diverge. 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 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. . On se propose dans ce TP de g´n´rer trois types de g´om´trie fractales. e e La compression fractale est tr`s utilis´e dans les animations en “temps r´el” : images de e e e synth`se. Julia et Sierpinski 21/37 . qui signifie a bris´. 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. n→∞ Y. . Morel Fractales de Mandelbrot. e e e e e – En physique.TP 5 Fractales de Mandelbrot. 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. celle de Mandelbrot e e e e (initiateur mˆme des fractales). La structure de notre galaxie se retrouve ` l’´chelle sup´rieure a e e des amas de galaxie. . lim |un | = +∞. des nuages . Le terme “fractale” est un n´ologisme cr´´ par Benoˆ Mane ee ıt delbrot en 1974 ` partir de la racine latine fractus. Chez les v´g´taux (d’o` l’id´e d’ailleurs de compression d’image fractale).e. . donc certaines valeurs de x et y. y). irr´gulier. nuages e de gaz. . rotation). initialement objets purement math´matiques. 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. ont trouv´ depuis de nombreux champs e e d’applications. de Julia et enfin le triangle (ou ´ponge) de Sierpinski. et on d´finit la suite de nombres e u0 = 0 complexes (un ) par . mais aussi dans d’autres structures stellaires telles que les ´toiles. e e Ces objets fractals. En ne stockant que ces informations. De nombreux exemples de g´om´trie fractale peuvent ˆtre trouv´s dans la e e e e nature.

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

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

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

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

:) = α et . L]. e a (2) δ2 d 2 T dT (nδx ) + x 2 (nδx ) . e e e On effectue la mˆme op´ration sur les temps.j = T (iδx . e Y.n + δt fi. e e De la mˆme fa¸on. la d´riv´e par rapport au temps peut-ˆtre approch´e par e c e e e e ∂T Ti+1. dx 2 dx 2 d Tn δx d 2 Tn . apr`s addition de ces deux relations. jδt ). On note alors. T (end. . On d´coupe l’intervalle temporel d’´tude [0. δt = 0.j = f (iδx .j ∼ . [0 : L] → [0 : δx : L].n + Ti−1. 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. .La formule de Taylor ` l’ordre 2 nous donne. T (x. 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. Ti. t). β = 100. et de mˆme pour la source de chaleur : fi. au choix : toute fonction d´finie sur [0. u e Application num´rique On pourra prendre les valeurs num´riques (pour commencer. T2 = T1 (pas de vitesse intiale de propagation) e e On remarque qu’avec ce mod`le statique.n+1 = Ti.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. dx 2 dx 2 2. Diffusion thermique . e Tn+1 + Tn−1 − 2Tn d2 T 2 ∼ 2 δx dx Si on pose alors fn = f (nδx ). ∆t ] e e e e en Nt + 1 points : [0 : ∆t ] → [0 : δt : ∆t ].) suie e vantes : L = 1.n + 2 (Ti+1. on a e Tn−1 ∼ Tn − δx puis. 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 . δx = 0. 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. α = 0.j − Ti. :) = β o` α est donc la temp´rature en x = 0 et β celle en x = L. ∂t La discr´tisation en x se fait comme pr´c´demment en Nx + 1 points. . .1. dans la limite o` le pas δx est suppos´ assez petit. f (x) = . + dx 2 dx 2 2 d Tn δx d 2 Tn + . ∂t δt On obtient alors la nouvelle relation de r´currence : e δt Ti.n ) δx ` laquelle il faut ajouter les conditions en x = 0 et x = L : a T (1. jδt ).n − 2Ti.0001.

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

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

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

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

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

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

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. δt = 2c . et les interf´rences parasites a e ont ´t´ supprim´es.s−1 . δx = Lx /200. et les ph´nom`nes d’interf´rences. Y. on pourra ajouter une fente simple ou double et ainsi observer des ph´nom`nes de e e diffraction d’onde par une fente. e e e Valeurs num´riques On prendra (pour commencer) les√ e valeurs num´riques suivantes : c = e 2 2 δx +δy 10m. ν = 2 Hz. Lx = Ly = 100 m. δy = Ly /200. Morel Simulation bidimensionnelle de la propagation d’une onde 33/37 . T = 10 s. ee e Enfin. Les bords du domaine sont “transparents” vis-`-vis des ondes.

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

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. P V = kN . respectivement). On suppose les u e deux extr´mit´s fixes (x0 et xn+1 positionn´s en 0 et L. 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. de e telle sorte que l’´tat d’´quilibre correspond ` ui = 0 pour tout i. d’apr`s le mod`le pr´c´dent. dans ce cas. c’et-`-dire e a (pression) × (volume) = Constante × (nombre de mol´cules de gaz) e soit. On note xi = Xi + ui la position du centre de Si (i`me segment). et que le gaz. pour lequel toutes e e e e e e e les bulles ont mˆme taille b.Exemple de contrˆle non-destructif o 35/37 ′′ . o` le “volume“ repr´sente en fait une longueur dans le cadre mono dimensionnel. e a e e On suppose que le liquide est incompressible. e gaz b a X0 = 0 Xi Xn+1 = L liquide On note ρ la masse lin´ique du liquide. u2 . comme illustr´ sur la figure ci-dessous. · · · .TP 10 Propagation d’ondes Exemple de contrˆle non-destructif o Mod`le physique. 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. de telle sorte que la masse d’un “segment” Si centr´ en e e xi est ρb. c’est-`-dire. Les positions des centres des segments fluides sont. et v = du ) dt dt Y. L] une alternance de gaz e rt de liquide. Xi = ih. v le vecteur des vi (donc vi = dui . Morel Propagation d’ondes . et on prend un nombre e e e de mol´cules de gaz dans chaque poche constant ´gal ` N. On cherche ` mod´liser la propagation d’ondes dans un m´lange liquide-gaz. Ce syst`me liquide/gaz u e e e e admet un ´tat d’´quilibre. X1 = h. On note u = (u1 . 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. · · · . vi = u′i la vitesse de Si . 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 . un ) le vecteur des inconnues. en e notant h = a + b. · · · . repr´sent´ sch´matiquement sur la figure pr´c´dente. e Equation d’´volution. La masse de Si ´tant ρb. compressible. X0 = 0. la relation fondamentale de la dynamique s’´crit donc e e .

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

Calculer num´riquement les um . N = 99 . e e e On discr´tise comme pr´c´demment : ρn = ρ(Xn ). α = 0. on peut alors calculer les un pour tout n et tout M. β = 1 . um = 0 ∀ m = 0. e Reprendre les valeurs num´riques pr´c´dentes. 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. ou masse lin´ique. e e e e e – calculer la profondeur (abscisse) ` laquelle se trouve cette inhomg´n´it´ . et les conditions en temps u e 0 −1 u0 = Un . L = 1. i. · · · . avec µ = kβh/ρb. 0 N o` λ(t) est donn´e. Calcul num´rique. a e e e Y. 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. 4.Exemple de contrˆle non-destructif o 37/37 . b = 1. M . Propagation d’une onde dans un milieu inhomog`ne e On consid`re maintenant que la densit´. e e e de mani`re plus ambitieuse. un milieu inhomog`ne. 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. 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. Morel Propagation d’ondes .ce qu’on peut finalement ´crire. h = 10−2 .2 . u e e e e m A partir de ces relations. T = 2 . u−1 = Un ∀ n = 0. On pourra prendre comme valeur des pae e n ram`tres : e ρ = 1 . δt = 10−3 . donner une e e e m´thode permettant de e – d´tecter la pr´sence d’une inhomog´n´it´ dans le milieu . soit ρ := ρ(x). N . 3. en modifiant uniquement ρ suivant : e e e ρn = 2 .0 . et alors dans ce cas. ρ n’est plus constante. · · · .e. 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 .0 . si n = 50 1 . k = 1. sinon . Les conditions aux limites en espace s’´crivent e um = λ(t) .

Sign up to vote on this title
UsefulNot useful