\documentclass[10pt]{article}
%\usepackage{graphicx}\usepackage{amssymb}
%\usepackage[ansinew]{inputenc}
\usepackage{isolatin1}
%\pagestyle{empty}\font\smc=cmcsc10\font\srm=cmr8\font\hrm=cmr10\font\brm=cmr12\font\Brm=cmr14
\textwidth = 15cm\textheight = 22.8cm\hoffset = -1.1cm\voffset = -2cm\parindent = .5cm\def\N{\mathbf{N}}
\def\exo#1{\par\vskip0.4cm {\bf Exercice #1.}\hskip1em}

\begin{document}
Université Paris-Sud \hfill 2006

S2-IFIPS

\vskip1cm


\centerline{\bf TRAVAUX PRATIQUES EN MATLAB, deuxième séance}

\vskip1cm

\section{Comment lancer matlab à la Maison de l'Ingénieur}

\subsection{En salle SUN}

Entrer (login, mot de passe). 

Si la bannière de Solaris réapparaît de façon insistante, c'est qu'il faut détruire des fichiers de configuration incompatibles, par exemple .dt. C'est l'occasion de de nettoyer les caches de navigateurs. Entrer en mode console sélectionnant, dans la bannière, Option$\to$Session$\to$Command Line Login. Taper \texttt{rm -rf ./.dt}, \texttt{rm -rf ./.mozilla}, \texttt{rm -rf ./.netscape}. Même tarif si on dépasse son quota (\texttt{du -sk ./.*} donne la taille des fichiers cachés).

Cliquer sur l'icone File Manager de Solaris. Dans la fenêtre File Manager, ouvrir File$\to$Terminal. Dans la fenêtre Terminal, taper \texttt{telnet myrtille}, redonner login et mot de passe, puis taper \texttt{matlab\&}.

A la première utilisation de l'éditeur, pour sauvegarder un sous-programme, vérifier en haut que le chemin est correct, i.e. se termine bien par votre répertoire personnel.

Pour quitter, fermer la fenêtre matlab, cliquer sur l'icône QUIT de Solaris.

\subsection{En salles WINDOWS}

Entrer (login, mot de passe). Ouvrir Programmes$\to$Matlab. Si matlab crache une foule de messages d'erreur, cliquer OK autant de fois qu'il le faut.

A la première utilisation de l'éditeur, avant de sauvegarder un sous-programme, indiquer le chemin. Dans la fenêtre de l'éditeur, ouvrir File$\to$Set Path. Dans la fenêtre PathBrowser, cliquer Browse, sélectionner votre répertoire personnel tout en bas, cliquer OK, fermer la fenêtre Path Browser. Si ça ne marche pas, taper dans la fenêtre de commande matlab \texttt{addpath 'C:$\backslash$ Documents and Settings$\backslash$répertoire personnel'}.

Pour quitter, fermer la fenêtre matlab, fermer la session.

\section{Au travail}

\exo1
\begin{enumerate}
\item Tracer un cercle $\mathcal{C}$ dont le centre est le point $M(-2,1)$ et le rayon est $r=3$. Indiquer sur la figure le centre du cercle par le symbole $+$. Veiller à ce que l'unité soit la même sur les deux axes (\texttt{axis}).
\item Tracer sur la même figure le plus petit carré contenant le cercle $\mathcal{C}$ dont les côtés sont parallèles aux axes.
\item Dans un fichier appelé \texttt{tracecercle.m}, écrire une fonction \texttt{tracecercle} qui prend comme arguments les réels $a$, $b$, $r$ et le caractère $c$ et trace le cercle de centre $M(a,b)$ et de rayon $r$ de couleur $c$. On veillera à insérer un commentaire qui explique ce que fait la fonction.
\item Utiliser la fonction \texttt{tracecercle} pour tracer les anneaux olympiques.
\end{enumerate}

\exo2
On étudie les suites $(u_{n})_{n\in\N}$ définies par une condition initiale $u_{0}\in\N$ et la relation de récurrence
\begin{eqnarray*}
\left\{\begin{array}{cc}
u_{n+1}=\frac{u_{n}}{2}&\textrm{si } u_{n} \textrm{ est pair,}\\
u_{n+1}=3u_{n}+1&\textrm{sinon.}
\end{array}\right.
\end{eqnarray*}
\begin{enumerate}
\item Calculer les 10 premiers termes de la suite quand $u_{0}=3$. Recommencer avec $u_{0}=6$. Que constatez-vous ?
\item Ecrire une fonction qui prend comme arguments deux entiers $a$ et $N$ et retourne le vecteur ligne $U=(u_{0},\cdots,u_{N})$ des valeurs de la suite de condition initiale $u_{0}=a$. Faire varier $u_{0}$.
\item Ecrire une fonction qui prend comme argument un entier $a$, calcule les valeurs de la suite de condition initiale $u_0 =a$ tant que $u_n \not=1$ (on limitera à 1000 le nombre d'itérations).
\end{enumerate}

\exo3
On considère une population de bactéries, décrite par le nombre $e_n$ d'individus à la $n$-ème génération. Soit $E$ le nombre maximum de bactéries que le milieu peut supporter. On s'intéresse à la fraction $x_n =e_n /E$. L'évolution de la population est décrite par la loi $x_{n+1}=rx_n (1-x_n )$, où $r$ est un réel entre 0 et 4.

\begin{enumerate}
\item On choisit $r=2.8$, $x_1 =0.3$. Calculer le vecteur $X$ des 50 premiers termes de la suite (pour réduire le temps de calcul, on pensera à initialiser le vecteur $X$ par la commande \texttt{X=zeros(1,50)}). Représenter graphiquement $x_n$ en fonction de $n$.
\item On veut faire varier les paramètres $r$, $x_1$ et le nombre $N$ d'itérés à calculer. Dans un fichier \texttt{population.m}, écrire une fonction \texttt{X=population(r,N,x1)} qui reçoit en arguments un réel $r$, un entier $N$ et un réel $x1$ et retourne le vecteur $X$ des $N$ premiers termes de la suite récurrente commençant par $x1$ et de paramètre $r$. Représenter graphiquement $x_n$ en fonction de $n$ dans les cas suivants :
\par\noindent
$\bullet$ cas a : $r=3.5$, $x1=0.3$,
\par\noindent
$\bullet$ cas b : $r=3.7$, $x1=0.2$.\par
 Préciser, dans chaque cas, si la suite est périodique ou chaotique.
\item En utilisant la fonction \texttt{hist}, tracer l'histogramme des valeurs de la suite, dans chaque cas. Comment se caractérise chacun des régimes ?
\item On veut représenter la suite $(x_n )$ sous la forme d'une diagramme en ``toile''. On note $f(x)=rx(1-x)$. On choisit $r=2.8$. Tracer dans une même figure la courbe représentative de $f$, la droite $y=x$ ainsi que la ligne brisée qui joint les points $(x_1 ,0)$, $(x_1 ,x_2 )$, $(x_2 ,x_2 )$, ..., $(x_{12},x_{12})$, lorsque $x_1 =0.1$. On choisira la fenêtre $0\leq x\leq 1$, $0\leq y\leq 1$. Faire la même représentation graphique pour le cas a puis le cas b. Si besoin est, on augmentera le nombre d'idérations que l'on représente.
\item A vous de jouer ! Déterminer d'autres valeurs de $r$ pour lesquelles on constate des oscillations périodiques (choisir des valeurs de $r$ dans $]3,3.6[$). Déterminer d'autres valeurs de $r$ pour lesquelles on constate un comportement chaotique. Que pensez-vous de l'influence de la condition initiale $x_1$ ?
\end{enumerate}

\exo4
On considère l'équation différentielle $(\mathcal{E})$ : $y'(t)=\frac{1}{10}y(t)+\sin(t)$.
\begin{enumerate}
\item Sur papier, écrire la fonction $F$ de deux variables telle que l'équation $(\mathcal{E})$ s'écrive sous la forme $y'=F(t,y)$. Dans un fichier \texttt{F.m}, programmer cette fonction.
\item Si, dans la fenêtre de commande, on tape \texttt{[t y]=ode45('F',[t0 tfin],y0)}, Matlab retourne un vecteur $t$, subdivision de l'intervalle $[\texttt{t0},\texttt{tfin}]$, et un vecteur $y$ contenant les valeurs aux points de $t$ d'une solution approchée de $(\mathcal{E})$ sur l'intervalle $[\texttt{t0},\texttt{tfin}]$ de condition initiale $y(\texttt{t0})=\texttt{y0}$. Tracer sur une même figure la solution approchée $y$ et la solution exacte $z(t)=\exp(\frac{t}{10})-\frac{10}{101}(10\cos t + \sin t)$ sur l'intervalle $[0,15]$ avec condition initiale $y(0)=\frac{1}{101}$. %Utiliser la loupe sur la figure pour comparer les deux courbes, notamment au voisinage des maxima et des minima.
\end{enumerate}
\end{document}