CoCalc Public Files2020-04-06-1545-M103.ipynbOpen in with one click!
Author: Samuel Lelièvre
Views : 52
License: Other -- explicitly state in your code
Description: M103 corrigé exos 4.6 et suivants

M103 TD19 2020-04-06

  • Auteur: Samuel Lelièvre
  • Licence: CC BY 4.0
  • Date: 2020-04-06

S'il y a des questions sur la fin de l'exo 4.5, posez-les sinon on passe au 4.6.

Des corrigés sont en ligne

Exercice 4.6

In [19]:
S = lambda a, b: matrix([[a, -b], [b, a]]) T = lambda c, d: matrix([[c, d], [d, -c]])
In [6]:
a, b, c, d, aa, bb, cc, dd = SR.var('a b c d aa bb cc dd', domain='real')
In [7]:
S(a, b), S(aa, bb), S(a, b) + S(aa, bb), S(a, b) * S(aa, bb)
( [ a -b] [ aa -bb] [ a + aa -b - bb] [ a*aa - b*bb -aa*b - a*bb] [ b a], [ bb aa], [ b + bb a + aa], [ aa*b + a*bb a*aa - b*bb] )
In [8]:
z = a + i*b zz = aa + i*bb somme = z + zz produit = z * zz z, zz, somme.real() + i * somme.imag(), produit.real() + i * produit.imag()
(a + I*b, aa + I*bb, a + aa + I*b + I*bb, a*aa + I*aa*b + I*a*bb - b*bb)
In [9]:
Phi = lambda z: S(z.real(), z.imag())
In [16]:
z, Phi(z), S(a, b)
( [ a -b] [ a -b] a + I*b, [ b a], [ b a] )
In [13]:
Phi(z) * Phi(zz), Phi(z * zz), Phi(z) * Phi(zz) == Phi(z * zz)
( [ a*aa - b*bb -aa*b - a*bb] [ a*aa - b*bb -aa*b - a*bb] [ aa*b + a*bb a*aa - b*bb], [ aa*b + a*bb a*aa - b*bb], True )
In [14]:
Phi(z) * Phi(zz), Phi(z * zz), Phi(z) * Phi(zz) == Phi(z * zz)
( [ a*aa - b*bb -aa*b - a*bb] [ a*aa - b*bb -aa*b - a*bb] [ aa*b + a*bb a*aa - b*bb], [ aa*b + a*bb a*aa - b*bb], True )

Passer de S(a,b)S(a, b) à S(a,b)S(a, -b) revient, du côté nombres complexes, à passer de a+iba + i b à aiba - i*b.

C'est la conjugaison complexe.

Exo 4.6, question 3.a

In [21]:
R = S(0, 1) Sigma = T(1, 0) Sigmaprime = T(0, 1)
In [23]:
x, y = SR.var('x y') M = matrix(2, 1, [x, y])
In [25]:
sigma = lambda M: Sigma * M
In [26]:
sigma(M)
[ x] [-y]

L'application σ\sigma envoie le point de coordonnées (x,y)(x, y) sur le point de coordonnées (x,y)(x, -y).

C'est donc une réflexion selon l'axe des abscisses.

Exo 4.6, question 3.b

In [27]:
sigmaprime = lambda M: Sigmaprime * M
In [28]:
sigmaprime(M)
[y] [x]

La transformation σ\sigma' échange les coordonnées xx et yy.

Les points situés sur la droite d'équation x=yx = y donc ils sont fixés.

La transformation σ\sigma' est une réflexion orthogonale selon l'axe d'équation y=xy = x.

In [35]:
D = plot(lambda x: x, (-3, 3), color='purple') P = point2d([(1, 2)], color='blue') PP = point2d([(2, 1)], color = 'red')
In [36]:
(D + P + PP).show(aspect_ratio=1)

Exo 4.6, question 3.c

In [33]:
r = lambda M: R * M
In [34]:
r(M)
[-y] [ x]
In [44]:
P = point2d([(1, 2)], color='blue', size=18) PP = point2d([(2, 1)], color='cyan', size=18) RP = point2d([(-2, 1)], color = 'red', size=18) RPP = point2d([(-1, 2)], color = 'magenta', size=18) (D + P + PP + RP + RPP).show(aspect_ratio=1)

La transformation rr est une rotation de centre l'origine et d'angle un quart de tour.

On aimerait montrer que r=σσr = \sigma' \circ \sigma.

C'est-à-dire que pour tout MM, on a r(M)=(σσ)(M)=σ(σ(M))r(M) = (\sigma' \circ \sigma)(M) = \sigma'(\sigma(M)).

Cela revient à montrer que pour tout vecteur XX de R2\mathbb{R}^2, on a RX=ΣΣXR \cdot X = \Sigma' \cdot \Sigma \cdot X.

Cela revient à montrer que le produit de matrices ΣΣ\Sigma' \cdot \Sigma vaut RR.

In [47]:
Sigmaprime * Sigma, R, Sigmaprime * Sigma == R
( [ 0 -1] [ 0 -1] [ 1 0], [ 1 0], True )

Exercice 4.7

In [48]:
I = identity_matrix(3) I
[1 0 0] [0 1 0] [0 0 1]
In [49]:
[sum(ligne) for ligne in I]
[1, 1, 1]
In [50]:
[sum(colonne) for colonne in I.columns()]
[1, 1, 1]
In [52]:
def est_magique(M): somme = sum(M[0]) return all(sum(ligne) == somme for ligne in M) and all(sum(col) == somme for col in M.columns())
In [53]:
est_magique(I)
True

On veut montrer que l'ensemble EE des matrices magiques est un sous-espace vectoriel de M3(R)\mathcal{M}_3(\mathbb{R}).

In [57]:
M3R = MatrixSpace(QQ, 3)
In [61]:
matrice_nulle = M3R.zero() matrice_nulle
[0 0 0] [0 0 0] [0 0 0]
In [62]:
est_magique(matrice_nulle)
True

Si AA est magique de somme aa, et si BB est magique de somme bb, alors

  • chaque ligne de A+BA + B est somme d'une ligne de AA et d'une ligne de BB,
    • donc la somme de cette ligne est a+ba + b
  • chaque colonne de A+BA + B est somme d'une colonne de AA et d'une colonne de BB,
    • donc la somme de cette colonne est a+ba + b Ainsi, A+BA + B est magique, de somme a+ba + b.

Si AA est magique de somme aa, et si λ\lambda est un réel, alors

  • chaque ligne ou colonne de λA\lambda \cdot A est λ\lambda fois la ligne ou colonne correspondante de AA, et a donc pour somme λa\lambda \cdot a.

Ainsi, λA\lambda \cdot A est magique de somme λa\lambda \cdot a.

Bilan: l'ensemble EE

  • contient la matrice nulle
  • est stable par somme
  • est stable par mise à l'échelle

C'est donc un sous-espace vectoriel de M3(R)\mathcal{M}_3(\mathbb{R}).

In [63]:
a1, a2, a3, b1, b2, b3, c1, c2, c3 = SR.var('a1, a2, a3, b1, b2, b3, c1, c2, c3')
In [64]:
d1, d2, d3, e1, e2, e3, f1, f2, f3 = SR.var('d1, d2, d3, e1, e2, e3, f1, f2, f3')

Supposons que AA est magique de somme aa, et BB magique de somme bb.

In [77]:
A = matrix(3, [a1, a2, a3, b1, b2, b3, c1, c2, c3]).T B = matrix(3, [d1, d2, d3, e1, e2, e3, f1, f2, f3]).T
In [78]:
A, B
( [a1 b1 c1] [d1 e1 f1] [a2 b2 c2] [d2 e2 f2] [a3 b3 c3], [d3 e3 f3] )
In [79]:
A * B
[a1*d1 + b1*d2 + c1*d3 a1*e1 + b1*e2 + c1*e3 a1*f1 + b1*f2 + c1*f3] [a2*d1 + b2*d2 + c2*d3 a2*e1 + b2*e2 + c2*e3 a2*f1 + b2*f2 + c2*f3] [a3*d1 + b3*d2 + c3*d3 a3*e1 + b3*e2 + c3*e3 a3*f1 + b3*f2 + c3*f3]
In [80]:
[sum(ligne) for ligne in (A*B).rows()]
[a1*d1 + b1*d2 + c1*d3 + a1*e1 + b1*e2 + c1*e3 + a1*f1 + b1*f2 + c1*f3, a2*d1 + b2*d2 + c2*d3 + a2*e1 + b2*e2 + c2*e3 + a2*f1 + b2*f2 + c2*f3, a3*d1 + b3*d2 + c3*d3 + a3*e1 + b3*e2 + c3*e3 + a3*f1 + b3*f2 + c3*f3]
In [81]:
[sum(colonne) for colonne in (A*B).columns()]
[a1*d1 + a2*d1 + a3*d1 + b1*d2 + b2*d2 + b3*d2 + c1*d3 + c2*d3 + c3*d3, a1*e1 + a2*e1 + a3*e1 + b1*e2 + b2*e2 + b3*e2 + c1*e3 + c2*e3 + c3*e3, a1*f1 + a2*f1 + a3*f1 + b1*f2 + b2*f2 + b3*f2 + c1*f3 + c2*f3 + c3*f3]

Prenons par exemple la somme de la première ligne de ABA\cdot B, c'est:

a1*d1 + a1*d2 + a1*d3 + a2*e1 + a2*e2 + a2*e3 + a3*f1 + a3*f2 + a3*f3

Cela se réécrit:

a1*(d1 + d2 + d3) + a2*(e1 + e2 + e3) + a3*(f1 + f2 + f3)

c'est-à-dire a1*b + a2*b + a3*b

c'est-à-dire (a1 + a2 + a3)*b

c'est-à-dire a * b.

Pour toutes les lignes et colonnes de ABA \cdot B, la somme des éléments se calcule de la même façon et vaut aba \cdot b.

Donc la matrice produit ABA \cdot B est magique, de somme aba \cdot b.

Exo 4.7, question 3.a

Pour montrer que FF est un sous-espace vectoriel de EE, on montre que

  • FF contient la matrice nulle
  • FF est stables par somme et mise à l'échelle
    • ou si on préfère, par combinaisons linéaires
    • ou si on préfère, par combinaisons linéaires réduites A+λBA + \lambda \cdot B

La matrice nulle est dans FF puisque toutes ses lignes et toutes ses colonnes ont pour somme 00.

D'après les calucls de la question 1, si AA et BB sont dans FF, alors en particulier elles sont dans EE avec a=0a = 0 et b=0b = 0.

Alors A+λBA + \lambda \cdot B est encore dans EE, avec pour somme par ligne ou par colonne a+λba + \lambda \cdot b, c'est-à-dire 0+λ00 + \lambda \cdot 0, qui vaut 00.

On conclut que A+λBA + \lambda \cdot B est en fait dans FF.

On a bien montré que FF est un sous-espace vectoriel de EE.

On veut montrer que DF=ED \oplus F = E, c'est-à-dire montrer que tout élément de EE est somme, d'une façon unique, d'un élément de FF et d'un élément de DD.

Soit AA une matrice de EE, de somme aa.

On aimerait trouver une matrice S=λI3DS = \lambda \cdot I_3 \in D et une matrice NFN \in F, telles que S+N=AS + N = A.

D'après ce qu'on a vu précédemment,

  • la somme (par ligne ou par colonne) de SS vaut: λ\lambda
  • la somme (par ligne ou par colonne) de NN vaut: 00
  • la somme (par ligne ou par colonne) de S+NS + N vaut: λ+0\lambda + 0

Pour avoir S+N=AS + N = A on doit donc avoir: λ=a\lambda = a.

On écrit donc A=aI3+(AaI3)A = a \cdot I_3 + (A - a\cdot I_3)

et on remarque que S=aI3S = a \cdot I_3 et N=AaI3N = A - a\cdot I_3 sont comme on veut, et que c'est la seule solution possible.

On a montré que toute matrice AEA \in E est somme, de façon unique, d'un multiple de la matrice identité et d'une matrice de somme nulle.

On a donc montré que DF=ED \oplus F = E.

Exo 4.7, question 3.b

Système d'équations cartésiennes pour FF.

Ici les coordonnées s'appellent a1a_1, a2a_2, a3a_3, b1b_1, b2b_2, b3b_3, c1c_1, c2c_2, c3c_3.

La définition de FF est que la somme par ligne et la somme par colonne vaut 00.

Cela se traduit par le système d'équations cartésiennes suivant:

  • a1+b1+c1=0a_1 + b_1 + c_1 = 0
  • a2+b2+c2=0a_2 + b_2 + c_2 = 0
  • a3+b3+c3=0a_3 + b_3 + c_3 = 0
  • a1+a2+a3=0a_1 + a_2 + a_3 = 0
  • b1+b2+b3=0b_1 + b_2 + b_3 = 0
  • c1+c2+c3=0c_1 + c_2 + c_3 = 0

Pour trouver une base de FF on échelonne ce système de 6 équations à 9 inconnues.

In [70]:
M = matrix([[1, 0, 0, 1, 0, 0, 1, 0, 0], [0, 1, 0, 0, 1, 0, 0, 1, 0], [0, 0, 1, 0, 0, 1, 0, 0, 1], [1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1], ])
In [71]:
M
[1 0 0 1 0 0 1 0 0] [0 1 0 0 1 0 0 1 0] [0 0 1 0 0 1 0 0 1] [1 1 1 0 0 0 0 0 0] [0 0 0 1 1 1 0 0 0] [0 0 0 0 0 0 1 1 1]
In [72]:
M.echelon_form()
[ 1 0 0 0 -1 -1 0 -1 -1] [ 0 1 0 0 1 0 0 1 0] [ 0 0 1 0 0 1 0 0 1] [ 0 0 0 1 1 1 0 0 0] [ 0 0 0 0 0 0 1 1 1] [ 0 0 0 0 0 0 0 0 0]

On voit qu'il y a

  • 5 pivots, donc 5 inconnues principales: a1a_1, a2a_2, a3a_3, b1b_1, c1c_1
  • 4 inconnues secondaires: b2b_2, b3b_3, c2c_2, c3c_3

La dimension de FF est 44.

La forme échelonnée réduite est

In [74]:
M.rref()
[ 1 0 0 0 -1 -1 0 -1 -1] [ 0 1 0 0 1 0 0 1 0] [ 0 0 1 0 0 1 0 0 1] [ 0 0 0 1 1 1 0 0 0] [ 0 0 0 0 0 0 1 1 1] [ 0 0 0 0 0 0 0 0 0]
In [82]:
A
[a1 b1 c1] [a2 b2 c2] [a3 b3 c3]

Une base de FF est obtenue en fixant tour à tour chaque inconnue secondaire à 11 et les autres à 00.

Si on fixe b2=1b_2 = 1 et les autres à 00, on obtient:

In [84]:
print("Une base de F est:") ( matrix([[ 1, -1, 0], [-1, 1, 0], [ 0, 0, 0], ]), matrix([[ 1, 0, -1], [-1, 0, 1], [ 0, 0, 0], ]), matrix([[ 1, -1, 0], [ 0, 0, 0], [-1, 1, 0], ]), matrix([[ 1, 0, -1], [ 0, 0, 0], [-1, 0, 1], ]), )
Une base de F est:
( [ 1 -1 0] [ 1 0 -1] [ 1 -1 0] [ 1 0 -1] [-1 1 0] [-1 0 1] [ 0 0 0] [ 0 0 0] [ 0 0 0], [ 0 0 0], [-1 1 0], [-1 0 1] )

Pour obtenir une base de EE, on utilise que $D \oplus F = E

In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]: