• Aucun résultat trouvé

Matrices et programmation INFO2 - Semaine 9 Guillaume CONNAN

N/A
N/A
Protected

Academic year: 2022

Partager "Matrices et programmation INFO2 - Semaine 9 Guillaume CONNAN"

Copied!
151
0
0

Texte intégral

(1)

INFO2 - Semaine 9

Guillaume CONNAN

IUT de Nantes - Dpt d’informatique

Dernière mise à jour : 10 mars 2015 à 21:55

(IUT de Nantes - Dpt d’informatique ) 1 / 84

(2)

1 Structure d’espace vectoriel

2 Opérations sur les lignes des matrices 3 Rang d’une matrice

4 Changement de base 5 Matrice d’un morphisme 6 Rotations

(3)

Sommaire

1 Structure d’espace vectoriel

2 Opérations sur les lignes des matrices 3 Rang d’une matrice

4 Changement de base 5 Matrice d’un morphisme 6 Rotations

(IUT de Nantes - Dpt d’informatique ) 3 / 84

(4)

Hermann Graßmann (1809-1877)

(5)

Stefan Banach (1892-1945)

(IUT de Nantes - Dpt d’informatique ) 5 / 84

(6)
(7)

(IUT de Nantes - Dpt d’informatique ) 5 / 84

(8)
(9)

(IUT de Nantes - Dpt d’informatique ) 6 / 84

(10)

0 100 200 300 400 500 0

100

200

300

400

500

(11)

0 100 200 300 400 500 0

100

200

300

400

500

3 × Marylin + Albert

(IUT de Nantes - Dpt d’informatique ) 6 / 84

(12)

0 100 200 300 400 500 0

100

200

300

400

500

(13)

0 100 200 300 400 500 0

100

200

300

400

500

Marylin + Albert

(IUT de Nantes - Dpt d’informatique ) 7 / 84

(14)

0 100 200 300 400 500 0

100

200

300

400

500

(15)

0 100 200 300 400 500 0

100

200

300

400

500

Marylin + 3 × Albert

(IUT de Nantes - Dpt d’informatique ) 8 / 84

(16)

Un complexe ? La donnée de deux scalaires...

1 module ALcomplexes where

2

3 type Scalaire = Int

4 type Re = Scalaire

5 type Im = Scalaire

6

7 data Complexe = Re ::: Im

1 > let z = 3:::2

2 > z

3 3 + 2i

(17)

Un complexe ? La donnée de deux scalaires...

1 module ALcomplexes where

2

3 type Scalaire = Int

4 type Re = Scalaire

5 type Im = Scalaire

6

7 data Complexe = Re ::: Im

1 > let z = 3:::2

2 > z

3 3 + 2i

(IUT de Nantes - Dpt d’informatique ) 9 / 84

(18)

Un complexe ? La donnée de deux scalaires...

1 module ALcomplexes where

2

3 type Scalaire = Int

4 type Re = Scalaire

5 type Im = Scalaire

6

7 data Complexe = Re ::: Im

1 > let z = 3:::2

2 > z

3 3 + 2i

(19)

1 instance Show Complexe where

2 show (r:::i) = (show r) ++ " + " ++ (show i) ++ "i"

(IUT de Nantes - Dpt d’informatique ) 10 / 84

(20)

Somme ?

1 (@+) :: Complexe -> Complexe -> Complexe

2 (@+) (r:::i) (r’:::i’) = (r + r’):::(i + i’)

1 > z

2 3 + 2i

3 > z @+ z

4 6 + 4i

(21)

Somme ?

1 (@+) :: Complexe -> Complexe -> Complexe

2 (@+) (r:::i) (r’:::i’) = (r + r’):::(i + i’)

1 > z

2 3 + 2i

3 > z @+ z

4 6 + 4i

(IUT de Nantes - Dpt d’informatique ) 11 / 84

(22)

Somme ?

1 (@+) :: Complexe -> Complexe -> Complexe

2 (@+) (r:::i) (r’:::i’) = (r + r’):::(i + i’)

1 > z

2 3 + 2i

3 > z @+ z

4 6 + 4i

(23)

3 ∗ z ? Types ?

1 (@.) :: Scalaire -> Complexe -> Complexe

2 (@.) k (r:::i) = (k*r):::(k*i)

1 > z

2 3 + 2i

3 > 3 @. z

4 9 + 6i

5 > z @+ ((-2) @. z)

6 -3 + -2i

(IUT de Nantes - Dpt d’informatique ) 12 / 84

(24)

3 ∗ z ? Types ?

1 (@.) :: Scalaire -> Complexe -> Complexe

2 (@.) k (r:::i) = (k*r):::(k*i)

1 > z

2 3 + 2i

3 > 3 @. z

4 9 + 6i

5 > z @+ ((-2) @. z)

6 -3 + -2i

(25)

3 ∗ z ? Types ?

1 (@.) :: Scalaire -> Complexe -> Complexe

2 (@.) k (r:::i) = (k*r):::(k*i)

1 > z

2 3 + 2i

3 > 3 @. z

4 9 + 6i

5 > z @+ ((-2) @. z)

6 -3 + -2i

(IUT de Nantes - Dpt d’informatique ) 12 / 84

(26)

Définition 1 ( K -espace vectoriel)

Un

K-espace vectoriel

V sur un corps commutatif ⟨

K,

,

⊙⟩ est un groupe abélien ⟨V

,

† ⟩ muni d’une loi de composition externe ⋅ de

K

⊗ V dans V vérifiant les quatre axiomes suivant,

λ

et

µ

désignant des scalaires

quelconques,

u

et

v

des vecteurs quelconques et 1

l’élément neutre de la loi ⊙ sur

K

:

(

λ

µ

) ⋅

u

=

λ

u

†µ ⋅

u

(distributivité vectorielle) ;

λ

⋅ (u †

v

) =

λ

u

λ

v

(distributivité scalaire) ; (

λ

µ

) ⋅

u

=

λ

⋅ (

µ

u

) (associativité) ;

1

u

=

u

(axiome d’identité) On dit que le corps

K

opère sur le groupe ⟨V

,

† ⟩ .

_Python_

imshow(3 * marilyn + einstein, cmap = cm.gray)

(27)

Définition 1 ( K -espace vectoriel)

Un

K-espace vectoriel

V sur un corps commutatif ⟨

K,

,

⊙⟩ est un groupe abélien ⟨V

,

† ⟩ muni d’une loi de composition externe ⋅ de

K

⊗ V dans V vérifiant les quatre axiomes suivant,

λ

et

µ

désignant des scalaires

quelconques,

u

et

v

des vecteurs quelconques et 1

l’élément neutre de la loi ⊙ sur

K

:

(

λ

µ

) ⋅

u

=

λ

u

†µ ⋅

u

(distributivité vectorielle) ;

λ

⋅ (u †

v

) =

λ

u

λ

v

(distributivité scalaire) ; (

λ

µ

) ⋅

u

=

λ

⋅ (

µ

u

) (associativité) ;

1

u

=

u

(axiome d’identité) On dit que le corps

K

opère sur le groupe ⟨V

,

† ⟩ .

_Python_

imshow(3 * marilyn + einstein, cmap = cm.gray)

(IUT de Nantes - Dpt d’informatique ) 13 / 84

(28)

Matrice ?

1 type Indice = Int

2 type Taille = (Indice,Indice)

1 data Matrice coeffs =

2 Mat (Taille, (Indice,Indice) -> coeffs)

1 Mat((5,3), \ (i,j) -> 3*i + j)

? ?

(29)

Matrice ?

1 type Indice = Int

2 type Taille = (Indice,Indice)

1 data Matrice coeffs =

2 Mat (Taille, (Indice,Indice) -> coeffs)

1 Mat((5,3), \ (i,j) -> 3*i + j)

? ?

(IUT de Nantes - Dpt d’informatique ) 14 / 84

(30)

Matrice ?

1 type Indice = Int

2 type Taille = (Indice,Indice)

1 data Matrice coeffs =

2 Mat (Taille, (Indice,Indice) -> coeffs)

1 Mat((5,3), \ (i,j) -> 3*i + j)

? ?

(31)

Matrice ?

1 type Indice = Int

2 type Taille = (Indice,Indice)

1 data Matrice coeffs =

2 Mat (Taille, (Indice,Indice) -> coeffs)

1 Mat((5,3), \ (i,j) -> 3*i + j)

? ?

(IUT de Nantes - Dpt d’informatique ) 14 / 84

(32)

Matrice ?

1 type Indice = Int

2 type Taille = (Indice,Indice)

1 data Matrice coeffs =

2 Mat (Taille, (Indice,Indice) -> coeffs)

1 Mat((5,3), \ (i,j) -> 3*i + j)

? ?

(33)

1 > let ma = Mat((5,3), \ (i,j) -> 3*i + j)

2 > ma

3 0 1 2

4 3 4 5

5 6 7 8

6 9 10 11

7 12 13 14

(IUT de Nantes - Dpt d’informatique ) 15 / 84

(34)

Somme

Comment additionner deux matrices ?

1 (@+) :: (Num t)=> Matrice t -> Matrice t -> Matrice t

2 (@+) (Mat (t,f)) (Mat (t’,f’))

3 | t == t’ = Mat(t, \ (i,j) -> f(i,j) + f’(i,j))

4 | otherwise = error "Somme : tailles incompatibles"

(35)

Somme

Comment additionner deux matrices ?

1 (@+) :: (Num t)=> Matrice t -> Matrice t -> Matrice t

2 (@+) (Mat (t,f)) (Mat (t’,f’))

3 | t == t’ = Mat(t, \ (i,j) -> f(i,j) + f’(i,j))

4 | otherwise = error "Somme : tailles incompatibles"

(IUT de Nantes - Dpt d’informatique ) 16 / 84

(36)

Somme

1 > ma

2 0 1 2

3 3 4 5

4 6 7 8

5 9 10 11

6 12 13 14

7

8 > ma @+ ma

9 0 2 4

10 6 8 10

11 12 14 16

12 18 20 22

13 24 26 28

(37)

Produit par un scalaire

Multiplier une matrice par un scalaire ?

1 instance Functor Matrice where

2 fmap g (Mat(taille,f)) = Mat(taille, g.f)

1 (@.) :: (Num t) => t -> Matrice t -> Matrice t

2 (@.) k = fmap (* k)

(IUT de Nantes - Dpt d’informatique ) 18 / 84

(38)

Produit par un scalaire

Multiplier une matrice par un scalaire ?

1 instance Functor Matrice where

2 fmap g (Mat(taille,f)) = Mat(taille, g.f)

1 (@.) :: (Num t) => t -> Matrice t -> Matrice t

2 (@.) k = fmap (* k)

(39)

Produit par un scalaire

Multiplier une matrice par un scalaire ?

1 instance Functor Matrice where

2 fmap g (Mat(taille,f)) = Mat(taille, g.f)

1 (@.) :: (Num t) => t -> Matrice t -> Matrice t

2 (@.) k = fmap (* k)

(IUT de Nantes - Dpt d’informatique ) 18 / 84

(40)

Produit par un scalaire

1 > ma

2 0 1 2

3 3 4 5

4 6 7 8

5 9 10 11

6 12 13 14

7

8 > (-4) @. ma

9 0 -4 -8

10 -12 -16 -20

11 -24 -28 -32

12 -36 -40 -44

13 -48 -52 -56

(41)

1 instance (Num t) => Num (Matrice t) where

2 ???

(IUT de Nantes - Dpt d’informatique ) 20 / 84

(42)

1 > let ma = Mat((5,3), \ (i,j) -> 3*i + j)

2 > let mb = fromListe (3,2) [1..6] :: Matrice Int

1 > ma

2 0 1 2

3 3 4 5

4 6 7 8

5 9 10 11

6 12 13 14

1 > mb

2 1 2

3 3 4

4 5 6

(43)

1 > let ma = Mat((5,3), \ (i,j) -> 3*i + j)

2 > let mb = fromListe (3,2) [1..6] :: Matrice Int

1 > ma

2 0 1 2

3 3 4 5

4 6 7 8

5 9 10 11

6 12 13 14

1 > mb

2 1 2

3 3 4

4 5 6

(IUT de Nantes - Dpt d’informatique ) 21 / 84

(44)

1 > let ma = Mat((5,3), \ (i,j) -> 3*i + j)

2 > let mb = fromListe (3,2) [1..6] :: Matrice Int

1 > ma

2 0 1 2

3 3 4 5

4 6 7 8

5 9 10 11

6 12 13 14

1 > mb

2 1 2

3 3 4

4 5 6

(45)

1 > ma + ma

2 0 2 4

3 6 8 10

4 12 14 16

5 18 20 22

6 24 26 28

1 > ma * mb

2 13 16

3 40 52

4 67 88

5 94 124

6 121 160

(IUT de Nantes - Dpt d’informatique ) 22 / 84

(46)

1 > ma + ma

2 0 2 4

3 6 8 10

4 12 14 16

5 18 20 22

6 24 26 28

1 > ma * mb

2 13 16

3 40 52

4 67 88

5 94 124

6 121 160

(47)

Définition 2 (Combinaison linéaire de vecteurs)

Soit ⟨

K,

,

⊙⟩ un corps opérant sur le groupe ⟨ V

,

† ⟩ pour former un espace vectoriel de produit externe ● .

Soit ⟨u

0,u1,

,up

⟩ une famille de vecteurs de V .

Un vecteur

v

de V est une combinaison linéaire de la famille des ⟨

ui

0ip

si, et seulement si, il existe une famille ⟨λ

0, λ1,

⋯, λ

p

⟩ de scalaires de

K

vérifiant :

v

=

i=p

i=0

λi

ui

=

λ0

u0

λ1

u1

† ⋯ †

λp

up

L’ensemble de ces combinaisons linéaires est noté :

Vect{u

0,u1,

,up

}

(IUT de Nantes - Dpt d’informatique ) 23 / 84

(48)
(49)

(IUT de Nantes - Dpt d’informatique ) 25 / 84

(50)
(51)

(IUT de Nantes - Dpt d’informatique ) 27 / 84

(52)
(53)

(IUT de Nantes - Dpt d’informatique ) 29 / 84

(54)
(55)

(IUT de Nantes - Dpt d’informatique ) 31 / 84

(56)
(57)

(IUT de Nantes - Dpt d’informatique ) 33 / 84

(58)
(59)

(IUT de Nantes - Dpt d’informatique ) 35 / 84

(60)
(61)

(IUT de Nantes - Dpt d’informatique ) 37 / 84

(62)
(63)

(IUT de Nantes - Dpt d’informatique ) 39 / 84

(64)
(65)

(IUT de Nantes - Dpt d’informatique ) 41 / 84

(66)
(67)

(IUT de Nantes - Dpt d’informatique ) 43 / 84

(68)
(69)

_Python_

o = imread(’ouzbek.png’) w = imread(’welsh.png’) def fondu(n):

for k in range(n+1):

t = k / float(n) imshow(t*o + (1-t)*w)

savefig("ow" + str(k) + ".jpg")

_LATEX_

\multido{\n=0+1}{21}{

\begin{frame}

\begin{center}

\includegraphics[height=\textheight]{ow\n}

\end{center}

\end{frame}}

(IUT de Nantes - Dpt d’informatique ) 45 / 84

(70)

_Python_

o = imread(’ouzbek.png’) w = imread(’welsh.png’) def fondu(n):

for k in range(n+1):

t = k / float(n) imshow(t*o + (1-t)*w)

savefig("ow" + str(k) + ".jpg")

_LATEX_

\multido{\n=0+1}{21}{

\begin{frame}

\begin{center}

\includegraphics[height=\textheight]{ow\n}

\end{center}

(71)

Définition 3 (Sev)

Soit ⟨

K,

,

⊙⟩ un corps opérant sur le groupe ⟨ V

,

† ⟩ pour former un espace vectoriel de produit externe ● .

Soit W un sous-ensemble de V .

Si, muni des mêmes opérations que V , W a une structure de

K-espace

vectoriel, alors on dit que W est un

sous-espace vectoriel

de V .

(IUT de Nantes - Dpt d’informatique ) 46 / 84

(72)

Théorème 4 (Caractérisation (1) des sous-espaces vectoriels)

Soit ⟨

K,

,

⊙⟩ un corps opérant sur le groupe ⟨ V

,

† ⟩ pour former un espace vectoriel de produit externe ● .

Soit W un sous-ensemble de V .

W est un sous-espace vectoriel (sev) de V si, et seulement si :

W ≠ ∅

(∀u)(∀v)(⟨u,v⟩ ∈W2→u†v ∈W) (∀λ)(∀u)(⟨λ,u⟩ ∈K⊗W →λ●u∈W)

(73)

Théorème 4 (Caractérisation (1) des sous-espaces vectoriels)

Soit ⟨

K,

,

⊙⟩ un corps opérant sur le groupe ⟨ V

,

† ⟩ pour former un espace vectoriel de produit externe ● .

Soit W un sous-ensemble de V .

W est un sous-espace vectoriel (sev) de V si, et seulement si :

W ≠ ∅

(∀u)(∀v)(⟨u,v⟩ ∈W2→u†v ∈W) (∀λ)(∀u)(⟨λ,u⟩ ∈K⊗W →λ●u∈W)

(IUT de Nantes - Dpt d’informatique ) 47 / 84

(74)

Théorème 4 (Caractérisation (1) des sous-espaces vectoriels)

Soit ⟨

K,

,

⊙⟩ un corps opérant sur le groupe ⟨ V

,

† ⟩ pour former un espace vectoriel de produit externe ● .

Soit W un sous-ensemble de V .

W est un sous-espace vectoriel (sev) de V si, et seulement si :

W ≠ ∅

(∀

u

)(∀

v

)(⟨

u,v

⟩ ∈ W

2

u

v

∈ W )

(∀λ)(∀u)(⟨λ,u⟩ ∈K⊗W →λ●u∈W)

(75)

Théorème 4 (Caractérisation (1) des sous-espaces vectoriels)

Soit ⟨

K,

,

⊙⟩ un corps opérant sur le groupe ⟨ V

,

† ⟩ pour former un espace vectoriel de produit externe ● .

Soit W un sous-ensemble de V .

W est un sous-espace vectoriel (sev) de V si, et seulement si :

W ≠ ∅

(∀

u

)(∀

v

)(⟨

u,v

⟩ ∈ W

2

u

v

∈ W ) (∀

λ

)(∀u )(⟨

λ,u⟩ ∈K

⊗ W →

λ

u

∈ W )

(IUT de Nantes - Dpt d’informatique ) 47 / 84

(76)

Théorème 5 (Caractérisation (2) des sous-espaces vectoriels)

Soit ⟨

K,

,

⊙⟩ un corps opérant sur le groupe ⟨ V

,

† ⟩ pour former un espace vectoriel de produit externe ● .

Soit W un sous-ensemble de V .

W est un sous-espace vectoriel (sev) de V si, et seulement si :

0∈W

(∀λ)(∀u)(∀v)(⟨λ,u,v⟩ ∈K⊗W ⊗W →u†λ●v ∈W)

(77)

Théorème 5 (Caractérisation (2) des sous-espaces vectoriels)

Soit ⟨

K,

,

⊙⟩ un corps opérant sur le groupe ⟨ V

,

† ⟩ pour former un espace vectoriel de produit externe ● .

Soit W un sous-ensemble de V .

W est un sous-espace vectoriel (sev) de V si, et seulement si :

0

∈ W

(∀λ)(∀u)(∀v)(⟨λ,u,v⟩ ∈K⊗W ⊗W →u†λ●v ∈W)

(IUT de Nantes - Dpt d’informatique ) 48 / 84

(78)

Théorème 5 (Caractérisation (2) des sous-espaces vectoriels)

Soit ⟨

K,

,

⊙⟩ un corps opérant sur le groupe ⟨ V

,

† ⟩ pour former un espace vectoriel de produit externe ● .

Soit W un sous-ensemble de V .

W est un sous-espace vectoriel (sev) de V si, et seulement si :

0

∈ W

(∀

λ

)(∀u )(∀v )(⟨

λ,u,v

⟩ ∈

K

⊗ W ⊗ W →

u

λ

v

∈ W )

(79)

Sommaire

1 Structure d’espace vectoriel

2 Opérations sur les lignes des matrices 3 Rang d’une matrice

4 Changement de base 5 Matrice d’un morphisme 6 Rotations

(IUT de Nantes - Dpt d’informatique ) 49 / 84

(80)

M × N = N × M =

In

N=M1

Exercice 1

Si A et B sont régulières et de taillen, alors comment calculer (A×B)1 à partir des inverses de A et B ?

(81)

M × N = N × M =

In

N = M

1

Exercice 1

Si A et B sont régulières et de taille n , alors comment calculer ( A × B )

1

à partir des inverses de A et B ?

(IUT de Nantes - Dpt d’informatique ) 50 / 84

(82)

Matrices élémentaires

E

nij

la matrice carrée de

An×n

dont tous les coefficients sont nuls sauf le coefficient ( i

,

j ) qui vaut 1

A

.

E312= (

0 1 0 0 0 0

0 0 0)

dans

Z3×3

.

1 In [6]: Mat([3,3],lambda i,j: 1 if (i,j) == (0,1) else 0)

2 Out[6]:

3 0 1 0

4 0 0 0

5 0 0 0

(83)

Matrices élémentaires

E

nij

la matrice carrée de

An×n

dont tous les coefficients sont nuls sauf le coefficient ( i

,

j ) qui vaut 1

A

.

E

312

= (

0 1 0 0 0 0

0 0 0

) dans

Z3×3

.

1 In [6]: Mat([3,3],lambda i,j: 1 if (i,j) == (0,1) else 0)

2 Out[6]:

3 0 1 0

4 0 0 0

5 0 0 0

(IUT de Nantes - Dpt d’informatique ) 51 / 84

(84)

Matrices élémentaires

E

nij

la matrice carrée de

An×n

dont tous les coefficients sont nuls sauf le coefficient ( i

,

j ) qui vaut 1

A

.

E

312

= (

0 1 0 0 0 0

0 0 0

) dans

Z3×3

.

1 In [6]: Mat([3,3],lambda i,j: 1 if (i,j) == (0,1) else 0)

2 Out[6]:

3 0 1 0

4 0 0 0

5 0 0 0

(85)

«

Die ganzen Zahlen hat der liebe Gott gemacht, alles andere ist Menschenwerk

»

δ∶ N×N → {0;1}

(i,j) ↦ 1 sii=j, 0 sinon In= (δij)1in

1jn

(IUT de Nantes - Dpt d’informatique ) 52 / 84

(86)

« Die ganzen Zahlen hat der liebe Gott gemacht, alles andere ist Menschenwerk »

δ∶ N×N → {

0

;

1

}

(i,j) ↦

1 si

i=j,

0 sinon

In= (δij)1in

1jn

(87)

« Die ganzen Zahlen hat der liebe Gott gemacht, alles andere ist Menschenwerk »

δ

N

×

N

→ { 0

;

1 }

( i, j ) ↦ 1 si i = j

,

0 sinon

In= (δij)1in

1jn

(IUT de Nantes - Dpt d’informatique ) 52 / 84

(88)

« Die ganzen Zahlen hat der liebe Gott gemacht, alles andere ist Menschenwerk »

δ

N

×

N

→ { 0

;

1 }

( i, j ) ↦ 1 si i = j

,

0 sinon

In

= (δ

ij

)

1in

1jn

(89)

Exercice 2

Étudiez le produit E

nij

× E

n`k

et exprimez-le à l’aide du symbole de Kronecker.

Simplifiez ensuite le produit(In+λEnij) × (In−λEnij): qu’en concluez-vous ?

(IUT de Nantes - Dpt d’informatique ) 53 / 84

(90)

Exercice 2

Étudiez le produit E

nij

× E

n`k

et exprimez-le à l’aide du symbole de Kronecker.

Simplifiez ensuite le produit(In+λEnij) × (In−λEnij): qu’en concluez-vous ?

(91)

Exercice 2

Étudiez le produit E

nij

× E

n`k

et exprimez-le à l’aide du symbole de Kronecker.

Simplifiez ensuite le produit (

In

+

λEnij

) × (

In

λEnij

) : qu’en concluez-vous ?

(IUT de Nantes - Dpt d’informatique ) 53 / 84

(92)

Transvections de lignes

T

λij

An×p

An×p

M ↦ (

In

+

λEnij

) × M

Exercice 3

Calculez par exemple l’image par Tλ23 de(

a1b1 c1 d1

a2b2 c2 d2

a3b3 c3 d3

)

Li ←Li⊞ (λ⊡Lj)

(In+λEnij)1=In−λEnij

(93)

Transvections de lignes

T

λij

An×p

An×p

M ↦ (

In

+

λEnij

) × M

Exercice 3

Calculez par exemple l’image par T

λ23

de (

a1b1 c1 d1

a2b2 c2 d2

a3b3 c3 d3

)

Li ←Li⊞ (λ⊡Lj)

(In+λEnij)1=In−λEnij

(IUT de Nantes - Dpt d’informatique ) 54 / 84

(94)

Transvections de lignes

T

λij

An×p

An×p

M ↦ (

In

+

λEnij

) × M

Exercice 3

Calculez par exemple l’image par T

λ23

de (

a1b1 c1 d1

a2b2 c2 d2

a3b3 c3 d3

)

Li ←Li⊞ (λ⊡Lj)

(In+λEnij)1=In−λEnij

(95)

Transvections de lignes

T

λij

An×p

An×p

M ↦ (

In

+

λEnij

) × M

Exercice 3

Calculez par exemple l’image par T

λ23

de (

a1b1 c1 d1

a2b2 c2 d2

a3b3 c3 d3

)

L

i

← L

i

⊞ (λ ⊡ L

j

)

(In+λEnij)1=In−λEnij

(IUT de Nantes - Dpt d’informatique ) 54 / 84

(96)

Transvections de lignes

T

λij

An×p

An×p

M ↦ (

In

+

λEnij

) × M

Exercice 3

Calculez par exemple l’image par T

λ23

de (

a1b1 c1 d1

a2b2 c2 d2

a3b3 c3 d3

)

L

i

← L

i

⊞ (λ ⊡ L

j

)

(

In

+

λEnij

)

1

=

In

λEnij

(97)

Dilatations de lignes

L

i

λ

⊡ L

i

i,λn =In+ (λ⊞ (−

1

A))Enii

2,λ3 × (

a1 b1 c1 d1

a2 b2 c2 d2

a3 b3 c3 d3

)

(IUT de Nantes - Dpt d’informatique ) 55 / 84

(98)

Dilatations de lignes

L

i

λ

⊡ L

i

i,λn

=

In

+ (

λ

⊞ (− 1

A

)) E

nii

2,λ3 × (

a1 b1 c1 d1

a2 b2 c2 d2

a3 b3 c3 d3

)

(99)

Dilatations de lignes

L

i

λ

⊡ L

i

i,λn

=

In

+ (

λ

⊞ (− 1

A

)) E

nii

2,λ3

× (

a1 b1 c1 d1

a2 b2 c2 d2

a3 b3 c3 d3

)

(IUT de Nantes - Dpt d’informatique ) 55 / 84

(100)

Échange de lignes

S

nij

=

jn,1A

× (

In

+ E

nij

) × (

In

− E

nji

) × (

In

+ E

nij

)

Exercice 4

Que vaut le produit deS323 par(

a1 b1c1d1

a2 b2c2d2

a3 b3c3d3

)?

Li ↔Lj

(101)

Échange de lignes

S

nij

=

jn,1A

× (

In

+ E

nij

) × (

In

− E

nji

) × (

In

+ E

nij

)

Exercice 4

Que vaut le produit de S

323

par (

a1 b1c1d1

a2 b2c2d2

a3 b3c3d3

) ?

Li ↔Lj

(IUT de Nantes - Dpt d’informatique ) 56 / 84

(102)

Échange de lignes

S

nij

=

jn,1A

× (

In

+ E

nij

) × (

In

− E

nji

) × (

In

+ E

nij

)

Exercice 4

Que vaut le produit de S

323

par (

a1 b1c1d1

a2 b2c2d2

a3 b3c3d3

) ?

L

i

↔ L

j

(103)

Échange de lignes

S

nij

=

jn,1A

× (

In

+ E

nij

) × (

In

− E

nji

) × (

In

+ E

nij

)

Exercice 4

Que vaut le produit de S

323

par (

a1 b1c1d1

a2 b2c2d2

a3 b3c3d3

) ?

L

i

↔ L

j

(IUT de Nantes - Dpt d’informatique ) 56 / 84

(104)

1 In [7]: M = list2mat([[11,12,13],[21,22,23],[31,32,33]])

2

3 In [8]: M

4 Out[8]:

5 11 12 13

6 21 22 23

7 31 32 33

8

9 In [9]: M.swap(2,0)

10 Out[9]:

11 31 32 33

12 21 22 23

13 11 12 13

(105)

Une fonction

ϕ

de

An×p

dans lui-même est une

opération sur les lignes

si c’est la composée finie de transvections et de dilatations de lignes.

ϕ

∶ M ↦ ( F

k

× F

k1

⋯ × F

1

) × M

ϕ1∶N↦ (F11×F21⋯ ×Fk1) ×N Inverse de la matrice ϕ(In) :ϕ1(In).

(IUT de Nantes - Dpt d’informatique ) 58 / 84

(106)

Une fonction

ϕ

de

An×p

dans lui-même est une

opération sur les lignes

si c’est la composée finie de transvections et de dilatations de lignes.

ϕ

∶ M ↦ ( F

k

× F

k1

⋯ × F

1

) × M

ϕ1

∶ N ↦ (F

11

× F

21

⋯ × F

k1

) × N

Inverse de la matrice

ϕ(In)

:

ϕ1(In).

(107)

Une fonction

ϕ

de

An×p

dans lui-même est une

opération sur les lignes

si c’est la composée finie de transvections et de dilatations de lignes.

ϕ

∶ M ↦ ( F

k

× F

k1

⋯ × F

1

) × M

ϕ1

∶ N ↦ (F

11

× F

21

⋯ × F

k1

) × N Inverse de la matrice

ϕ

(

In

) :

ϕ1(In)

.

(IUT de Nantes - Dpt d’informatique ) 58 / 84

(108)

Une fonction

ϕ

de

An×p

dans lui-même est une

opération sur les lignes

si c’est la composée finie de transvections et de dilatations de lignes.

ϕ

∶ M ↦ ( F

k

× F

k1

⋯ × F

1

) × M

ϕ1

∶ N ↦ (F

11

× F

21

⋯ × F

k1

) × N

Inverse de la matrice

ϕ

(

In

) :

ϕ1

(

In

) .

(109)

Théorème 6

ϕ

étant une opération élémentaire sur les lignes, M inversible ↔

ϕ(M

) inversible

Théorème 7

Siϕ1, ϕ2, ...., ϕk est une suite d’opérations sur les lignes de M qui transformeM enIn alorsM est inversible et

M1k(In) ×ϕk1(In) ×....×ϕ1(In) =ϕk○ϕk1○...○ϕ1(In)

(IUT de Nantes - Dpt d’informatique ) 59 / 84

(110)

Théorème 6

ϕ

étant une opération élémentaire sur les lignes, M inversible ↔

ϕ(M

) inversible

Théorème 7

Siϕ1, ϕ2, ...., ϕk est une suite d’opérations sur les lignes de M qui transformeM enIn alorsM est inversible et

M1k(In) ×ϕk1(In) ×....×ϕ1(In) =ϕk○ϕk1○...○ϕ1(In)

(111)

Théorème 6

ϕ

étant une opération élémentaire sur les lignes, M inversible ↔

ϕ(M

) inversible

Théorème 7

Si

ϕ1, ϕ2, ...., ϕk

est une suite d’opérations sur les lignes de M qui transforme M en

In

alors M est inversible et

M

1

=

ϕk

(

In

) ×

ϕk1

(

In

) ×

....

×

ϕ1

(

In

) =

ϕk

ϕk1

...

ϕ1

(

In

)

(IUT de Nantes - Dpt d’informatique ) 59 / 84

(112)

Sommaire

1 Structure d’espace vectoriel

2 Opérations sur les lignes des matrices 3 Rang d’une matrice

4 Changement de base 5 Matrice d’un morphisme 6 Rotations

(113)

M ≡

`

N ↔ N =

ϕk

ϕk1

...

ϕ1

( M )

opérations

ϕ

Partie gauche Partie droite Remarques

M In

initialisation du tableau

ϕ1 M1 R1 M11(M),R11(In)

ϕ2 M2 R2 M22(M1),R22(R1)

... ... ... ...

ϕi Mi Ri Mi =Ri ×M

... ... ... ...

ϕk N R N=R×M

(IUT de Nantes - Dpt d’informatique ) 61 / 84

(114)

M ≡

`

N ↔ N =

ϕk

ϕk1

...

ϕ1

( M )

opérations

ϕ

Partie gauche Partie droite Remarques

M

In

initialisation du tableau

ϕ1

M

1

R

1

M

1

=

ϕ1

( M )

,

R

1

=

ϕ1

(

In

)

ϕ2

M

2

R

2

M

2

=

ϕ2

(M

1

), R

2

=

ϕ2

(R

1

)

... ... ... ...

ϕi

M

i

R

i

M

i

= R

i

× M

... ... ... ...

ϕk

N R N = R × M

(115)

L réduite échelonnée

1

Toutes les lignes nulles (une ligne est nulle si elle ne comporte que des zéros) sont au-dessous des lignes non nulles.

2

Dans chaque ligne non nulle le premier élément non nul est 1

A

(on lit une ligne de la gauche vers la droite), ce 1

A

est appelé

pivot

ou élément pivot. La colonne où se trouve ce 1

A

est appelée colonne pivot et c’est le seul élément non nul de cette colonne.

3 Si,de plus, les pivots apparaissent en ordre croissant par numéro de ligneet numéro de colonne, on dit queM est`-réduite échelonnée (en abrégé lré ou LRé).

(IUT de Nantes - Dpt d’informatique ) 62 / 84

(116)

L réduite échelonnée

1

Toutes les lignes nulles (une ligne est nulle si elle ne comporte que des zéros) sont au-dessous des lignes non nulles.

2

Dans chaque ligne non nulle le premier élément non nul est 1

A

(on lit une ligne de la gauche vers la droite), ce 1

A

est appelé

pivot

ou élément pivot. La colonne où se trouve ce 1

A

est appelée colonne pivot et c’est le seul élément non nul de cette colonne.

3

Si,

de plus

, les pivots apparaissent en ordre croissant par numéro de

ligne

et

numéro de colonne, on dit que

M

est

`-réduite échelonnée

(en abrégé lré ou LRé).

(117)

L réduite échelonnée

1

Toutes les lignes nulles (une ligne est nulle si elle ne comporte que des zéros) sont au-dessous des lignes non nulles.

2

Dans chaque ligne non nulle le premier élément non nul est 1

A

(on lit une ligne de la gauche vers la droite), ce 1

A

est appelé

pivot

ou élément pivot. La colonne où se trouve ce 1

A

est appelée colonne pivot et c’est le seul élément non nul de cette colonne.

3

Si,

de plus

, les pivots apparaissent en ordre croissant par numéro de ligne

et

numéro de colonne, on dit que M est

`-réduite échelonnée

(en abrégé lré ou LRé).

(IUT de Nantes - Dpt d’informatique ) 62 / 84

(118)

⎜ ⎜

⎜ ⎜

0 1 2 0

1 0 3 − 1

0 0 0 0

⎟ ⎟

⎟ ⎟

est

`

-réduite non échelonnée

⎜ ⎜

⎜ ⎜

0 1 0

0 2 0

0 0 1

⎟ ⎟

⎟ ⎟

n’est pas

`

-réduite

⎜ ⎜

⎜ ⎜

⎜ ⎜

1 − 2 0

0 0 1

0 0 0

0 0 0

⎟ ⎟

⎟ ⎟

⎟ ⎟

est

`

-réduite échelonnée

(119)

Exemple

A =

⎜ ⎜

2 5 − 2 3

3 6 3 6

1 2 − 1 2

⎟ ⎟

(IUT de Nantes - Dpt d’informatique ) 64 / 84

(120)

Exemple

A

1

=

⎜ ⎜

3 6 3 6

2 5 − 2 3 1 2 − 1 2

⎟ ⎟

(121)

Exemple

A

2

=

⎜ ⎜

1 2 1 2

2 5 − 2 3 1 2 − 1 2

⎟ ⎟

(IUT de Nantes - Dpt d’informatique ) 66 / 84

(122)

Exemple

A

3

=

⎜ ⎜

1 2 1 2

0 1 − 4 − 1

0 0 − 2 0

⎟ ⎟

(123)

Exemple

A

4

=

⎜ ⎜

1 0 9 4

0 1 − 4 − 1

0 0 − 2 0

⎟ ⎟

(IUT de Nantes - Dpt d’informatique ) 68 / 84

(124)

Exemple

A

5

=

⎜ ⎜

1 0 9 4

0 1 − 4 − 1

0 0 1 0

⎟ ⎟

(125)

Exemple

A

6

=

⎜ ⎜

1 0 0 4

0 1 0 − 1

0 0 1 0

⎟ ⎟

(IUT de Nantes - Dpt d’informatique ) 70 / 84

(126)

Sommaire

1 Structure d’espace vectoriel

2 Opérations sur les lignes des matrices 3 Rang d’une matrice

4 Changement de base 5 Matrice d’un morphisme 6 Rotations

(127)

Définition 8 (matrice de passage)

Soit B et B

deux bases de

R3

. On appelle matrice de passage de B à B

et on note P

B,B

la matrice de dont les colonnes sont les vecteurs de B

exprimés dans B :

Ð→ e1 Ð→

e2 Ð→ e3

× × × Ð→ e1

× × × Ð→ e2

× × × Ð→ e3

(IUT de Nantes - Dpt d’informatique ) 72 / 84

(128)

Définition 8 (matrice de passage)

Soit B et B

deux bases de

R3

. On appelle matrice de passage de B à B

et on note P

B,B

la matrice de dont les colonnes sont les vecteurs de B

exprimés dans B :

Ð→ e1 Ð→

e2 Ð→ e3

× × × Ð→ e1

× × × Ð→ e2

× × × Ð→ e3

Références

Documents relatifs

Les éléments d’un anneau unitaire qui admettent un symétrique par sont dits inversibles.. On note A ∗ l’ensemble des éléments inversibles

3 Si, de plus, les pivots apparaissent en ordre croissant par numéro de ligne et numéro de colonne, on dit que M est ` -réduite échelonnée (en abrégé lré ou LRé)... 1 Toutes

This treatment of nan ensures that compare defines a total ordering relation. (IUT de Nantes - Dpt d’informatique ) 11

Ils le font soit automatiquement, soit si la fonction utilise une récursion terminale, c’est-à-dire si l’appel récursif à la fonction n’est pas enrobé dans une autre fonction.

induction mathématique (raisonnement par récurrence) fonction récursive, type récursif. (IUT de Nantes - Dpt d'informatique ) 20

Il est impossible de prévoir toutes les requêtes des différents utilisateurs. Le style du tableau pro- duit peut néanmoins vous déplaire. Vous pouvez le modifier en

Ce qui va nous intéresser informatiquement, c'est une fonction qui crée une partition d'un ensemble selon une propriété, par exemple pour regrouper les entiers pairs parmi les

3 la durée moyenne des parcours allant d'un état au bord (le temps moyen d'absorption) est la moyenne des longueurs des parcours de ce sommet au bord pondérée par les probabilités