Connectez-vous pour consulter le corrigé.
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.
Identifier la loi de la variable aléatoire \(\displaystyle X\). Donner son espérance et sa variance.
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}\]
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}\).
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.
Montrer que \(\displaystyle \sum_{k=1}^{n} \sum_{j=k}^{n} \frac{k}{j}=\frac{1}{2} \sum_{j=1}^{n}(j+1)\).
Justifier que \(\displaystyle Y\) admet une espérance et montrer que l’espérance de \(\displaystyle Y\) vaut \(\displaystyle \frac{n+3}{4}\).
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)\]
En déduire l’expression de \(\displaystyle \mathbb{E}(X Y)\) en fonction de \(\displaystyle n\).
Déterminer la covariance du couple \((\displaystyle X, Y )\) en fonction de \(\displaystyle n\).
Les variables aléatoires \(\displaystyle X\) et \(\displaystyle Y\) sont-elles indépendantes?
É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)\).
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.
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.
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 ».
Exprimer l’événement \(\displaystyle A_{n}\) à l’aide des variables aléatoires \(\displaystyle X\) et \(\displaystyle Y\).
Montrer que: \(\displaystyle \mathbb{P}\left(A_{n}\right)=\frac{1}{n} \sum_{j=1}^{n} \frac{1}{j}\).
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}\).
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}\).
Montrer que \(\displaystyle \mathbb{P}\left(A_{n}\right) \underset{n \rightarrow+\infty}{\sim} \frac{\ln (n)}{n}\).
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.
assure | id_2025 | id_2026 |
|---|---|---|
| 1003 | 3 | 3 |
| 1004 | 4 | 2 |
| 1005 | 1 | 1 |
| 1006 | 3 | 4 |
| 1007 | 2 | 4 |
Le format de la table compagnie est illustré dans le tableau ci-dessous.
id | nom |
|---|---|
| 1 | Assurplus |
| 2 | Garantia |
| 3 | SecurVie |
| 4 | MutuelPro |
É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.
Expliquer ce que réalise la commande SQL suivante
:
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.
id | usr | compagnie | note | commentaire |
|---|---|---|---|---|
| 5001 | alice 92 | 1 | 8 | Très bon service! |
| 5002 | karimBoss | 2 | 6 | Service correct. |
| 5004 | david123 | 3 | 7 | Bon rapport qualité-prix. |
| 5005 | emma_p | 2 | 5 | Déçue par le service. |
| 5007 | alice 92 | 3 | 8 | Très professionnels. |
| 5008 | david123 | 4 | 9 | Service 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.
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.
On considère la fonction \(\displaystyle f\) définie par \[f(x)=\ln \! \left(\frac{1}{1-x}\right)\]
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\).
Calculer les limites de \(\displaystyle f\) aux bornes de son domaine de définition.
Dresser le tableau de variations de \(\displaystyle f\) sur \(\displaystyle I\).
Déterminer le développement limité à l’ordre 2 de \(\displaystyle f\) en 0.
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.
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.
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}\]
Donner la nature de la série \(\displaystyle \sum_{k \geqslant 1} \frac{1}{k}\).
Étudier la monotonie de la suite \(\displaystyle \left(S_{n}(1)\right)_{n \in \mathbb{N}^{*}}\).
En déduire que \(\displaystyle \lim _{n \rightarrow+\infty} S_{n}(1)=+\infty\).
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.
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.
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)\).
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)\]
Montrer que, pour tout entier naturel \(\displaystyle n\) non nul, \(\displaystyle \left|\ln (2)+S_{n}(-1)\right| \leqslant \frac{1}{n}\).
Dans cette question uniquement, \(\displaystyle x\) est un réel strictement supérieur à 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}\).
En déduire la limite de la suite \(\displaystyle \left(S_{n}(x)\right)_{n \in \mathbb{N}^{*}}\).
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.
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\).
Montrer que \(\displaystyle f(a)=a+R_{1}(a)\).
Indication : On pourra écrire \(\displaystyle a-t=(a-1)+(1-t)\).
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)\]
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.
Dans cette question uniquement, on suppose que \(\displaystyle a \in[0,1[\).
Montrer que pour tout réel \(\displaystyle t\) de \(\displaystyle [0, a]\), \(\displaystyle 0 \leqslant \frac{a-t}{1-t} \leqslant a\).
Montrer que, pour tout entier naturel \(\displaystyle n\) non nul, \(\displaystyle 0 \leqslant R_{n}(a) \leqslant \frac{a^{n+1}}{1-a}\).
En déduire que \(\displaystyle f(a)=S(a)\).
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}}\]
É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.
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.
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)\).
Déterminer une expression de la fonction \(\displaystyle s^{\prime}\).
En déduire une relation entre \(\displaystyle x(t)\) et \(\displaystyle y(t)\) pour tout réel \(\displaystyle t\).
Déterminer l’unique couple de solutions du problème de Cauchy \(\displaystyle (\mathscr{C})\).
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}\).
Montrer que la matrice \(\displaystyle P\) est inversible et calculer son inverse.
Montrer que \(\displaystyle A\) possède une unique valeur propre que l’on déterminera.
La matrice \(\displaystyle A\) est-elle diagonalisable ?
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}\).
Déterminer les états d’équilibre du système \((\displaystyle \mathscr{S} )\).
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)\).
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)\).
En déduire les solutions du système différentiel \((\displaystyle \mathscr{S} )\).
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\).
É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.
Montrer que la matrice \(\displaystyle N\) possède une unique valeur propre que l’on déterminera.
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}\]
où \(\displaystyle X_{0}\) est une matrice colonne de \(\displaystyle \mathcal{M}_{n, 1}(\mathbb{R})\).
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}.\]
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}\).
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)\).
Python utilesManipulation 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}\]
où \(\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.
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.
identifiant | nom | nombre_eleves | ville |
|---|---|---|---|
| 1 | Edouard Herriot | 887 | Livry-Gargan |
| 2 | Diderot | 220 | Lyon |
| 3 | Edouard Herriot | 808 | Lyon |
| 4 | Louise Michel | 653 | Champigny-sur-Marne |
| 5 | Diderot | 1200 | Paris |
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_1 | colonne_2 | colonne_3 | colonne_4 |
|---|---|---|---|
| 1 | 69 | Lyon | 4 |
| 2 | 31 | Toulouse | 8 |
| 3 | 54 | Nancy | 5 |
| 4 | 64 | Saint-Jean-de-Luz | 17 |
| 5 | 44 | Nantes | 6 |
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.
identifiant | nom | nombre_eleves | ville |
|---|---|---|---|
| 1 | Pierre-Gilles de Gennes | 598 | Paris |
| 2 | Diderot | 220 | Lyon |
| 3 | Edouard Herriot | 808 | Lyon |
| 4 | Paul Valéry | 525 | Paris |
| 5 | Edouard Herriot | 887 | Livry-Gargan |
| 6 | Diderot | 1200 | Paris |
On peut calculer le nombre d’établissements dans chaque ville à l’aide de la requête suivante :
On obtient alors le résultat suivant :
| ville | COUNT $\displaystyle (*)$ |
|---|---|
| Livry-Gargan | 1 |
| Lyon | 2 |
| Paris | 3 |
On peut de plus renommer les colonnes de cette nouvelle table :
On obtient alors le résultat suivant :
| ville | nombre_etab |
|---|---|
| Livry-Gargan | 1 |
| Lyon | 2 |
| Paris | 3 |
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.
ident | nom | ville |
|---|---|---|
| 1 | Pierre-Gilles de Gennes | Paris |
| 2 | Diderot | Lyon |
| 3 | Edouard Herriot | Lyon |
| 4 | Paul Valéry | Paris |
| 5 | Edouard Herriot | Livry-Gargan |
| 6 | Diderot | Paris |
Une seconde table effectifs contient pour plusieurs
établissements scolaires leur identifiant et leur nombre d’élèves.
ident | eleves |
|---|---|
| 1 | 598 |
| 2 | 220 |
| 3 | 808 |
| 4 | 525 |
| 5 | 887 |
| 6 | 1200 |
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 :
nom | eleves |
|---|---|
| Pierre-Gilles de Gennes | 598 |
| Diderot | 220 |
| Edouard Herriot | 808 |
| Paul Valéry | 525 |
| Edouard Herriot | 887 |
| Diderot | 1200 |
Le corrigé pas à pas, les aides et les explications sont disponibles dans la plateforme.
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.