Source Latex: TP de mathématiques en Post-Bac


Fichier
Type: TP
File type: Latex, tex (source)
Télécharger le document pdf compilé pdficon
Description
TP: simulation de la propagation d'une onde monodimensionnelle - Discrétisation de l'équation des ondes 2D
Niveau
Post-Bac
Table des matières
  • Discrétisation de l'équation des ondes
  • Réflexions contre les bords du domaine
  • Présence d'un obstacle
    • Fente simple
    • Double fente: interférences
Mots clé
simulation numérique, onde, équation des ondes, propagation, 2D, bidimensionnel, Matlab, programmation
Voir aussi:

Documentation sur LaTeX
lien vers la documentation Latex
Source LaTex icone

Source Latex

\documentclass[12pt]{article}
%\usepackage{french}
\usepackage[french]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}\usepackage{amssymb}
\usepackage[utf8]{inputenc}
\usepackage{a4wide}
\usepackage{graphicx}
\usepackage{epsf}
\usepackage{pst-all}
\usepackage{ifthen}
\usepackage{calc}
\usepackage{pst-all}

\usepackage{hyperref}
\hypersetup{
    pdfauthor={Yoann Morel},
    pdfsubject={Matlab},
    pdftitle={Simulation monodimensionnelle de la propagation d'une onde},
    pdfkeywords={onde, propagation, équation des ondes, 2D, bidimensionnel, Matlab, simulation, programmation, modélisation, mathématiques}
}
\hypersetup{
    colorlinks = true,
    linkcolor = red,
    anchorcolor = red,
    citecolor = blue,
    filecolor = red,
    urlcolor = red
}
\voffset=-1cm
% Raccourcis diverses:
\newcommand{\nwc}{\newcommand}
\nwc{\dsp}{\displaystyle}
\nwc{\bge}{\begin{equation}}\nwc{\ene}{\end{equation}}
\nwc{\bgar}{\begin{array}}\nwc{\enar}{\end{array}}
\nwc{\bgit}{\begin{itemize}}\nwc{\enit}{\end{itemize}}
\nwc{\bgmp}{\begin{minipage}}\nwc{\enmp}{\end{minipage}}

\nwc{\ct}{\centerline}
\nwc{\V}[1]{\overrightarrow{#1}}


\nwc{\la}{\left\{}\nwc{\ra}{\right\}}
\nwc{\lp}{\left(}\nwc{\rp}{\right)}
\nwc{\lb}{\left[}\nwc{\rb}{\right]}

\nwc{\bgsk}{\bigskip}
\nwc{\vsp}{\vspace{0.1cm}}
\nwc{\vspd}{\vspace{0.2cm}}
\nwc{\vspt}{\vspace{0.3cm}}
\nwc{\vspq}{\vspace{0.4cm}}


\newcounter{ntp}%[section]
\setcounter{ntp}{1}
\newenvironment{TP}[1]{%
\setcounter{equation}{0}\setcounter{subsection}{0}
%\bgsk{\large {\bf Exercice }\arabic{nex}}\hspace{0.5cm}
\clearpage
%\if@openright\clearpage\else\cleardoublepage\fi 
% ...doublepage... necessite documentclass{book}...
\section*{ \underline{TP \arabic{ntp} :} #1}
\addcontentsline{toc}{section}{\underline{TP \arabic{ntp} :}\ #1}
\stepcounter{ntp}}{}

\nwc{\bgTP}{\begin{TP}}\nwc{\enTP}{\end{TP}}


\def\N{{\rm I\kern-.1567em N}}                              % Doppel-N
\def\No{\N_0}                                               % Doppel-N unten 0
\def\R{{\rm I\kern-.1567em R}}                              % Doppel R
\def\C{{\rm C\kern-4.7pt                                    % Doppel C
\vrule height 7.7pt width 0.4pt depth -0.5pt \phantom {.}}}
\def\Z{{\sf Z\kern-4.5pt Z}}                                % Doppel Z

% grec et autres
\nwc{\lbd}{\lambda}
\nwc{\vphi}{\varphi}
\nwc{\ga}{\gamma}
\def\epsi{\varepsilon}
\def\tht{\theta}

\nwc{\tm}{\times}

\nwc{\ul}{\underline}
\nwc{\scp}[1]{\scriptsize{#1}}

\newcommand{\TITLE}{Simulation bidimensionnelle de la propagation d'une onde}
\newcommand{\TITLEfoot}{Simulation de la propagation d'une onde 2D}

\author{Y. Morel}
\date{}

\headheight=0cm
\textheight=26cm
\topmargin=-1.8cm
\footskip=.8cm
\textwidth=17.6cm
\oddsidemargin=-1.cm
%\parindent=0.2cm

\usepackage{fancyhdr}

\newenvironment{centerpage}{\vspace*{\fill}}{
	\protect\vspace*{\fill}}

\begin{document}


\pagestyle{fancyplain}
\setlength{\headheight}{0cm}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.1pt}
\lhead{}\chead{}\rhead{}

\lfoot{Y. Morel - \url{https://xymaths.fr/Matlab/}}
\rfoot{\TITLEfoot\ - \thepage/\pageref{LastPage}}
\cfoot{}

\vspace*{1cm}

\nwc{\TPtop}{}
\newlength{\lgr}
\newlength{\TPtopLarge}
\newlength{\EXX}
\newlength{\Tlgr}
\newlength{\TopHeight}
\newlength{\TopTitleHeight}

\newcommand{\ChapTitle}[3]{
  \renewcommand{\TPtop}{{\LARGE\bf #1} {\Huge\bf#2}}
  \settowidth{\lgr}{\LARGE\bf #1}
  \settowidth{\TPtopLarge}{\TPtop}
  \settoheight{\EXX}{\LARGE X}
  \settowidth{\Tlgr}{\LARGE T}
  \setlength{\Tlgr}{0.5\Tlgr}
  \settototalheight{\TopHeight}{\fbox{\bgmp{\linewidth}\begin{center}{\LARGE\bf#3}\end{center}\enmp}}
  %%
  \noindent
  \bgmp{\linewidth}
  \psline(\lgr,\EXX)(1.1\lgr,\EXX)
  \psline(\TPtopLarge,\EXX)(\linewidth,\EXX)%
  (\linewidth,-1.\TopHeight)(\Tlgr,-1.\TopHeight)%
  (\Tlgr,-0.05)
  \TPtop
  \vspace{-0.5\EXX}
  \begin{center}
    {\LARGE\bf#3}
  \end{center}
  \enmp%
  \vspace{0.5cm}
}

\setcounter{ntp}{9}
\setcounter{equation}{0}
\ChapTitle{TP}{\thentp}{Simulation bidimensionnelle\linebreak de la propagation d'une onde}
\addcontentsline{toc}{section}{TP \thentp: 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é, dans l'espace libre, puis sa diffraction à
travers une fente. 

\vspd
Cette propagation est régie par l'équation des ondes: si $u(x,y,t)$
désigne l'amplitude de l'onde au point d'espace de coordonnées $(x,y)$
et à l'instant $t$, alors $u$ est solution de l'équation 
\begin{equation} \label{EqOnde}
\frac{\partial^2 u}{\partial t^2}-c^2 \Delta u = s(x,y,t)
\end{equation}
où, 
$\dsp\Delta u=
\frac{\partial^2 u}{\partial x^2}+\frac{\partial^2 u}{\partial y^2}$
désigne le laplacien de $u$, $c$ la célérité de l'onde dans
le milieu, et $s(x,y,t)$ la source. 


\vspt
On cherche une solution approchée de l'équation (\ref{EqOnde}) en 2-D: 
le domaine géométrique dans lequel l'onde peut se propager est 
le rectangle $[0\,,Lx]\tm[0\,,Ly]$. 
On s'intéresse alors à l'amplitude de l'onde $u(x,y,t)$ pour 
$x\in[0\,,L_x]$, $y\in[0\,,L_y]$ et $t\in[0\,,T]$. 

\vsp
Afin de traiter numériquement cette équation, le domaine est découpé 
en une grille de calcul:  
\[[0\,,L_x] \to [0:\delta_x:L_x]\ ,\ \ 
[0\,,L_y] \to [0:\delta_y:L_x]\ ,\ \ 
[0\,,T] \to [0:\delta_t:T].\]


On notera par la suite $n_x$, $n_y$ et $n_t$ les nombres de points
utilisés pour les discrétisations suivant respectivement l'axe des
$x$, des $y$, et des temps $t$. 

\subsection*{Discrétisation de l'équation des ondes}
\addcontentsline{toc}{subsection}{Discrétisation de l'équation des ondes}

De même que dans le TP précédent, on pose 
$u_{i,j}^k = u(x_i,y_j,t_k)$, les $x_i$, $y_j$ et $t_k$ étant des
points de notre grille de calcul. 

\vspd
L'utilisation des formules de Taylor (cf. TP précédent) nous permet
alors de formuler l'équation des ondes (\ref{EqOnde}) sous forme
discrète selon la relation de récurrence: 

\begin{equation} \label{EqOndeDiscret}
u_{i,j}^{k+1}=2u_{i,j}^k-u_{i,j}^{k-1}
+\ga_x\lb u_{i-1,j}^k +u_{i+1,j}^k -2 u_{i,j}^k\rb
+\ga_y\lb u_{i,j-1}^k +u_{i,j+1}^k -2 u_{i,j}^k\rb
\end{equation}

où, $\dsp\ga_x=\frac{c^2\delta_t^2}{\delta_x^2}$, et 
$\dsp\ga_y=\frac{c^2\delta_t^2}{\delta_y^2}$


\paragraph{Initialisation} 
Pour initialiser la relation de récurrence précédente, on suppose que
le milieu est au repos: la vitesse intiale de l'onde est nulle. 

Ceci se traduit par $u_{i,j}^2=u_{i,j}^1$, et donc dans la relation de
récurrence précédente par: 

\begin{equation}\label{EqOndeInit}
 u_{i,j}^2=u_{i,j}^1
+\frac{\ga_x}{2}\lb u_{i-1,j}^1+u_{i+1,j}^1-2u_{i,j}^1\rb
+\frac{\ga_y}{2}\lb  u_{i,j-1}^1 +u_{i,j+1}^1 -2 u_{i,j}^1\rb
\end{equation}

\paragraph{Source}
La source est une source sinusoïdale d'amplitude 1 et de fréquence
$\nu=2$ Hz, située en $(L_x/3,L_y/2)$. 

A chaque itération temporelle, l'amplitude de l'onde doit donc être
modifiée suivant: 
\begin{equation}\label{Source}
u_{s_x,s_y}^{k+1}=u_{s_x,s_y}^k+
\sin(2\pi\nu k \delta_t)
\end{equation}
où, $s_x=n_x/3$ et $s_y=n_y/2$ désignent les indices de la position 
$(L_x/3,L_y/2)$ de la source dans notre grille de calcul.


\subsection*{Réflexions parasites contre les bords du domaine}
\addcontentsline{toc}{subsection}{Réflexions parasites contre les bords du domaine}



Le domaine de calcul $[0\,,L_x]\tm[0\,,L_y]$ a été introduit ici
artificiellement: l'équation des ondes est valable dans tout l'espace 
(espace libre); néanmoins les calculs numériques requièrent une
délimitation de ce domaine.  

\vspd
On observe alors dans le résultat de nos calculs des réflexions
parasites le long des bords de notre domaine. 
Ces réflexions, quoique expliquables physiquement, n'ont pas ici lieu
d'être, la prapagation étant supposée se faire en espace libre (et
donc infini). 

\vspd
Pour pallier cet inconvénient, on peut introduire des conditions dites
absorbantes au bord de notre domaine
(CLA, pour Conditions aux Limites Absorbantes)
, de manière à éliminer ces
réflexions parasites. 

Ces conditions absorbantes peuvent être simulées de la manière
suivante: 

\begin{equation}\label{CLA}
\bgar{lcl}
u(1,\,:\,,k+1)  &= &u(2,\,:\,,k) \\
u(n_x,\,:\,,k+1)&= &u(n_x-1,\,:\,,k)
\enar\hspace{1cm}
\bgar{lcl}
u(\,:\,,1,k+1)  &= &u(\,:\,,2,k) \\
u(\,:\,,n_y,k+1)&= &u(\,:\,,n_y-1,k)
\enar
\end{equation}


\subsection*{Présence d'un obstacle}
\addcontentsline{toc}{subsection}{Présence d'un obstacle}

On peut simuler la présence d'un obstacle en imposant $u_{i,j}^k=0$
pour tout $k$ (tout instant), et pour des indices $i$ et $j$
correspond à la position de l'obstacle. 

\subsubsection*{Diffraction par une fente simple}
\addcontentsline{toc}{subsubsection}{Diffraction par une fente simple}

\bgmp{9cm}
\vspace*{-0.2cm}
On simule la présence d'une fente simple par un ``masque'': 

\vspq
On impose donc, 
\[u(I_x\,,\,I_y\,,\,:\,)=0,\] 
avec $I_x$ et $I_y$ des indices correspondants à la position de la
fente dans la grille de calcul.
\enmp\hspace{1cm}
\bgmp{6cm}\vspace*{-1.cm}
\psset{unit=0.8cm}
\begin{pspicture}(0,0)(5,5)
\psline[linewidth=1pt](0,0)(0,5)
\psline[linewidth=1pt](0,5)(5,5)
\psline[linewidth=1pt](5,5)(5,0)
\psline[linewidth=1pt](5,0)(0,0)

\psline[linewidth=2.5pt](0,2)(2.3,2)
\psline[linewidth=2.5pt](2.7,2)(5,2)

\psline[linewidth=2.pt](2.4,3.33)(2.6,3.33)
\psline[linewidth=2.pt](2.5,3.43)(2.5,3.23)
\end{pspicture}
\enmp

\subsubsection*{Diffraction par une double fente : interférences}
\addcontentsline{toc}{subsubsection}{Diffraction par une double fente: interférences}

\bgmp{9cm}
\vspace*{-0.2cm}
Le principe est le même que pour la modélisation de la présence d'une
fente simple. 

La fente double est introduite par l'intermédiaire d'un "masque": 

\vspq
\[u(I_x\,,\,I_y\,,\,:\,)=0,\] 
avec $I_x$ et $I_y$ des indices correspondants à la position de la
fente dans la grille de calcul.
\enmp\hspace{1cm}
\bgmp{6cm}\vspace*{-1.cm}
\psset{unit=0.8cm}
\begin{pspicture}(0,0)(5,5)
\psline[linewidth=1pt](0,0)(0,5)
\psline[linewidth=1pt](0,5)(5,5)
\psline[linewidth=1pt](5,5)(5,0)
\psline[linewidth=1pt](5,0)(0,0)

\psline[linewidth=2.5pt](0,2)(2.1,2)
\psline[linewidth=2.5pt](2.3,2)(2.7,2)
\psline[linewidth=2.5pt](2.9,2)(5,2)

\psline[linewidth=2.pt](2.4,3.33)(2.6,3.33)
\psline[linewidth=2.pt](2.5,3.43)(2.5,3.23)
\end{pspicture}
\enmp

\paragraph{Travail à réaliser} 
Le but du programme est de calculer les valeurs $u(i,j,k)$ pour 
\mbox{$1\leq i\leq n_x$}, $1\leq j\leq n_y$, et $1\leq k\leq n_t$. 

Pour cela, on commencera par initialiser les valeurs de la matrice $u$
(\verb+zeros+), puis grâce à l'initialisation (\ref{EqOndeInit}). 

Ensuite, on implémentera la
discrétisation de l'équation des ondes (\ref{EqOndeDiscret}), 
que l'on complè\-tera pour prendre en compte la présence de la source
sinusoïdale donnée par la relation (\ref{Source}). 

\vspd
Ce programme ainsi contistué simule la propagation d'une onde dans une
cavité. 
On pourra en particulier observer les phénomènes de réflexion sur les
parois, et les phénomènes d'interférence qui s'en suivent. 

\vspd
On complètera ensuite ce modèle et ces simulations en intégrant les
conditions aux limites absorbantes données par les relations
(\ref{CLA}): on obtient une simulation de la
propagation en espace libre. 
Les bords du domaine sont "transparents" vis-à-vis des ondes, et les
interférences parasites ont été supprimées. 

\vspd
Enfin, on pourra ajouter une fente simple ou double et ainsi observer
des phénomènes de diffraction d'onde par une fente, et les phénomènes
d'interférences. 


\paragraph{Valeurs numériques} 
On prendra (pour commencer) les valeurs numériques suivantes: 
$c=10\textrm{m.s}^{-1}$, 
$L_x=L_y=100$ m, 
$\delta_x=L_x/200$, 
$\delta_y=L_y/200$, 
$\delta_t=\frac{\sqrt{\delta_x^2+\delta_y^2}}{2c}$, 
$\nu=2$ Hz, 
$T=10$~s.

\label{LastPage}
\end{document}

Télécharger le fichier source Latex