Retour : Démarrer en Scilab
Précédent : Calculs sur les lois
Suivant : Index

Exercices

Il y a souvent plusieurs manières d'obtenir le même résultat en Scilab. On s'efforcera de choisir les solutions les plus compactes, c'est-à-dire celles qui utilisent au mieux le langage matriciel.

Exercice 1   Ecrire (sans utiliser de boucle) les vecteurs suivants :
  1. Nombres de $ 1$ à $ 3$ par pas de $ 0.1$.
  2. Nombres de $ 3$ à $ 1$ par pas de $ -0.1$.
  3. Carrés des $ 10$ premiers entiers.
  4. Nombres de la forme $ (-1)^n n^2$ pour $ n=1,\ldots,10$.
  5. $ 10$ ``0'' suivis de $ 10$ ``$ 1$''.
  6. $ 3$ ``0'' suivis de $ 3$ ``$ 1$'', suivis de $ 3$ ``$ 2$'',..., suivis de $ 3$ ``$ 9$''.
  7. $ 1$ ``$ 1$'' suivi de $ 2$ ``$ 2$'', suivis de $ 3$ ``$ 3$'',..., suivis de $ 9$ ``$ 9$''.
  8. ``$ 1$'', suivi de $ 1$ ``0'', suivi de ``2'', suivi de 2 ``0'',... , suivi de ``$ 8$'', suivi de $ 8$ zéros, suivi de ``$ 9$''.

Exercice 2   Ecrire (sans utiliser de boucle) les matrices carrées d'ordre $ 6$ suivantes :
  1. Matrice diagonale, dont la diagonale contient les entiers de $ 1$ à $ 6$.
  2. Matrice contenant les entiers de $ 1$ à $ 36$, rangés par lignes.
  3. Matrice dont toutes les lignes sont égales au vecteur des entiers de $ 1$ à $ 6$.
  4. Matrice diagonale par blocs, contenant un bloc d'ordre $ 2$ et un d'ordre $ 4$. Les $ 4$ coefficients du premier bloc sont égaux à $ 2$. Le deuxième bloc contient les entiers de $ 1$ à $ 16$ rangés sur $ 4$ colonnes.
  5. Matrice $ A=((-1)^{i+j})\,i,j=1,\ldots,6$.
  6. Matrice contenant des ``$ 1$'' sur la diagonale, des ``$ 2$'' au-dessus et au-dessous, puis des ``$ 3$'', jusqu'aux coefficients d'ordre $ (1,6)$ et $ (6,1)$ qui valent $ 6$.

Exercice 3   Ecrire la matrice $ A=(a_{i,j})$ d'ordre $ 12$ contenant les entiers de $ 1$ à $ 144$, rangés par lignes. Extraire de cette matrice les matrices $ B$ suivantes.
  1. Coefficients $ a_{i,j}$ pour $ i=1,\ldots,6$ et $ j=7,\ldots,12$.
  2. Coefficients $ a_{i,j}$ pour $ i+j$ pair.
  3. Coefficients $ a_{i,j}$ pour $ i,j=1,2,5,6,9,10$.

Exercice 4   $ $
  1. Ecrire les polynômes de degré 6 suivants.
    1. polynôme dont les racines sont les entiers de $ 1$ à $ 6$.
    2. polynôme dont les racines sont 0 (racine triple), $ 1$ (racine double) et $ 2$ (racine simple).
    3. polynôme $ (x^2-1)^3$.
    4. polynôme $ x^6-1$.
    Pour chacun de ces polynômes :
  2. Ecrire la matrice compagnon $ A$ associée à ce polynôme : la matrice compagnon associée au polynôme

    $\displaystyle P=x^d-a_{d-1}x^{d-1}-\cdots-a_1x-a_0\;.
$

    est :

    $\displaystyle A = 
 \left(
 \begin{array}{cccccc}
 0&1&0&\ldots&&0\\  
 \vdots&...
...  
 0&\ldots&&\ldots&0&1\\  
 a_0&a_1&&\ldots&&a_{d-1}
 \end{array}
 \right)\;.$    

  3. Calculer les valeurs propres de la matrice $ A$.
  4. Calculer le polynôme caractéristique de $ A$.

Exercice 5   $ $
  1. Ecrire la matrice carrée $ N$ d'ordre $ 6$, telle que $ a_{i,j}=1$ si $ j=i+1$, 0 sinon.
  2. Calculer $ N^k$, pour $ k=1,\ldots,6$.
  3. Ecrire la matrice $ A=xI+N$, où $ x$ est une variable de polynôme.
  4. Calculer $ A^k$, pour $ k=1,\ldots,6$.
  5. Pour $ x=-2$, et $ t=0,1,2$, calculer $ \exp(At)$.

Exercice 6   Représenter les fonctions $ f$ suivantes, en choisissant l'intervalle des abscisses et des ordonnées ainsi que le pas de discrétisation des abscisses, de façon à obtenir la représentation la plus informative possible.
  1. $ f(x)=1/x$.
  2. $ f(x)=e^x$.
  3. $ f(x)=1/\sin(x)$.
  4. $ f(x)=x/\sin(x)$.
  5. $ f(x)=\sin(x)/x$.

Exercice 7   Superposer les représentations suivantes sur le même graphique, allant de 0 à $ 1$ en abscisse et en ordonnée.
  1. La première bissectrice ($ y=x$).
  2. La fonction $ y=f(x)=1/6+x/3+x^2/2$.
  3. La tangente à la fonction $ f$ au point $ x=1$.
  4. Un segment vertical allant de l'axe des $ x$ au point d'intersection de la fonction $ f$ et de la première bissectrice, et un segment horizontal allant de ce point d'intersection à l'axe des $ y$.
  5. Les indications ``point fixe'' et ``tangente'', positionnées sur le graphique comme chaînes de caractères.

Exercice 8   Le but de l'exercice est de représenter sur un même graphique des familles de fonctions. On choisira le nombre de courbes, l'intervalle de représentation, les échelles en $ x$ et $ y$ ainsi que le pas de discrétisation des abscisses, de façon à obtenir la représentation la plus informative possible.
  1. Fonctions $ f_a(x) = x^ae^{-x}$, pour $ a$ allant de $ -1$ à $ 1$.
  2. Fonctions $ f_a(x)=1/(x-a)^2$, pour $ a$ allant de $ -1$ à $ 1$.
  3. Fonctions $ f_a(x)=\sin(a*x)$, pour $ a$ allant de 0 à $ 2$.

Exercice 9   Pour chacune des courbes paramétrées suivantes, on choisira un intervalle de valeurs du paramètre et un pas de discrétisation assurant une représentation complète et suffisamment lisse.
  1. \begin{displaymath}
\left\{
\begin{array}{lcl}
x(t)&=& \sin(t)\\
y(t)&=& \cos^3(t)
\end{array}
\right.
\end{displaymath}

  2. \begin{displaymath}
\left\{
\begin{array}{lcl}
x(t)&=& \sin(4\,t)\\
y(t)&=& \cos^3(6\,t)
\end{array}
\right.
\end{displaymath}

  3. \begin{displaymath}
\left\{
\begin{array}{lcl}
x(t)&=& \sin(132\,t)\\
y(t)&=& \cos^3(126\,t)
\end{array}
\right.
\end{displaymath}

Exercice 10   Le but de l'exercice est de visualiser de différentes manières la surface définie par $ z=f(x,y)=x\,y^2$.
  1. Choisir un domaine de représentation et les pas de discrétisation, de manière à optimiser la représentation par fsurf.
  2. Même question en utilisant plot3d.
  3. Modifier l'échelle des couleurs pour obtenir une représentation en dégradé de gris, pour laquelle l'intensité lumineuse croît avec $ z$.
  4. Choisir un vecteur de valeurs de $ x$. Pour chaque valeur de ce vecteur, on considère la courbe définie par $ z=f(x,y)$. Représenter ces courbes sur la même fenêtre graphique.
  5. Choisir un vecteur de valeurs de $ y$. Pour chaque valeur de ce vecteur, on considère la courbe définie par $ z=f(x,y)$. Représenter ces courbes sur la même fenêtre graphique.

Exercice 11   Le but de l'exercice est de visualiser un cône de différentes manières.
  1. Représenter la surface d'équation $ z=1-\sqrt{x^2+y^2}$.
  2. Représenter la surface paramétrée définie par :

    \begin{displaymath}
\left\{
\begin{array}{lcl}
x(u,v)&=& u\,\cos(v)\\
y(u,v)&=& u\,\sin(v)\\
z(u,v)&=& 1-u\;.
\end{array}
\right.
\end{displaymath}

  3. Représenter la courbe paramétrée définie par :

    \begin{displaymath}
\left\{
\begin{array}{lcl}
x(t)&=& t\,\cos(a t)\\
y(t)&=& t\,\sin(a t)\\
z(t)&=& 1-t\;.
\end{array}
\right.
\end{displaymath}

    (On choisira une valeur de $ a$ suffisamment grande).
  4. Représenter la famille de courbes paramétrées définies par :

    \begin{displaymath}
\left\{
\begin{array}{lcl}
x(t)&=& a\,\cos(t)\\
y(t)&=& a\,\sin(t)\\
z(t)&=& 1-a\;.
\end{array}
\right.
\end{displaymath}

Exercice 12   Ecrire les fonctions suivantes, sans utiliser de boucle. Toutes prennent en entrée un vecteur colonne $ v=(v_i)$, un vecteur ligne $ w=(w_j)$ et retournent en sortie une matrice $ A=(a_{i,j})$ qui a autant de lignes que $ v$ et autant de colonnes que $ w$. Seules les expressions des coefficients $ a_{i,j}$ diffèrent.
  1. produit : $ a_{i,j}=v_i*w_j$.
  2. somme : $ a_{i,j}=v_i+w_j$.
  3. quotient : $ a_{i,j}=v_i/w_j$.
  4. echiquier : $ a_{i,j}=v_i$ si $ i+j$ est pair, $ w_j$ sinon.

Exercice 13   Ecrire les fonctions suivantes, sans utiliser de boucle.
  1. insere_zeros : Elle prend en entrée une matrice quelconque $ A$. Elle insère une colonne de zéros après chaque colonne de A, et retourne en sortie la matrice modifiée (même nombre de lignes, deux fois le nombre de colonnes).
  2. alterne2_colonnes : Elle prend en entrée deux matrices quelconques $ A$ et $ B$, supposées de mêmes dimensions. Elle retourne la matrice formée en alternant les colonnes de $ A$ et $ B$.
  3. alterne3_colonnes : Même chose pour trois matrices $ A$, $ B$ et $ C$ de mêmes dimensions.

Exercice 14   Ecrire les fonctions suivantes. Toutes prennent en entrée une fonction externe $ f$ (de IR dans IR), et trois valeurs $ x_{min}$, $ x_0$ et $ x_{max}$ (supposées telles que $ x_{min}\leq x_0 \leq x_{max}$).
  1. derive : Elle calcule numériquement et représente graphiquement la dérivée de $ f$ sur l'intervalle $ [x_{min},x_{max}]$. Elle retourne la valeur approchée de $ f'(x_0)$.
  2. tangente : Elle représente la fonction $ f$ sur l'intervalle $ [x_{min},x_{max}]$, elle superpose sur le même graphique la tangente à $ f$ au point $ x_0$, et retourne l'équation de cette tangente comme un polynôme du premier degré.
  3. araignee : Elle représente la fonction $ f$ sur l'intervalle $ [x_{min},x_{max}]$, ainsi que la droite d'équation $ y=x$ (première bissectrice). Elle calcule et retourne les $ 10$ premiers itérés de $ f$ en $ x_0$ ( $ x_1=f(x_0), x_2=f\circ f(x_0), \ldots$). Elle représente la suite de segments, alternativement verticaux et horizontaux, permettant de visualiser les itérations : segments joignant $ (x_0,0)$, $ (x_0,x_1)$, $ (x_1,x_1)$, $ (x_1,x_2)$, $ (x_2,x_2)$, ...
  4. newton : Elle représente la fonction $ f$ sur l'intervalle $ [x_{min},x_{max}]$. Elle calcule et retourne les dix premiers itérés de la suite définie à partir de $ x_0$ par la méthode de Newton : $ x_1=x_0 -f(x_0)/f'(x_0)$, $ x_2=x_1 - f(x_1)/f'(x_1)$ ...Les valeurs de la dérivée sont approchées. La fonction représente sur le même graphique les segments permettant de visualiser les iterations : segments joignant $ (x_0,0)$, $ (x_0,f(x_0))$, $ (x_1,0)$, $ (x_1,f(x_1))$, $ (x_2,0)$, $ (x_2,f(x_2))$,...

Exercice 15   Ecrire une fonction ech_rejet, qui simule un échantillon par la méthode de rejet. La fonction prend en entrée les dimensions de l'échantillon à engendrer, un vecteur de modalités et un vecteur de probabilités $ p=(p_i)\,,\, i=1,\ldots,n$ (la distribution à simuler sur les modalités).
  1. Elle calcule la constante $ c=\max\{ n p_i\,,\,i=1,\ldots,n\}$, puis le vecteur $ r=(n/c) p$. Pour chaque valeur à engendrer, une modalité $ i$ est tirée au hasard. Un tirage au hasard est effectué : la modalité $ i$ est conservée avec probabilité $ r_i$, rejetée sinon. Ceci est répété jusqu'à ce que la modalité soit acceptée.
  2. Tester cette fonction sur différentes distributions de probabilité, et comparer son temps d'exécution avec la fonction ech_dist du paragraphe 5.1.

Exercice 16   Ecrire une fonction inversion qui simule un échantillon d'une loi de probabilité continue par la méthode d'inversion. Les arguments de la fonction sont les deux entiers donnant la taille de la matrice à engendrer, et la fonction externe $ F$ (supposée être une fonction de répartition). Pour simuler la loi de fonction de répartition $ F$, on appelle un nombre au hasard $ u$ sur $ [0,1]$ et on retourne le réel $ x$ tel que $ F(x)=u$.
  1. Ecrire la fonction. Pour résoudre l'équation $ F(x)=u$, on pourra utiliser fsolve, ou coder une résolution par dichotomie.
  2. Tester la fonction en utilisant des fonctions de répartition de lois usuelles (fonctions cdf*). Comparer le temps d'exécution avec celui du générateur grand.

Exercice 17   Ecrire une fonction kolm_smir pour le test de Kolmogorov-Smirnov. La fonction prend en entrée un échantillon $ x=(x_i)\,,\, i=1,\ldots,n$ et une fonction externe $ F$, supposée être une fonction de répartition.
  1. Elle trie l'échantillon par ordre croissant pour produire la série des statistiques d'ordre. Elle représente graphiquement les points d'abscisse $ (i/n)\,,\, i=1,\ldots,n$, et d'ordonnée les statistiques d'ordre $ (x_{(i)})\,,\, i=1,\ldots,n$. Elle superpose au même graphique la représentation de $ F$.
  2. Elle calcule (sans utiliser de boucle) la distance de Kolmogorov-Smirnov entre la distribution théorique et la distribution observée, par la formule :

    $\displaystyle D_{KS} = \max_{i=1,\ldots,n}\,
\Big\{\,\Big\vert F(x_{(i)})-\fr...
...{n}\Big\vert\,,\,
\Big\vert F(x_{(i)})-\frac{i\!-\!1}{n}\Big\vert\,\Big\}\;.
$

    Elle retourne la p-valeur du test de Kolmogorov-Smirnov, comme valeur approchée de la somme :

    $\displaystyle p = 2\sum_{k=1}^{+\infty}(-1)^{k+1}\exp(-2k^2 n D_{KS}^2)\;.
$

  3. Tester la fonction kolm_smir sur des lois usuelles en utilisant d'abord le générateur grand, puis la fonction inversion de l'exercice précédent.

Exercice 18   Ecrire une fonction fisher_student prenant en entrée deux echantillons (vecteurs de nombres), et appliquant les tests de Fisher et Student à ces deux échantillons.
  1. La fonction calcule les moyennes et variances empiriques des deux échantillons, ainsi que les statistiques des deux tests.
  2. Elle retourne la p-valeur des deux tests (bilatéraux).

Exercice 19   Ecrire une fonction anova prenant en entrée trois echantillons (vecteurs de nombres), et réalisant une analyse de variance de ces échantillons.
  1. La fonction calcule les moyennes et variances empiriques des trois échantillons, la variance expliquée et la variance résiduelle.
  2. Elle retourne la p-valeur du test d'analyse de variance pour l'ensemble des trois échantillons, ainsi que pour chacun des trois couples d'échantillons.



Retour : Démarrer en Scilab
Précédent : Calculs sur les lois
Suivant : Index

© B. Ycart (2001)