\documentclass{pbsheet}

\TITRE{Feuille de TP n°1 -- Initiation à Matlab}
\FORMATION{\'Epreuve de modélisation - Agrégation Externe de Mathématiques}
\ETABLISSEMENT{Université Paul Sabatier Toulouse III}
\ANNEE{2004}
\MEL{chafai@math.ups-tlse.fr}
\AUTEUR{B. Bercu \& D. Chafaï}
\WEB{http://www.lsp.ups-tlse.fr/Chafai/agregation.html}
\DATE{Octobre 2004}

\begin{document}

L'objectif de ce TP est de vous familiariser avec le logiciel Matlab,
contraction de Matrix Laboratory.
Matlab n'est pas \`a la base un langage de calcul formel comme
Mathematica ou Maple. Il s'agit d'un interpr\'eteur de commandes \'ecrites
en langage Matlab. Ce logiciel a \'et\'e con\c{c}u pour faciliter
les op\'erations sur les vecteurs, matrices et tableaux. Il dispose \'egalement d'un grand nombre de fonctions, ainsi
que certains outils utiles en Probabilit\'es et Statistiques. 
On commence par donner 
quelques commandes pour 
\'editer les lignes.

\medskip

\begin{tabular}{lll}
Rappel de la commande pr\'ec\'edente        &     Ctrl p & (previous)   \cr  
Ligne suivante              &      Ctrl n   &  (next)  \cr
Annulation de commande              &     Ctrl v \cr
D\'ebut de ligne               &     Ctrl a \cr
Fin de ligne                &      Ctrl e   &  (end)\cr
\end{tabular} 

\medskip

%%
\section{Avant de commencer}
%%

\begin{tabular}{ll}
\texttt{matlab}	& Lancer Matlab. \\
\texttt{! dir}	& Taper une commande en dehors de l'environnement Matlab, ici sous Windows. \\ 
\texttt{quit}	& Quitter Matlab. \\ 
\end{tabular}   

Sous Windows, on peut accéder directement à Matlab par le chemin suivant :
\texttt{Démarrer/Programmes/Matlab}.

%%
\section{Notions de base}
%%

\begin{tabular}{ll}
\texttt{helpwin} & Ouverture de la fenêtre d'aide Matlab. \\ 
\end{tabular}

\medskip

Cette fenêtre d'aide présente les différents champs regroupant 
les commandes MATLAB. Avec la souris, on peut choisir l'un des champs 
(par ex. \texttt{elmat}) avec un double click. On peut ensuite choisir de 
la même manière une des commandes (par ex. \texttt{eye}). 
Il apparaît alors la description de la commande \texttt{eye}.
Revenir dans la fenêtre où vous avez tapé \texttt{helpwin} et taper 
\texttt{help eye}, la description est ainsi directement accessible. 
Faire d'autres essais. 

%
\subsection*{Créations et Manipulations sous Matlab}
%

\begin{tabular}{ll}
\texttt{a=4;b=pi;}  
 & La valeur 4 est affectée à \texttt{a} et la valeur $\pi$ à \texttt{b}.\\
\texttt{who}      
 & Liste les variables Matlab utilisées dans la session. \\
\texttt{clear b}  
 & Destruction de la variable \texttt{b}.\\
\texttt{who}      
 & Vérification que la variable \texttt{b} n'existe plus.\\
\texttt{sqrt(a)}  
 & Calcul la racine carrée de la variable \texttt{a}. \\
\texttt{A=[1 2 3;4 5 6; 7 8 9]} 
 & Création «à la main» de la matrice \texttt{A}. \\
\texttt{b=A(2,:)} 
 & \texttt{b} est le vecteur ligne contenant la deuxième ligne de \texttt{A}.\\
\texttt{c=A(:,3)} 
 & \texttt{c} est le vecteur colonne contenant la troisième 
   colonne de \texttt{A}.\\
\texttt{B=A(1:2,1:2)}          
 & B est la première sous-matrice carrée 
d'ordre 2 de $A$.
\end{tabular}

%\subsection*{Vecteurs et Matrices sous Matlab}

\begin{tabular}{ll}
\texttt{X=[1:20];}
 & \texttt{X} est le vecteur ligne contenant les entiers de $1$ à $20$. \\
\texttt{Y=[1:2:20];}  
 & \texttt{Y} est le vecteur ligne contenant les entiers $1,3,\ldots,19$.\\
\texttt{C=A'}
 & \texttt{C} est la matrice transposée de \texttt{A}.\\
\texttt{A+C;A*C}	
 & Addition et multiplication matricielles classiques.\\
\texttt{n=4;A=eye(n)}	
 & Création de la matrice identité d'ordre $4$.\\
\texttt{B=zeros(n)}   
 & \texttt{B} est la matrice nulle d'ordre $4$.\\
\texttt{C=ones(n)} 
 & \texttt{C} est la matrice carrée d'ordre 4 ne contenant que des $1$. \\
\texttt{D=pascal(n)}		
 & \texttt{D} est la matrice de Pascal d'ordre $4$. \\
\texttt{p=2; D\^p} 
 & Calcul de $D^2$.\\
\texttt{inv(D);sqrtm(D)} 
 & Inverse et racine carrée matricielle de \texttt{D}.\\
\texttt{det(D);trace(D);eig(D)} 
 & Déterminant, trace et valeurs propres de \texttt{D}.\\
\texttt{ans}
 & La variable \texttt{ans} contient la dernière réponse 
   Matlab non affectée.
\end{tabular}          


\begin{exo}
Effectuer des calculs élémentaires sur les matrices associées à 
\texttt{vander}, \texttt{toeplitz}, \texttt{hankel}, \texttt{hadamard},
\texttt{magic}.
\end{exo}

\begin{exo}
Construire la matrice \texttt{A} carrée symétrique d'ordre $n=5$
dont le terme général est donné, pour $i \geq j$, par $a_{ij}=2^{i-j}$.
Calculer son déterminant, son inverse et ses valeurs propres.
\end{exo}

%%
\section{Premiers pas en statistiques}
%%

\begin{tabular}{ll}
\texttt{rand}
 & Générateur aléatoire associé à la loi uniforme ${\mathcal U}([0,1])$. \\
\texttt{randn}
 & Générateur aléatoire associé à la loi normale ${\mathcal N}(0,1)$.\\
\texttt{X=rand(1000,1)}
 & X est un vecteur colonne contenant $n=1000$ réalisations i.i.d. 
   ${\mathcal U}([0,1])$.\\
\texttt{s=sum(X)}
 & Calcul la somme des composantes de $X$. \\
\texttt{m=mean(X)}
 & Calcul la moyenne empirique de $X$.\\
\texttt{v=var(X)}
 & Calcul la variance empirique de $X$ avec une division par $n-1$.\\
\texttt{sigma=std(X)}
 & Calcul l'écart-type empirique de $X$ avec une division par $n-1$.\\
\texttt{var(X,1)} ou \texttt{std(X,1)} 
 & Mêmes quantitées avec division par $n$.\\ 
\texttt{Z=(X-m)/sigma}	
 & Renormalisation du vecteur $X$.\\
\texttt{mean(Z),std(Z)}	
 & Vérification. \\
\end{tabular}

\begin{exo} 
Construire plusieurs fois $Z$ en faisant varier le nombre 
de réalisations $n$ de $100$ à $100\,000$. Tracer à chaque fois l'histogramme
de $Z$ en faisant aussi varier le nombre de classes. Conclure.
\end{exo}

%%
\section{Vers la Loi des Grands Nombres} 
%%

\begin{tabular}{ll}
\texttt{clear}
 & Efface toutes les variables de la session. \\
\texttt{n=1000;X=rand(n,1);}
 & \\
\texttt{l=0.5; Y=-log(X)/l;}  
 & Quelle est la loi théorique associée à $Y$ ? \\
\texttt{Z=tan(pi*(X-0.5));} 	
 & Quelle est la loi théorique associée à $Z$ ? 
\end{tabular}

\begin{exo}
Tracer les moyennes empiriques successives de $Y$ et vérifier
la loi des grands nombres. Augmenter le nombre $n$ 
de réalisations pour affiner la précision. Tracer l'histogramme de $Y$
et comparer le avec sa loi théorique.
\end{exo}

\begin{exo}
Effectuer le même exercice pour la loi normale ${\mathcal N}(0,1)$.
Que se passe-t-il sur $Z$ ? Quelle est la loi de la moyenne empirique 
associée à $Z$ ? Conclure.
\end{exo}

\end{document}




