\documentclass[11pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[french]{babel}

\usepackage{amsmath}
\usepackage{amssymb}


\usepackage{times}

\usepackage{graphicx}


\oddsidemargin -0.2cm
\textwidth 16.8cm
\topmargin -2.8cm
\headheight 0.0cm
\textheight 26.80cm
\parindent 0pt
\parskip 12pt

\newcommand{\R}{\ensuremath{\mathbb R}}
\newcommand{\N}{\ensuremath{\mathbb N}}
\newcommand{\Z}{\ensuremath{\mathbb Z}}
\newcommand{\C}{\ensuremath{\mathbb C}}
\def\Rtwo{\R^2}
\def\ds{\displaystyle}
\newcommand{\uim}{{\bf i}}

%\pagestyle{empty}

\begin{document}
\noindent
{\rule{\textwidth}{.2mm}}\\
Universit{\'e} Pierre et Marie Curie  -- Paris 6
\hfill
Projet 1\\
Informatique scientifique en C++\hfill
2010--2011\\
{\rule{\textwidth}{.2mm}}\\[2mm]

\vspace{-1cm}


\begin{center}
\framebox{
\begin{minipage}{14cm}
{\sl Nous rappelons que lors de la soutenance de ce projet vous
devez pr{\'e}senter un {\bf rapport {\'e}crit sous LateX}.
 Le rapport doit d{\'e}crire les d{\'e}veloppements
analytiques faits et illustrer les r{\'e}sultats obtenus avec des
figures g{\'e}n{\'e}r{\'e}es sous Gnuplot. Il n'est pas n{\'e}cessaire d'inclure
les listings des programmes C++ dans le rapport -- ils seront
pr{\'e}sent{\'e}s s{\'e}par{\'e}ment.}
\end{minipage}}
\end{center}

%\medskip


\begin{center}
\framebox{\Large\sl
\begin{minipage}{14cm}
  \begin{center}
  Projet 1 : R{\'e}solution de l'{\'e}quation des ondes 1D
\end{center}
\end{minipage}}
\end{center}



\framebox{\centerline{\bf Probl{\`e}me physique et analyse
math{\'e}matique}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Les oscillations d'une corde {\'e}lastique sont d{\'e}crites par
l'{\'e}quation des ondes
\begin{equation}
\label{IK-eqondes00}
\partial_{tt}^2 u(x,t) -c^2\partial_{xx}^2 u(x,t)=0, \quad t>0,
\end{equation}
o{\`u} la vitesse de propagation $c$ d{\'e}pend de la tension $\tau$ dans
la corde et de sa densit{\'e} lin{\'e}aire $\rho$ suivant la loi :
$c=\sqrt{\tau/\rho}$. Par la suite, on consid{\`e}re $c=const$.

Le probl{\`e}me de Cauchy correspondant n{\'e}cessite deux conditions
initiales
\begin{equation}
\label{IK-eqondes0ci} u(x,0) = u_0(x),\quad \partial_{t} u(x,0)=
u_1(x).
\end{equation}



%\textbf{Q0) Solution exacte pour la corde infinie :} Dans le cas
%d'une corde vibrante infinie ($x\in \R$), v{\'e}rifier que la solution
%g{\'e}n{\'e}rale s'{\'e}crit sous la forme :
%\begin{equation}
%  u(x,t)=f(x-ct)+g(x+ct).
%\end{equation}
%En utilisant les conditions initiales (\ref{IK-eqondes0ci})
%montrer que
%\begin{equation}
%\label{IK-itatou} u(x,t) = \frac{u_0(x-ct)+u_0(x+ct)}{2}
%+\frac{1}{2c}\int_{x-ct}^{x+ct}u_1(s)ds.
%\end{equation}


\textbf{Q1) Caract{\'e}ristiques :} V{\'e}rifier que les quantit{\'e}s ${\cal
Q}_{1,2}=c\,\frac{\partial u}{\partial x} \pm \frac{\partial
u}{\partial t}$ sont conserv{\'e}es sur les courbes d'{\'e}quations ${\cal
C}_{1,2} : x \pm c t =const$, c'est-{\`a}-dire
\[
\left. \frac{d{\cal Q}_{1}}{dt}\right|_{{\cal C}_1}= \left.
\frac{d{\cal Q}_{2}}{dt}\right|_{{\cal C}_2}=0
\]
Les droites ${\cal C}_{1,2}$ sont les {\em courbes
caract{\'e}ristiques} de l'{\'e}quation des ondes.


\textbf{Q2) Solution exacte pour la corde finie :} Consid{\'e}rons une
corde de longueur $\ell$ finie, fix{\'e}e aux extr{\'e}mit{\'e}s. Les
conditions aux limites correspondantes sont :
\begin{equation}
\label{IK-eqondes0cl} u(0,t) = u(\ell,t) =0,\quad \forall t>0.
\end{equation}
V{\'e}rifier que la solution exacte pour la corde vibrante finie peut
s'{\'e}crire sous la forme :
\begin{equation}
  u(x,t)=\sum_{k\in \N^*}[A_k \cos(\frac{k\pi}{\ell}ct)
+ B_k \sin(\frac{k\pi}{\ell}ct) ]\phi_k(x),\qquad
\phi_k(x)=\sin(\frac{k\pi}{\ell}x). \label{IK-eq-solcvf}
\end{equation}
Trouver que
\begin{equation}
  A_k =\frac{2}{\ell}\int_0^{\ell}
u_0(x)\phi_k(x) dx, \qquad
  B_k =\frac{2}{k\pi c}\int_0^{\ell}
u_1(x)\phi_k(x) dx.
 \label{IK-eq-solcvf2}
\end{equation}

\framebox{\centerline{\bf R{\'e}solution num{\'e}rique}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


Pour la r{\'e}solution num{\'e}rique, le domaine de d{\'e}finition du probl{\`e}me sera discr{\'e}tis{\'e}\\
{\em en espace}
\begin{equation}\label{eqdiscx}
  [0,\ell]=\bigcup_{j=0}^{M-2}\,[x_j, x_j+h],\,\, x_j=j\, \delta x,\,\,j=0,1,\ldots,M-1,\,\, \delta x=\ell/(M-1),
\end{equation}
et  {\em en temps}
 \begin{equation}\label{eqdisct}
[0, t_{max}]=\bigcup_{n=0}^{N-2}\,[t_n, t_n+\delta t],\,\, t_n=n
\delta t,\,\,n=0,1,\ldots,N-1,\,\,\delta t=T/(N-1).
\end{equation}
On note $u^n_j=u(x_j,t_n)$. Les valeurs num{\'e}riques calcul{\'e}es aux
m{\^e}mes points $(x_j,t_n)$ seront not{\'e}es par $U^n_j$.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Consid{\'e}rons le sch{\'e}ma aux diff{\'e}rences finies suivant pour r{\'e}soudre
(\ref{IK-eqondes00}) :
\begin{equation}
     {1\over\delta t^2}( U^{n+1}_j -2U^n_j+U^{n-1}_j)
   -{c^2}{ \cal D}\left[\theta U^{n+1}_j+(1-2\theta)U^n_j+\theta
U^{n-1}_j\right]=0, \label{eqOcentr}
\end{equation}
avec l'op{\'e}rateur lin{\'e}aire r{\'e}sultant par une discr{\'e}tisation centr{\'e}e
de la d{\'e}riv{\'e}e seconde en espace :
\begin{equation}
  \label{eqOpcentr}
     {\cal  D} \left[U_j\right] = (U_{j+1}-2U_j+U_{j-1})/\delta x^2.
\end{equation}


 {\bf Q3) Sch{\'e}ma explicite :}  Le sch{\'e}ma explicite est obtenu en prenant $\theta=0$ dans
(\ref{eqOcentr}).
%\begin{equation}
%  \label{eqOexp}
%     {1\over\delta t^2}( U^{n+1}_j -2U^n_j+U^{n-1}_j)
%   -{c^2\over \delta x^2}(U^n_{j+1}-2U^n_j+U^n_{j-1})=0.
%\end{equation}
Ecrire ce sch{\'e}ma et justifier qu'il est pr{\'e}cis {\`a} l'ordre deux en
temps et en espace. En repr{\'e}sentant graphiquement dans le plan
$(x,t)$ les caract{\'e}ristiques (cf. question Q1)  qui passent par le
point $(x_j,t_n)$, justifier la condition de stabilit{\'e} suivante
pour le sch{\'e}ma explicite :
\begin{equation}\label{eqCFL}
\sigma=\left|\frac{c \,\delta t}{\delta x}\right| \leq 1
\end{equation}

Ecrire le programme C++ qui utilise l'algorithme de r{\'e}solution
suivant :
   \begin{itemize}
  \item[$\bullet$] Connaissant les conditions initiales $u_0(x_j)$ et $u_1(x_j)$, on calcule
    $U^{0}_j, U^{1}_j$ par
\begin{equation} U^0_j=u_0(x_j), \quad U_j^{1}= U^0_j +\delta t\, u_1(x_j)\end{equation}

\item[$\bullet$] Pour $n\geq 1$, on calcule :

\begin{equation}  U_j^{n+1}= 2(1-\sigma^2)U_j^{n} +
\sigma^2(U^n_{j-1}+U^n_{j+1})- U_j^{n-1}. \label{IK-eq-schsig}
\end{equation}
\end{itemize}

{\bf Attention, il n'est pas n{\'e}cessaire d'utiliser pour la
programmation une matrice $U[j,n]$. La solution num{\'e}rique sera
repr{\'e}sent{\'e}e par trois vecteurs, par exemple $U0[j]$ pour
$U^{n-1}_j$, $U1[j]$ pour $U^{n}_j$, $U2[j]$ pour $U^{n+1}_j$ ;
ces vecteurs seront actualis{\'e}s {\`a} chaque nouveau pas de temps. Si
n{\'e}cessaire, les valeurs de la solution correspondant {\`a} un instant
de temps donn{\'e} seront sauvegard{\'e}es dans un fichier.}


Utiliser les param{\`e}tres suivants :
$$c=2, \ell=1, M=101, \delta x=\frac{\ell}{(M-1)}, \sigma=0.8, \delta t= \frac{\sigma \delta x}{c},\quad
u_0(x)=\sin(\frac{\pi}{\ell}x)+\frac{1}{4}\sin(10\frac{\pi}{\ell}x),
\quad u_1(x)=0.$$


Tracer la solution exacte (quelle est sa formule analytique ?) et
la solution num{\'e}rique pour plusieurs instants de temps sur une
p{\'e}riode de temps $T=2\ell/c$ (par exemple, pour $t=0, T/4, T/2,
3T/4, T$).



%\medskip
 {\bf Q4) Sch{\'e}ma implicite :} Reprendre le sch{\'e}ma (\ref{eqOcentr})
pour $\theta\ne 0$. Ecrire le programme C++ qui utilise ce sch{\'e}ma
($\theta$ est un param{\`e}tre introduit par l'utilisateur) pour
r{\'e}soudre l'{\'e}quation des ondes avec les param{\`e}tres de la question
Q3. Application num{\'e}rique : $\theta=1/4$.

Comparer avec les r{\'e}sultats obtenus avec le sch{\'e}ma explicite. Que
se passe-t-il si on prend des valeurs $\sigma>1$ pour les deux
sch{\'e}mas (explicite et implicite) ? Commenter.

%Pour le sch{\'e}ma implicite, utiliser deux m{\'e}thodes (une directe et
%une it{\'e}rative) pour r{\'e}soudre le syst{\`e}me lin{\'e}aire r{\'e}sultant.

\medskip
 {\bf Q5)(facultative) Sch{\'e}ma implicite :} Tester aussi le sch{\'e}ma implicite suivant qui
 est  inconditionnellement stable et {\`a} l'ordre un en temps :
\begin{equation}
     {1\over\delta t^2}( U^{n+1}_j -2U^n_j+U^{n-1}_j)
   -{c^2}{ \cal D} \left[U^{n+1}_j\right]=0.
\end{equation}
Commenter les r{\'e}sultats.


\end{document}
