WikiPrépaLivrets

BCE Maths approfondies HEC/ESSEC ECG 2025Sujet, corrigé et rapport du jury

Épreuve de maths approfondies - ECG 2025

Téléchargements

L'épreuve en chiffres

Moyenne 10,79 / 20 · écart-type 5,68 · 2 447 présents · où vous situez-vous ?
Afficher ou masquer la section
Moyenne
10,79/ 20
Écart-type
5,68
Présents
2 447
Durée
4 h
moyenne 10,7905101520
Deux tiers des copies environ (moyenne ± écart-type)

Votre note sur 20 à ce sujet, en conditions de concours.

Source : document officiel du concours. Notes publiées par le concours (après harmonisation le cas échéant). Courbe : estimation par une loi normale.

Description

Annale de maths approfondies BCE HEC/ESSEC pour la filière ECG, session 2025.

Ces sujets peuvent vous intéresser

Lecture du sujet en ligne

L'énoncé complet, avec les formules et les figures, sans ouvrir le PDF.
Afficher ou masquer la section

Conception : ESSEC BS - HEC PARIS

MATHÉMATIQUES APPROFONDIES FILIÈRE ÉCONOMIQUE ET COMMERCIALE VOIE GÉNÉRALE

Jeudi 24 avril 2025, de 14 h. à 18 h.
La présentation, la lisibilité, l'orthographe, la qualité de la rédaction, la clarté et la précision des raisonnements entreront pour une part importante dans l'appréciation des copies.
Les candidats sont invités à encadrer dans la mesure du possible les résultats de leurs calculs.
Aucun document n'est autorisé. L'utilisation de toute calculatrice et de tout matériel électronique est interdite. Seule l'utilisation d'une règle graduée est autorisée.
Si au cours de l'épreuve, un candidat repère ce qui lui semble être une erreur d'énoncé, il la signalera sur sa copie et poursuivra sa composition en expliquant les raisons des initiatives qu'il sera amené à prendre.

Notations

Dans tout le texte, on adopte les notations suivantes :
  • -Pour tout n ∈ ℕ^∗, on note I_n la matrice identité de ℳ_n(ℝ).
  • -Pour tout (n, p) ∈ ℕ^∗ × ℕ^∗ et toute matrice A ∈ ℳ_(n, p)(ℝ) on note ker(A) et Im(A) les ensembles :
    ker(A), = {X ∈ ℳ_(p, 1)(ℝ)|AX = 0},; Im(A), = {AX|X ∈ ℳ_(p, 1)(ℝ)}.
  • -Lorsque A = [a] ∈ ℳ_1(ℝ), où a ∈ ℝ, on identifie A au réel a.
  • -Pour tout (i, j) ∈ [ [1, n] ] × [ [1, p] ] le coefficient sur la i-ème ligne et la j-ème colonne de A est noté A_(i, j).
  • -Si X ∈ ℳ_(p, 1)(ℝ) est un vecteur colonne et i ∈ [ [1, p] ], on note x_i (lettre minuscule) sa i-ème composante.
  • -Pour n ∈ ℕ^∗, on note ⟨.,. ⟩leproduitscalairecanoniquedeℳ_(n, 1)(ℝ) défini par
    ∀X ∈ ℳ_(n, 1)(ℝ), ∀Y ∈ ℳ_(n, 1)(ℝ), ⟨X, Y⟩ = ^t XY = ∑_(i = 1)^n x_i y_i.
    Pour tout X ∈ ℳ_(n, 1)(ℝ), n ∈ ℕ^∗, on note ‖X‖ la norme euclidienne de X définie par
    ‖X‖ = √(⟨X, X⟩) = √(^t XX)
  • -Soit (Ω, A, ℙ) un espace probabilisé. Toutes les variables aléatoires de cet énoncé sont définies sur cet espace.
  • -Si Z est une variable aléatoire réelle, on note 𝔼(Z) son espérance et 𝕍(Z) sa variance, si elles existent.
  • -Pour tout k ∈ ℕ^∗, les éléments de ℝ^k seront considérés comme des vecteurs colonnes. Autrement dit, et sauf indication du contraire, on confondra ℝ^k et ℳ_(k, 1)(ℝ).
Dans tout l'énoncé, n, m et p désignent trois entiers naturels non nuls avec n ⩾ 4 ct n ⩾ p et A et B deux matrices réelles fixées telles que A ∈ ℳ_(n, p)(ℝ) et B ∈ ℳ_(m, p)(ℝ).M désigne la matrice de ℳ_p(ℝ) définie par M = ^t AA et on pose pour tout X ∈ ℳ_(p, 1)(ℝ) :
D(X) = MX − ^t AY.
On s'intéresse au problème d'optimisation suivant
Minimiser 1/2‖AX − Y‖^2 + μ‖BX‖, X ∈ ℳ_(p, 1)(ℝ),
où dans toute la suite, et sauf indication du contraire, Y ∈ ℳ_(n, 1)(ℝ) désigne un vecteur fixé et μ un réel donné.
On dira que X réalise un minimum global d'une fonction G si G(X) est un minimum global de G.
L'énoncé comporte trois parties.
La partie I porte sur quelques résultats d'algèbre linéaire qui pourraient être utiles dans les parties II et III. Dans la partie II, on s'intéresse au problème d'optimisation ci-dessus quand μ = 0, c'est-à-dire sans le second terme. La partie III est dédiée au problème d'optimisation ci-dessus quand μ = 1. Le mot FIN marque la fin de l'énoncé.
Pour les programmes Python, on dispose d'un petit formulaire à la fin du sujet. On importe aussi les bibliothèques suivantes :
import numpy as np
import matplotlib.pyplot as plt
import numpy.random as rd
import numpy.linalg as al
Toute fonction Python écrite en réponse à une question de l'énoncé peut être utilisée dans les programmes ou fonctions Python demandés par la suite

Partie I : autour de l'adjoint

Dans toute cette partie, E et F désignent deux espaces euclidiens de dimensions p et n respectivement. On note ⟨ ⋅, ⋅ ⟩_E le produit scalaire de E et ℬ_E = (e_1, e_2, ⋯, e_p) une base orthonormale de E. De même, on note ⟨ ⋅, ⋅ ⟩_F le produit scalaire de F et ℬ_F = (f_1, f_2, ⋯, f_n) une base orthonormale de F. Si G est un sous-espace vectoriel de E (respectivement de F ) on note G^⊥ le supplémentaire orthogonal de G dans E (respectivement dans F ).
On note u l'application linéaire de E dans F dont la matrice est A dans les bases ℬ_E et ℬ_F; ainsi A = Mat_(ℬ_F, ℬ_E)(u).
  • 1.Soit ℓ une application linéaire de E dans ℝ. Montrer qu'il existe un et un seul vecteur a_0 ∈ E tel que
    ∀x ∈ E, ℓ(x) = ⟨a_0, x⟩_E.
  • 2.En déduire que, pour tout y ∈ F, il existe un seul z_y ∈ E tel que
    ∀x ∈ E, ⟨u(x), y⟩_F = ⟨z_y, x⟩_E.
  • 3.Montrer que l'application u^∗ : {F, →, E; y, ↦, z_y est linéaire.
    L'application u^∗ s'appelle l'application adjointe de u. On a ainsi l'identité
    ∀x ∈ E, ∀y ∈ F, ⟨u(x), y⟩_F = ⟨x, u^∗(y)⟩_E.
  • 4.Montrer que
    Mat_(𝒪_E, ℬ_F)(u^∗) = ^t A,
    et en déduire que
    rg(u^∗) = rg(u) et (u^∗)^∗ = u.
  • 5.Montrer que
    Im(u^∗) = ker(u)^⊥.
  • 6.Montrer que
    ker(u^∗ ∘ u) = ker(u)
    et en déduire que
    Im(u^∗ ∘ u) = Im(u^∗).
  • 7.Soit l'application w : Im(u^∗) → Im(u^∗) définie par
    ∀x ∈ Im(u^∗), w(x) = u^∗ ∘ u(x).
    Montrer que w est un isomorphisme et donner une interprétation en terme d'équation matricielle de ce résultat.
  • 8.Soit π le projecteur orthogonal de F sur Im(u) et Q sa matrice dans la base ℬ_F.
    • (a)Montrer que
      ^t AQ = ^t A.
    • (b)Montrer que Tr(Q) = rg(u).
  • 9.Montrer que M est inversible si et seulement si A est de rang égal à p.
  • 10.On suppose que le rang de A est égal à p.
    • (a)Montrer que
      Q = A(M)^(− 1t)A.
    • (b)Ecrire une fonction Python Calcule_Q(A) qui prend en entrée la matrice A de type array de taille n × p, qui teste si A est de rang p et qui renvoie la matrice Q de la question précédente dans ce cas et un message d'erreur sinon.
  • 11.Montrer que pour tout X ∈ ℳ_(p, 1)(ℝ),
    ^t XMX ⩾ 0.

Partie II : minimisation d'une fonction quadratique

Dans cette partie, on s'intéresse à la minimisation de la fonction J_0, définie sur ℳ_(p, 1)(ℝ) par :
J_0(X) = 1/2‖AX − Y‖^2, pour tout X ∈ ℳ_(p, 1)(ℝ).
  • 12.Montrer que pour tout X ∈ ℳ_(p, 1)(ℝ) et tout H ∈ ℳ_(p, 1)(ℝ) on a
    J_0(X + H) − J_0(X) = ⟨D(X), H⟩ + 1/2tHMH.
  • 13.Montrer que J_0 possède un minimum global en un point X ∈ ℳ_(p, 1)(ℝ) si et seulement si D(X) = 0.
    On notera dans la suite 𝕊_0 l'ensemble :
    𝕊_0 = {X ∈ ℳ_(p, 1)(ℝ)|D(X) = 0}.
  • 14.Montrer qu'il existe X_0 ∈ ker(A)^⊥ tel que
    𝕊_0 ∩ ker(A)^⊥ = {X_0}.
  • 15.Soit X ∈ 𝕊_0.
    • (a)Justifier l'identité
      AX = QY.
    • (b)Montrer que X − X_0 ∈ ker(A) et en déduire que si X ≠ X_0 alors
      ‖X‖ > ‖X_0‖.
    • (c)On suppose que le rang de A est égal à p. Montrer que, 𝕊_0 = {X} avec
      X = M^(− 1t)AY
  • 16.Dans cette question, on suppose à nouveau que le rang de A est égal à p et que Y s'écrit sous la forme
    Y = AU_0 + Z,
    où
    • - U_0 est un vecteur constant fixé,
    • - Z = ^t(z_1, ⋯, z_n) où z_1, ⋯, z_n sont des variables aléatoires indépendantes identiquement distribuées suivant une loi normale de paramètres (0, σ^2) :
      z_i↪𝒩(0, σ^2).
      On définit X par la formule (4) (c'est-à-dire X = M^(− 1t)AY ). Ainsi les composantes y_1, ⋯, y_n de Y et les composantes x_1, ⋯, x_p de X sont toutes des variables aléatoires.
      On considère aussi la variable aléatoire :
      T = ‖A(X − U_0)‖^2.
    • (a)Montrer que T = ‖QZ‖^2 = ^t ZQZ
    • (b)Proposer une fonction Python simuleT(A,sigma) qui prend en argument A de type array et sigma de type flottant simulant la variable aléatoire T.
    • (c)Proposer une fonction Python esperance(A,sigma) qui prend en argument A de type array et sigma de type flottant et qui renvoie une valeur approchée de l'espérance de T.
    • (d)
      • -Nous avons testé notre algorithme pour σ = 1 et trois matrices A_1, A_2 et A_3 où
        A_1 = (1, 0; 2, 1; 3, 2) A_2 = (1, 0, 0; 2, 1, 0; 3, 2, 1; 4, 3, 2)A_3 = (1, 0, 0, 0, 0; 2, 1, 0, 0, 0; 3, 2, 1, 0, 0; 4, 3, 2, 1, 0; 5, 4, 3, 2, 1; 6, 5, 4, 3, 2).
        Les resultats obtenus sont 1, 99 3, 01 4, 97.
Que pouvez-vous conjecturer ?
  • On effectue maintenant le programme suivant
sig=np.arange(1,7)
rep=np.zeros(6)
for k in range(6) :
    rep[k]=esperanceT(A1,sig[k])
plt.plot(sig, rep, "*k")
plt.grid()
plt.show()
On obtient ce graphique
Que pouvez-vous conjecturer ?
Prouvons nos conjectures dans les questions suivantes!
  • (e)Exprimer 𝔼(z_1^2), 𝔼(z_1^3) et 𝔼(z_1^4) en fonction de σ.
  • (f)Montrer que T = T_1 + 2T_2 où T_1 = ∑_(i = 1)^n Q_(i, i)z_i^2 et T_2 = ∑_(i = 1)^n∑_(j = i + 1)^n Q_(i, j)z_i z_j.
    En déduire 𝔼(T) et vérifier vos conjectures.
  • (g)Montrer que 𝔼(T_1 T_2) = 0.
  • (h)Notons q = ∑_(k = 1)^n Q_(k, k)^2.
    Montrer que 𝔼(T_1^2) = σ^4(2q + p^2) et 𝔼(T_2^2) = (σ^4)/2(p − q).
  • (i)En déduire que 𝕍(T) = 2pσ^4 et Montrer pour tout α > 0 on a
    ℙ(T > (1 + α)pσ^2) ⩽ 2/(pα^2).

Partie III : minimisation d'une fonction non différentiable

Dans cette partie, on suppose à nouveau que Y ∈ ℳ_(n, 1)(ℝ) est un vecteur fixé (et non une variable aléatoire). On s'intéresse désormais à la fonction J définie sur ℳ_(p, 1)(ℝ) par :
J(X) = 1/2‖AX − Y‖^2 + ‖BX‖, pour X ∈ ℳ_(p, 1)(ℝ).
Pour tout X ∈ ℳ_(p, 1)(ℝ), on note 𝒩(X) l'ensemble
𝒩(X) = {^t BV|V ∈ ℳ_(m, 1)(ℝ), ‖V‖ ⩽ 1 et ‖BX‖V − BX = 0}.
  • 17.Soient u et v deux vecteurs de ℝ^n tels que u ≠ 0. Montrer que
    lim_(t → 0)(‖u + tv‖ − ‖u‖)/t = (⟨u, v⟩)/(‖u‖).
  • 18.Soit X_0 ∈ ℳ_(p, 1)(ℝ) réalisant le minimum global de J. Montrer que si BX_0 ≠ 0 alors nécessairement
    − D(X_0) = ^t B(BX_0)/(‖BX_0‖),
    et en déduire que − D(X_0) ∈ 𝒩(X_0).
  • 19.Soit X_0 ∈ ℳ_(p, 1)(ℝ) réalisant le minimum global de J et vérifiant BX_0 = 0.
    • (a)Montrer que
      ∀H ∈ ℳ_(n, 1)(ℝ), ⟨D(X_0), H⟩ ⩽ ‖BH‖.
    • (b)En déduire que
      D(X_0) ∈ ker(B)^⊥.
    • (c)En déduire qu'il existe un vecteur W ∈ ℳ_(m, 1)(ℝ) tel que D(X_0) = ^t BW.
    • (d)En déduire qu'il existe un vecteur V ∈ ℳ_(p, 1)(ℝ) tel que D(X_0) = ^t BBV.
    • (e)Montrer que ‖BV‖ ⩽ 1 et en déduire que − D(X_0) ∈ 𝒩(X_0).
  • 20.Soient u et v deux vecteurs de ℝ^n avec u ≠ 0.
    • (a)Montrer que
      ‖u + v‖^2 − (‖u‖ + (⟨u, v⟩)/(‖u‖))^2 = (‖u‖^2‖v‖^2 − ⟨u, v⟩^2)/(‖u‖^2).
    • (b)En déduire que
      ‖u + v‖ − ‖u‖ ⩾ (⟨u, v⟩)/(‖u‖)
  • 21.Soient maintenant X_0, X ∈ ℳ_(p, 1)(ℝ) et W ∈ 𝒩(X_0).
    • (a)Montrer que
      ‖BX‖ − ‖BX_0‖ ⩾ ⟨W, X − X_0⟩.
    • (b)En déduire que
      J(X) − J(X_0) ⩾ ⟨D(X_0) + W, X − X_0⟩.
  • 22.En déduire que X_0 ∈ ℳ_(p, 1)(ℝ) réalise un minimum global de J si et seulement si
    − D(X_0) ∈ 𝒩(X_0).
  • 23.On se place dans toute la suite dans le cas où n = p = m, A = I_n et B la matrice diagonale définie par :
    B_(i, i) = {α_i, si 1 ⩽ i ⩽ k; 0, si k + 1 ⩽ i ⩽ n
    où k est un entier naturel vérifiant 1 ⩽ k < n et α_1, ⋯, α_k sont des nombres réels tous non nuls. On pose
    ρ(Y) = ∑_(i = 1)^k(y_i^2)/(α_i^2).
    On définit la fonction F de [0, + ∞[ dans ℝ par
    ∀λ ∈ [0, + ∞[, F(λ) = − 1 + ∑_(i = 1)^k(α_i^2 y_i^2)/((λ + α_i^2)^2).
    • (a)Montrer que
      ∀λ ∈ ]0, + ∞[, F(λ) ⩽ − 1 + 1/(4λ)∑_(i = 1)^k y_i^2.
  • (b)On suppose dans cette question uniquement que ρ(Y) > 1. Montrer qu'il existe un et un seul λ_0 ∈ ]0, + ∞[ tel que F(λ_0) = 0 et justifier l'inégalité
    λ_0 ⩽ 1/4∑_(i = 1)^k y_i^2
  • (c)On pose
    β = {0, si ρ(Y) ⩽ 1,; λ_0, si ρ(Y) > 1.
    et
    X_0 = Y − BV
    où V ∈ ℳ_(n, 1)(ℝ) est défini par
    v_i = {(α_i y_i)/(β + α_i^2), si 1 ⩽ i ⩽ k,; 0, si k + 1 ⩽ i ⩽ n.
    Montrer que X_0 réalise un minimum global de J.
  • (d)Python. On représente les données du problème :
    • -un tableau monodimensionnel de type array alpha contenant les valeurs α_1, ⋯, α_k,
    • -un tableau monodimensionnel de type array Y contenant le vecteur Y,
    • -un paramètre lda de type flottant représentant un réel λ supposé positif,
    • -un paramètre epsilon de type flottant représentant un réel ε > 0.
    • i.Ecrire une fonction FoncSom(alpha, Y, lda) qui prend comme arguments alpha, Y contenant le vecteur Y, lda et qui renvoie la valeur F(λ).
    • ii.Ecrire une fonction CalcBeta(alpha, Y,epsilon) qui prend comme arguments alpha, Y contenant le vecteur Y, epsilon et qui renvoie une valeur approchée β_a du réel β à ε prés, trouvée par une méthode de dichotomie dans l'intervalle [0, 1/4∑_(i = 1)^k y_i^2] quand ρ(Y) > 1.
    • iii.Ecrire une fonction CalcSolution(alpha, Y, epsilon) qui prend les mêmes arguments que la fonction CalcBeta et qui renvoie un tableau monodimensionnel contenant la solution X_0 ci-dessus.

I. Mathématiques générales

import numpy as np
np.linspace(a, b, n) Crée une matrice ligne de n valeurs uniformément réparties entre a et b (inclus).
np.zeros([n,m]) Crée la matrice nulle de taille n × m.
np.zeros(n) Crée la matrice ligne nulle de taille n.
np.arange(a,b,eps) Renvoie la liste des flottants de a à b (non compris) de pas constant eps.
np.shape (M) Donne la taille de la matrice M sous forme d'un tuple (couple).
np.transpose(M) Renvoie la transposée de M.
np.dot(M,P); M.dot(P); M @ P 3 instructions synonymes, évaluent le produit matriciel MP.

II. Algèbre linéaire

import numpy.linalg as al
al.inv (M) Renvoie l'inverse de la matrice M.
al.matrix_rank (M) Renvoie le rang de la matrice M .
al.matrix_power(M,n) Renvoie la nième puissance de la matrice M.

III. Simulations probabilistes

import numpy.random as rd
rd.exponential (a, [q,r])
rd.exponential (a, n)
Simule une réalisation d'une matrice (resp d'un vecteur) aléatoire de dimension (q, r) (resp n ) dont les coefficients sont des variables aléatoires indépendantes qui suivent la loi E(1/a).
rd.normal(m,d,[q,r])
rd. normal (m, d, n)
Simule une réalisation d'une matrice (resp d'un vecteur) aléatoire de dimension (q, r) (resp n ) dont les coefficients sont des variables aléatoires indépendantes qui suivent la loi N(m, d^2)
rd.gamma(m,a,[q,r])
rd.gamma(m,a,n)
Simule une réalisation d'une matrice(resp d'un vecteur) aléatoire de dimension (q, r) (resp n ) dont les coefficients sont des variables aléatoires indépendantes qui suivent la loi Γ(m, a).

IV. Graphiques

import matplotlib.pyplot as plt
plt.plot(X,Y,options) Génère la courbe des points définis par les listes X et Y suivant les options graphiques définies par la chaîne de caractère options.
plt.grid() Affiche le quadrillage
plt.show() Affiche le graphique.

Pas de description pour le moment