En partenariat avec
Annale

ECRICOME 2026Maths appliquées

Connectez-vous pour consulter le corrigé.

Accès complet à tous les corrigés avec un abonnement.
Essai gratuit 48h — accès immédiat, sans CB.

ÉcoleECRICOME
Année2026
OptionMaths appliquées
Thème principalAlgèbre, Analyse, Probabilités
ChapitresCalcul matriciel, Diagonalisation, Suites, Fonctions, Calcul intégral, Equations différentielles, Systèmes différentiels, Séries, Formules de Taylor, Intégrales impropres, Statistiques, Espaces probabilisés, Variables aléatoires discrètes, Vecteurs aléatoires discrets, Informatique, Bases de données
Commentaire

Ce sujet est équilibré et conforme aux attendus classiques de la filière ECG.

Il mobilise des outils variés du programme — probabilités discrètes, régression linéaire, développements limités, séries alternées, systèmes différentiels linéaires et matrices nilpotentes — dans des cadres familiers, sans introduire de difficulté technique excessive.

L’exercice 1 combine efficacement probabilités et interprétation statistique, avec un prolongement naturel en SQL qui valorise les compétences transversales attendues dans la filière.

L’exercice 2 propose une étude progressive d'une fonction, menant à une approximation de ln(2) par des méthodes classiques de séries alternées.

Enfin l’exercice 3 articule résolution de systèmes différentiels et exponentielle de matrices nilpotentes, dans un cadre accessible mais structurant.

L’ensemble constitue un sujet progressif, discriminant par la qualité de la rédaction et de l’organisation des raisonnements plus que par la technicité des calculs.

Exercice 1

Soit \(\displaystyle n\) un entier naturel supérieur ou égal à 2.

Toutes les variables aléatoires intervenant dans cet exercice sont définies sur un espace probabilisé \((\Omega,\mathcal{A},\mathbb{P})\).

Un particulier souhaite assurer un nouveau bien. Il consulte pour cela un site internet qui diffuse un classement de \(\displaystyle n\) compagnies d’assurances, de la mieux classée par les utilisateurs (compagnie \(\displaystyle \mathrm{n}^{\circ} 1\)) à la moins bien classée (compagnie \(\displaystyle \mathrm{n}^{\circ} n\)). Ce classement ne varie pas d’année en année.

La première année, le particulier choisit une compagnie d’assurances au hasard, avec équiprobabilité, parmi les \(\displaystyle n\) compagnies proposées.

On note \(\displaystyle X\) la variable aléatoire égale au numéro, dans le classement, de la compagnie choisie.

L’année suivante, le particulier choisit au hasard de manière équiprobable une compagnie parmi toutes celles qui sont au moins aussi bien classées que celle qu’il avait choisie l’année précédente (il peut éventuellement être amené à conserver la même compagnie). On note alors \(\displaystyle Y\) la variable aléatoire égale au numéro, dans le classement, de la compagnie choisie pour cette seconde année.

  1. Identifier la loi de la variable aléatoire \(\displaystyle X\). Donner son espérance et sa variance.

  2. Montrer que la loi conjointe du couple \((\displaystyle X, Y )\) est donnée par : \[\forall(j, k) \in \left[\!\left[1, n\right]\!\right]^{2}, \ \mathbb{P}([X=j] \cap[Y=k])= \begin{cases} \displaystyle \frac{1}{n j} & \text { si } k \leqslant j \\ \hfill 0 \hfill & \text { si } k \geqslant j+1 \rule[0pt]{0pt}{20pt}\end{cases}\]

  3. En déduire la valeur, en fonction de \(\displaystyle n\), de la somme double suivante : \(\displaystyle \sum_{k=1}^{n} \sum_{j=k}^{n} \frac{1}{j}\).

  4. Pour tout entier naturel \(\displaystyle k\) de \(\displaystyle \left[\!\left[1, n\right]\!\right]\), exprimer \(\displaystyle \mathbb{P}(Y=k)\) sous la forme d’une somme.

    1. Montrer que \(\displaystyle \sum_{k=1}^{n} \sum_{j=k}^{n} \frac{k}{j}=\frac{1}{2} \sum_{j=1}^{n}(j+1)\).

    2. Justifier que \(\displaystyle Y\) admet une espérance et montrer que l’espérance de \(\displaystyle Y\) vaut \(\displaystyle \frac{n+3}{4}\).

    1. Justifier que l’espérance de la variable aléatoire \(\displaystyle X Y\) existe et vérifie : \[\mathbb{E}(X Y)=\frac{1}{2 n} \sum_{j=1}^{n} j \left( j+1 \right)\]

    2. En déduire l’expression de \(\displaystyle \mathbb{E}(X Y)\) en fonction de \(\displaystyle n\).

    3. Déterminer la covariance du couple \((\displaystyle X, Y )\) en fonction de \(\displaystyle n\).

  5. Les variables aléatoires \(\displaystyle X\) et \(\displaystyle Y\) sont-elles indépendantes?

    1. Écrire une fonction en langage Python nommée simulXY, prenant en argument d’entrée l’entier \(\displaystyle n\), et renvoyant une réalisation du couple de variables aléatoires \(\displaystyle (X, Y)\).

    2. On considère une série statistique à deux variables \(\displaystyle (x, y)\).

      Expliquer ce que renvoie la fonction Myst suivante qui prend en argument d’entrée la série statistique \((\displaystyle x, y )\) sous forme de tableau numpy à deux lignes.

    3. On a représenté ci-après plusieurs tracés figurant le nuage de points \(\displaystyle \left(x_{i}, y_{i}\right)_{i \in \left[\!\left[1,1000\right]\!\right]}\) correspondant à 1000 réalisations du couple \((\displaystyle X, Y )\) pour \(\displaystyle n=100\) et le point moyen de la série statistique (i.e. le point de coordonnées \(\displaystyle (\overline{x}, \overline{y}) )\) figuré par une croix rouge.

      Parmi ces tracés figure celui de la droite d’ajustement affine par la méthode des moindres carrés.

      Déterminer lequel de ces tracés correspond à la droite d’ajustement affine par la méthode des moindres carrés. Une réponse justifiée est attendue.

  6. On note \(\displaystyle A_{n}\) l’événement: « le particulier choisit la même compagnie d’assurances lors des deux années considérées ».

    1. Exprimer l’événement \(\displaystyle A_{n}\) à l’aide des variables aléatoires \(\displaystyle X\) et \(\displaystyle Y\).

    2. Montrer que: \(\displaystyle \mathbb{P}\left(A_{n}\right)=\frac{1}{n} \sum_{j=1}^{n} \frac{1}{j}\).

    3. Montrer que, pour tout entier naturel \(\displaystyle j\) non nul, \(\displaystyle \frac{1}{j+1} \leqslant \ln (j+1)-\ln (j) \leqslant \frac{1}{j}\).

    4. En déduire que \(\displaystyle \frac{\ln (n+1)}{n} \leqslant \mathbb{P}\left(A_{n}\right) \leqslant \frac{1}{n}+\frac{\ln (n)}{n}\).

    5. Montrer que \(\displaystyle \mathbb{P}\left(A_{n}\right) \underset{n \rightarrow+\infty}{\sim} \frac{\ln (n)}{n}\).

  7. Pour répondre aux questions suivantes, on pourra se référer aux commandes rappelées en annexe.

    Dans une base de données, on dispose d’une table adherent dont chaque enregistrement correspond à un individu assuré, et qui recense les compagnies d’assurances choisies en 2025 et en 2026 par chaque assuré. Ses attributs sont les suivants:

    • assure (de type INTEGER) : un numéro permettant d’identifier l’assuré.

    • id_2025 (de type INTEGER) : un code permettant d’identifier la compagnie d’assurances à laquelle l’assuré a souscrit en 2025.

    • id_2026 (de type INTEGER) : un code permettant d’identifier la compagnie d’assurances à laquelle l’assuré a souscrit en 2026.

    On dispose également d’une table compagnie dont chaque enregistrement correspond à une compagnie et qui associe pour chaque compagnie son nom et son identifiant. Ses attributs sont les suivants :

    • id (de type INTEGER) : un code permettant d’identifier la compagnie d’assurances.

    • nom (de type TEXT) : le nom de la compagnie d’assurances.

    Le format de la table adherent est illustré dans le tableau ci-dessous.

    assureid_2025id_2026
    100333
    100442
    100511
    100634
    100724

    Le format de la table compagnie est illustré dans le tableau ci-dessous.

    idnom
    1Assurplus
    2Garantia
    3SecurVie
    4MutuelPro
    1. Écrire une requête SQL permettant d’afficher le nombre d’assurés ayant conservé la même compagnie d’assurances entre 2025 et 2026.

    2. Expliquer ce que réalise la commande SQL suivante :

    3. Dans sa base de données, le site internet qui diffuse les avis sur les compagnies d’assurances dispose d’une table avis, dans laquelle chaque enregistrement correspond à un avis déposé par un utilisateur concernant une compagnie. La table avis est composée des attributs suivants :

      • id (de type INTEGER) : un numéro permettant d’identifier l’avis.

      • usr (de type TEXT) : le nom d’utilisateur de la personne ayant déposé l’avis.

      • compagnie (de type INTEGER) : un code permettant d’identifier la compagnie d’assurances évaluée dans l’avis.

      • note (de type INTEGER) : la note sur 10 attribuée par l’utilisateur à la compagnie évaluée.

      • commentaire (de type TEXT) : l’appréciation déposée par l’utilisateur sur la compagnie.

      Le format de la table avis est illustré dans le tableau ci-dessous.

      idusrcompagnienotecommentaire
      5001alice 9218Très bon service!
      5002karimBoss26Service correct.
      5004david12337Bon rapport qualité-prix.
      5005emma_p25Déçue par le service.
      5007alice 9238Très professionnels.
      5008david12349Service impeccable.

      Écrire une requête SQL permettant d’obtenir, pour chaque compagnie d’assurances évaluée, la note moyenne que les utilisateurs lui ont attribuée. On affichera pour chaque enregistrement l’attribut compagnie, ainsi que l’attribut note correspondant désormais à la moyenne de toutes les notes obtenues par la compagnie.

    4. On appelle moyenne la table issue de la requête décrite à la question précédente.

      Écrire une requête SQL permettant de classer les compagnies d’assurances, de la mieux notée à la moins bien notée.

Exercice 2

On considère la fonction \(\displaystyle f\) définie par \[f(x)=\ln \! \left(\frac{1}{1-x}\right)\]

Partie I

  1. Déterminer le domaine de définition de \(\displaystyle f\).

    Dans les questions qui suivent, on note \(\displaystyle I\) le domaine de définition de \(\displaystyle f\).

  2. Calculer les limites de \(\displaystyle f\) aux bornes de son domaine de définition.

  3. Dresser le tableau de variations de \(\displaystyle f\) sur \(\displaystyle I\).

    1. Déterminer le développement limité à l’ordre 2 de \(\displaystyle f\) en 0.

    2. En déduire une équation de la tangente à la courbe représentative de \(\displaystyle f\) au point d’abscisse 0, ainsi que la position relative de la courbe par rapport à sa tangente au voisinage de ce point.

  4. Représenter, dans un même repère orthonormé, l’allure de la courbe représentative de \(\displaystyle f\) et sa tangente au point d’abscisse 0.

Partie II

Pour tout entier naturel \(\displaystyle n\) non nul et tout réel \(\displaystyle x\), on pose : \[S_{n}(x)=\sum_{k=1}^{n} \frac{x^{k}}{k}\]

    1. Donner la nature de la série \(\displaystyle \sum_{k \geqslant 1} \frac{1}{k}\).

    2. Étudier la monotonie de la suite \(\displaystyle \left(S_{n}(1)\right)_{n \in \mathbb{N}^{*}}\).

    3. En déduire que \(\displaystyle \lim _{n \rightarrow+\infty} S_{n}(1)=+\infty\).

  1. Montrer que, pour tout réel \(\displaystyle x\) de \(\displaystyle ]-1,1[\), la série \(\displaystyle \sum_{k \geqslant 1} \frac{x^{k}}{k}\) converge absolument.

    1. Montrer que les suites \(\displaystyle \left(S_{2 n}(-1)\right)_{n \in \mathbb{N}^{*}}\) et \(\displaystyle \left(S_{2 n+1}(-1)\right)_{n \in \mathbb{N}^{*}}\) sont adjacentes.

    2. En déduire que la suite \(\displaystyle \left(S_{n}(-1)\right)_{n \in \mathbb{N}^{*}}\) est convergente.

      On admet que \(\displaystyle \lim _{n \rightarrow+\infty} S_{n}(-1)=\sum_{k=1}^{+\infty} \frac{(-1)^{k}}{k}=-\ln (2)\).

    3. En utilisant la monotonie des suites \(\displaystyle \left(S_{2 n}(-1)\right)_{n \in \mathbb{N}^{*}}\) et \(\displaystyle \left(S_{2 n+1}(-1)\right)_{n \in \mathbb{N}^{*}}\), montrer que \[\forall n \in \mathbb{N}^{*}, \ \left| \ln (2)+S_{2 n}(-1) \right| \leqslant S_{2 n}(-1)-S_{2 n+1}(-1)\]

    4. Montrer que, pour tout entier naturel \(\displaystyle n\) non nul, \(\displaystyle \left|\ln (2)+S_{n}(-1)\right| \leqslant \frac{1}{n}\).

  2. Dans cette question uniquement, \(\displaystyle x\) est un réel strictement supérieur à 1.

    1. Déterminer la nature de la série \(\displaystyle \sum_{k \geqslant 1} \frac{x^{k}}{k}\).

      Pour tout \(\displaystyle x \in [-1,1 [\), on pose \(\displaystyle S(x)=\lim _{n \rightarrow+\infty} S_{n}(x)=\sum_{k=1}^{+\infty} \frac{x^{k}}{k}\).

    2. En déduire la limite de la suite \(\displaystyle \left(S_{n}(x)\right)_{n \in \mathbb{N}^{*}}\).

Partie III

Dans toute cette partie, \(\displaystyle a\) désigne un réel fixé dans l’intervalle \(\displaystyle ]-1,1[\).

Pour tout entier naturel \(\displaystyle n\) non nul, on considère l’intégrale notée \(\displaystyle R_{n}(a)\) définie par : \[R_{n}(a)=\int_{0}^{a} \frac{(a-t)^{n}}{(1-t)^{n+1}} \,\mathrm{d}t\]

On considère à nouveau la fonction \(\displaystyle f\) définie à la Partie I ainsi que la suite \(\displaystyle \left(S_{n}(x)\right)_{n \geqslant 1}\) et la fonction \(\displaystyle S\) définies à la Partie II.

    1. Déterminer en fonction de \(\displaystyle a\) les valeurs de \(\displaystyle \int_{0}^{a} \frac{1}{1-t} \,\mathrm{d}t\) et \(\displaystyle \int_{0}^{a} \frac{1}{(1-t)^{2}} \,\mathrm{d}t\).

    2. Montrer que \(\displaystyle f(a)=a+R_{1}(a)\).

      Indication : On pourra écrire \(\displaystyle a-t=(a-1)+(1-t)\).

  1. Montrer par intégration par parties que, pour tout entier naturel \(\displaystyle n\) non nul \[R_{n}(a)=\frac{a^{n+1}}{n+1}+R_{n+1}(a)\]

  2. En utilisant les résultats des questions 10b et 11, montrer que, pour tout entier naturel \(\displaystyle n\) non nul \[f(a)=S_{n}(a)+R_{n}(a).\]

    Indication : On pourra procéder par récurrence.

  3. Dans cette question uniquement, on suppose que \(\displaystyle a \in[0,1[\).

    1. Montrer que pour tout réel \(\displaystyle t\) de \(\displaystyle [0, a]\), \(\displaystyle 0 \leqslant \frac{a-t}{1-t} \leqslant a\).

    2. Montrer que, pour tout entier naturel \(\displaystyle n\) non nul, \(\displaystyle 0 \leqslant R_{n}(a) \leqslant \frac{a^{n+1}}{1-a}\).

    3. En déduire que \(\displaystyle f(a)=S(a)\).

    1. En utilisant les résultats des questions précédentes, justifier que, pour tout entier naturel \(\displaystyle n\) non nul, \[\left|\ln (2)-\sum_{k=1}^{n} \frac{1}{k 2^{k}}\right| \leqslant \frac{1}{2^{n}}\]

    2. Écrire une fonction en langage Python, nommée Val, prenant en argument eps désignant le réel \(\displaystyle \varepsilon\) strictement positif, qui renvoie une valeur approchée de \(\displaystyle \ln (2)\) à \(\displaystyle \varepsilon\) près.

    3. Dans la figure suivante sont représentés les tracés des premiers termes des suites \(\displaystyle \left(S_{n}\left(\frac{1}{2}\right)\right)_{n \in \mathbb{N}^{*}}\) et \(\displaystyle \left(-S_{n}(-1)\right)_{n \in \mathbb{N}^{*}}\). Identifiez les suites dans cette figure.

Exercice 3

Partie I

On considère le problème de Cauchy \(\displaystyle (\mathscr{C})\) suivant, d’inconnues \(\displaystyle x: \mathbb{R} \longrightarrow \mathbb{R}\) et \(\displaystyle y: \mathbb{R} \longrightarrow \mathbb{R}\) dérivables : \[\forall t \in \mathbb{R}, \ \begin{cases} x^{\prime}(t)=x(t)+y(t) \tag{$\mathscr{C}$}\\ y^{\prime}(t)=-x(t)-y(t) \\ x(0)=1 \\ y(0)=1 \end{cases}\]

Dans cette partie, on suppose que \(\displaystyle x\) et \(\displaystyle y\) sont solutions de \(\displaystyle (\mathscr{C})\).

On pose, pour tout \(\displaystyle t\) réel, \(\displaystyle s(t)=x(t)+y(t)\).

  1. Déterminer une expression de la fonction \(\displaystyle s^{\prime}\).

  2. En déduire une relation entre \(\displaystyle x(t)\) et \(\displaystyle y(t)\) pour tout réel \(\displaystyle t\).

  3. Déterminer l’unique couple de solutions du problème de Cauchy \(\displaystyle (\mathscr{C})\).

Partie II

On considère les matrices \(\displaystyle A= \begin{pmatrix} 1 & 1 \\ -1 & -1 \end{pmatrix}\), \(J= \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix}\) et \(\displaystyle \mathrm{P}= \begin{pmatrix} 1 & 0 \\ -1 & 1 \end{pmatrix}\).

  1. Montrer que la matrice \(\displaystyle P\) est inversible et calculer son inverse.

  2. Montrer que \(\displaystyle A\) possède une unique valeur propre que l’on déterminera.

  3. La matrice \(\displaystyle A\) est-elle diagonalisable ?

  4. Montrer que \(\displaystyle J=P^{-1} A P\).

Dans la suite de cette partie, on considère le système différentiel \((\displaystyle \mathscr{S} )\) défini par :

\[\forall t \in \mathbb{R}, \ \begin{cases} x^{\prime}(t)=x(t)+y(t) \tag{$\mathscr{S}$}\\ y^{\prime}(t)=-x(t)-y(t) \end{cases}\]

Pour toutes fonctions \(\displaystyle x\) et \(\displaystyle y\) dérivables sur \(\displaystyle \mathbb{R}\), on pose, pour tout réel \(t\) \[X(t)= \begin{pmatrix} x(t) \\ y(t) \end{pmatrix} \quad \text{et} \quad X^{\prime}(t)=\begin{pmatrix} x'(t) \\ y'(t) \end{pmatrix}\]

On pose également, pour tout réel \(\displaystyle t, Y(t)=P^{-1} X(t)=\begin{pmatrix} u(t) \\ v(t) \end{pmatrix}\) et \(\displaystyle Y^{\prime}(t)=\begin{pmatrix} u'(t) \\ v'(t) \end{pmatrix}\).

  1. Déterminer les états d’équilibre du système \((\displaystyle \mathscr{S} )\).

  2. Montrer que \(\displaystyle x\) et \(\displaystyle y\) sont solutions de \(\displaystyle (\mathscr{S})\) si et seulement si, pour tout réel \(\displaystyle t, Y^{\prime}(t)=J Y(t)\).

  3. Déterminer l’ensemble des solutions \(\displaystyle Y(t)=\begin{pmatrix} u(t) \\ v(t) \end{pmatrix}\) du système différentiel \(\displaystyle Y^{\prime}(t)=J Y(t)\).

  4. En déduire les solutions du système différentiel \((\displaystyle \mathscr{S} )\).

Partie III

Soit \(\displaystyle n\) un entier naturel non nul.

Une matrice de \(\displaystyle \mathcal{M}_{n}(\mathbb{R})\) est dite nilpotente quand il existe un entier naturel \(\displaystyle k\) tel que \(\displaystyle M^{k}=0_{n}\), où \(\displaystyle 0_{n}\) désigne la matrice nulle de \(\displaystyle \mathcal{M}_{n}(\mathbb{R})\).

On admet que, pour toute matrice \(\displaystyle M\) nilpotente de \(\displaystyle \mathcal{M}_{n}(\mathbb{R})\), il existe un entier naturel \(\displaystyle p\) non nul et inférieur ou égal à \(\displaystyle n\) tel que \(\displaystyle M^{p-1} \neq 0_{n}\) et \(\displaystyle \forall k \geqslant p\), \(M^{k}=0_{n}. p\) est appelé l’indice de nilpotence de \(\displaystyle M\).

On considère le système différentiel \((\displaystyle \mathscr{E} )\) à \(\displaystyle n\) équations, d’inconnues \(\displaystyle x_{1}, x_{2}, \ldots, x_{n}\) dérivables sur \(\displaystyle \mathbb{R}\), défini par : \[\forall t \in \mathbb{R}, \quad X^{\prime}(t)=N X(t), \quad \text { où } \quad X(t)=\begin{pmatrix} x_{1}(t) \\ x_{2}(t) \\ \vdots \\ x_{n}(t) \end{pmatrix}, \quad X^{\prime}(t)= \begin{pmatrix} x_{1}^{\prime}(t) \\ x_{2}^{\prime}(t) \\ \vdots \\ x_{n}^{\prime}(t) \end{pmatrix} \tag{$\mathscr{E}$}\]

et \(\displaystyle N\) est une matrice nilpotente non nulle de \(\displaystyle \mathcal{M}_{n}(\mathbb{R})\). On note \(\displaystyle p\) l’indice de nilpotence de \(\displaystyle N\).

  1. Écrire une fonction, en langage Python, nommée Nil, qui prend en entrée une matrice \(\displaystyle M\) et qui renvoie \(\displaystyle p\) lorsque la matrice \(\displaystyle M\) est nilpotente d’indice de nilpotence \(\displaystyle p\) et 0 sinon.

  2. Montrer que la matrice \(\displaystyle N\) possède une unique valeur propre que l’on déterminera.

  3. Justifier par l’absurde que la matrice \(\displaystyle N\) n’est pas diagonalisable.

Pour tout réel \(\displaystyle t\), on définit la matrice \(\displaystyle B(t)\) de \(\displaystyle \mathcal{M}_{n}(\mathbb{R})\) par

\[B(t)=\sum_{k=0}^{p-1} \frac{t^{k}}{k!} N^{k},\]

et la matrice colonne \(\displaystyle X(t)\) de \(\displaystyle \mathcal{M}_{n, 1}(\mathbb{R})\) par

\[X(t)=B(t) X_{0}\]

\(\displaystyle X_{0}\) est une matrice colonne de \(\displaystyle \mathcal{M}_{n, 1}(\mathbb{R})\).

  1. Justifier que, pour tout réel \(\displaystyle t\),

\[X^{\prime}(t)=\sum_{k=1}^{p-1} \frac{t^{k-1}}{(k-1)!} N^{k} X_{0}.\]

  1. En déduire que \(\displaystyle X(t)\) est l’unique solution du problème de Cauchy défini par le système différentiel \((\displaystyle \mathscr{E} )\) et la condition initiale \(\displaystyle X(0)=X_{0}\).

  2. Recopier et compléter, en langage Python, la fonction suivante qui prend en entrée la matrice N et un réel t et qui renvoie \(\displaystyle B(t)\).

Annexe A - Fonctions Python utiles

Manipulation de listes. On suppose que L désigne une liste à n éléments.

  • L’opérateur de concaténation +, appliqué entre deux listes, renvoie la liste obtenue en plaçant les éléments de la seconde liste à la suite de ceux de la première liste.

    Par exemple, [1, 2, 5] + [4, 3] renvoie la liste [1, 2, 5, 4, 3].

  • L’opérateur *, appliqué entre une liste L et un entier n, renvoie la liste obtenue en concaténant n fois la liste L avec elle-même.

    Par exemple, [1, 4, 2] *3 renvoie la liste [1, 4, 2, 1, 4, 2, 1, 4, 2].

  • La fonction len prend en argument d’entrée une liste et renvoie le nombre d’éléments dans cette liste. Lorsqu’on applique cette fonction à un tableau numpy à plusieurs lignes, elle renvoie le nombre de lignes du tableau.

  • La commande L. append(x) permet d’inclure l’élément x à la fin de la liste L.

  • Pour tout entier i entre 0 et n-1, la commande L.pop(i) retire de la liste L l’élément situé à la position i, et renvoie sa valeur.

Par exemple, à l’issue des instructions la liste L vaut \(\displaystyle [5,8,1]\) et la variable a vaut 4.

La bibliothèque numpy.

  • Exemple d’importation : import numpy as np.

  • Les opérations +,-, *, /, * *, lorsqu’elles sont possibles, peuvent être réalisées entre deux tableaux numpy de tailles compatibles et agissent alors coefficient par coefficient.

  • La fonction np.eye prend en argument d’entrée un entier \(\displaystyle n\) et renvoie la matrice identité sous la forme d’un tableau numpy.

  • La fonction np.zeros prend en arguments d’entrée une liste d’entiers \(\displaystyle [n, p]\) et renvoie la matrice de \(\displaystyle n\) lignes et \(\displaystyle p\) colonnes dont tous les coefficients sont nuls sous la forme d’un tableau numpy.

  • Si \(\displaystyle M\) et \(\displaystyle N\) sont deux tableaux numpy la commande (M==N).all() renvoie True si \(\displaystyle M=N\) et False sinon.

  • La fonction np.dot prend en argument d’entrée deux tableaux numpy de nombres \(\displaystyle M\) et \(\displaystyle N\) et renvoie le tableau numpy correspondant au produit matriciel \(\displaystyle N M\) lorsque celui-ci existe.

  • La fonction np.mean prend en argument d’entrée un tableau numpy de nombres, et renvoie la moyenne des éléments du tableau.

  • La fonction np.var prend en argument d’entrée un tableau numpy de nombres, et renvoie la variance des éléments du tableau.

  • La fonction np.std prend en argument d’entrée un tableau numpy de nombres, et renvoie l’écart-type des éléments du tableau.

  • La fonction np.cov prend en argument une série statistique à deux variables \((\displaystyle x, y )\) sous forme de tableau numpy à deux lignes et renvoie, sous forme de tableau numpy, la matrice suivante : \[\begin{pmatrix} v_{x} & s_{x, y} \\ s_{x, y} & v_{y} \end{pmatrix}\]

    \(\displaystyle v_{x}, v_{y}\) et \(\displaystyle s_{x, y}\) désignent respectivement la variance de la série statistique \(\displaystyle x\), la variance de la série statistique \(\displaystyle y\) et la covariance empirique de la série statistique double \(\displaystyle (x, y)\).

La bibliothèque matplotlib.pyplot.

  • Exemple d’importation : import matplotlib.pyplot as plt.

  • La fonction plt.plot prend en arguments d’entrée deux listes de même longueur ou deux tableaux numpy x et y à une ligne et de même longueur, et renvoie une figure constituée de la ligne brisée joignant les points du plan de coordonnées \(\displaystyle \left(x_{i}, y_{i}\right)\), où \(\displaystyle x_{i}\) et \(\displaystyle y_{i}\) sont respectivement les coefficients des tableaux/listes x et y.

  • La fonction plt.show, employée sans argument d’entrée, permet l’affichage d’une figure préalablement tracée, par exemple avec les fonctions plt.plot.

Le module numpy.random.

  • Exemple d’importation : import numpy.random as rd.

  • La fonction rd.randint prend deux entiers \(\displaystyle n\) et \(\displaystyle p\) (avec \(\displaystyle p>n )\) en arguments d’entrée et renvoie une réalisation aléatoire de la loi uniforme discrète sur \(\displaystyle \left[\!\left[n, p-1\right]\!\right]\).

Le module numpy.linalg.

  • Exemple d’importation : import numpy.linalg as al.

  • La fonction al.inv prend un tableau numpy \(\displaystyle M\) en argument d’entrée et renvoie l’inverse de \(\displaystyle M\) (au sens matriciel) sous la forme d’un tableau numpy lorsqu’il existe et lève une erreur sinon.

  • La fonction al.matrix_power prend un tableau numpy \(\displaystyle M\) et un entier \(\displaystyle k\) en argument d’entrée et renvoie la matrice \(\displaystyle M^{k}\) sous la forme d’un tableau numpy lorsque \(\displaystyle M\) est carrée et lève une erreur sinon.

Annexe B - Commandes SQL

La commande ORDER BY. La commande ORDER BY, placée en fin de requête et suivie d’un nom de colonne, permet de trier les résultats demandés dans l’ordre croissant des valeurs de la colonne spécifiée, ou dans l’ordre alphabétique s’il s’agit de données de type TEXT.

On peut ajouter le mot-clé DESC à la fin de la commande pour trier les données dans l’ordre décroissant.

Exemple : Une table etablissement contient les données suivantes concernant plusieurs établissements scolaires, leur nombre d’élèves et la ville où ils se situent.

identifiantnomnombre_elevesville
1Edouard Herriot887Livry-Gargan
2Diderot220Lyon
3Edouard Herriot808Lyon
4Louise Michel653Champigny-sur-Marne
5Diderot1200Paris
  • Pour afficher les données en triant les noms d’établissement dans l’ordre alphabétique, on peut utiliser la requête suivante :

  • Pour afficher les noms des établissements dans l’ordre décroissant de nombre d’élèves, on peut utiliser la requête suivante :

La fonction COUNT(). La fonction d’agrégation COUNT() permet de connaître le nombre d’enregistrements d’une table, vérifiant éventuellement une certaine condition.

Nous donnons ci-dessous deux exemples d’utilisation de la fonction COUNT(), en considérant une table nommée ma_table comportant deux colonnes colonne_1 et colonne_2.

  • La requête suivante renvoie le nombre total d’enregistrements dans ma_table :

  • La requête suivante renvoie le nombre d’enregistrements de ma_table vérifiant la condition cond :

La fonction d’agrégation AVG(). La fonction AVG() permet de calculer la moyenne des valeurs d’une colonne dans une table. Par exemple, si on considère la table nommée table contenant les enregistrements suivants :

colonne_1colonne_2colonne_3colonne_4
169Lyon4
231Toulouse8
354Nancy5
464Saint-Jean-de-Luz17
544Nantes6

alors la requête suivante

affiche la moyenne des valeurs de colonne_4 des trois premiers enregistrements : 5.6667 c’est-à-dire \(\displaystyle \frac{4+8+5}{3}\).

La commande GROUP BY. La commande GROUP BY permet de regrouper tous les enregistrements dont la valeur d’un attribut donné est identique, en appliquant une fonction à chaque groupe d’enregistrements.

Exemple : Une table etablissement contient les données suivantes concernant plusieurs établissements scolaires, leur nombre d’élèves et la ville où ils se situent.

identifiantnomnombre_elevesville
1Pierre-Gilles de Gennes598Paris
2Diderot220Lyon
3Edouard Herriot808Lyon
4Paul Valéry525Paris
5Edouard Herriot887Livry-Gargan
6Diderot1200Paris

On peut calculer le nombre d’établissements dans chaque ville à l’aide de la requête suivante :

On obtient alors le résultat suivant :

villeCOUNT $\displaystyle (*)$
Livry-Gargan1
Lyon2
Paris3

On peut de plus renommer les colonnes de cette nouvelle table :


On obtient alors le résultat suivant :

villenombre_etab
Livry-Gargan1
Lyon2
Paris3

La commande INNER JOIN. La commande INNER JOIN permet de réaliser la jointure de deux tables. Cette commande retourne les enregistrements lorsqu’il y a au moins une ligne dans chaque table qui correspond à la condition.

Exemple : Une table etablissement contient pour plusieurs établissements scolaires leur identifiant, leur nom et la ville où ils se situent.

identnomville
1Pierre-Gilles de GennesParis
2DiderotLyon
3Edouard HerriotLyon
4Paul ValéryParis
5Edouard HerriotLivry-Gargan
6DiderotParis

Une seconde table effectifs contient pour plusieurs établissements scolaires leur identifiant et leur nombre d’élèves.

identeleves
1598
2220
3808
4525
5887
61200

On peut alors créer une table contenant pour chaque établissement son nom et son nombre d’élèves :


On obtient alors le résultat suivant :

nomeleves
Pierre-Gilles de Gennes598
Diderot220
Edouard Herriot808
Paul Valéry525
Edouard Herriot887
Diderot1200

Tu veux le corrigé détaillé ?

Le corrigé pas à pas, les aides et les explications sont disponibles dans la plateforme.

error: Ce contenu est protégé !