0% ont trouvé ce document utile (0 vote)
47 vues30 pages

Centrale 2018 Python

Le document présente une série d'exercices de mathématiques avancées, incluant des concepts d'algèbre, de géométrie et de probabilités, avec des applications en programmation Python. Chaque exercice aborde des sujets variés tels que les matrices, les polynômes, les fonctions multiplicatives, et l'analyse numérique. Les solutions impliquent la création de fonctions Python pour effectuer des calculs et des simulations, tout en explorant des conjectures mathématiques.

Transféré par

mwintiero
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
47 vues30 pages

Centrale 2018 Python

Le document présente une série d'exercices de mathématiques avancées, incluant des concepts d'algèbre, de géométrie et de probabilités, avec des applications en programmation Python. Chaque exercice aborde des sujets variés tels que les matrices, les polynômes, les fonctions multiplicatives, et l'analyse numérique. Les solutions impliquent la création de fonctions Python pour effectuer des calculs et des simulations, tout en explorant des conjectures mathématiques.

Transféré par

mwintiero
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Analyse/Algèbre/Probabilités Centrale Python

Algèbre et géométrie

Exercice 1 (Centrale MP 2016 - Python*)


Soit P ∈ C[X ] de degré n Ê 1. Soit ΦP l’application de Cn−1 [X ] dans lui-même qui à T associe le reste de la division euclidienne de T P ′ par P .
a) Montrer que ΦP est linéaire.
b) Écrire une fonction Python qui donne la matrice de ΦP dans la base canonique de Cn−1 [X ]., puis une fonction Python qui renvoie det(ΦP ).
c) On suppose que P admet n racines distinctes λ1 , . . . , λn . Exprimer det ΦP en fonction des P ′ (λi ).
d) Donner une condition nécessaire et suffisante pour que ΦP soit inversible.

Exercice 2 (Centrale MP 2016 - Python*)


Pour i et n dans N avec 0 É i É n, on pose


n ( )
P n,i = (1 − X )i (1 + X )n−i = βn,i , j X j et M n = βn,i , j ∈ M n+1 (R).
0Éi , j Én
j =0

a) Écrire une fonction Python qui calcule P n,i . Écrire une fonction Python qui calculer M n . Calculer M n2 pour différentes valeurs de n. Que
peut-on conjecturer ?
1−x
b) Soit x 0 ∈ R\{−1} et Un (x 0 ) = t (1, x 0 , . . . , x 0n ). Montrer que M n Un (x 0 ) = (1+ x 0 )n Un (y 0 ) où y 0 = 1 + x 0 . En déduire que M n2 = 2n I n+1 . Peut-on
0
conclure que M n est diagonalisable ?
( )
. On pose x i = i et y i = 1 − i pour i ∈ J0 ; n K. Montrer
j
c) Pour x = (x 0 , . . . , x n ) ∈ Rn+1 , on définit la matrice de Vandermonde Vn (x) = x i
0Éi , j Én 1+i
que
(−2)n(n+1)/2
det(Vn (y)) = detVn (x).
(n + 1)!n

d) En déduire que det M n = (−2)n(n+1)/2 . Que dire des valeurs propres de M n ?

Exercice 3 (Centrale MP 2015 - Python*)


Pour n Ê 1, on note π(n) le nombre d’entiers premiers inférieurs ou égaux à n.
a) Écrire une fonction prem(n) qui renvoie True si n est premier et False sinon.
b) Écrire une fonction piprime(n) qui renvoie π(n).
c) Afficher les valeurs de n pour n ∈ {10, 102 , 103 , . . . , 106 }. En déduire une conjecture sur la limite de n .
π(n) π(n)
d) On suppose avoir, pour n Ê 2, π(n) É 2 ln 2 n . Confirmer la conjecture précédente.
ln n
e) On note (E k ) l’équation n = kπ(n) d’inconnue n avec k ∈ Q. Montrer que toute solution de (E k ) est inférieure ou égale à 22k .
f) Trouver informatiquement les solutions de (E 11/2 ).
g) On étudie maintenant (E k ) pour k ∈ N, k Ê 2. On pose F k = {n Ê 2, n É kπ(n)}. Montrer que F k est fini et que son plus grand élément est
solution de (E k ).

Exercice 4 (Centrale MP 2015 - Python*)


On considère n Ê 2 joueurs numérotés de 1 à n participant à un tournoi où chacun affronte tous les autres, sans égalité possible. On définit la
matrice A = (a i j ) de la manière suivante : a i ,i = 0 et a i , j = 1 si i a gagné contre j et a i , j = −1 sinon.
a) Écrire une fonction renvoyant une matrice de tournoi aléatoire.
b) Calculer les déterminants de telles matrices pour des entiers n pairs et impairs. Qu’observe-t-on ?
c) Démontrer le résultat pour les entiers impairs.
d) On note J n la matrice de taille n constituée de 1.
i) Calculer det(J n − I n ).
ii) Soient M et N deux matrices à coefficients entiers telles que M − N ait tous ses coefficients pairs. Démontrer que det M et det N ont
même parité.
iii) Démontrer la propriété conjecturée pour les entiers pairs.

1
Analyse/Algèbre/Probabilités Centrale Python

Exercice 5 (Centrale MP 2015 - Python*)


Soient n ∈ N, n Ê 2 et A ∈ M n (R). On cherche à établir l’existence de Ω ∈ O n (R) telle que t ΩAΩ ait sa diagonale constante.
a) Démontrer le résultat pour n = 2 et expliciter, en fonction de A une matrice Ω ∈ SO 2 (R) telle que t ΩAΩ a sa diagonale constante.
( )
0 2
b) On pose A = . Donner à l’aide de Python, B orthogonalement semblable à A de diagonale constante.
2 1
c) Soit Γ = {t ΩAΩ, Ω ∈ O n (R)}. Montrer que Γ est compact.
d) Soit f : M ∈ Γ 7→ sup |M i ,i − M j , j |. Montrer que f présente un minimum.
(i , j )∈J1 ;n K2
e) En déduire le résultat annoncé.

Exercice 6 (Centrale MP 2015 - Python*)


∏n
P′ ∑n 1
Pour n ∈ N, on pose P n = (X − k) et R n = n = .
Pn
k=0 k=0 X − k
a) Écrire une fonction qui calcule R n (x). Écrire une fonction qui trace x 7→ R n (x) pour x ∈ [−4, 8] (et des ordonnées dans [−5, 5]).
b) i) Pour k ∈ J0 ; n − 1K, montrer que R n admet un unique zéro dans ]k, k + 1[. On le note a n,k .
ii) Écrire une fonction qui donne une approximation numérique de a n,k .
iii) On fixe k ∈ N. Étudier expérimentalement le comportement de (a n,k )nÊk .
c) L’entier k étant fixé, étudier la convergence de (a n,k )nÊk . On pourra comparer R n et R n−1 .
d) Trouver la limite puis un équivalent de 1 . En déduire un développement asymptotique à deux termes de a n,k lorsque n tend vers
a n,k − k
+∞.
Exercice 7 (Centrale MP 2016 - Python)

On dit que A = (a i j )1Éi , j Én est à diagonale strictement dominante lorsque, pour tout i ∈ J1 ; n K, |a i j | < |a i i |. Pour les calculs, on prendra
j ̸=i
 
5 −1 2
A = 1 −4 −2.
3 −1 5
 
1
a) i) Montrer que A est à diagonale strictement dominante et inversible puis résoudre AX = B où B = 1.
1
ii) Montrer que toute matrice à diagonales strictement dominante est inversible.
Soit X ∈ M n1 (R). On définit une suite de vecteurs (X k )k∈N par X 0 = X et, pour k ∈ N∗ , X k = t (x k,1 , . . . , x k,n ) avec
( )
1 ∑
x k,i = bi − a i j x k−1, j .
ai i j ̸=i

b) Écrire un programme Python qui calcule les X k puis les afficher pour X = t (1, 0, 0) avec A et B précédemment donnés. Conjecture ?
c) Montrer que X k = (I −1 −1
( n − D A)X)k−1 + D B où D est la matrice diagonale de diagonale (a 11 , a 22 , . . . , a nn ).
1 ∑
On pose g = max |a i k | . On note ∥X ∥ = max(|x 1 |, . . . , |x n |).
1Éi Én a i i k̸=i
° ° ° °
d) Montrer que ° X k+1 − X k ° É g ° X k − X k−1 ° . En déduire que la suite (X k ) converge et prouver la conjecture.
e) Écrire un programme qui donne la solution de AX = B à ε près.

Exercice 8 (Centrale MP 2016 - Python*)


Soit (F n ) définie par F 0 = 0, F 1 = 1 et F n+2 = F n+1 + F n si n ∈ N. On admet, lorsque M ∈ S n (R) l’équivalence entre
• Sp(M ) ⊂ R∗ +,
• pour tout X ∈ M n1 (R) non nul, t X M X > 0.
Pour n Ê 2, on définit A n = (F i + j −2 )1Éi , j Én ∈ M n (R).
a) Écrire une fonction Python qui prend n en argument en renvoie A n sous forme d’un tableau numpy.
b) Écrire une fonction Python qui détermine les valeurs propres de A n .
c) Quel est l’ordre de 0 comme valeur propre de A n ?
d) Montrer que A n admet deux valeurs propres telles que αn < 0 < βn .
e) Étudier le comportement des suites (αn ) et (βn ).

2
Analyse/Algèbre/Probabilités Centrale Python

Exercice 9 (Centrale MP 2016 - Python*)


On appellera fonction multiplicative toute application f : N∗ → C telle que, pour tout m, n ∈ N∗ avec m ∧ n = 1, f (mn) = f (m) f (n).
a) Programmer une fonction Python pgcd qui retourne le pgcd de deux entiers a, b ∈ N∗ .
b) On définit des fonctions de N∗ dans C en posant, pour n ∈ N∗ ,
{ } { } ∑
φ(n) = card x ∈ J1 ; n K, x ∧ n = 1 , τ(n) = card x ∈ J1 ; n K, x divise n , σ(n) = d,
d |n

et 
 0 si n est divisible par le carré d’un nombre premier
µ(n) = (−1)k si n est le produit de k nombres premiers distincts

1 si n = 1
Montrer que ces quatre fonctions sont multiplicatives.
c) Programmer en Python ces fonctions.

d) On note M l’ensemble des fonctions multiplicatives non nulles. Pour f , g ∈ M, on définit f ∗ g : n 7→ f (d )g (n/d ). On admet que M est
d |n
un groupe abélien. Soit e : N∗ → C telle que e(n) = δn1 et 1 : n 7→ 1. Montrer que e est l’élément neutre de M et que 1 ∗ µ = e.

e) Soit H ∈ M. On définit h : N∗ → C par h(n) = H (d ). Montrer que H = µ ∗ h. Expliciter cette relation lorsque H = φ.
d |n
( ) ( )
f) Soit f ∈ M, F = µ ∗ f et M = f (i ∧ j ) 1Éi , j Én ∈ M n (C). On pose D la matrice diagonale de diagonale (F (1), . . . , F (n)) et A = 1i | j . Calculer
t AD A et en déduire det M . Calculer det M pour f = Id, f = σ et f = τ.

Analyse

Exercice 10 (Centrale MP 2016 - Python*)



n−1
On pose, pour n ∈ N∗ , Q n = X n − Xk.
k=0
a) Montrer que Q n possède une unique racine strictement positive x n .
b) Écrire un programme prenant n en paramètre et calculant une valeur approchée de x n . Que peut-on conjecturer quant au comportement
asymptotique de x n ?
c) Prouver que (x n ) converge et déterminer sa limite.
d) Montrer que 2n (2 − x n ) tend vers 1.
e) Poursuivre le développement asymptotique de x n .

Exercice 11 (Centrale MP 2016 - Python)



kn ∑
kn
Pour n ∈ N∗ , on considère le développement en base 2 de n : n = εk,n 2k où εk,n ∈ {0, 1} et εkn ,n = 1.. On pose L(n) = 2kn et S(n) = εk,n .
k=0 k=0
a) Écrire les fonctions L et S en Python.

N 1
b) Écrire en Python une fonction d’arguments (N , α) calculant la somme partielle α .
n=1 L(n) S(n)
∑ ∑
c) Soit (a n )nÊ1 une suite décroissantes d’éléments de R+ . Pour n ∈ N, soit b n = 2n a 2n . Montrer que a n converge si et seulement si bn
converge.
∑ 1
d) Utiliser le résultat précédent pour étudier la nature de la série avec α > 0.
n lnα n
∑ 1
e) Pour quelles valeurs de α, la série α est-elle convergente ?
L(n) S(n)

Exercice 12 (Centrale MP 2015 - Python*)


√ p
On définit des suites par x 0 = y 0 = 0 et, pour n ∈ N, x n+1 = 7 − y n et y n+1 = 7 + x n .
a) Montrer que ces suites sont bien définies.
b) Calculer les 10 premiers termes de ces suites. Conjecturer leur comportement.
c) Déterminer les limites possibles.
d) Montrer la convergence des suites.
e) Montrer que (x n ) et (y n ) ne peuvent être monotones, même à partir d’un certain rang. Donner un rang n 0 à partir duquel les limites sont
approchées à 10−3 près.

3
Analyse/Algèbre/Probabilités Centrale Python

Exercice 13 (Centrale MP 2015 - Python*)


Soient a > b > 0 et (γ) l’arc paramétré : (x(t ) = a cos t , y(t ) = b sin t ) avec t ∈ [−π, π].
a) Tracer (γ) avec 100 points avec une même échelle en x et y.
∫ π/2 √ √
b) Définir une fonction L(a, b) calculant L(a, b) = 4a 1 + µ2 sin2 t d t avec c = a 2 − b 2 et µ = c/a.
0
( )
1 2k
c) On pose αk = . Écrire une fonction calculant αk et représenter (αk )0ÉkÉ10 .
(2k − 1)4k k
p
d) On définit g : x ∈] − ∞, 1] 7→ 1 − x.
i) Montrer que, pour tout x < 1, pour tout k ∈ N, g (k) (x) = −k!αk (1 − x)−k+1/2 .
∑ ∫ x( )
n x −t n dt
ii) Montrer que g (x) + αk x k = −(n + 1)αn+1 p pour n ∈ N et x ∈ [0, 1[.
k=0 0 1−t 1−t
¯ ¯ ( )
¯ ∑n ¯
¯ k¯ 1 2n
iii) En déduire que, pour tout n ∈ N, x ∈ [0, 1[, ¯g (x) + αk x ¯ É 2n .
¯ ¯ 2 n
k=0

Exercice 14 (Centrale MP 2015 - Python*)


On considère a ∈ R et x a une fonction de classe C 1 (R+ , R) vérifiant x a (0) = a et, pour tout t ∈ R, x a′ (t ) = cos t + cos(x a (t )).
a) Utiliser la méthode d’Euler pour tracer le graphe de x a sur [0, T ] pour différentes valeurs de a et de T .
∫ t
b) Si x∈ C 0 ([0, T ], R) = E , on pose ϕ(x) : t 7→ a + sin t + cos(x(s)) d s. Montrer que
0

[ ¯ tn ° °
∀n ∈ N, x, y ∈ E , t ∈ [0, T ], ϕn (x)(t ) − ϕn (y)(t )¯ É °x − y ° .

n!

c) Avec les notations précédentes, soit x ∈ E , montrer que (ϕn (x)) converge uniformément vers un élément z de E et que z vérifie les propriétés
de x a .

Exercice 15 (Centrale MP 2015 - Python*)


( )
2n +∞
∑ an
Pour n ∈ N, on pose a n = 1n et S(x) = .
4 n n=0 n + x
a) i) Donner une relation entre a n et a n+1 .
ii) Écrire une fonction seqa(n) qui renvoie la liste des (n + 1) premières valeurs de (a k ).

n ak
iii) Écrire une fonction somp(n,x) qui renvoie la somme partielle .
k=0 + x
k
iv) Tracer le graphe de S 100 sur [−4, 001; 4, 001] en limitant la fenêtre des ordonnées à [−5, 5].
b) Montrer que S est définie et de classe C ∞ sur R\Z.
+∞

c) i) Montrer que, pour tout t ∈] − 1, 1[, p 1 = an t n .
1 − t n=0
∫ 1 x−1
t
ii) En déduire que S(x) = p d t pour tout x > 0.
0 1−t
d) Donner un équivalent de S en 0 et +∞.

Exercice 16 (Centrale MP 2015 - Python*)


Pour n ∈ N, on note B n le nombre de partitions d’un ensemble à n éléments. On notera B 0 = 1.
( )
∑ n n
a) Montrer que, pour tout n ∈ N, B n+1 = Bk .
k=0 k
( )
b) Écrire une fonction Bell(n) donnant B k 0ÉkÉn .
∑ Bn n
c) Montrer que le rayon de convergence R de la série entière x est strictement positif.
n!
+∞
∑ Bn n
d) Soit f : x ∈] − R, R[7→ x . Déterminer une équation différentielle dont f est solution. Exprimer f . Donner une expression de B n .
n=0 n!

4
Analyse/Algèbre/Probabilités Centrale Python

Exercice 17 (Centrale PSI 2016 - Python*)


a) Montrer que l’équation sh x = 1 admet une unique solution α. Donner un encadrement de α à 10−5 près.
∫ α
b) Soit I n la suite définie par I n = (sh t )n d t . Écrire une fonction suite(n) donnant une valeur approchée de I n .
0
c) Trouver une relation de récurrence entre I n et I n−2 .
d) Montrer que (I n ) est convergente et déterminer sa limite.
e) Donner un équivalent de (I n )
f) La série de terme général (−1)n I n est-elle convergente ? Si oui, donner une valeur approchée à 10−2 près de sa somme.

g) La série I n est-elle convergente ?

Exercice 18 (Centrale MP 2015 - Python*)



2n
Pour n ∈ N, soit P n : x 7→ xk .
k=0
a) Tracer les représentations graphiques de P n sur [−2, 2] pour n ∈ J0 ; 5K.
b) Étudier le signe et les variations de P n .
c) Montrer que P n présente un minimum a n atteint en un seul point.
d) Étudier la suite a n .

Exercice 19 (Centrale MP 2017 - Python*)


Soit P l’ensemble des polynômes à coefficients dans {0, 1, 2}. On note, pour n ∈ N, a n le nombre de polynômes R ∈ P tels que R(2) = n.
a) Déterminer a 0 , a 1 , a 2 et a 3 . Justifier l’existence de a n .
b) Montrer que, pour n ∈ N∗ , a 2n+1 = a n et a 2n = a n−1 + a n .
c) Écrire une fonction Python qui renvoie la valeur de a n . On vérifiera que a 534 = 39.

d) Montrer que a n x n a un rayon de convergence de 1.
e) Déterminer une expression simple de a n (mauvais énoncé... chercher des termes qu’on peut calculer...).

Exercice 20 (Centrale PSI 2016 - Python)


Soient a ∈ R et ω ∈ R∗
+.
a) Déterminer x de classe C 2 sur un intervalle I de R contenant 0 telle que x ′′ + ω2 x = 0, x(0) = 0 et x ′ (0) = a.
b) On considère l’équation différentielle x ′′ + ω2 sin x = 0 et f une solution vérifiant f (0) = 0 et f ′ (0) = a. En utilisant Python, tracer la courbe
représentative de f sur [0, 10] pour a ∈ {0.5; 1; 1.5; 2; 2.5}.
∫ t
du
c) Soient r ∈]0, 1[ et F : t 7→ √ .
0
1 − r 2 sin2 (ωu)
i) Montrer que F est une bijection de R sur R, strictement croissante et impaire.
ii) Montrer que F est de classe C ∞ puis que sa réciproque F −1 est de classe C ∞ .
iii) Pour r = 0.9 et en utilisant Python, tracer la courbe représentative de F sur [−5, 5], puis celle de F −1 .
d)
i) Tracer la courbe représentative de t 7→ 2 arcsin(r sin(ωF −1 (t ))) sur [−5, 5]
ii) On suppose que 0 < a < 2ω et on pose r = 2ω a et φ(t ) = 2 arcsin(r sin(ωF −1 )). Montrer que φ′′ + ω2 φ = 0

Exercice 21 (Centrale MP 2017 - Python*)


∑ tr (A k )
Soient n ∈ N∗ et A ∈ M n (C). On note ρ(A) le maximum des modules des valeurs propres de A. On cherche à démontrer que, si la série
( ) k
+∞
∑ tr (A k )
converge, alors exp = 1 .
k det(I n − A)
k=1
∑m tr (A k )
a) Écrire une fonction renvoyant pour m ∈ N∗ et A donnés.
k=1 k
b) On suppose que ρ(A) É 1 et que 1 n’est pas valeur propre de A. Montrer que

+∞
∑ tr (A k ) ∫ 1 ′
P A (t )
=− dt,
k=1 k 0 P A (t )

lorsque P A (X ) = X n χ A (1/X ).
∑ tr (A k )
c) On suppose que converge. Montrer que ρ(A) É 1 et que 1 n’est pas valeur propre de A. En déduire le résultat cherché.
k

5
Analyse/Algèbre/Probabilités Centrale Python

Exercice 22 (Centrale MP 2017 - Python*)


Soit E = C 0 (R, R). On définit l’applciation T sur E par ∫ x
T ( f ) : x 7→ 1 − (x − t ) f (t ) d t
0
a) Écrire une fonction qui pour ( f , x) ∈ E × R renvoie T ( f )(x).
b) Vérifier que T − 1 ∈ L (E ) et que l’image de T est contenue dans C 1 (R, R).
c) Tracer les graphes des fonctions cosinus et T (cos). Que conjecturer ?
d) Déterminer toutes les fonctions de E qui vérifient T ( f ) = f
e) On définit la suite de fonctions
∑ ( f n ) par f 0 ∈ E et, pour n ∈ N∗ , f n = T n ( f 0 ) = T ( f n−1 ). Calculer f n+1 (x) − f n (x) pour (n, x) ∈ N × R. Justifier
que la série de fonctions ( f n+1 − f n ) converge normalement sur les segments de R. Montrer que ( f n ) converge uniformément sur tout
segment vers une fonction à préciser.

Probas

Exercice 23 (Centrale MP 2016 - Python)


On s’intéresse à un examen passé par N candidats qui ont chacun une probabilité p ∈]0, 1[ de réussir l’examen à chaque passage. Les candidats
passent l’examen jusqu’à ce qu’ils réussissent. Les passages des candidats sont mutuellement indépendants. On note X k pour k ∈ J1 ; n K le nombre
de passages nécessaires au candidat k pour réussir l’examen. On pose X = X 1 + . . . + X n et Y = max X k .
1ÉkÉn
a) Déterminer expérimentalement les espérances des variables X et Y . On prendra par exemple N = 3 et p = 1/3.
b) Déterminer la loi de X k , son espérance et sa variance.
c) Donner la loi de X , son espérance et sa variance (on pourra utiliser des fonctions génératrices).
d) Donner la probabilité P (Y É k). En déduire la loi de Y .

Exercice 24 (Centrale MP 2016 - Python)


Aux cinq sommets d’un pentagone sont postés des joueurs de discoplane (le terme officiel français pour frisbee). Au début du jeu, deux des joueurs
voisins immédiats ont entre les mains un discoplane. Ils envoient le discoplane à gauche ou à droite et ainsi de suite. Le jeu s’arrête lorsque deux
discoplanes sont entre les mains d’un même joueur. On note T la variable aléatoire qui numérote l’étape à laquelle le jeu s’arrête.
a) Estimer numériquement E (T ).
b) Soit n Ê 1. On note a n la probabilité que les deux discoplanes soient entre les mains de voisins immédiats à l’étape n et b n celle que les deux
+∞
∑ +∞

discoplanes soient entre les mains de joueurs différents et non voisins immédiats. On pose A(z) = a n z n et B (z) = b n z n . Exprimer
n=1 n=1
+∞

P (T = n) z n à l’aide de A(z) et B (z).
n=1
c) Conclure. Généraliser au polygone à 2p + 1 cotés.

Exercice 25 (Centrale MP 2015 - Python*)

∑ h définie sur [0, 1] par h(x) = −x ln x si x > 0 et h(0) = 0. Soit X une variable aléatoire réelle. On définit l’entropie de X par H (X ) =
Soit
h(P (X = x)) (si la famille est sommable).
x∈X (Ω)
a) i) Écrire une fonction entropie(p) qui renvoie le couple (e, d ) avec e = H (X ) et d = e − ln n où n est le nombre de valeurs prises par X et
p est la liste des probabilités correspondantes.
ii) Écrire une fonction loibin(n,p) et loiuni(N) qui renvoie respectivement la liste des probabilités d’une variable aléatoire suivant
respectivement les lois B(n, p) et U ({0, . . . , N }).
iii) Calculer H (X ) pour X ,→ B(15, 2/5) puis lorsque X ,→ U ({0, . . . , 15}).
iv) Montrer que tout variable aléatoire prenant un nombre fini de valeurs admet une entropie avec 0 É H (x) É ln n.
v) Caractériser les cas d’égalité.
b) On considère une urne avec une boule noire et une boule rouge. On tire une boule. Si elle est rouge, on s’arrête ; sinon on la remet dans
l’urne avec une autre boule noire et l’on recommence. On note X le nombre de tirages, avec X = 0 si l’on n’obtient jamais de boule rouge.
La variable aléatoire X admet-elle une espérance ? une entropie ?
( )
1 1
c) Pour n Ê 2, on pose P (X = n) = ln 2 − . Montrer que l’on définit bien une loi. La variable aléatoire X admet-elle une espé-
ln n ln(n + 1)
rance ? une entropie ?

6
Analyse/Algèbre/Probabilités Centrale Python

Exercice 26 (Centrale MP 2015 - Python)


a) i) Écrire une fonction S(n, p) qui simule une variable aléatoire S n = Y /n où Y suit une loi binomiale B(n, p).
( √ )
ii) En déduire une fonction test(n,p) qui affiche les courbes interpolant les points (k, S k ), puis les points k, p + ln k et enfin les
k
( √ )
k, p − ln k . Que remarque-t-on ?
k
b) i) Soient t ∈ R et x ∈] − 1, 1[. Montrer que exp(t x) É 1 −t 1 t
2 (1 − x)e + 2 (1 + x)e .
( )
ii) On considère une variable aléatoire X telle que |X | É 1 et E (X ) = 0. Montrer que exp(t X ) est d’espérance finie et E exp(t X ) É ch t É
exp(t 2 /2).
∑n
c) i) Soient X 1 , . . . , X n des variables aléatoires centrées indépendantes telle que, pour tout i , |X i | É a i . On pose S n = X i . Montrer que
( ) i =1
( ) 2 ∑ n
E exp(t S n ) É exp t2 a i2 .
i =1
( )
t2 ∑ n
ii) Soit ε > 0. Montrer que P (S n > ε) É exp −t ε + a i2 .
2 i =1
 
 
 −ε 
iii) En choisissant une bonne valeur de t , montrer que P (S n > ε) É exp 
 ∑ n
.

 2
2 ai
i =1
iv) Commenter le résultat observé à la première question.

Exercice 27 (Centrale MP 2015 - Python*)


Un pion se déplace sur des cases numérotées par les entiers naturels. Initialement il se trouve en case 0 et à chaque instant, il se déplace d’un
nombre strictement positif de cases. On note Yi la variable aléatoire donnant le nombre de cases parcourues lors de la i -ième étape. On suppose
∑n
que les Yi sont indépendantes et suivent la même loi. On pose S n = Yi qui donne la position du pion à l’instant n, f i = P (Y1 = i ) et u(t ) =
i =1
+∞
∑ i
fi t .
i =1
a) On suppose que Y1 − 1 suit la loi de Bernoulli de paramètre p ∈]0, 1[.
i) Écrire une fonction qui prend un paramètre entier k et qui renvoie 1 si le pion atteint la case k et 0 sinon.
ii) Écrire une fonction qui, sur une trentaine d’essais, renvoie la proportion de fois où le pion atteint la case k. Comparer à 1/E (Y1 ).
( )
b) On note E k l’événement « le pion atteint la case k », et u k = P E k .
i) Décrire l’événement E k à l’aide des variables aléatoires S n .
( )
ii) Calculer P E k ∩ {Y1 = j } pour 1 É j É k.

k
iii) En déduire, pour tout k ∈ N∗ , u k = u k− j f j .
j =1
+∞

iv) Justifier la définition de f (t ) = u k t k et montrer que f (t ) = 1 .
1 − u(t )
k=0
v) Calculer u dans le cas où Y1 − 1 suit la loi de Bernoulli de paramètre p ∈]0, 1[ et en déduire les u k .
vi) On suppose que Y1 prend un nombre fini de valeurs et que les entiers k tels que P (Y1 = k) ̸= 0 sont premiers entre eux dans leur
ensemble. Montrer que (u k ) tend vers 1/E (Y1 ).

Exercice 28 (Centrale PC 2015 - Python)


a) Soit X une variable aléatoire suivant une loi uniforme sur {1, . . . , n}. Calculer son espérance, sa fonction génératrice.
b) Soit X 1 , . . . , X p des variables aléatoires mutuellement indépendantes suivant des lois uniformes sur {1, . . . , n}. On pose S p = X 1 + · · · + X p .
Déterminer la foncion génératrice de S p .
c) Écrire une fonction permettant de calculer les coefficients des puissances d’un polynôme (donné par ses coefficients). Écrire une fonction
permettant de calculer la somme des k premiers coefficients d’un polynôme.
( )
d) Soit k ∈ N∗ . Si p ∈ N∗ , on pose u p = P S p É k . Observer le comportement de la suite (u p ). Démontrer le résultat.

7
Analyse/Algèbre/Probabilités Centrale Python

Exercice 29 (Centrale PC 2015 - Python)


Une urne contient des boules numérotées de 1 à n. Le premier joueur tire des boules de l’urne sans remise. Il s’arrête lorsqu’il obtient la boule
portant le numéro n. On note X 1 le nombre de tirage effectués par le premier joueur. Le deuxième joueur effectue des tirages sans remise jusqu’à
ce qu’il obtienne la boule portant le numéro maximal restant dans l’urne. On note X 2 le nombre de tirages effecués par le deuxième joueur. On
pose X 2 = 0 lorsque X 1 = n.
a) Déterminer la loi, l’espérance et la variance de X 1 .
( )
b) Déterminer P X 2 = k|X 1 = j . En déduire la loi de X 2 ainsi que son espérance.
c) Écrire une fonction simulant X 1 et X 2 .

Exercice 30 (Centrale MP 2017 - Python)


On note r n la probabilité que deux nombres aléatoires entre 1 et n soient premiers entre eux. On veut montrer que la limite de r n = 62 . On donne
π
+∞
∑ 1 π2
2
= . On définit une fonction µ par
n=1 n 6

 0 si n est divisible par le carré d’un nombre premier
µ(n) = (−1)k si n est le produit de k nombres premiers distincts

1 si n = 1

a) À l’aide de Python, vérifier la conjecture sur la limite de (r n ).


b) Pour n ∈ N∗ , on note A n = {(a, b) ∈ J1 ; n K2 , a ∧ b = 1}, on note p 1 , . . . , p k les nombres premiers inférieurs ou égaux à n et U= {(a, b) ∈
J1 ; n K2 , p i |a et p i |b}. Exprimer A n en fonction des Ui .
c) Soit ℓ ∈ N∗ . Déterminer le nombre de multiple de ℓ inférieurs ou égaux à n.

d) En déduire le cardinal de Ui où I est une partie non vide de J1 ; k K.
i ∈I

n ⌊ n ⌋2
e) Montrer que card (A n ) = µ(d ) .
d =1 d
f) Conclure.

8
Analyse/Algèbre/Probabilités Centrale Python

Solutions

Exercice 1

a) Soient T1 et T2 deux polynômes et λ ∈ C. On écrit les divisions euclidiennes T1 P ′ = Q 1 P + R 1 et T2 P ′ = Q 2 P + R 2 avec R 1 et R 2 de degré au plus
n−1. On a alors (T1 +λT2 ) = (Q 1 +λT2 )P +(R 1 +λR 2 ) avec deg(R 1 +λR 2 ) É n−1. On a ainsi ΦP (T1 +λT2 ) = R 1 +λR 2 et par définition, R 1 = ΦP (T1 )
et R 2 = ΦP (T2 ). On a bien ΦP (T1 + λT2 ) = ΦP (T1 ) + λΦP (T2 ). Évidemment, ΦP est à valeurs dans Cn−1 [X ] et ΦP est un endomorphisme de
Cn−1 [X ].
b)  
1 from numpy . polynomial import Polynomial
2 import numpy as np
3
4 def det_matrice ( P ) :
5 n = P . degree ()
6 X = Polynomial ([0 ,1])
7 Pprime = P . deriv ()
8 Xn = 1
9 A = np . zeros (( n , n ) )
10 for i in range ( n ) :
11 Q = ( Xn * Pprime ) % P
12 A [: len ( Q ) ,i ]= Q . coef
13 Xn = Xn * X # permet d ’ avoir les puissances de X
14 return np . linalg . det ( A )
 
c) Différentes options : effectuer la division euclidienne en évaluant en les différents λi mais cela semble compliqué ; on peut chercher à diago-
naliser en résolvant T P ′ %P = λT , c’est à dire trouver T tel que T (P ′ − λ) soit multiple de P (pour des raisons de degré, on se rend compte que
l’une des racines de P doit être racine de P ′ − λ, ce qui donne λ = P ′ (λi ) et on trouve alors un polynôme propre pour chacune des n valeurs
propres P ′ (λi ). On peut enfin effectuer les calculs dans la base la plus raisonnable qui soit vu le problème, c’est-à-dire la base de Lagrange.

n
Soit (L 1 , . . . , L n ) la base de Lagrange associée aux racines λ1 , . . . , λn . Pour i ∈ J1 ; n K, on a L i P ′ = Q i P + R i où R i = α(ij ) L j . En évaluant en λk ,
j =1
on obtient L i (λk )P ′ (λk ) = α(i
k
)
. Finalement les α(ij ) sont tous nuls sauf α(i
i
)
= P ′ (λi ). On a finalement obtenu ΦP (L i ) = P ′ (λi )L i (on retrouve

n
les résultats envisagés au dessus). L’application ΦP est diagonalisable et son déterminant est d = P ′ (λk ).
k=1
d) Si P est à racines simples alors ΦP est inversible. Supposons que P admette une racine double λ : on a P = (X − λ)2Q 1 et P ′ = (X − λ)Q 2 . On
cherche T tel que ΦP (T ) = 0 soit T de degré au plus n − 1 et tel que T P ′ soit divisible par P . On choisit T = (X − λ)Q 1 , il est de degré n − 1 et
T P ′ = (X − λ)2Q 1Q 2 = PQ 2 donc ΦP (T ) = 0 sans que T soit nul. L’application ΦP est inversible si et seulement si P est à racines simples.

Exercice 2

a)  
1 from numpy . polynomial import Polynomial
2 import numpy as np
3
4 def Mat ( n ) :
5 A = np . zeros (( n +1 , n +1) )
6 X = Polynomial ([0 ,1])
7 for i in range ( n +1) :
8 P = (1 - X ) ** i *(1+ X ) **( n - i )
9 A [: , i ]= P . coef
10 return A
11
12 for n in range (2 ,10) :
13 M = Mat ( n )
14 print (n , np . dot (M , M ) )
 
Les calculs semblent montrer que M n2 = 2n I n .
b) On peut évidemment effectuer les calculs brutalement, ça passe sans soucis : le terme en ligne i de M n Un (x 0 ) (avec i allant de 0 à n) est
( )

n 1 − x0 i
βn,i , j x 0i = P n,i (x 0 ) = (1 − x 0 )i (1 + x 0 )n−i = (1 + x 0 )n = (1 + x 0 )n y 0i .
j =0 1 + x0

On a donc bien la relation demandée. On pose alors


1 − y 0 1 + x0 − 1 + x0
z0 = = = x0 ,
1 + y 0 1 + x0 + 1 − x0
( )n
et M n2 Un (x 0 ) = (1+ x 0 )n M n Un (y 0 ) = (1+ x 0 )n (1+ y 0 )n Un (z 0 ) = (1+ x 0 )n 1 +2x Un (x 0 ) = 2n Un (x 0 ). Ainsi M n2 X et 2n I n+1 X sont égaux pour
0
tout vecteur X du type Un (x 0 ). En prenant n + 1 valeurs 2 à 2 distinctes x 0 , . . . , x n , on obtient une base de vecteurs (la matrice de cette famille
est une matrice de Vandermonde). On en déduit que M n2 et 2n I n+1 sont égales. Le polynôme X 2 − 2n est annulateur de M n , scindé à racines
simples donc M n est diagonalisable avec des valeurs propres égales à ±2n/2 .

9
Analyse/Algèbre/Probabilités Centrale Python

1+ j −i −i j −1−i + j +i j 2( j − i ) xi − x j
c) On a y i − y j = =− . On calcule alors le déterminant de Vandermonde (la taille est n + 1, le
(1 + i )(1 + j ) (1 + i )(1 + j ) (1 + i )(1 + j )
nombre de terme est (n + 1)n ):
2
( )
∏ ∏ xi − x j 1
detVn (y) = (y i − y j ) = − = (−2)(n(n+1)/2 ∏ ,
i>j i>j (1 + i )(1 + j ) (1 + i )(1 + j )
i>j

avec
∏ ∏ −1
n i∏ n (
∏ )
(1 + i )(1 + j ) = (1 + i )(1 + j ) = (1 + i )i i !
i>j i =1 j =0 i =1
∏ ∏
qui n’est pas immédiat. Pour des raisons de symétrie, on a (1 + i )(1 + j ) = (1 + i )(1 + j ) = P . On calcule alors
nÊi > j Ê0 nÊ j >i Ê0


n ∏
n n (
∏ )
(1 + i )(1 + j ) = (1 + i )n+1 (n + 1)! = (n + 1)!n+1 (n + 1)!n+1 , = ((n + 1)!)2n+2 ,
i =0 j =0 i =0


n
et ce terme est aussi P 2 (1 + i )(1 + i ) = (n + 1)!2 P 2 . On a P 2 = ((n + 1)!)2n , et puisque P > 0, on en déduit que P = ((n + 1)!)n . Cela donne la
i =0
relation.
d) On calcule M n Vn (x) = Wn . La colonne i (entre 0 et n) de Wn est (1 + x i )n = (1 + i )n fois la colonne i de Vn (y). On en déduit alors

det(M n Vn (x)) = det(M n ) det(Vn (x)) = 1n 2n . . . (n + 1)n det(Vn (y)) = ((n + 1)!)n detVn (y),

et avec la question précédente (puisque Vn (x) est de déterminant non nul), on obtient det M n = (−2)n(n+1)/2 . Les deux réels 2n/2 et −2n/2 sont
valeurs propres (et la parité du nombre de −2n/2 est celle de (−1)n(n+1)/2 .

Exercice 3

p
a) On parcourt les entiers de 2 à n et on teste si n est divisible :
 
1 def prem ( n ) :
2 d = 2
3 while d * d <= n :
4 if n % d == 0:
5 return False
6 d += 1
7 return True
 
b)
 
1 def piprime ( n ) :
2 k = 0
3 for p in range (2 , n + 1) :
4 if prem ( p ) :
5 k += 1
6 return k
 
On peut évidemment programmer un crible d’Eratosthène pour accéler un peu tout cela (enfin après c’est la taille de la liste qui devient le
facteur limitant).
c)
 
1 for n in [10** k for k in range (1 , 7) ]:
2 print ( n / piprime ( n ) )
 
Il semble quen est de limite infinie (ou l’inverse est de limite nulle)... enfin difficile de dire cela à cette vitesse
π(n)
d) L’inégalité donne n Ê ln n donc la limite est bien infinie.
π(n) 2 ln 2
e) On a n = kπ(n) qui donne n É 2k ln 2 n soit ln n É 2k ln 2 et n É 22k .
ln
f)  
1 def solution () :
2 L = []
3 for n in range (2 ,2**11+1) :
4 if 2* n ==11* piprime ( n ) :
5 L . append ( n )
6 return L
 
et en évaluant, on trouve
[561 , 583 , 594 , 605 , 616 , 627 , 649 , 660]

10
Analyse/Algèbre/Probabilités Centrale Python

g) Si n ∈ F k , on obtient la même majoration qu’au dessus donc F k est fini. De plus 2 ∈ F k puisque k est un entier supérieur ou égal à 2 (π(2) = 1
et 2 É k). Soit N le maximum de F k (il existe donc). On a N É kπ(N ) et N + 1 > kπ(N + 1). Supposons que N ne soit pas dans E k - on a alors
n < kπ(n). On envisage deux situations :
• N + 1 n’est pas premier : π(N + 1) = π(N ). On obtient N < kπ(N ) < N + 1 impossible pour des entiers.
• N + 1 est premier : π(N + 1) = π(N ) + 1. On obtient N < kπ(N ) < N + 1 − k encore plus impossible.
Dans tous les cas, on a une contradiction. Ainsi N ∈ E k .

Exercice 4

a)
 
1 import numpy as np
2 import numpy . linalg as alg
3
4 def tournoi ( n ) :
5 A = np . zeros (( n , n ) )
6 for i in range ( n ) :
7 for j in range ( i ) :
8 t = np . random . rand ()
9 if t < 0.5:
10 A [i , j ] = 1
11 A [j , i ] = -1
12 else :
13 A [i , j ] = -1
14 A [j , i ] = 1
15 return A
 
b)
 
1 for n in range (3 ,8) :
2 print ( " n = " ,n )
3 for i in range (10) :
4 print ( alg . det ( tournoi ( n ) ) , end = " " )
5 print ()
 
Les déterminants semblent nuls lorsque n est impair et un entier (impair) au carré lorsque n est pair.
c) Une matrice de tournoi est antisymétrique, donc det(A) = det(−t A) = (−1)n det(A). Si n est impair, on a donc det(A) = 0.
d)
i) Avec les opérations C 1 ← C 1 −C 2 − · · · − C n puis C j ← C j −C 1 , on trouve que det(J n − I n ) = (−1)n−1 (n − 1).
ii) On travaille dans Z/2Z. Puisque le déterminant est une somme de produit des coefficients et que la congruence modulo 2 est compatible
avec ces deux opérations, on a det M ≡ det N [2].
iii) Les coefficients de A − (J n − I n ) sont tous pairs, donc det A = det(J n − I n ) modulo 2 donc vaut 1. Le déterminant est un entier impair...
visiblement on n’aura pas mieux ainsi. Peut-être est-ce le résultat attentu (ou pas ?)
Exercice 5

( )
cos θ − sin θ
a) On choisit Ω une matrice de rotation : Ω = . On effectue le produit t ΩAΩ. L’égalité des éléments diagonaux donne la relation
sin θ cos θ

a cos2 θ + (b + c) sin θ cos θ + d sin2 θ = a sin2 θ − (b + c) sin θ cos θ + d cos2 θ,

ce qui peut s’écrire a cos(2θ) + (b + c) sin(2θ) − d cos(2θ) = 0 ou encore (a − d ) cos(2θ) + (b + c) sin(2θ) = 0.


• lorsque a = d la matrice a déja sa diagonale constante, on peut prendre θ = 0, c’est-à-dire Ω = I 2 .
• lorsque a ̸= d , on obtient cotan (2θ) = b + c (si on préfère tan, on obtient en général, θ = 1 d −a
2 arctan( b + c ) sauf si b + c = 0).
d −a
b)
 
1 import numpy as np
2
3 A = np . array ([[0 ,2] ,[2 ,1]])
4 theta = np . arctan (1/4) /2
5 Omega = np . array ([[ np . cos ( theta ) , - np . sin ( theta ) ] ,[ np . sin ( theta ) , np . cos ( theta ) ]])
6 B = np . dot ( Omega .T , np . dot (A , Omega ) )
7 # ou ( Omega . T@A@Omega ) dans les dernières versions de numpy
 
donne
>>> B
array ([[ 0.5 , 2.06155281] ,
[ 2.06155281 , 0.5 ]])

c) On note φ : Ω 7→ t ΩAΩ. Cette application est continue sur M n (R) (produit, transposition). Puisque O n (R) est compact, Γ = φ(O n (R)) est com-
pact.

11
Analyse/Algèbre/Probabilités Centrale Python

x + y + |x − y|
d) On commence par montrer que f est continue sur M n (R). Pour deux réels sup(x, y) = 2 si bien que sup est continue sur R2 . Par
récurrence, en utilisant le fait que sup(x 1 , . . . , x n+1 ) = sup(sup(x 1 , . . . , x n ), x n+1 ), on montre que (x 1 , . . . , x n ) 7→ sup(x 1 , . . . , x n ) est continue sur
2
Rn . L’application M 7→ (|M i i − M j j |)i , j ∈J1 ;n K est continue sur M n (R) dans Rn . Finalement par composition f est continue sur M n (R). Puisque
Γ est compact, f admet un minimum sur Γ et celui ci est atteint sur Γ.
e) Soit M une matrice en laquelle le minimum de f est atteint. On suppose que f (M ) > 0. Il existe alors i ̸= j tel que M i i ̸= M j j . On considère
alors Ω la matrice de O n (R) qui correspond à la matrice dans la base canonique (e 1 , . . . , e n ) de Rn ) de la rotation d’angle θ dans le plan (e i , e j )
(et qui laisse les autres vecteurs de la base). Les calculs de t ΩM Ω se font comme dans la question 1. Pour s’en convaincre, on peut effectuer les
calculs dans la base (e i , e j , ...). On a
( ) ( ) ( t tR B )
Rθ (0) A B R θ Aθ θ
Ω′ = , A′ = , et t Ω′ A ′ Ω′ =
(0) I n−2 C D C Rθ D

En revenant à la base de départ, on permute les éléments diagonaux mais sans changer leurs valeurs (en revanche pour les autres coefficients,
c’est autre chose). En choisissant θ comme dans la question 1, on peut trouver θ de sorte que les termes de M ′ = t ΩM Ω soient égaux.
On croit avoir terminé... mais non... on a est parti de M avec une certaine diagonale, on l’a transformé en M ′ qui permet de changer deux
éléments diagonaux (et les égaler) mais on a changé plein d’autres termes |M kk − M i i |. On va légérement changer le départ : on ordonne
les éléments diagonaux de M : α1 É α2 É . . . É αn avec α1 < αn . On effectue alors le travail précédent. On a fait augmenter strictement α1 et
diminuer strictement αn . Il se pourrait qu’il y ait plusieurs fois la valeur α1 et/ou αn mais un nombre fini de fois. On réitère alors cela (moins de
n/2 fois afin d’avoir des termes diagonaux tous strictement entre α1 et αn . On obtient ainsi une nouvelle matrice N de Γ telle que f (N ) < f (M )
et enfin une contradiction.

Exercice 6

a)
 
1 import numpy as np
2 import matplotlib . pyplot as plt
3 import scipy . optimize as resol
4
5 def R (n , x ) :
6 S = 0
7 for k in range ( n +1) :
8 S += 1/( x - k )
9 return S
10
11 def trace ( n ) :
12 X = np . linspace ( -4 , 8 , num =1001)
13 Y = [ R (n , x ) for x in X ]
14 plt . plot (X , Y )
15 plt . ylim = [ -5 , 5]
16 plt . grid ()
17 plt . show ()
 

n 1
b) i) Puisque R n′ (x) = − < 0 sur ]k, k + 1[, R n est strictement décroissante et comme lim R n (x) = +∞, et lim R n (x) = −∞, elle
i =0 (x − i )2 x→k + x→(k+1)−
admet un unique zéro a n,k dans cet intervalle.
ii) On procède par dichotomie pour trouver une valeur approchée de a n,k :
 
1 def A (n , k , eps ) :
2 """ utilisation de dichotomie """
3 g = k
4 d = k + 1
5 m = (g + d) / 2
6 while (d - g ) > eps :
7 if R (n , m ) > 0:
8 g = m
9 else :
10 d = m
11 m = ( g + d ) /2
12 return m
 
On peut également utiliser la fonction fsolve du module scipy, qui ne marche que pour une fonction d’une variable :
 
1 def a (n , k ) :
2 def Rn ( x ) :
3 return R (n , x )
4 a = resol . fsolve ( Rn , k + 0.5)
5 return a [0]
 
iii)
1 , R (a ) − R
c) Puisque R n (x) − R n−1 (x) = x − 1
n−1 (a n,k ) = a < 0, donc R n−1 (a n,k ) > 0 et par conséquent a n,k É a n−1,k . La suite (a n,k )
n n n,k n,k − n
est donc décroissante et minorée par k, elle converge.

12
Analyse/Algèbre/Probabilités Centrale Python

1 ∑
k−1 1 ∑
n 1 ∑ 1
k−1
d) Puisque =− + et que a n,k → k, A n → = C et puisque k É a n,k É k + 1,
a n,k − k − −
a
i =0 n,k i i =k+1 i a n,k i =0 l − i
| {z } | {z }
An Bn


n 1 1 ∑
n 1
É Bn É + .
i =k+1 i − k k + 1 − a n,k i =k+2 i − (k + 1)

on peut encadrer B n à l’aide des nombres harmoniques :


1
Hn−k É B n É Hn−k−1 +
k + 1 − a n,k
( )
et comme Hn = ln n + γ + o(1), on montre que 1 ∼ 1 d’où a n,k = k + 1 + o 1 .
a n,k − k ln n ln n ln n
Exercice 8

a) On propose deux méthodes


 
1 import numpy as np
2
3 def F ( n ) :
4 a , b = 0 ,1
5 for i in range ( n ) :
6 a,b = b,a+b
7 return a
8
9 def A ( n ) :
10 f = np . vectorize ( lambda i , j : F ( i + j ) )
11 return np . fromfunction (f ,( n , n ) , dtype = " int " )
 
ainsi que
 
1 def A ( n ) :
2 A = np . zeros (( n , n ) , dtype = ’ int ’)
3 A [0 ,1] = 1
4 A [1 ,0] = 1
5 A [1 ,1] = 2
6 for i in range (2 , n ) :
7 A [0 , i ] = A [0 , i -1]+ A [0 ,i -2]
8 A [1 , i ] = A [1 , i -1]+ A [1 ,i -2]
9 # ou A [0:2 , i ]= A [0:2 , i -1]+ A [0:2 , i -2]
10 for j in range (2 , n ) :
11 A [ j ] = A [j -1]+ A [j -2]
12 return A
 
b) plus rapide :
 
1 def valeurs ( n ) :
2 return np . linalg . eigvals ( A ( n ) )
 
ou, pour un peu plus de lisibilité (les valeurs propres sont réelles puisque A n est symétrique réelle), on peut prendre les parties réelles ou les
modules
 
1 def valeurs ( n ) :
2 return np . real ( np . linalg . eigvals ( A ( n ) ) )
 
c) La matrice A n est de rang 2 : à partir de la colonne 3, on a C i = C i −1 + C i −2 et les colonnes 1 et 2 ne sont pas proportionnelles. On en déduit
que 0 est de multiplicité n − 2 (c’est à la fois l’ordre de multiplicité et la dimension du sous-espace propre)
d) La matrice A n a donc 3 valeurs propres : 0 de multiplicité n −2, αn et βn (éventuellement égales mais non nulles). La trace de A n est strictement
positive donc les deux valeurs propres restantes ne peuvent pas être strictement négatives. On va montrer qu’elles ne sont pas toutes les deux
dans R∗ + et le résultat admis au début nous invite fortement à calculer t X A n X . On va exploiter la structure « croissante » des matrices. On
( )
0 1
retrouve A 2 dans le coin de chaque matrice A n . On a A 2 = . Son polynôme caractéristique est X 2 − 2X − 1 et A 2 possède une racine
1 2
strictement positive β2 et une strictement négative α1 . Il existe X 2 unitaire de taille 2 tel que A 2 X 2 = α2 X 2 et t X 2 A 2 X 2 = α2 < 0. On considère
le vecteur X n de taille n obtenu en ajoutant n − 2 zéros à la suite des deux coordonnées de X 2 . On vérifie alors que t X n A n X n = t X 2 A 2 X 2 < 0
(écrire tout cela avec des blocs). La matrice A n n’est donc pas positive et admet une valeur propre strictement négative.
e) Rien d’évident a priori. On a un ordinateur, on peut au moins essayer de conjecturer les résultats...
 
1 def b ( n ) :
2 return np . max ( valeurs ( n ) )
3 def a ( n ) :
4 L = np . sort ( valeurs ( n ) )
5 return L [0]
 

13
Analyse/Algèbre/Probabilités Centrale Python

>>> [ a ( n ) for n in range (2 ,11) ]


[ -0.6180339887498949 ,
-0.64575131106458983 ,
-0.70820393249936864 ,
-0.7119144780585055 ,
-0.72135954999579366 ,
-0.72189169131898268 ,
-0.72327892872129851 ,
-0.72335636314029272 ,
-0.7235589623033718]

et
>>> [ b ( n ) for n in range (2 ,11) ]
[1.6180339887498949 ,
4.6457513110645881 ,
12.708203932499371 ,
33.71191447805851 ,
88.721359549995782 ,
232.72189169131909 ,
609.72327892872136 ,
1596.7233563631401 ,
41 8 0 . 7 2 3 5 5 8 9 6 2 3 0 3 3 ]

p
On se rend compte que b n à l’air géométrique, de raison ρ 2 où ρ est le nombre d’or ρ = 1 +2 5 (on sait que F n s’exprime avec ρ n et ρ −n ).
• d’après le cours (un peu hors programme), on a βn = max{t X A n X , ∥X ∥ = 1} et αn = min{t X A n X , ∥X ∥ = 1}.
( )
Xn
• lorsque X décrit l’ensemble des vecteurs unitaires de taille n, alors le vecteur de taille n + 1, X n+1 = est un vecteur unitaire de taille
0
n + 1. Un calcul simple donne t X n+1 A n+1 X n+1 = t X A n X et en prenant X qui maximise la quantité de droite βn+1 Ê t X n+1 A n+1 X n+1 =
t X A X = β . La suite β est croissante. De même α est décroissante.
n n n n
• On a αn + βn = tr (A n ) = F 0 + F 2 + . . . + F 2n−2 . Or

F 2 + F 4 + . . . + F 2n−2 = (F 0 + F 1 ) + (F 2 + F 3 ) + . . . + F 2n−4 + F 2n−3

Une récurrence simple montre que cette somme vaut F 2n−1 − 1 et finalement αn + βn = F 2n−1 − 1. Ainsi lim αn + βn = +∞.
n→+∞
• Si on montre que αn est minorée et donc convergente, on a aura obtenu en même temps que βn ∼ F 2n−1 .
• Puisque αn < 0, on a βn + αn É βn et on en déduit facilement que βn tend vers +∞.

Exercice 9

a) On utilise la relation a ∧ b = b ∧ r si r est le reste de la division euclidienne de a par b avec b ∧ r = b lorsque r = 0 (dernier reste non nul). On a
le choix entre une version récursive ou non
 
1 def pgcd (a , b ) :
2 while b >0:
3 a,b = b, a%b
4 return a
5
6 def pgcd (a , b ) :
7 if b ==0:
8 return a
9 else :
10 return pgcd (b , a % b )
 
b) • Fonction φ : on peut le faire à partir du lemme chinois comme dans le cours (φ(n) est le nombre d’inversibles dans Z/n Z). L’application
{
Z/(mn)Z → Z/n Z × Z/m Z
θ:
x mn 7 → (x n , x m )

où x p désigne la classe de x dans Z/p Z, est un isomorphisme d’anneaux (le second est l’anneau produit avec les lois composante par
composante) : elle est bien définie, on a θ(x + y) = θ(x) + θ(y) et θ(x y) = θ(x)θ(y) ainsi que θ(1) = (1, 1) unité de l’anneau produit. Par le
lemme de Gauss, l’application est injective (si m ∧ n = 1) et donc bijective avec les cardinaux. Si x ∈ J1 ; mn K, alors x est premier avec mn si
et seulement si x est inversible dans Z/(mn)Z. Ces inversibles sont en bijection avec les couples (y, z) où y inversible dans Z/n Z et z dans
Z/m Z. On a bien φ(mn) = φ(m)φ(n) si m ∧ n = 1.
∏k
α ∏k
β
• Fonction τ : on peut le faire avec une décomposition en facteurs premiers : m = p i i , les diviseurs de m sont les nombres p i i avec
i =1 i =1

k ∏
l γj
βi ∈ J1 ; αi K et il y en a (1 + αi ). Idem avec n = q j . Puisque m et n sont premiers entre eux, x divise mn si et seulement si x s’écrit
i =1 j =1


k α′ ∏l γ′j
x= pi i qj ,
i =1 j =1

14
Analyse/Algèbre/Probabilités Centrale Python


k ∏
l
avec les conditions précédentes. On obtient (1 + αi ) (1 + γ j ) diviseurs. Cela donne τ(mn) = τ(m)τ(n) si m ∧ n = 1.
i =1 j =1
On peut également considérer x ∈ J1 ; mn K diviseur de mn et vérifier que x = pq avec p ∧ q = 1 et p et q diviseurs quelconques de m et n
sans passer par une décomposition en facteurs premiers. On suppose que x|(mn) et on note g = m ∧ x. On a alors x = g x ′ et m = g m ′ avec
m ′ ∧ x ′ = 1, ainsi que x ′ |(m ′ n) puisque x ′ et m ′ sont premiers entre eux, x ′ divise n. On a bien x = g x ′ avec g diviseur de m et d ′ diviseur de
n. Puisque m et n sont premiers entre eux, g et x ′ le sont aussi. Réciproquement toutes ces décompositions conviennent. Cela redonne le
résultat.
• Fonction σ. On note D n l’ensemble des diviseurs de n. La question précédente montre que d |(mn) si et seulement si d = d 1 d 2 avec d 1 |m
et d 2 |n, ou, dans l’autre sens,
D mn = {d 1 d 2 , (d 1 , d 2 ) ∈ D m × D n } .
( )( )
∑ ∑ ∑
Cela donne σ(mn) = d1 d2 = d1 d 2 = σ(m)σ(n).
(d 1 ,d 2 )∈D m ×D n d 1 ∈D m d 2 ∈D n
• Fonction µ : m et n n’ont aucun facteur premier commun ainsi mn a un facteur premier multiple si et seulement m ou n en a. Ainsi
µ(mn) = 0 si et seulement si µ(m) = 0 ou µ(n) = 0. Lorsque µ(m) et µ(n) sont non nuls, alors mn est produit de µ(m) + µ(n) facteurs
premiers distincts et µ(mn) = µ(m)µ(n). On obtient bien µ(mn) = µ(m)µ(n) dans toutes les situations.
c) C’est assez simple pour les 3 premières
 
1 def phi ( n ) :
2 k = 0
3 for x in range (1 , n ) :
4 if pgcd (x , n ) ==1:
5 k +=1
6 return ( k )
7
8 def tau ( n ) :
9 k = 0
10 for x in range (1 , n +1) :
11 if n % x ==0:
12 k +=1
13 return k
14
15 def sigma ( n ) :
16 k = 0
17 for x in range (1 , n +1) :
18 if n % x ==0:
19 k += x
20 return k
 
et un peu plus subtil si on ne veut pas trop calculer pour la quatrième
 
1 def mu ( n ) :
2 if n ==1:
3 return 1
4 k = 1
5 for x in range (2 , n +1) :
6 # on parcourt tous les entiers
7 if n % x ==0:
8 # x est un diviseur de n
9 # c ’ est forcément un facteur premier car on a simplifié par les facteurs
10 # premiers simples précédents et retourné 0 si on a rencontré un facteur multiple
11 n = n // x
12 if n % x ==0:
13 # facteur double , on renvoie 0
14 return 0
15 else :
16 # facteur simple , on multiplie k par -1
17 k =-k
18 return k
 

d) On a f ∗ e(n) = f (d )e(n/d ). Le seule terme restant est pour d = n afin d’avoir e(1) = 1 et ainsi f ∗ e(n) = f (n) pour tout entier n. On a bien
d |n
f ∗ e = f . On a également ∑ ∑
1 ∗ µ(n) = µ ∗ 1(n) = µ(d )1(n/d ) = µ(d ),
d |n d |n


k
α
On a (1 ∗ µ)(1) = 1 (si on prend la convention que µ(1) = 1). Soit n différent de 1 et sa décomposition en facteurs premiers n = p i i . On
i =1

k
ε ∏
k ∏
k−1
considère uniquement les diviseurs de n avec des facteurs simples : d = p i i avec εi = ±1. On note alors d 1 = p i et d 2 = p i avec
i =1 i =1 i =1
d 2 = 1 si k = 1. On a ainsi
∑ ∑ ∑ ∑ ∑ ∑ ∑ ∑
µ(d ) = µ(d ) = µ(d ) + µ(d .p k ) = µ(d ) + µ(d )µ(p k ) = µ(d ) − µ(d ) = 0.
d |n d |d 1 d |d 2 d |d 2 d |d 2 d |d 2 d |d 2 d |d 2

Finalement 1 ∗ µ(n) = δ1n = e(n) pour tout n ∈ N∗ .


De façon plus simple, on peut utiliser le fait que la fonction est multiplicative et ainsi la calculer sur p k où k est un entier et p permier. En effet,

15
Analyse/Algèbre/Probabilités Centrale Python


d
α ∏
d
α
si on connait ces valeurs alors, pour n se décomposant en n = p i i , on a f (n) = f (p i i ). Soit p un nombre premier et k ∈ N∗ . On prend
i =1 i =1

k
j
n = p k . Les diviseurs de n sont les p j avec j ∈ J0 ; k K. On a alors (1∗µ)(p k ) = µ(p ) = µ(1)+µ(p)+0 = 1−1 = 0. Ainsi (1∗µ) est nulle sur tous
j =0
les p k avec k ̸= 0. On en déduit que pour tout n ∈ N∗ , (1 ∗ µ)(n) = 0.

e) On a h(n) = (1∗H )(n) d’où h = 1∗H et ainsi µ∗h = µ∗1∗H = e ∗H = H . Avec H = φ, on obtient h(n) = φ(d ) = φ∗1. Comme précédemment,
d |n
on calcule H en p k . On a (voir cours), φ(p j ) = p j − p j −1 si j Ê 1 et φ(1) = 1. Ainsi


k ∑
k
h(p k ) = φ(p j ) = 1 + (p j − p j −1 ) = p k .
j =0 j =1

On en déduit (par décomposition en facteurs premiers et multiplicativité) que h(n) = n pour tout n ∈ N∗ . Cela donne φ ∗ 1 = Id et ainsi
φ = Id ∗ µ = µ ∗ Id.
f) On calcule brutalement :

n ∑
n
(t AD A)i , j = (t A)i k (D A)k j = A ki F (k)A k j
k=1 k=1
∑ ∑
le terme A ki est non nul si et seulement si k|i et de même pour A k j . Il ne reste donc que F (k) c’est-à-dire F (k). Cette somme est
k|,k| j k|(i ∧ j )

(1) ∗ F (i ∧ j ) = ((1) ∗ µ ∗ f )(i ∧ j ) = (e ∗ f )(i ∧ j ) = f (i ∧ j ).


n
Finalement t AD A = M . La matrice A est tringulaire avec des 1 sur la diagonale donc det A = 1 et ainsi det M = det D = F (k).
k=1

n
• lorsque f = Id : on a µ ∗ f = φ et det M = φ(k),
k=1
• lorsque f = σ : on calcule F = µ ∗ σ de nouveau sur les p k avec p premier et k ∈ N∗ . Il reste F (p k ) = µ(1)σ(p k ) + µ(p)σ(p k−1 ) = σ(p k ) −
σ(p k−1 ). De plus
∑ k p k+1 − 1
σ(p k ) = pj = ,
j =0 p −1

p k+1 − 1 p k − 1
cela donne F (p k ) = k
p − 1 − p − 1 = p . Cette fois on a µ ∗ σ = Id. On obtient det M = n!.
• lorsque f = τ : on pose T = µ∗τ. On a T (p k ) = τ(p k )−τ(p k−1 ). On a τ(p k ) = k +1 (les diviseurs sont les p j pour j allant de 0 à k). Finalement
T (p k ) = 1 et par produit T = 1. On en déduit que det M = 1.

Exercice 10

a) L’étude directe des variations ne semblent pas donner grand chose. On peut réécrire la somme. On voit que 1 n’est pas racine de Q n (Q ( 1) =
1 − n < 0) si n Ê 2. On se place dans le cas où n Ê 2. On a

X n − 1 X n+1 − 2X n + 1
Qn = X n − =
X −1 X −1

ainsi Q n s’annule sur R+ \{1} si et seulement si P n = X n+1 − 2X n + 1 s’annule R+ \{1}. On a P n′ = (n + 1)X n − 2nX n−1 = X n−1 ((n + 1)X − 2n).
La fonction x 7→ P n (x) est décroissante sur [0, n2n 2n
+ 1 ] puis croissante - on a n + 1 ∈]1, 2[. On a P n (0) = 1, P n (1) = 0, P n (2) = 1. Ainsi P n s’annule
deux fois sur R+ : en 1 et quelque part en x n entre n2n + 1 et 2 et Q n s’annule uniquement en x n (sur R ).
+

b) On peut programmer une dichotomie entre 1 et 2 :


 
1 import numpy as np
2
3 def x ( n ) :
4 def f ( x ) :
5 p = 1
6 s = 0
7 # on calcule raisonableme nt la somme
8 for k in range ( n ) :
9 s += p
10 p = p*x
11 # en sortie p = x ** n
12 return p - s
13
14 a =1
15 b =2
16 while b -a >1 e -10:
17 c = ( a + b ) /2
18 if f ( c ) ==0:
19 return c
20 if f ( a ) * f ( c ) <0:

16
Analyse/Algèbre/Probabilités Centrale Python

21 b = c
22 else :
23 a = c
24 return c
 
>>> [ x ( n ) for n in range (2 ,11) ]
[1.618033988692332 ,
1.839286755246576 ,
1.9275619754916988 ,
1.9659482366987504 ,
1.9835828433861025 ,
1.9919641966116615 ,
1.9960311797331087 ,
1.9980294702691026 ,
1 . 9 99 0 1 8 63 27 4 8 6 3 ]

La suite à l’air croissante vers 2.


On peut également utilisder les fonctions sur les polynômes
 
1 def y ( n ) :
2 X = Polynomial ([0 ,1])
3 P = 1
4 S = 0
5 for k in range ( n ) :
6 S = S + P
7 P = P * X
8 # P contient X ** n en sortie
9 Q = P-S
10 racines = Q . roots ()
11 # on retourne la première racine positive qu ’ on voit
12 for r in racines :
13 if r . real >0 and np . abs ( r . imag ) <1e -12:
14 return r . real
 
La méthode semble quand même moins satisfaisante (mais fonctionne sans problème si on ne fait pas exploser le degré).
c) On a montré que n2n 2
+ 1 = 2 − n + 1 < x n < 2. On en déduit donc que (x n ) converge vers 2.
2 . On
d) On écrit ce qu’on sait : Q n (x n ) = 0 donne x nn+1 − 2x nn + 1 = 0 où encore x nn (2 − x n ) = 1. On a également x n = 2 − h n avec 0 < h n < n + 1
obtient
1 1 1
(∗) h n (2 − h n )n = 1 ⇔ h n = = = exp(−n ln(1 − h n /2)).
(2 − h n )n 2n (1 − h n /2)n 2n

La question est de connaître le comportement de ln(1 − h n /2). On a 0 < h n < n + 2 et 0 < h n < 1 . On en déduit que 0 < −n ln(1 − h n ) <
1 2 n +1 2
−n ln(1 − n +1 . Le terme de droite admet une limite finie donc −n ln(1 − h /2) est bornée. En reprenant (∗), cela permet d’obtenir h =
n n
( ) 1
1 h n nh n
O n . En réutilisant ce comportement plus précis pour h n , on a alors −n ln(1− 2 ∼ 2 de limite nulle lorsque n tend vers +∞ (car nh n
n→+∞ 2 ( )
tend vers 0 maintenant que h n = O 1 ). En reprenant (∗), on en déduit que h ∼ 1 . On a donc x = 2−h soit 2−x = h ∼ 1
n n n n n n
n→+∞ 2 n→+∞ 2n n→+∞ 2n
ou encore 2n (2 − x n ) de limite 1.
( )
e) On a x n = 2 − 1n + y n avec y n = o 1 . On a x n (2 − x ) = 1 soit n ln(x ) + ln(2 − x ) = 0. On reporte le développement précédent
n n n
2 n→+∞ 2n n
( )
1 1 1 yn
n ln(2 − n + y n ) + ln( n − y n ) = 0 = n ln 2 + n ln 1 − n+1 + − n ln 2 + ln(1 − 2n y n ) = 0,
2 2 2 2
ce qui donne après simplifications ( )
1 yn
n ln 1 − n+1 + = − ln(1 − 2n y n )
2 2
en prenant un équivalent de chaque membre (avec y n négligeable devant 1/2n ), on obtient − n+1 n ∼ 2n y et y ∼ − n . On en déduit
n n
2 22n+1
1 n
x n = 2 − n − 2n+1 + z n avec z n négligeable devant le dernier terme. On pourrait poursuivre ainsi...
2 2
Exercice 12

a) On peut montrer facilement par récurrence que pour tout n ∈ N, on a x n et y n dans [0, 7] (par exemple... c’est pour ne pas avoir une racine d’un
nombre négatif).
b) On peut le faire récursivement :
 
1 import numpy as np
2 def x ( n ) :
3 if n ==0:
4 return 0
5 else :
6 return np . sqrt (7 - y (n -1) )
7
8 def y ( n ) :

17
Analyse/Algèbre/Probabilités Centrale Python

9 if n ==0:
10 return 0
11 else :
12 return np . sqrt (7+ x (n -1) )
 
On obtient
n xn yn
0 0 0
1 2.64575131106 2.64575131106
2 2.08668365809 3.10576098743
3 1.97338263207 3.01441265557
4 1.99639358455 2.99556048713
5 2.00110957043 2.99939887053
6 2.00015027672 3.00018492271
7 1.99995376879 3.00002504602
8 1.99999373849 2.99999229479
9 2.0000019263 2.99999895641

c) Si ℓ1 et ℓ2 sont les limites éventuelles de (x n ) et (y n ) (respectivement), on doit avoir


√ √
ℓ1 = 7 − ℓ2 et ℓ2 = 7 + ℓ1 .

Puisque les limites sont positives (et dans [0, 7]), on a ℓ21 = 7 − ℓ2 et ℓ22 = 7 + ℓ1 . La différence donne ℓ22 − ℓ21 = ℓ1 + ℓ2 donc (ℓ2 + ℓ1 )(ℓ2 − ℓ1 ) =
(ℓ2 + ℓ1 ). On ne peut pas avoir ℓ1 + ℓ2 = 0 sinon on aurait ℓ1 = ℓ2 = 0 ce qui ne convient pas avec les deux premières équations. On a donc, en
simplifiant, ℓ2 − ℓ1 = 1. En remplaçant dans la première équation : ℓ21 = 7 − (1 + ℓ1 ) soit ℓ21 + ℓ1 − 6 = 0. On a ℓ1 = 2 ou ℓ1 = −3 et le signe donne
ℓ1 = 2. Enfin ℓ2 = 3.
d) Il est toujours plus simple de prouver que des limites sont nulles. On note u n = x n − 2 et v n = y n − 3. On réécrit les relations de récurrence :
√ √ √ −v n
u n+1 = 7 − y n − 2 = 7 − (3 + v n ) − 2 = 4 − v n − 2 = √ ,
2+ 4 − vn

et de la même manière √ √ un
v n+1 = 7 + xn − 3 = 9 + un − 3 = √ .
3+ 9 + un

Par conséquent, |u n+1 | É 1 1


2 |v n | et |v n+1 | É 3 |u n |. On peut conclure de plusieurs manières :
• on a |u n+2 | É 6 |u n |. Ainsi |u 2n | É n |u 0 | et |u 2n=1 | É 1n |u 1 |. On en déduit que les deux suites extraites des termes pairs et impairs sont de
1 1
6 6
limite nulle et ainsi la suite u converge vers 0. De même, v converge vers 0.
• on peut noter w n = max(|u n |, |v n |). On a 0 É w n+1 É 2 1 w et par récurrence 0 É w É 1 w . La suite w tend vers 0 et on a |u| É w et |v| É w.
n n
2n 0
p √
e) Supposons que (x n )nÊn0 soit croissante. Puisque y n+1 = 7 + x n , on aurait (y n )nÊn0 +1 croissante. Or x n+1 = 7 − y n et (x n )nÊn0 +2 serait
décroissante (même situation pour les autres cas de figures). On peut utiliser les majorations précédentes. On a |u 0 | = 2 et |u 2n | É 2n donc
p 12
pour n = 4, on a |u 2n | É 10−3 . On a |u 1 | = 7 − 2 É 1 et |u 2n+1 | É 1n . Pour n Ê 3, on a |u 2n+1 | É 10−3 . On est donc certain que |x n − 2| É 10−3
12
si n Ê 6. On a la même chose pour |y n − 3|. Le rang n 0 = 6 convient (et en examinant les premiers termes, c’est le plus petit rang qui convient).

Exercice 13

a)  
1 import numpy as np
2 import matplotlib . pyplot as plt
3 t = np . linspace ( - np . pi , np . pi ,100)
4 x = 3* np . cos ( t )
5 y = 2* np . sin ( t )
6 plt . axis ( ’ equal ’)
7 plt . plot (x , y )
 
b) puisque ce n’est pas précisé, on utilise les fonctions toutes prêtes...
 
1 import numpy as np
2 import scipy . integrate as integr
3 def L (a , b ) :
4 # on suppose que a > b est vérifié
5 c = np . sqrt ( a *a - b * b )
6 mu = c / a
7 def f ( t ) :
8 return np . sqrt (1+ mu * mu *( np . sin ( t ) ) **2)
9 # ou
10 # f = lambda t : np . sqrt (1+ mu * mu *( np . sin ( t ) ) **2)
11 return 4* a * integr . quad (f ,0 , np . pi /2) [0]
 

18
Analyse/Algèbre/Probabilités Centrale Python

c) on ne demande pas forcément d’aller très loin, donc on peut créer une fonction factorielle puis une fonction de calcul de αk . On peut exprimer
une relation de récurrence sur les coefficients :
1 (2k + 2)! 2k − 1 (2k + 2)(2k + 1) 2k − 1
αk+1 = = αk = α .
(2k + 1)4k+1 (k!)2 4.(2k + 1) (k + 1)2 2(k + 1) k

ce qui donne α0 = −1 et αk = 2k − 3 αk−1 si k Ê 1. Au choix :


2k
 
1 def a ( k ) :
2 if k ==0:
3 return -1
4 else :
5 return (2* k -3) * a (k -1) /(2* k )
6
7 def a2 ( k ) :
8 a = -1
9 for i in range (1 , k +1) :
10 a *= (2* i -3) /(2* i )
11 return a
 

d) i) Par récurrence sur k... on a g (k+1) (x) = −k!αk (k − 1 −k−1/2 = −(k + 1)! αk (2k − 1) (1 − x)−(k+1)+1/2 = −(k + 1)!α −(k+1)+1/2 .
2 )(1 − x) 2(k + 1) k+1 (1 − x)

g (k) (0)
ii) C’est une formule de Taylor avec reste intégrale : on a = −αk et
k!
∑ g (k) (0) n ∫ ∫ x
1 x
g (x) − x = (x − t )n g (n+1) (t ) d t = −(n + 1)αn+1 (x − t )n (1 − t )−n−1/2 d t ,
k=0 k! n! 0 0

c’est-à-dire exactement le résultat souhaité.


− t < 1. Ainsi
iii) On majore. On a, si x ∈ [0, 1[ et t ∈ [0, x], x < 1 donc 0 É x − t < 1 − t et 0 É x1 − t
¯ ¯ ∫ ( ) ( )
¯ ∑n ¯ x dt 2n − 1 [ p ]x p
¯ ¯ 1 2n 2 2n
¯g (x) + αk x k ¯ É (n + 1)αn+1 p = αn −2 1 − t = 2n+1 (2 − 2 1 − x) É 2n+1 .
¯ ¯ 0 1 − t 2 0 2 n 2 n
k=0

Exercice 14

a)  
1 def euler (a ,T , N ) :
2 h = T/N
3 X = [0] ; x = 0
4 Y = [a] ; y = a
5 for i in range ( N ) :
6 y = y + h *( np . cos ( x ) + np . cos ( y ) )
7 x = x + h
8 Y . append ( y )
9 X . append ( x )
10 plt . plot (X , Y )
11 plt . show ()
12
13 for a in [ -3 , -1 ,0 ,0.5 ,1 ,2 ,3 ,3.5 ,4 ,4.2 ,4.3 ,5]:
14 X , Y = euler (a ,5 ,100)
15 plt . plot (X , Y )
16 plt . show ()
 
∫ t
( )
b) Pour x, y deux fonctions de E , on a, pour tout t ∈ [0, T ], ϕ(x)(t ) − ϕ(y)(t ) = cos(x(s)) − cos(y(s)) d s et
0
∫ t ∫ t
¯ ¯ ¯ ¯ ¯ ¯ ° °
¯ϕ(x)(t ) − ϕ(y)(t )¯ É ¯cos(x(s)) − cos(y(s))¯ d s É ¯x(s) − y(s)¯ d s É t °x − y ° ,

0 0

car | cos(a) − cos(b)| É |a, b| pour tous a, b ∈ R. On montre alors le résultat par récurrence sur n :

¯ ¯ ∫ t¯ ¯
∫ t
¯ n ¯ ° °
∫ t n
t n+1 ° °
¯ n+1 ¯ ¯cos(ϕn (x)(s)) − cos(ϕn (y)(s))¯ d s É ¯ϕ (x)(s) − ϕn (y)(s)¯ d s É °x − y ° s °x − y ° .
¯ϕ (x)(t ) − ϕn+1 (y)(t )¯ É ∞ ds = ∞
0 0 0 n! (n + 1)!

c) On applique la relation avec x et y = ϕ(x). Cela donne, pour tout t ∈ [0, T ] et tout n ∈ N,
¯ ¯ tn ° ° n ° °
¯ n+1 ¯ °x − ϕ(x)° É T °x − ϕ(x)° .
¯ϕ (x)(t ) − ϕn (x)(t )¯ É ∞ ∞
n! n!
° ° n ° ° ∑
On note f n = ϕn (x) et g n = f n+1 − f n . On a alors °g n °∞,[0,T ] É T °x − ϕ(x)°∞ . Ainsi la série de fonctions g n converge normalement sur
n!

n−1
[0, T ] et donc uniformément. On a g k = f n − x. La suite de fonctions ( f n ) converge donc uniformément sur [0, T ] vers une fonction qu’on
k=0

19
Analyse/Algèbre/Probabilités Centrale Python

note z qui est


¯ bien un élément ¯ de° E puisque
° chacune
° des fonctions
° f n° est continue
° sur [0, T ] (et convergence uniforme).
La relation ¯ϕ(x)(t ) − ϕ(y)(t )¯ É t °x − y °∞ donne °ϕ(x) − ϕ(y)°∞ É T °x − y °∞ et l’application ϕ est donc continue de (E , ∥.∥∞ ) dans lui même.
Puisque ( f n ) tend vers z pour ∥.∥∞ , on a (ϕ( f n )) qui tend vers ϕ(z)... mais également vers z en tant que suite extraite de ( f n ) (on a f n+1 = ϕ( f n )).
∫ t
Finalement z = ϕ(z). Cela signifie que, pour tout t ∈ [0, T ], on a a + sin t + cos(x(s)) d s = z(t ). La valeur en 0 donne z(0) = a. Par théorème
0
fondamental, z est alors dérivable et sa dérivée vérifie, pour tout t ∈ [0, T ], z ′ (t ) = cos t +cos(z(t )). La fonction z a les mêmes propriétés que x a .

Exercice 15

a) i) On a a n+1 = (2n + 2)(2n2+ 1) a n = 2n +1


2n + 2 a n .
4(n + 1)
ii) On part de a 0 = 1 puis on utilise la relation de récurrence :
 
1 def seqa ( n ) :
2 a = 1
3 L = [1]
4 for k in range ( n ) :
5 a = a * (2* k +1) /(2* k +2)
6 L . append ( a )
7 return L
 
iii)
 
1 def somp (n , x ) :
2 L = seqa ( n ) # on ne va pas recalculer à chaque fois
3 S = 0
4 for i in range ( n +1) :
5 S += L [ i ]/( i + x )
6 return S
 
iv)
 
1 x = np . linspace ( -4.001 ,4.001 ,1000)
2 y = [ somp (100 , a ) for a in x ]
3 plt . ylim ( -5 ,5)
4 plt . plot (x , y )
5 plt . show ()
 
a
b) Soit u n : x 7→ n +n x pour n ∈ N. Chacune de ces fonctions est C ∞ sur A = R\Z.
• existence (convergence simple) : c’est le plus délicat. On cherche un équivalent de a n lorsque n tend vers +∞ à l’aide de la formule de
Stirling. On a p p
(2n)! 4πn(2n/e)2n 4πn 1
an = n ∼ = =p .
4 (n!)n n→+∞ 4n (2πn)(n/e)2n 2πn nπ

On en déduit que u n (x) ∼ p 1 3/2 et la convergence simple de u n sur A.
n→+∞ πn
(p) (−1)p p!a n
• On montre par une récurrence simple que u n (x) = . On se place sur un intervalle I = [N +ε, N +1−ε] (ou ε ∈]0, 1/2[). On a, pour
(n + x)p+1
tout x ∈ I , ( )
(p) 1 1
|u k (x)| É p!a k max , ,
|k + N + ε|p+1 |k + N + 1 − ε|p+1
° ° ∑
° (p) ° p!
ce qui donne °|u k |° ∼ p . La série de fonctions u k converge normalement sur tout segment de R\Z donc S est continue
∞,I k→+∞ πk p+3/2
sur R\Z. On peut remarquer qu’on peut faire ce raisonnement directement sur les intervalles [ε, +∞[ ce qui donne la classe C ∞ sur R∗ +.
+∞

c) On a p 1 = (1 − t )−1/2 = 1 + b k (−t )k où
1−t k=1

(−1/2)(−3/2)(−(k − 1/2) 1.3 · · · (2k − 1) (2k)!


bk = = (−1)k = (−1)k = (−1)k a k .
k
k! 2 k! (2k k!)2
+∞

Puisque a 0 = 1, on en déduit que p 1 = a n t n pour tout t ∈] − 1, 1[.
1 − t n=0
x−1 +∞

d) Évidemment on se doute qu’il y a une intégration terme à terme... On a, pour tout t ∈]0, 1[, pt = a n t n+x−1 . On note f n (t ) = a n t n+x−1 .
1 − t n=0 ∑
Chaque fonction est continue et intégrable sur ]0, 1] (puisque n + x − 1 Ê x − 1 > −1), la série de fonctions f n converge simplement sur ]0, 1[
+∞
∑ ∫ 1 ∑ an
t x−1 an
et a pour somme F (t ) = f n (t ) = p , continue sur .]0, 1[. De plus | f n (t )| d t = et converge. On en déduit que F est
n=0 1−t 0 n+x n+x
∫ 1 x−1
t
intégrable sur ]0, 1[ et que, pour tout x > 0, S(x) = p dt.
0 1−t

20
Analyse/Algèbre/Probabilités Centrale Python

Exercice 16

a) pour la programmation des coefficients binomiaux : au choix en programmant une fonction factorielle, soit avec la relation
( )
n n(n − 1) . . . (n − k + 1)
= .
n k(k − 1) . . . 1
 
1 def fact ( n ) :
2 p = 1
3 for i in range (2 , n +1) :
4 p = p*i
5 return p
6
7 def binom (n , k ) :
8 return fact ( n ) // fact ( k ) // fact (n - k )
9
10 def binom (n , k ) :
11 Nume = 1
12 Deno = 1
13 for i in range ( k ) :
14 Nume = Nume * (n - i )
15 Deno = Deno * ( i +1)
16 return Nume // Deno
 
b) Pour la fonction de Bell, on a le choix entre une version récursive (mais avec une très mauvaise complexité puisqu’on passe le temps à recalculer
les mêmes termes), on une version qui stocke les anciennes valeurs (c’est plutôt cela qui est attendu puisqu’on demande à la fin la liste des
premiers termes de la suite) :
 
1 def Bell ( n ) :
2 if n ==0:
3 return 1
4 S = 0
5 for k in range ( n ) :
6 S += binom (n -1 , k ) * Bell ( k )
7 return S
8
9 def Bell ( n ) :
10 B = [1]
11 for m in range (1 , n +1) :
12 S = 0
13 # ajout de Bell_m
14 for k in range ( m ) :
15 S += binom (m -1 , k ) * B [ k ]
16 B . append ( S )
17 return B
 
ce qui donne
>>> Bell (6)
[1 , 1 , 2 , 5 , 15 , 52 , 203]

c) Quelques tests semblent confirmer que B n É n!. On le montre par récurrence. C’est vrai pour B 0 = 1, B 1 = 1, B 2 = 2 (si on veut insister). Si la
propriété est vraie jusqu’à un certain rang n, alors


n n! ∑
n
B n+1 É É n! = (n + 1)n! = (n + 1)!
k=0 (n − k)! k=0
¯ ¯
¯B ¯
On en déduit que ¯ n ¯ É 1 et que le rayon de convergence de la série entière donnée est au moins 1.
n!
+∞
∑ Bn n
d) On note S(x) = x . On a la relation de récurrence
n=0 n!

B n+1 ∑n 1 Bk
=
n! k=0 (n − k)! k!

ou encore

n 1 Bk
(n + 1)B n+1 =
k=0 (n − k)! k!
Le second terme fait penser à un produit de Cauchy entre les développements en série entière de S(x) et exp(x). Le premier terme à une dérivée.
Pour tout x ∈] − R, R[ (avec R Ê 1), on a
+∞
∑ +∞

S ′ (x) = nB n x n−1 = (n + 1)B n+1 x n = S(x)e x
n=1 n=0

21
Analyse/Algèbre/Probabilités Centrale Python

Puisque S(0) = B 0 = 1, on en déduit que S(x) = exp(exp(x) − 1). On effectue alors un développement de cette expression pour avoir une expres-
sion de B n : pour tout x ∈ R, ( )
+∞
∑ e nx +∞
∑ 1 +∞ ∑ (nx)k +∞
∑ +∞∑ nk xk
exp(exp x − 1) = e −1 = e −1 = e −1 .
n=0 n! n=0 n! k=0 k! n=0 k=0 k!n!
k k
La famille des n x est donc sommable (immédiat si x > 0 puisque la somme double qu’on vient de faire apparaître existe, idem si x < 0 avec
k!n!
la même somme avec |x|). On peut permuter l’ordre de sommation pour obtenir
( )
+∞
∑ 1 −1 +∞ ∑ nk k
S(x) = e x
k=0 k! n=0 n!

+∞
∑ nk +∞
∑ kn
Par unicité du développement, on en déduit que B k = e −1 (ou si l’on préfère, B n = e −1 , ce qui est, comme tout le monde l’a
n=0 n! k=0 k!
remarqué, le moment d’ordre n d’une loi de Poisson de paramètre 1).

Exercice 17

a) La fonction x 7→ sh x est continue,strictement croissante et réalise une bijection de R sur R. Il existe donc un unique α tel que sh α = 1 (α > 0 et,
puisque sh x Ê x, on a α É 1).
 
1 import numpy as np
2 import scipy . optimize as resol
3 import scipy . integrate as integ
4
5 f = lambda x : np . sinh ( x ) -1
6 alpha = resol . fsolve (f ,0.5)
 
on obtient α ≃ 0.88137359. On peut éventuellement s’attendre à ce que le jury demande une version plus manuelle (par dichotomie) :
 
1 def dicho () :
2 a = 0
3 b = 1
4 while b -a >1 e -5:
5 c = ( a + b ) /2
6 if f ( c ) ==0: # peu de chance
7 return c
8 if f ( c ) >0:
9 b=c
10 else :
11 a=c
12 return c
 
 
1 def suite ( n ) :
2 g = lambda x : ( np . sinh ( x ) ) ** n
3 return integ . quad (g ,0 , alpha ) [0]
 
c) On intègre par partie, pour n Ê 2 :
b)
∫ α [ ]α ∫ α
In = (sh t )n−1 sh t d t = (sh t )n−1 ch t − (n − 1) (sh t )n−2 ch 2 t d t
0 0 0
∫ α √
= ch α − (n − 1) (sh t )n−2 (1 + sh 2 t ) d t = 1 + sh 2 α − (n − 1)(I n−2 + I n )
0
p
= 2 − (n − 1)(I n−2 + I n )
p
On a donc nI n + (n − 1)I n−2 = 2
∫ α
sh n (t )(sh t − 1) d t É 0. La suite est décroissante et minorée
d) Par croissance de sh , on a, pour tout t ∈ [0, 1], 0 É sh t É 1. On a alors I n+1 − I n =
0
p p
par 0 donc converge vers ℓ Ê 0. De plus, la relation de récurrence précédente donne 0 É nI n É 2 et 0 É I n É n2 . Finalement la limite de I n est
nulle.
e) Par encadrement, on a nI n + (n − 1)I n É nI n + (n − 1)I n−2 É nI n−2 + (n − 1)I n−2 ce qui donne
p p
p 2 2
(2n − 1)I n É 2 É (2n − 1)I n−2 ou encore É In É ,
2n + 1 2n − 1
p 1 .
en décalant les indices. Par encadrement 2nI n tend vers 2 et finalement I n ∼ p
n 2
f) On est dans le cadre du théorème sur les séries alternées. La série est convergente. On sait de plus p que le reste est majoré enpvaleur absolue
−2
par son premier terme. On a une valeur approchée de la somme dès que I n+1 É 10 . Or I n+1 É 2n + 2 ainsi il suffit d’avoir 2 −2
p 1 2n + 1 É 10 soit
2n + 1 Ê 100 2, ce qui est vrai pour n Ê 71.

22
Analyse/Algèbre/Probabilités Centrale Python

 
1 def somme ( n ) :
2 S = 0
3 for i in range ( n +1) :
4 S += ( -1) ** i * suite ( i )
5 return S
 
et somme(71) donne 0.6183.

g) L’équivalent de I n montre que I n diverge.

Exercice 18

a) en version complète :
 
1 import numpy as np
2 import matplotlib . pyplot as plt
3
4 def P ( n ) :
5 def P (n , x ) :
6 S = 0
7 for i in range (2* n +1) :
8 S += x ** i
9 return S
10 return lambda x : P (n , x )
 
on peut bien évidemment faire plus simple et créer simplement une fonction de 2 variables P(n,x). Pour le tracé
 
1 x = np . linspace ( -2 ,2 ,101)
2 for k in range (6) :
3 plt . plot (x , P ( k ) ( x ) )
 

F IGURE 1 – Tracé des P n , pour n de 0 à 5

2n+1 2n+1
b) On simplifie : P n (x) = 1 −1x− x = x x − 1− 1 si x ̸= 1 (et P n (1) = 2n + 1. Si x > 1 alors x 2n+1 − 1 > 0 et x − 1 > 0 donc P n (x) > 0. De même, si
x < 1, x 2n+1 < 1 et x − 1 < 0 donc P n (x) > 0. On peut remarquer que P n est strictement croissante sur R+ avec une valeur minimale 1 en 0. On a

(2n + 1)x 2n (x − 1) − (x 2n+1 − 1) 2nx 2n+1 − (2n + 1)x 2n + 1


P n′ (x) = 2
= .
(x − 1) (x − 1)2

On note Q n (x) = 2nx 2n+1 − (2n + 1)x 2n + 1. On a Q n′ (x) = 2n(2n + 1)x 2n−1 (x − 1).

x −∞ an 0 1 +∞

Q n′ (x) + 0 − 0 +
1 +∞
Q n (x) 0 % &0%
−∞ %

P n′ (x) − 0 +
+∞ +∞
P n (x)
& bn %

c) Le tableau de variation nous donne bien l’existence d’un unique a n en lequel P n est minimal. On a également Q n (−1) = −4n < 0 donc a n ∈
] − 1, 0[.
d) On peut conjecturer graphiquement le comportement. On peut aussi essayer informatiquement ;

23
Analyse/Algèbre/Probabilités Centrale Python

 
1 def Pprime ( n ) :
2 def Pprime (n , x ) :
3 S = 0
4 for i in range (1 ,2* n +1) :
5 S += i * x **( i -1)
6 return S
7 return lambda x : Pprime (n , x )
8
9 import scipy . optimize as resol
10
11 def a ( n ) :
12 return resol . fsolve ( Pprime ( n ) , -1) [0]
 
et
>>> [ a ( n ) for n in range (2 ,10) ]
[ -0.60582958618826799 ,
-0.67033204760309684 ,
-0.71453772716734076 ,
-0.74705407486515596 ,
-0.77214163552346593 ,
-0.79217785460570356 ,
-0.80860489787230283 ,
-0.82235341023852881]

et a(1000) donne −0.99586246866079331. La suite semble être décroissante vers −1. On reprend les calculs : on a P n′ (a n ) = Q n (a n ) = 0 ce qui
donne
2na n2n+1 − (2n + 1)a n2n + 1 = 0
On note αn = −a n pour avoir un nombre entre 0 et 1. On a

−2nα2n+1
n − (2n + 1)α2n 2n+1
n + 1 = 0 ou encore 2nαn + (2n + 1)α2n
n = 1.

On a α2n+1
n É α2n 2n 2n 2n+1 + (2n + 1)α2n = 1. Cela donne
n ce qui donne 1 É (4n + 1)αn . On a également (2n + 1)αn É 2nαn n
1 1 1 1
É α2n
n É et − ln(4n + 1) É ln αn É − ln(2n + 1).
4n + 1 2n + 1 2n 2n
Par croissances comparées, ln αn tend vers 0 et αn vers 1. On a bien lim a n = −1.
n→+∞
Exercice 19


d ∑
d
a) Si P = b k X k alors P (2) = a k 2k avec b k = 0, 1 ou 2. On peut remarquer que si d est le degré de P (avec b d = 1 ou 2), alors P (2) Ê 2d . Cela
k=0 k=0
permet de limiter le degré de P tel que P (2) = n (on a 2d É n)
• pour n = 0 : tous les coefficients doivent être nul, seul le polynôme nul convient et a 0 = 1.
• pour n = 1 : seul P = 1 convient et a 1 = 1,
• pour n = 2 : polynômes de degré 0 ou 1 - P = 2 ou P = X et a 2 = 2,
• pour n = 3 : polynômes de degré 0 ou 1 - P = 1 + X et a 3 = 1,
De façon plus général, on a montré au dessus que si P de degré d vérifie P (2) = n alors 2d É n. Cela limite le degré d’une polynôme vérifiant
P (2) = n. Une fois le degré borné, il y a 3 possibilités au plus pour chacun des d + 1 coefficents donc le nombre de polynôme vérifiant P (2) = n
est inférieur à 3d +1 avec d É log2 (n). Cela garantit l’existence de a n .
b) on discute suivant la parité (avec les mêmes notations) :

d ∑
d −1
d∑
• si P (2) = 2n + 1 : on a P (2) = b 0 + 2 b k 2k−1 . Par parité, b 0 = 1 et b k 2k−1 = b k+1 2k = n. Ainsi P = 1 + XQ où Q est un polynôme
k=1 k=1 k=0
vérifiant Q(2) = n. Il y a a n possibilités pour le polynôme Q qui donnent autant de polynômes P distincts. On a ainsi a 2n+1 = a n .
• si P (2) = 2n. Avec un raisonnement identique, on a b 0 = 0 ou b 0 = 2. Alors P s’écrit soir P = XQ avec Q(2) = n, soit P = 2+XQ avec Q(2) = n−1
(et chaque polynôme obtenu est différent des autres). On a donc a 2n = a n + a n−1 .
c) on le fait de façon récursive :
 
1 def a ( n ) :
2 if n ==0 or n ==1:
3 return 1
4 if n %2==0:
5 return a ( n //2) + a ( n //2 -1)
6 else :
7 return a (( n -1) //2)
 
et on teste :
>>> a (3)
1
>>> a (534)
39
>>> [ a ( n ) for n in range (1 ,20) ]
[1 , 2 , 1 , 3 , 2 , 3 , 1 , 4 , 3 , 5 , 2 , 5 , 3 , 4 , 1 , 5 , 4 , 7 , 3]

24
Analyse/Algèbre/Probabilités Centrale Python

d) On ne trouve pas immédiatement a n . On essaie d’encadrer. Visiblement a n n’est pas trop grand. On vérifie que a n É n si n Ê 1, puis a n Ê 1 :
• On a bien a 1 = 1 et a 2 = 2. Si la majoration est vraie jusqu’à un rang k Ê 1. Si k + 1 est pair, k + 1 = 2p et a k+1 = a 2p = a p + a p−1 É p + p − 1 =
2p − 1 É k + 1. Si k + 1 = 2p + 1 alors a k+1 = a p É p É k + 1.
∑d
• Tout entier n Ê 1 se décompose en base 2 : il existe des coefficients 0 ou 1 tels que n = b k 2k et ainsi a n Ê 1.

k=0
Finalement, pour tout n ∈ N∗ , 1 É a n É n. Par encadrement le rayon de convergence R de a n x n est compris entre 1 et 1.
+∞

e) Les séries entières des termes d’indices pairs et impairs ont aussi un rayon de convergence de 1. Pour tout x ∈] − 1, 1[, on note f (x) = an x n .
n=0
On a, pour x ∈] − 1, 1[,
+∞
∑ +∞
∑ +∞
∑ +∞
∑ +∞

f (x) = 1 + a 2p x 2p + a 2p+1 x 2p+1 = 1 + a p x 2p + a p−1 x 2p + a p x 2p+1
p=1 p=0 p=1 p=1 p=0
ce qui donne
f (x) = 1 + ( f (x 2 ) − 1) + x 2 f (x 2 ) + x f (x 2 )
ou encore f (x) = (1 + x + x 2 ) f (x 2 )... et là, pas trop d’idées pour continuer à partir de ça.
Quelques calculs en vrac :
>>> [ a (2** n ) for n in range (10) ]
[1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10]

visiblement a 2n = n + 1. On a a 2n+1 = a 2n + a 2n −1 .
>>> [ a (2** n -1) for n in range (10) ]
[1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1]

On a a 2n+1 −1 = a 2(2n −1)+1 = a 2n −1 . Par récurrence, on en déduit que a 2n −1 = 1 pour tout n ∈ N et ainsi a 2n+1 = a 2n + 1, avec a 1 = a 20 = 1. On
en déduit que a 2n = n + 1. On peut trouver d’autres relations du genre...
Remarque : pour plus d’informations sur cette suite, aller voir dans l’encyclopédie des suites d’entiers : https ://[Link]/ - en décalant les indices
de 1, on trouve la suite de Stern-Brocot et pas mal de petites propriétés (mais pas d’expression générale).
Exercice 21

a) le programme :
 
1 import numpy as np
2
3 def somme (A , m ) :
4 S = 0
5 P = A . copy ()
6 for k in range (1 , m +1) :
7 S += np . trace ( P ) / k
8 P = np . dot (P , A )
9 return S
 
et un petit essai :
>>> A = np . array ([[ 0.25 , 0.5 ] , [ 1. , -0.5 ]])
>>> 1/ np . linalg . det ( np . eye (2) -A )
1 . 60 0 0 0 0 0 0 0 0 0 0 0 0 0 1
>>> np . exp ( somme (A ,500) )
1 . 5 9 99 99 99 9 99 99 9 9

b) La matrice A est trigonalisable. Notons λ1 , . . . , λn ses valeurs propres (pas forcément distinctes). Elles sont complexes, de module inférieur à 1
et différentes de 1. On a alors
∏n ∑
n
χA = (X − λi ), tr (A k ) = λki
i =1 i =1

n
On a également P A (t ) = (1 − λi t ). Par un calcul de dérivée d’un produit (on dérive chacun des facteurs en −λi et on a la somme avec tous
i =1
les termes sauf un qui vaut ce −λi ), on obtient
( ) ( )
P ′A (t ) ∑
n λi ∑n +∞
∑ p p ∑n +∞∑ p+1 p
=− =− λi λi t = − λi t .
P A (t ) i =1 1 − λi t i =1 p=0 i =1 p=0

Sans justifier, si tout se passe bien (permutations, convergences...), on obtiendrait


( )   ( )
∫ 1 ′ ∑n +∞∑ p+1 ∫ 1 p ∑n +∞∑ λi
p+1
+∞
∑ 1 ∑n +∞
∑ 1 +∞
∑ tr (A p )
P A (t ) p+1
dt = − λi t dt = −  =− λi =− tr (A p+1 ) = − .
0 P A (t ) i =1 p=0 0 i =1 p=0 p + 1 p=0 p + 1 i =1 p=0 p + 1 p=1 p

Par linéarité, il suffit de prouver que, pour λ complexe de module inférieur à 1 et différent de 1, on a
∫ 1 +∞
∑ λp
λ
dt = .
0 1 − λt p=1 p

25
Analyse/Algèbre/Probabilités Centrale Python

+∞ +∞
• si |λ| < 1. On a alors, pour tout t ∈ [0, 1], λ = λ ∑ λp t p = ∑ λp+1 t p . On note f (t ) = λp+1 t p , la fonction f est continue sur [0, 1] et
1 − λt p p
p=0 p=0

| f p (t )| É |λ|p+1 . On a donc convergence normale de f p sur [0, 1] et ainsi uniforme. On peut permuter intégrale et somme. Cela donne
∫ 1 ∑∫ 1
+∞ +∞
∑ λp+1 +∞ ∑ λp
λ
dt = f p (t ) d t = = .
0 1 − λt p=0 0 p=0 p + 1 p=1 p


m
• si |λ| = 1 avec λ ̸= 1. On utilise le théorème de convergence dominée sur la suite des sommes partielles. On note S m (t ) = f p (t ) =
p=0

m λ
λp+1 t p . La suite converge simplement sur [0, 1[ et lim S m (t ) d t = = S(t ) si t ∈ [0, 1[ (attention de bien exclure le 1). La fonction
p=0
m→+∞ 1 − λt
m+1 m+1
S est continue sur [0, 1[. On a également, pour t ∈ [0, 1[, S m (t ) = λ 1 − λ t et |S m (t )| É 2 . Or la fonction t 7→ 1 est continue
1 − λt |1 − λt | 1 − λt
sur [0, 1] (1 − λt ne s’annule pas lorsque t décrit [0, 1]). Elle est donc intégrable sur [0, 1] et [0, 1[. Le théorème de convergence dominée
permet d’assurer la permutation et ainsi
∫ 1 ∫ 1 ∫ 1
λ
lim S m (t ) d t = S(t ) d t = dt
m→+∞ 0 0 0 1 − λt
avec
∫ 1 ∑m λp+1 ∑ λp
m+1
S m (t ) d t = = .
0 p=0 p + 1 p=1 p

On obtient de nouveau le résultat.


∑ λp
On peut remarquer au passage qu’on a prouvé la convergence de lorsque |λ| = 1 et λ ̸= 1.
p
c) On le fait en deux étapes :
• si on suppose que ρ(A) > 1 : on montre que tr (A k ) ne tend pas vers 0. Ce n’est pas immédiat car il pourrait y avoir plusieurs valeurs propres
de module ρ(A) ( et il faut montrer
) (que leur somme ) des puissances k-ièmes ne tend pas ∫vers 0...
+∞
∑ tr (A p ) ∫ 1 ′ 1 P ′ (t )
P A (t ) A
• on a ainsi exp = exp − d t . On s’attend plus ou moins à ce que d t = [ln(P A (t ))]10 = ln P A (1) sauf qu’on est
p=1 p 0 P A (t ) 0 P A (t )
( ∫ )
x P ′ (t )
en complexe... on s’en inspire quand même en généralisant un peu. On va montrer que, pour tout x ∈ [0, 1], exp − A
dt = 1 .
0 P A (t ) P A (x)
( ∫ )
x P ′ (t ) ′
P (t )
A
Soit φ(x) = P A (x) exp − d t . La fonction t 7→ A est continue sur [0, 1] donc φ est de classe C 1 sur [0, 1] et
0 P A (t ) P A (t )
( )∫ x ′ ( )
P ′ (x) P A (t )
φ (x) = P ′A (x) − P A (x). A

exp − d t = 0.
P A (x) 0 P A (t )

La fonction φ est constante et φ(0) = P A (0). Le terme constant


( ∫ de P ) terme de plus haut degré de χ A donc 1. On a bien le résultat et
A est le
1 P ′ (t )
par continuité sur [0, 1] des différentes fonctions, on a exp − A
dt = 1 = 1 = 1 .
0 P A (t ) P A (1) χ A (1) det(I n − A)

Exercice 22

a) on utilise le module d’intégration numériqueme


 
1 import numpy as np
2 import scipy . integrate as integre
3
4 def f ( x ) :
5 return np . cos ( x )
6
7 def T (f , x ) :
8 return 1 - integre . quad ( lambda t : (x - t ) * f ( t ) ,0 , x ) [0]
 
b) soit H = T − 1. Soient f , g ∈ E et λ ∈ R. Pour tout x ∈ R, on a
∫ x ∫ x ∫ x
H ( f + λg )(x) = − (x − t )( f + λg )(t ) d t = − (x − t ) f (t ) d t − λ (x − t )g (t ) d t = (H ( f ) + λH (g ))(x)
0 0 0

On a bien H ( f + λg ) = H ( f ) + λH (g ) et H = T − 1 est linéaire. De plus, si g = T ( f ) est dans Im T , alors pour tout x ∈ R,


∫ x ∫ x
g (x) = −x f (t ) d t + t f (t ) d t
0 0
∫ x ∫ x
Puisque les primitives x 7→ f (t ) d t et x 7→ t f (t ) d t sont de classe C 1 sur R, la fonction g l’est aussi. Ainsi Im T est contenue dans C 1 (R, R).
0 0

26
Analyse/Algèbre/Probabilités Centrale Python

c)  
1 x = np . linspace ( -5 ,5 ,100)
2 y0 = np . cos ( x )
3
4 def f1 ( x ) :
5 return T ( np . cos , x )
6 y1 = [ f1 ( t ) for t in x ]
7
8 plt . plot (x , y0 ,x , y1 )
9 plt . show ()
 
on ne voit qu’une courbe : les deux sont confondues. Aurait-on T (cos) = cos ?
∫ x ∫ x
d) Soit f une telle fonction. Pour tout x ∈ R, on a 1 − x f (t ) d t + t f (t ) d t = f (x). Le premier membre étant de classe C 1 par rapport à x, f
∫ x 0 0
l’est et en dérivant on obtient 1− x f (x)− f (t ) d t + x f (x) = f ′ (x). On obtient l’équivalence en ajoutant une condition d’égalité pour la valeur
0
en 0 de chaque membre de l’égalité de départ (on a f = g si et seulement si f ′ = g ′ et f∫(0) = g (0) pour des fonctions de classe C 1 ). Cela donne
x
f (0) = 1. La fonction f vérifie T ( f ) = f si et seulement si f (0) = 1 et pour tout x ∈ R, − f (t ) d t = f ′ (x). On recommence pour avoir f (0) = 1,
0
f ′ (0) = 0 et − f (x) = f ′′ (x). Toutes ces conditions donnent la fonction cosinus (avec équivalence avec T ( f ) = f ).
∫ x
( )
e) On a, pour x ∈ R, f n+1 (x) − f n (x) = − (x − t ) f n (t ) − f n−1 (t ) d t . Soit A > 0. On travaille sur le segment [−A, A]. On note M un majorant de
0
| f 1 − f 0 | sur ce segment. Pour tout x ∈ [−A, A], on a (car x − t garde un signe constant)
¯∫ ¯ ¯∫ x ¯
¯ ¯ ¯ x ¯ ¯ ¯ 2
¯ f 2 (x) − f 1 (x)¯ É ¯ M |x − t | d t ¯=¯ M (x − t ) d t ¯=M x .
¯ ¯ ¯ ¯ 2
0 0

puis
¯∫ ¯ ¯¯∫ x ¯ ( )
¯ ¯ ¯ x
¯ f 3 (x) − f 2 (x)¯ É ¯
¯ ¯
¯ t 2 ¯¯ x4 x4 x4
¯ |x − t || f 2 (t ) − f 1 (t ) d t =
¯ ¯ ¯ M (x − t ) d t ¯ = M − =M .
0 0 2 ¯ 2.3 2.4 4!
2n
On montre alors par récurrence que, pour tout x ∈ [−A, A], | f n+1 (x) − f n (x)| É M x . C’est le même calcul :
(2n)!
¯∫ ¯ ¯¯∫ x ¯
¯
( )
¯ ¯ ¯ x ¯ ¯ t 2k ¯ x 2k+2 x 2k+2 x 2k+2
¯ f n+2 (x) − f n+1 (x)¯ É ¯ ¯
|x − t || f n+1 (t ) − f n (t ) d t ¯ = ¯ M (x − t ) dt¯ = M − =M .
¯ ¯ 0 (2k)! ¯ (2k)!(2k + 1) (2k)!.(2k + 2) (2k + 2)!
0

° ° 2n ∑ ∑
n−1
On a enfin ° f n+1 − f n °∞ É M A et ( f n+1 − f n ) converge normalement et uniformément sur [−A, A]. Puisque f n − f 0 = ( f k+1 − f k ), la
(2n)!
k=0
suite de fonctions ( f n ) converge uniformément sur [−A, A]. On note f sa limite qui est donc continue sur [−A, A]. On fixe x ∈ [−A, A]. On a
∫ x
f n+1 (x) = 1 − (x − t ) f n (t ) d t (∗)
0
° °
On a |(x − t ) f n (t )−(x − t ) f (t )| = |x − t || f n (t )− f (t )| É A ° f n − f °
∞,[0,x] . La suite de fonctions t 7→ (x − t ) f n (t ) converge donc uniformément vers
la fonction t 7→ (x − t ) f (t ) sur [0, x]. En passant à la limite lorsque n tend vers +∞, on obtient
∫ x
f (x) = 1 − (x − t ) f (t ) d t = T ( f )(x)
0

Ainsi ( f n ) converge uniformément vers la fonction cosinus sur tout segment de R.

Exercice 25

a) i)
 
1 import numpy as np
2
3 def h ( x ) :
4 if x ==0:
5 return 0
6 else :
7 return -x * np . log ( x )
8
9 def entropie ( p ) :
10 n = len ( p )
11 e = 0
12 for x in p :
13 e += h ( x )
14 return e ,e - np . log ( n )
 
ii)

27
Analyse/Algèbre/Probabilités Centrale Python

 
1 def comb (n , p ) :
2 N , D = 1 ,1 # numérateur , dénominateur
3 for k in range ( p ) :
4 N = N * (n - k )
5 D = D * ( k +1)
6 return N // D
7
8 def loibin (n , p ) :
9 # strictement aucune optimisation , on n ’a pas le temps
10 L = [0]*( n +1)
11 for k in range ( n +1) :
12 L [ k ] = comb (n , k ) *( p ** k ) *(1 - p ) **( n - k )
13 return L
14
15 def loiuni ( N ) :
16 L = [0]*( N +1)
17 for k in range ( N +1) :
18 L [ k ]=1/( N +1)
19 return L
 
iii)
>>> entropie ( loibin (15 ,2/5) )
(2.0578509198462398 , -0.71473780239354134)
>>> entropie ( loiuni (15) )
(2.7725887222397811 , 0.0)


n
iv) On doit calculer (−p i ln p i ). On pense rapidement à la concavité du logarithme : pour des poids p i positifs de somme 1,
i =1
( )

n ∑
n
si x 1 , . . . , x n > 0 alors ln p i xi Ê p i ln x i ,
i =1 i =1


n
en appliquant cela à x i = p1 , ce qui donne p i ln(1/p i ) É ln n (si l’un des p i est nul alors h(p i ) est nulle aussi). On a bien h(X ) É n.
i
i =1
Puisque la fonction est strictement convexe, on a égalité si et seulement si tous les x i sont égaux, donc si et seulement si la loi est uniforme.
De plus h(X ) Ê 0 car tous les termes de la somme donnant h(X ) sont positifs.
v) répondu au dessus
( )
b) On note Nk l’événement « boule noire au tirage k » et R k pour une rouge. On a P (X = k) = P N1 ∩ N2 ∩ . . . ∩ Nk−1 ∩ R k . La formule des proba-
bilités totales donne ( ) ( )
P (X = k) = P (N1 ) PN1 (N2 ) PN1 ∩N2 (N2 ) · · · PN1 ∩···∩Nk−2 Nk−1 PN1 ∩···∩Nk−1 R k
le conditionnement nous donne la structure de l’urne à un certain tirage et on obtient

12 k −1 1 1
P (X = k) = ··· = = pk .
23 k k + 1 k(k + 1)
∑ 1 1
Puisque = 1, on en déduit que P (X = 0) = 0. On a k P (X = k) = donc la variable aléatoire n’a pas d’espérance. En revanche,
n∈N∗ k(k + 1) k + 1
on a −p k ln(p k ) = 1 ln(k(k + 1)) ∼ 2 ln2k est le terme général d’une série convergente. La variable aléatoire admet une entropie.
k(k + 1) k→+∞ k
( )
∑ 1
c) Chaque p n = P (X = n) est positif, et par téléscopage, p n = ln 2. − 0 = 1. On définit bien ainsi une loi. On a
nÊ2 ln 2

ln(n + 1) − ln n 1 1 ln 2
np n = n ln 2 = ln 2(n ln(1 + )) ∼ ,
ln n ln(n + 1) n ln n ln(n + 1) n→+∞ ln2 n

la variable aléatoire n’admet pas d’espérance. Le calcul précédent donne p n ∼ ln 2


et, puisque ce terme tend vers 0,
n→+∞ n ln2 n

ln p n ∼ ln(ln 2) − ln n − 2 ln ln n ∼ − ln n
n→+∞ n→+∞

et finalement −p n ln p n ∼ ln 2 , juste ce qu’il faut pour que la variable aléatoire n’admette pas d’entropie.
n→+∞ n ln n
Exercice 27

a) i)
 
1 import numpy as np
2 import numpy . random as rd
3
4 def loi ( p ) :
5 x = rd . random ()
6 if x < p :

28
Analyse/Algèbre/Probabilités Centrale Python

7 return 2
8 else :
9 return 1
10 # ou
11 # return 1+( x < p )
12
13 def simulation (k , p ) :
14 position = 0
15 while position < k :
16 # tant qu ’ on n ’a pas atteint ou dépassé k
17 position += loi ( p )
18 return int ( position == k )
19 # ou
20 # if position == k :
21 # return 1
22 # else :
23 # return 0
24 #
 
ii) 30 essais, c’est un peu court pour faire des moyennes... on fait un peu plus (mais faire comme ils disent ou bien le signaler)
 
1
2 def moyenne (k , p ) :
3 succes = 0
4 for i in range (3000) :
5 succes += simulation (k , p )
6 return succes /3000
7
8 def test ( k ) :
9 for i in range (10) :
10 p = i /10
11 print (1/(1+ p ) , moyenne (k , p ) )
 
En testant pour la case 100 (si on est trop proche de 0 c’est plus aléatoire :
>>> test (100)
1.0 1.0
0 . 9 0 90 9 0 90 9 0 90 9 0 9 1 0. 9 18 3 3 3 3 3 3 3 3 3 3 3 3 3
0. 8 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 0 .8 3 3 6 6 6 6 6 6 6 6 6 6 6 6 7
0 . 7 69 2 3 0 7 6 9 2 3 0 7 6 9 2 0.759
0. 7 1 4 2 8 5 7 1 4 2 8 5 7 1 4 3 0 .7 2 2 6 6 6 6 6 6 6 6 6 6 6 6 7
0 . 6 6 6 6 6 66 6 6 6 6 6 6 6 6 6 0.679
0.625 0.633
0. 5 8 8 2 3 5 2 94 1 1 7 6 4 7 1 0 . 59 1 33 3 33 3 3 3 3 3 3 3 4
0. 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 0.538
0. 5 2 6 3 1 5 7 8 94 7 3 6 8 4 2 0 . 5 3 0 33 3 33 3 3 3 3 3 3 3 3

On peut raisonnablement conjecturer que la proportion se rapproche de 1/E (Y 1).


b) i) Puisque la suite S n est strictement croissante, pour une expérience donnée, il ne peut y avoir qu’au plus un seul n tel que S n (ω) = k. On a

alors E k = n∈N∗ (S n = k).
ii) On a
( ) ( ( )) ( ( )
( ) ∪ ( ) ∪ ∑
n ( ) ∪ ∑ n
P E k ∩ (Y1 = j ) = P (S n = k) ∩ (Y1 = j ) =P (Y1 + Yi = k) ∩ (Y1 = j ) =P (Y1 = j ) ∩ (Y1 = k) ∪ ( Yi = k − j ) ∩ (Y1 = j )
n∈N∗ n∈N∗ i =2 nÊ2 i =2

et puisque Y1 est indépendante de toutes les autres variables Yi , on obtient finalement, lorsque j < k :
( ) ( ( ))
( ) ∪ ( ) ∪ n−1 ∑ ( )
P E k ∩ (Y1 = j ) = P (S n = k) ∩ (Y1 = j ) = P ( Yi +1 = k − j ) P Y1 = j
n∈N∗ nÊ2 i =1

et puisque les Y j suivent toutes la même loi,


( ( )) ( ( ))
∪ n−1 ∑ ∪ ∑ n ( )
P ( Yi +1 = k − j ) = P ( Yi +1 = k − j ) = P E k− j .
nÊ2 i =1 nÊ1 i =1

Pour k = j , il ne reste plus que P (Y1 = k).


iii) Puisque les événements Y1 = j pour j ∈ N∗ forme un système complet d’événements,
+∞
∑ ( ) ∑k ( ) ∑
k−1
uk = P E k ∩ (Y1 = j ) = P E k ∩ (Y1 = j ) = f k + u k− j f j ,
j =1 j =1 j =1

puisque si on arrive en case k, on doit avoir un premier déplacement inférieur à k. Puisque u 0 = 1, on obtient bien la relation demandée.
iv) Toutes les séries entières qui apparaissent ont un rayon de convergence au moins égal à 1. On doit montrer que f (t ) = 1 + f (t )u(t ). Or, par
+∞
∑ ∑
k ∑
k ∑
k
produit de Cauchy, on a (u(t ) n’a pas de terme constant) f (t )u(t ) = c k t k où c k = u k− j f j = u k− j f j = u k− j f j car f 0 = 0. On a
k=1 j =0 j =0 j =1
+∞

bien c k = u k pour tout k ∈ N∗ . On a ainsi f (t )u(t ) = u k t k = f (t ) − u 0 = f (t ) − 1.
k=1

29
Analyse/Algèbre/Probabilités Centrale Python

v) On a f 1 = P (Y1 = 1) = 1−p et P (Y1 = 2) = p. Ainsi u(t ) = f 1 t + f 2 t 2 = (1−p)t +pt 2 . On en déduit que f (t ) = 1 = 1 .


1 − (1 − p)t − pt 2 (1 − t )(1 + pt )
On décompose en éléments simples, puis on somme :

1 1 1 p 1 1 +∞∑
= + = (1 + p(−p)k )t k .
(1 − t )(1 + pt ) 1 + p 1 − t 1 + p 1 + pt 1 + p k=0

On a alors u k = 1 + 1 (1 + p(−p)k ) et la limite de u est 1 = 1/E (Y ) (c’est donc seulement la limite qui vaut cette valeur...). On peut
p k 1+p 1
1 − p2
vérifier que u 0 = 1 et u 1 = 1 + p = 1 − p (ce qui est normal).

n
vi) On note k 1 , . . . , k n les entiers pour lesquels P (Y1 = k) est non nul. On a u(t ) = p i t ki où p i = f ki pour simplifier... à terminer
i =1

30

Vous aimerez peut-être aussi