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   Écrire (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$'', suivi de $ 1$ ``0'', suivi de ``2'', suivi de 2 ``0'',... , suivi de ``$ 8$'', suivi de $ 8$ zéros, suivi de ``$ 9$''.
  8. $ 1$ ``$ 1$'' suivi de $ 2$ ``$ 2$'', suivis de $ 3$ ``$ 3$'',..., suivis de $ 9$ ``$ 9$''.

Exercice 2   Écrire (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   Écrire 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. Écrire 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. Écrire 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&\ddots&...
...dots&0\ 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. Écrire la matrice carrée $ N$ d'ordre $ 6$, telle que $ n_{i,j}=1$ si $ j=i+1$, 0 sinon.
  2. Calculer $ N^k$, pour $ k=1,\ldots,6$.
  3. Écrire 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   Etant donnée une série numérique convergente $ \displaystyle{\sum_{n=0}^{+\infty} u_n}$, de somme $ s$, le reste à l'ordre $ n$ est défini comme la différence entre la somme et la somme partielle à l'ordre $ n$.

$\displaystyle r_n = s-\sum_{k=0}^{n} u_k = \sum_{k=n+1}^{+\infty} u_k\;.
$

Le but de l'exercice est de déterminer la valeur de $ n$ à partir de laquelle le reste $ r_n$ est inférieur à $ 10^{-3}$, pour les séries suivantes.
  1. $ \displaystyle{
\sum_{n=0}^{+\infty} \frac{1}{(n+1)(n+2)} = 1
\;.
}
$
  2. $ \displaystyle{
\sum_{n=0}^{+\infty} 0.9^n = 10
\;,\quad
\sum_{n=0}^{+\infty} 0.99^n = 100
\;,\quad
\sum_{n=0}^{+\infty} 0.999^n = 1000
\;.
}
$
  3. $ \displaystyle{
\sum_{n=0}^{+\infty} \frac{(-1)^n}{n!} = \exp(-1)
\;,\quad
\sum...
...n!} = \exp(1)
\;,\quad
\sum_{n=0}^{+\infty} \frac{(10)^n}{n!} = \exp(10)
\;.
}
$
  4. $ \displaystyle{
\sum_{n=0}^{+\infty} \frac{(-1)^n\pi^{2n}}{(2n)!} = -1
\;,\quad...
...{+\infty} \frac{(-1)^n(\frac{\pi}{4})^{2n}}{(2n)!} =
\frac{\sqrt{2}}{2}
\;.
}
$

Exercice 7   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)=\mathrm{e}^x$.
  3. $ f(x)=1/\sin(x)$.
  4. $ f(x)=x/\sin(x)$.
  5. $ f(x)=\sin(x)/x$.

Exercice 8   On considère la fonction $ f(x)=3x^2+1+\frac{1}{\pi^4}\log((\pi-x)^2)$.
  1. Vérifier que cette fonction prend des valeurs négatives sur $ \mathbb{R}^+$. Représenter la fonction sur les abscisses x=[0:0.0001:5].
  2. Choisir deux réels positifs (petits), eps1 et eps2. Représenter la fonction sur
    [%pi-eps1:eps2:%pi+eps1]. Quelles valeurs de eps1 et eps2 donnent une représentation correcte de la fonction $ f$ au voisinage de $ \pi$ ?

Exercice 9    
  1. Représenter la fonction $ \exp(x)$ sur l'intervalle $ [-1,1]$. Sur le même graphique, superposer les représentations des polynômes de Taylor de cette fonction en $ x=0$, aux ordres $ 1,2,3,4$.
  2. Représenter la fonction $ \exp(x)$ sur l'intervalle $ [1,2]$. Sur le même graphique, superposer les représentations des polynômes de Taylor de cette fonction en $ x=1$, aux ordres $ 1,2,3,4$.
  3. Représenter la fonction $ \sin(x)$ sur l'intervalle $ [-\pi,\pi]$. Sur le même graphique, superposer les représentations des polynômes de Taylor de cette fonction en $ x=0$, aux ordres $ 1,3,5$.

Exercice 10   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 11   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^a\mathrm{e}^{-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 12   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 13   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 14   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 15   Écrire 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 16   Écrire 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 17   Écrire les fonctions suivantes, sans utiliser de boucle.
  1. La fonction $ f$ prend en entrée un entier $ n$ et deux réels $ a, b$ et retourne la matrice $ A$ dont les termes diagonaux valent $ a$, tous les autres termes étant égaux à $ b$.
  2. La fonction $ g$ prend en entrée un entier $ n$ et trois réels $ a,
b, c$ et retourne la matrice $ A=(a_{i,j})_{i,j=1,\ldots,n}$ dont les termes diagonaux sont égaux à $ a$, les termes $ a_{i,i+1}$ égaux à $ b$ et termes $ a_{i+1,i}$ égaux à $ c$, pour $ i=1,\ldots,n-1$.
  3. La fonction $ h$ prend en entrée un vecteur $ x=(x_i)_{i=1,\ldots,n}$ et retourne en sortie la matrice $ A=(a_{i,j})_{i,j=1,\ldots,n}$ définie par $ a_{i,j} = x_j^{i-1}$ (matrice de Vandermonde).

Exercice 18   Le but de l'exercice est d'étudier la méthode de Horner pour l'évaluation algorithmique des polynômes. Soit un polynôme $ P$ défini par:

$\displaystyle P(X) = a_nX^n+a_{n-1}X^{n-1}+\cdots+a_1X+a_0\;.
$

  1. On considère la suite de polynômes définie par :

    \begin{displaymath}
\left\{
\begin{array}{lcl}
Q_0(X)&=& a_n\\
Q_i(X)&=& XQ_{i-1}(X)+a_{n-i}\;.
\end{array}\right.
\end{displaymath}

    Vérifier que $ Q_n=P$. Étant donné un réel $ x$, calculer en fonction de $ n$ le nombre d'opérations (multiplications ou additions) nécessaires pour le calcul de
    $ Q_0(x),\ldots,Q_n(x)$. Comparer avec le nombre d'opérations nécessaires pour le calcul de $ P(x)$.
  2. Écrire une fonction Horner_Poly, qui prend en entrée un polynôme $ P$ et un vecteur $ x=(x_i)$, et qui retourne en sortie le vecteur des $ P(x_i)$, en utilisant l'algorithme de Horner.
  3. On considère le polynôme $ P(X)=(X-2)^{15}$, le vecteur x=[1.6:0.0001:2.4] et les quatre vecteurs des images de x par $ P$, calculés comme suit.
    1. y1=(x-2).^15
    2. c=coeff((%s-2)^15); y2=zeros(x);
      for i=1:16, y2=y2+c(i)*x.^(i-1); end;
    3. y3=Horner_Poly(P,x)
    4. y4=horner(P,x)
    Comparer les temps de calcul des quatre vecteurs. Calculer la différence maximale entre ces vecteurs pris deux à deux.

Exercice 19   Écrire les fonctions suivantes. Toutes prennent en entrée une fonction externe $ f$ (de $ \mathbb{R}$ dans $ \mathbb{R}$), 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 itérations : 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 20   Soit $ n$ un entier, $ x=(x_i)_{i=1,\ldots,n+1}$ et $ y=(y_i)_{i=1,\ldots,n+1}$ deux vecteurs de réels. On appelle «polynôme interpolateur de Lagrange» des $ y_i$ aux abscisses $ x_i$, le polynôme $ P(X)$ défini par :

$\displaystyle P(X) = \sum_{i=1}^n y_i\prod_{j\neq i} \frac{X-x_j}{x_i-x_j}\;.
$

  1. Écrire une fonction poly_Lagrange, qui prend en entrée deux vecteurs $ x$ et $ y$ de même taille. Elle retourne le polynôme interpolateur de Lagrange $ P(X)$. Elle represente sur le même graphique les points de coordonnées $ (x_i,y_i)$ et le graphe du polynome $ P(X)$.
  2. Tester votre fonction avec : x=[-5:5]; y=x.^2, puis y=x.^3-2*x.^2+4*x+1;
    (verifier que y-horner(P,x) est proche de 0).

    Tester votre fonction avec plusieurs realisations de x=rand(1,10) et @y=rand(1,10)@.

Exercice 21    
  1. Écrire une fonction integre_rectangles qui prend en entrée un vecteur $ x=(x_i)_{i=1,\ldots,n}$ d'abscisses et un vecteur $ y=(y_i)_{i=1,\ldots,n}=(f(x_i))_{i=1,\ldots,n}$ d'ordonnées et qui calcule l'intégrale approchée de la fonction $ f$ par la méthode des rectangles à gauche :

    $\displaystyle I = \sum_{i=1}^{n-1} f(x_i)(x_{i+1}-x_i)\;.
$

    Comparer les résultats de cette fonction sur plusieurs intégrales, calculées explicitement et avec les fonctions intrap et intsplin.
  2. Même question avec la méthode des trapèzes :

    $\displaystyle I = \sum_{i=1}^{n-1} \frac{1}{2}(f(x_i)+f(x_{i+1}))(x_{i+1}-x_i)\;.
$

Exercice 22    
  1. L'intégrale de 0 à $ +\infty$ de $ \frac{\sin(t)}{t}$ vaut $ \frac{\pi}{2}$. Donner une representation graphique convaincante de la fonction. Écrire une suite de commandes qui permette de calculer l'intégrale avec une précision de $ 10^{-3}$, avec chacune des fonctions inttrap, intsplin, integ et intg.
  2. Même question pour l'intégrale sur $ \mathbb{R}$ de $ \exp(-t^2)$ qui vaut $ \sqrt{\pi}$.


         © UJF Grenoble, 2011                              Mentions légales