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
Mots clefs exponentielle de matrices, projection

Corrigé

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

Extrait gratuit du corrigé

(télécharger le PDF)
           

Énoncé complet

(télécharger le PDF)
                    

Rapport du jury

(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