summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/pbsheet/xpl/xpl-fr.tex
blob: 2b5e04e387a33ed42ae9b630510fb731a7fda6ee (plain)
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
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
\documentclass{pbsheet}

\TITRE{Feuille de TP n°1 -- Initiation à Matlab}
\FORMATION{Préparation à l'épreuve de modélisation 
 - Agrégation Externe de Mathématiques}
\ETABLISSEMENT{Université de l'Anonyme XXII}
\ANNEE{2004}
\MEL{agreg@labo.univ.fr}
\AUTEUR{A. Grégatif}
\WEB{http://www.labo.univ.fr/}
\DATE{\today}

\begin{document}

Ce TP porte sur les entrées et sorties, les fonctions et les outils
graphiques dont vous disposez sous Matlab.

\section{Entrées et sorties}

La commande \texttt{input} permet de demander à l'utilisateur Matlab d'entrer
les valeurs de variables à utiliser. La commande \texttt{pause} permet de
stopper l'exécution Matlab. Vous pouvez préciser le nombre de secondes de pose
ou revenir à Matlab en appuyant sur n'importe quelle touche. La commande
\texttt{save} permet de sauvegarder dans un fichier, dont le nom par défaut
est \texttt{matlab.mat}, le contenu de certaines variables dont vous souhaitez
garder une trace. Ce fichier peut être appelé par la commande \texttt{load}
qui restaure toutes les variables que vous avez sauvegardées.

\begin{lstlisting}[language=Matlab]{Créations et Sauvegardes sous Matlab}
n=input('Entrez la valeur de n : ');   % Affectez une valeur à n.
a=input('Precisez la valeur de a : '); % Affectez une valeur à a.
v=a.^[0:n]; A=toeplitz(v); d=det(A);  % Création de la matrice de Toeplitz A
save restoep n a A d; % Sauvegarde de n, a, A, d dans restoep.mat
clear                 % Efface toutes les variables de la session.
load restoep          % Restaure les variables de restoep.mat.
who                   % Vérification. 
\end{lstlisting}

\section{Fonctions}

Un ensemble de commandes Matlab peut être considéré comme une fonction. On
peut voir une fonction comme un sous-programme Matlab dont les paramètres
éventuels sont les arguments de la fonction et dont les résultats sont les
images de cette fonction. Beaucoup de fonctions Matlab, comme par exemple
\texttt{mean}, sont déjà écrites en Matlab et le code Matlab correspondant est
stocké dans un fichier dont le nom se termine par \texttt{.m}. Pour
\texttt{mean}, il s'agit de \texttt{mean.m}. Ajouter de nouvelles fonctions à
Matlab revient donc à écrire de nouveaux fichiers de ce type. Il est d'usage
d'appeler une fonction du même nom que le fichier correspondant.

\textbf{Simulation de lois discrètes.} Dans votre répertoire personnel, éditer
le fichier \texttt{probadis.m} suivant dont le code Matlab génère une
réalisation aléatoire d'une loi discrète à support fini.

\MFILE{probadis}

La commande Matlab \texttt{type} permet de lister le contenu d'un fichier.
Ainsi, \texttt{type probadis} vous montrera le code source Matlab de la
fonction \texttt{probadis}. Le commentaire ajouté à partir de la seconde ligne
constituera l'aide affiché lorsque l'utilisateur tapera \texttt{help
  probadis}. Finalement, la commande \texttt{what} liste les fichiers Matlab
du répertoire courant.

Voici une autre fonction de simulation de loi discrète, qui peut renvoyer une
matrice de réalisations.

\MFILE{rdiscr}

\begin{exo}[Loi binomiale]
  Créer un code Matlab permettant de générer un vecteur aléatoire $X$
  contenant $N$ réalisations i.i.d. de loi binomiale $\cB(n,p)$ où les valeurs
  $N,n\geq 1$ et $0<p<1$ sont affectées par l'utilisateur.  Pour $N$ assez
  grand, vérifier la LGN sur les moyennes empiriques successives de $X$. Voici
  un exemple de programme qui fait l'affaire, et donc la sortie graphique se
  trouve en page \pageref{fi:simbin}.
\end{exo}

\MFILE{simbin}

\begin{exo}
  Soit $(X_n)_{n\in\dN}$ une suite de variables aléatoires i.i.d. de loi
  exponentielle $\cE(\lambda)$ avec $\lambda >0$. Si $S_n=\sum_{k=1}^n X_k$,
  $N_0=0$ et pour tout $t> 0$, $N_t=\sum_{n=1}^\infty \rI_\BRA{S_n\leq t}$,
  $(N_t)_{t\geq0}$ est un processus de Poisson d'intensité $\lambda$. Montrer
  que, pour tout $t>0$, $N_t$ suit la loi de Poisson $\cP(\la t)$.  En déduire
  un code Matlab permettant de générer un vecteur aléatoire $Y$ contenant $N$
  réalisations i.i.d. de loi $\cP(\la)$ où les valeurs $N\geq 1$ et $\la>0$
  sont affectées par l'utilisateur. Pour $N$ assez grand, vérifier la LGN sur
  les moyennes empiriques successives de $Y$.
\end{exo}

\begin{exo}
  Pour $N$, $N_1$ et $n \geq 1$ avec $N_1,n \leq N$, la loi hypergéométrique
  $\cH(N,N_1,n)$ est donnée, pour tout $k \in \dN$ avec $0\leq k \leq n$, par
  $\dP(X=k)=C_{N_1}^kC_{N-N_1}^{n-k}/C_N^n$.  Créer un code Matlab permettant
  de générer un vecteur aléatoire $Z$ contenant $M$ réalisations i.i.d. de loi
  $\cH(N,N_1,n)$ où les valeurs $M, N \geq 1$ et $N_1,n\leq N$ sont affectées
  par l'utilisateur.
  \begin{enumerate}
  \item Si $N$ tend vers l'infini et le rapport $N_1/N$ tend vers $p$ avec
    $0<p<1$, montrer que $X$ converge en loi vers la loi Binomiale $\cB(n,p)$.
    Pour $M, N$ assez grand et $N_1=pN$ avec $0<p<1$, tracer l'histogramme de
    $Z$ et comparer le à la loi $\cB(n,p)$.
  \item Si $N$, $N_1$ et $n$ tendent vers l'infini et le produit $nN_1/N$ tend
    vers $\la>0$, montrer que $X$ converge en loi vers la loi de Poisson
    $\cP(\la)$.  Pour $M$, $N$ assez grand, $N_1=\la\sqrt{N}$ et $n=\sqrt{N}$,
    tracer l'histogramme de $Z$ et comparer le à la loi $\cP(\la)$.
  \end{enumerate}
\end{exo}

\section{Représentations graphiques} 

\begin{lstlisting}[language=Matlab]
 {Illustration de la LGN pour la loi exponentielle} 
  clear; n=1000; lambda=0.5; X=-log(rand(n,1))/lambda;
  figure;                         % Création d'une nouvelle fenêtre graphique.
  plot(cumsum(X)'./[1:length(X)],'b')  % Trace les moy. emp. successives de X.
  title('Loi des Grands Nombres')      % Titre de la figure.
  xlabel('Nombre de réalisations')     % Titre des abscisses.
  ylabel('Moyennes empiriques')        % Titre des ordonnées.
  hold  on                             % Garde la fenêtre graphique.
  plot(1/lambda*ones(n,1),'r--');      % Trace la limite théorique.
  legend('Empirique','Theorique');     % Légende.
\end{lstlisting} 

\begin{exo} 
  Ajouter à vos codes Matlab les représentations graphiques rencontrées
  ci-dessus.
\end{exo}

\FIG{simbin}{1.0}{htbp}{Sortie graphique du programme \ref{code:simbin}
  \pageref{code:simbin}.}
    
Voici une fonction Matlab qui permet de simuler la loi uniforme discrète finie
de façon rapide et simple.

\MFILE{rint}

\nocite{*}

\phantomsection % Nécessaire pour le PDF.
\addcontentsline{toc}{section}{Bibliographie}
\bibliographystyle{amsalpha}
\bibliography{xpl-fr}

\end{document}