P. 1
TP_Matlab

TP_Matlab

|Views: 1,821|Likes:
Published by Samir Làk

More info:

Published by: Samir Làk on May 28, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/13/2013

pdf

text

original

INITIATION

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

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

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

- q

q
−→
a

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

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

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

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

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

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

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

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

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

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

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

π
2
; −θ
0
_

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

_

π
2
; −θ
0
_

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

1
e

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

2
e

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

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






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

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

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


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

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

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

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

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

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

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

2
f
i,j
∂t
2

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

2
f
i,j
∂x
2

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

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

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

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

2
u
∂x
2
+

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

δ
2
x

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

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

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

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


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

u
i+1
−u
i
h

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


(α + u

)
2

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

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

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

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

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

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

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

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

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

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

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

Y. Morel

Initiation Matlab.

2/37

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

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

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

Y. Morel

Initiation Matlab.

3/37

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

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

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

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 . 4 par 0. 5 ? que 0.5 par −3 et tous les nombres sup´rieurs ` 0. et le vecteur X contenant e ee les cinq premiers et les cinq derniers ´l´ments. find. . Combien de nombres dans e e a cette matrice sont plus grand que 0. e a e a Construire de mˆme la matrice Q obtenue ` partir de la matrice M en rempla¸ant tous les e a c nombres de M inf´rieurs ` 0. 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.Manipulation de matrices a a) D´finir le vecteur V = [0 1 2 3 · · · 49 50]. 23 27 Extraire de la matrice M la matrice R obtenue en prenant dans la matrice M une colonne sur 2. puis 21 22 28 29 30 3 7 la matrice Q = . 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. Morel Exercices d’initiation ` Matlab a 7/37 . et ceux sup´rieurs ` 0. d) D´finir une matrice M al´atoire ` trois lignes et sept colonnes. e e c) D´finir la variable x = [0 : 0. Qu’affiche exactement la commande plot ? (plot. size. e 6 4 3 Calculer alors tan(x) en utilisant exclusivement les vecteurs y1 et y2 pr´c´dents. Exercice 2 : Initiation ` MATLAB . c) D´finir les matrices M = [2 4 6 8 · · · 100] et N = [−1 − 3 − 5 · · · − 99]. Y. ]. length). π π π b) D´finir la variable x = [ . et calculer y1 = sin(x) et y2 = cos(x).5 par 14.TP 1 Exercices d’initiation ` Matlab a Exercice 1 : Initiation ` MATLAB . Combien y a-t-il de valeurs dans ce vecteur ? Afficher e la courbe du sinus. 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 .1 : 2π]. ee D´finir ensuite le vecteur Z = [0 2 4 · · · 48 50] ` partir de V . nnz. et calculer y1 = sin(x) et y2 = cos(x).Vecteurs et courbes a π a a) D´finir la variable x = . la matrice P =  18 19 20 . Faire varier le pas.4 par 1. 8 ? Ou sont-ils situ´s ? e (rand. 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. et e e e a d’un test if appropri´. Ecrire un script de commande qui fixe au d´part les e e valeurs de A et f0 . ee Deux versions de cette fonction peuvent-ˆtre impl´ment´es. une fonction qui trace la courbe 3D de l’exercice e a 3. Morel Exercices d’initiation ` Matlab a 8/37 . e) Utiliser la fonction graphique rotate3d.Exercice 2 : Initiation ` MATLAB. Taper le nom de votre fichier de commande : quelles sont les variables reconnues dans l’espace de travail ? Exercice 7 : Cr´ation d’une fonction e a) Cr´er. et 0 sinon. b) Reprendre le probl`me de l’exercice 3. imag. (plot.t + j. ` partir de votre fichier de commande. 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%. la partie imaginaire. abs) c) Repr´senter sur une figure 4 cadrans. quel est le nombre de points ? Quelle est la place utilis´e e e en m´moire ? (size. par exemple.2πf0 . e c) Taper ’clear all’ puis who. length. Il n’y a plus de variables locales. legend) e d) Repr´senter cette fonction complexe sous la forme d’une trajectoire 3d ` l’aide de la fonction e a plot3. une ` l’aide d’une boucle for.t) a) Cr´er le vecteur t=[0 : 0. et qui retourne 1 si x est un ´l´ment du vecteur v. la partie r´elle. le module et la e e phase de cette courbe. pour retrouver les courbes 2D de (c) ` partir de la a repr´sentation 3D. en fonction des variables A et f0 pass´es en param`tres et qui retourne les valeurs prises e e par la fonction Sig. exponentielle. find e ou nnz). (subplot) Exercice 3 : Etude de la fonction Sig = exp(−A. l’autre directement avec une comparaison globale == (et. les fonctions sinuso¨ e a ıde. Mettre les titres et les l´gendes de chaque graphique. 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. logarithme et tangente. Y. real. fonctions graphiques a Repr´senter sur une figure ` 4 cadrans. puis calcule la fonction et enfin repr´sente en 3D la courbe voulue. title. (subplot.1 : 100] .

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

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

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

la fonction originale et la e e reconstruction ` partir de la transform´e de Fourier (i. et pour chaque fonction.π -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 . les trois e premiers. Morel Signaux num´riques et transform´e de Fourier discr`te e e e 12/37 .e. e 3) Repr´senter sur un mˆme graphique. 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). la transform´e inverse) obtenue a e e en ne consid´rant que le mode (ou harmonique) fondamental. Y. Coder et repr´senter alors graphiquement ces deux fonctions f1 et f2 . e 2) Calculer la transform´e de Fourier de ces deux fonctions. les deux premiers.. puis v´rifier..

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->