CCP Maths 2 MP 2015

Thème de l'épreuve Surjection de l'exponentielle de matrices
Principaux outils utilisés algorithmique, projection orthogonale, séries de matrices, éléments propres

Corrigé

(c'est payant, sauf le début): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Extrait gratuit du corrigé

(télécharger le PDF)
           

Énoncé complet

(télécharger le PDF)
                    

Énoncé obtenu par reconnaissance optique des caractères


SESSION 2015 MPMA206

_:â=_ CONCOURS COMMUNS
- - POLYTECHNIQUES

EPREUVE SPECIFIQUE - FILIERE MP

MATHEMATIQUES 2

Durée : 4 heures

N.B. : le candidat attachera la plus grande importance à la clarté, & la 
précision et à la concision de
la rédaction. Si un candidat est amené à repérer ce qui peut lui sembler être 
une erreur d 'e'nonce', il le

signalera sur sa copie et devra poursuivre sa composition en expliquant les 
raisons des initiatives
qu'il a été amené à prendre.

Les calculatrices sont autorisées

Le sujet est composé de deux exercices et d'un problème tous indépendants.

1/7

EXERCICE I. INFORMATIQUE

Les algorithmes demandés doivent être écrits en Python. On sera très attentif 
àla rédaction et notam-
rnentàlîndenüûkn1ducode.

Voici, par exemple, un code Python attendu si l'on demande d'écrire une 
fonction nommée maxi qui
calcule le plus grand élément d'un tableau d'entiers :

def maxi(t):

"""Données: t un tableau d'entiers non vide

Résultat: le maximum des éléments de t"""
n =len(t) # la longueur du tableau t
maximum = t[O]
for k in range(l,n)z

if t[k] > maximum:
maximum = t[k]

return maximum

LHnünmüm1maxi([4,5,6,2])rmnoenaaknsô
1.1. Donner la décomposition binaire (en base 2) de l'entier 21.

On considère la fonction mystere suivante:

def mystere(n, b):

"""Données: n > 0 un entier et b > 0 un entier
Résultat: ....... """

t = [] # tableau vide

while n > O:
c = n % b
t.append(c)
n = n // b

return t

On rappelle que la méthode append rajoute un élément en fin de liste. Si l'on 
choisit par exemple
t = [4, 5, 6] , alors, après avoirexécuté t . append(12) , laliste t 
apourvaleur [4, 5, 6, 12].

Pour k EURN*, on note ck, tk et nk les valeurs prises par les variables c, t et 
n a la sortie de la k-ème
itération de la boucle "while".

2/7

1.2. Quelle valeur est renvoyée lorsque l'on exécute mystere (2 5 6 , 1 O ) '?

On recopiera et complétera le tableau suivant, en ajoutant les éventuelles 
colonnes nécessaires pour
tracer entiérement l'exécution.

ck

"k

1.3. Soit n > 0 un entier. On exécute mystere (n, 1 O) . On pose no = n.

1.3.a. Justifier la terminaison de la boucle whi le.

 xkpxe"9x ou [c EUR{0,1,2}, p EUR ]O,+oo[ et 9 EUR 
]O,27'C].
(Rappel: pour p EUR ]O,+oo[, px = exmp.)
III.6.

III.6.a. Déterminer un élément f de F vérifiant pour tout entier naturel n, f 
(n) = a(-- 3)" + /3 1122",
si a et /3 sont deux constantes complexes.

III.6.b. Si f est un élément de F et si 160 est un réel, expliquer pourquoi x 
+--> f (x + x0) est encore
un élément de F .

III.7 .

III.7.a. Soit 9 un réel. Démontrer que la suite de nombres complexes (n2(%)n 
e...") converge
vers 0.

III.7.b. SOlt k1EUR{0,1,2}, 'O1EUR]O,+OO[, 91EUR]0,27Ï], [Cz E {0,1,2}, 'O2 EUR 
]O,+OÔ[ fit 92 EUR ]O,27Ï],
@@ 92.

Démontrer que si a et /3 sont deux constantes complexes vérifiant, pour tout 
entier naturel n,
ankl(p1)n ei91n +/3 nk2 (p2)n ei92"=0, alors & =/3 = 0.
On pourra, par exemple, supposer p1 S p2 et commencer par examiner les cas p1 < 
p2 et p1 = p2.

III.7.c. On admet alors que si f est un élément de F vérifiant pour tout entier 
naturel n, f (n) = 0,
alors f est l'application nulle.

Que peut-on dire de deux applications f et g de F vérifiant pour tout entier 
naturel n, f (n) = g(n) '?

6/7

III.8. Dans la suite de cette partie, A est une matrice inversible de J/Q(R).
Expliquer pourquoi on peut trouver 9 applications oe...-- éléments de F telles 
que, pour tout entier

naturel n, A" =(oe,-- j(n)) .
' 151",ng

Discuter en fonction du nombre de racines du polynôme caractéristique de la 
matrice A.
On ne demande pas de résoudre des systèmes, une explication de la méthode 
pourra suffire.

III.9. On pose pour tout réel t, la matrice ï(t) = (co...--(t)) 1<_ _<3 
EJ/lg(C).
_z,]_

III.9.a. Quelles sont les matrices ï(O) et ï(1) '?
III.9.b. Justifier que, pour tout couple d'entiers naturels (mm), on a la 
relation:
ï(n+m) = T(H)ï(ml--

3
III.9.c. Pour x réel et m entier naturel, on pose f(x)= oei,j(x+m) et 
g(x)=îoei,k(x)oem(m).
k=1

Démontrer que l'on a f = g et en déduire, pour tout entier naturel m, la 
relation ï(JC + m) = ï(x)ï(m).

III.9.d. En déduire que, pour tout couple (x, y) de réels, ï(JC + y) = ï(X)ï( 
y).

III.10. Démontrer que T(-- 1) = A_1 et que, pour tout entier naturel 19 non 
nul, (ï(%))p = A.

111.11. Justifier que l'application ï définie pour tout réel t par ï( t) = 
(co...--(t)) 1<_ _<3 est dérivable
_z,]_

sur R et que la fonction y est une solution de l'équation différentielle
u'(t) = ï/(O)u(t) vérifiant u(O) = 13
où la fonction inconnue u vérifie, pour tout réel t, u(t) EUR J/lg(C).
Trouver la solution sur R de l'équation différentielle u' ( t) = ')f/(O) u( t) 
vérifiant u(O) = 13 et en déduire
que l'on a: exp(y'(0)) =A.

Troisième partie: exemple

3 O 1
Soit la matrice A = 1 -- 1 -- 2
-- 1 O 1

111.12. Donner le polynôme caractéristique de la matrice A.
La matrice A est-elle diagonalisable '?
III.13. Déterminer, par la méthode développée dans ce problème, les éléments 
suivants:
III.13.a. La matrice A_1.
III.13.b. Une matrice B de =//l3(CC) vérifiant B2 =A.
III.13.C. Une matrice M de =//l3(CC) vérifiant exp(M ) =A.

Fin de l'énoncé

7/7

Extrait du corrigé obtenu par reconnaissance optique des caractères



CCP Maths 2 MP 2015 -- Corrigé
Ce corrigé est proposé par Alexandre Le Meur (ENS Cachan) ; il a été relu par
Thierry Limoges (ENS Cachan) et Benjamin Monmege (Enseignant-chercheur à 
l'université).

Ce sujet comporte deux exercices et un problème indépendants les uns des autres.
Le premier exercice est consacré à l'informatique, le reste à l'algèbre 
linéaire.
· Le premier exercice étudie d'un programme sommant les chiffres d'un entier
naturel. Sans difficulté mathématique, il permettait de s'assurer que les 
candidats avaient des connaissances de base en algorithmique et dans le langage
Python.
· Le deuxième exercice est très proche du cours. On détermine une base 
orthonormée (pour le produit scalaire canonique) de l'espace des matrices 
triangulaires supérieures, puis on utilise cette base pour calculer le projeté 
orthogonal
d'une matrice.
Le but du problème est de déterminer, pour A  M3 (C) donnée, des matrices M
et B telles que exp(M) = A et B2 = A, c'est-à-dire un logarithme et une racine
carrée de A.
· Une partie de préliminaires étudie l'exponentielle de matrices en montrant la
convergence de la série correspondante à l'aide d'une norme d'algèbre définie
dans l'énoncé. Le principal piège de cette partie est de confondre la 
convergence
dans C avec celle dans M3 (C).
· La première partie s'intéresse à un exemple où A est à coefficients réels ; on
montre qu'aucune matrice à coefficients réels ne vérifie les relations 
définissant M et B. Ceci prouve que l'hypothèse sur le corps de base est 
essentielle.
· Dans la deuxième partie, la plus importante, on construit très graduellement
une fonction dérivable  : R - M3 (C) dont les images en -1 et 1/2 valent A-1
et B respectivement, et telle que   (0) = M.
· La troisième partie traite un exemple. On calcule explicitement  puis on 
détermine des matrices B et M.
Ce sujet est de longueur moyenne ; quelques questions, nettement plus longues 
que
les autres, peuvent déstabiliser. Il constitue une bonne révision de l'algèbre 
linéaire
et euclidienne.

Indications
Exercice I
I.1 Penser à la division euclidienne.
I.3.a Montrer que la suite d'entiers naturels (nk )kN décroît strictement.
I.4 Identifier ce que fait la procédure mystere en s'aidant de la question II.2.
I.5 Un algorithme récursif est une procédure faisant appel à elle-même.
Exercice II
II.2 Penser à la base canonique de M2 (R). Peut-on en extraire une base de J ?
Cette base est-elle orthogonale pour le produit scalaire indiqué ?
II.3 Utiliser l'expression de la projection en fonction du produit scalaire 
avec les
éléments d'une base orthonormée de J . Autre possibilité : trouver la 
décomposition de A suivant la somme directe M2 (R) = J  J  .
Problème III
III.1 Expliciter les coefficients du produit AB en fonction de ceux de A et B et
les majorer.
III.2 Utiliser le fait que dans C, la convergence absolue entraîne la 
convergence.
III.3 Utiliser les questions III.2 et III.1.
III.4 Si M est semblable à une matrice triangulaire T, écrire une expression de 
Tk
pour k  N et en déduire un lien entre det(exp(M)) et det(exp(T)).
III.5 Raisonner par l'absurde et montrer que cela apporte une contradiction avec
le calcul du déterminant de A.
III.6.b Étudier le cas où f est de la forme xk x e ix puis conclure dans le cas 
général.
III.7.b Devant une égalité de fonctions, penser à évaluer en des valeurs 
remarquables
ou à calculer des limites.
III.8 Penser à distinguer tous les cas suivant le nombre de valeurs propres 
distinctes de A. En s'inspirant de la page d'exemple de l'énoncé, montrer que
les coefficients du reste de la division euclidienne de Xn par A sont solutions
d'un système linéaire et montrer qu'ils sont dans F.
III.9.c Utiliser la question III.6.b pour montrer que les fonctions f et g sont 
dans F,
puis conclure avec la question III.7.c.
III.11 Utiliser la dérivabilité des fonctions i,j sur R. Expliciter la solution 
de l'équation différentielle (dans M3 (C)) u =   (0)u vérifiant u(0) = I3 . 
Comparer
cette solution avec la fonction .
III.12 Déterminer les valeurs propres de A et la dimension des sous-espaces 
propres.
III.13 Cette série de questions est calculatoire. Veiller à poser les calculs 
proprement
et penser à vérifier les résultats intermédiaires. S'inspirer de la page 
d'exemple
de l'énoncé pour calculer la fonction  puis utiliser les questions III.10 et 
III.11
pour calculer A-1 , B et M.

I. Informatique
I.1 Pour décomposer 21 en base 2, appliquons l'algorithme d'Euclide à 21 et 2
21 = 2 × 10 + 1
10 = 2 × 5 + 0
5=2×2+1
2=2×1+0
1=2×0+1
La liste des restes en remontant l'algorithme donne la décomposition en base 2 
de 21.
21 = 10101
On peut également faire cette question « à tâtons » en remarquant que
21 = 16 + 4 + 1. Cependant cette technique admet rapidement ses limites si
le nombre à écrire devient grand.
I.2 Avant le premier passage dans la boucle while, les variables n, b et t ont 
pour
valeurs n = 256, b = 10 et t = []. La variable b ne sera pas modifiée durant 
l'exécution
de la fonction. On obtient donc le tableau suivant
k
1
2
3
ck
6
5
2
tk [6] [6, 5] [6, 5, 2]
nk 25
2
0
La fonction mystere renvoie t = [6, 5, 2].
I.3.a Montrons que pour tout entier k, nk 6= 0 entraîne que nk+1 < nk . Soit k  
N.
L'entier nk+1 est le quotient de la division euclidienne de nk par 10. Par 
définition
nk = 10nk+1 + ck
nk
où 0 6 ck < 10. Ainsi nk+1 6
< nk car nk 6= 0. La suite (nk )kN est une suite
10
strictement décroissante d'entiers naturels. Donc il existe k1  N tel que nk1 = 
0.
En conclusion,
La boucle while termine.
I.3.b Montrons par récurrence que la propriété
P(k) :

nk 6

n
10k

est vraie pour tout k  [[ 0 ; p ]].
· P(0) est trivialement vraie car n = n0 .
· P(k) = P(k + 1) : soit un entier k  [[ 0 ; p - 1 ]]. On a
nk+1 6
Or d'après P(k), nk 6

· Conclusion :

nk
10

n
. En combinant ces deux inégalités, il vient
10k
n
nk+1 6 k+1
10
n
k  [[ 0 ; p ]]
nk 6 k
10

En particulier, pour k = p - 1, on obtient
n
10p-1
> 0 par définition du nombre p. On a alors
n
10p-1 6
np-1
np-1 6

Or np-1

puis en composant par le logarithme en base 10
p - 1 6 log10 (n) - log10 (np-1 )
puisque log10 (np-1 ) > 0, np-1 étant strictement positif. Ainsi,
p 6 log10 (n) + 1
I.4 En s'inspirant de la procédure mystere(n), on réécrit un programme qui somme
les restes dans l'algorithme d'Euclide au lieu de les stocker dans une liste.
def somme_chiffres(n):
"""Données: n>0 un entier.
Résultat: la somme des chiffres de n"""
s=0
while n>0:
c=n%10
s=c+s
n=n//10
return s
I.5 La somme des chiffres de n est égale au chiffre des unités ajouté à la somme
des chiffres du quotient de la division euclidienne de n par 10. De plus, si n 
= 0 la
procédure doit retourner 0.
def somme_rec(n):
"""Données: n>0 un entier
Résultat: la somme des chiffres de n,
calculée récursivement"""
if n==0:
return 0
else:
return somme_rec(n//10)+n%10