Vous êtes sur la page 1sur 320

Algbre linaire et gomtrie

LAVOISIER, 2005
LAVOISIER

11, rue Lavoisier


75008 Paris
Serveur web : www.hermes-science.com
2-7462-0993-4 ISBN Gnral
2-7462-0994-2 ISBN Volume 1
Tous les noms de socits ou de produits cits dans cet ouvrage sont utiliss des fins
didentification et sont des marques de leurs dtenteurs respectifs.

Le Code de la proprit intellectuelle n'autorisant, aux termes de l'article L. 122-5, d'une


part, que les "copies ou reproductions strictement rserves l'usage priv du copiste et non
destines une utilisation collective" et, d'autre part, que les analyses et les courtes citations
dans un but d'exemple et d'illustration, "toute reprsentation ou reproduction intgrale, ou
partielle, faite sans le consentement de l'auteur ou de ses ayants droit ou ayants cause, est
illicite" (article L. 122-4). Cette reprsentation ou reproduction, par quelque procd que ce
soit, constituerait donc une contrefaon sanctionne par les articles L. 335-2 et suivants du
Code de la proprit intellectuelle.

APPLICATIONS MATHMATIQUES
AVEC MATLAB

Algbre linaire
et gomtrie
rappel de cours et exercices corrigs

Luc Jolivet
Rabah Labbas

Table des matires

Avant-propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

P REMIRE PARTIE . P RSENTATION DE M ATLAB

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

17

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

19

Chapitre 1. Calculs avec Matlab

1.1. Calculs numriques usuels . . . . . . . . . . . . . . . .


1.1.1. Exemple . . . . . . . . . . . . . . . . . . . . . . .
1.1.2. Remarques . . . . . . . . . . . . . . . . . . . . . .
1.1.3. Connatre les fonctions utilisables . . . . . . . . .
1.1.4. Calculs rpts sur tous les lments dun tableau
1.2. Graphiques . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1. Reprsentation graphique dune fonction . . . . .
1.2.2. Autres reprsentations graphiques planes . . . . .
1.3. Calcul symbolique avec Symbolic Math Toolbox . . . .
1.3.1. Simplication dexpression algbrique . . . . . .
1.3.2. Un exemple de calcul avec une variable . . . . . .
1.3.3. Utilisation de syms . . . . . . . . . . . . . . . . . .
1.3.4. Calculs trigonomtriques . . . . . . . . . . . . . .
1.3.5. Rsolution dquations ou dinquations . . . . .
1.3.6. Mises en garde . . . . . . . . . . . . . . . . . . . .
1.4. Itrations et tude de suites . . . . . . . . . . . . . . . .
1.5. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.1. Format long, format short . . . . . . . . . . . . .
1.5.2. Tableau dvaluation . . . . . . . . . . . . . . . .
1.5.3. Graphe dune fonction . . . . . . . . . . . . . . .
1.5.4. Dessin dun quadrilatre . . . . . . . . . . . . . .
1.5.5. Egalits symboliques . . . . . . . . . . . . . . . .
1.5.6. Itrs dune suite . . . . . . . . . . . . . . . . . .
1.5.7. Suite de Fibonacci . . . . . . . . . . . . . . . . .
1.6. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

19
19
21
21
21
22
22
23
25
25
26
27
27
28
29
30
32
32
32
32
33
33
33
34
34

Mathmatiques avec Matlab

Chapitre 2. Programmation avec Matlab . . . . . . . . . . . . . . . . . . . .


2.1. Crer des sous-programmes . . . . . . . . . . . . . . . . . .
2.1.1. Mmoriser des instructions dans un chier script . .
2.1.2. Reprsenter une fonction mathmatique . . . . . . . .
2.1.3. Crer un sous-programme avec paramtres . . . . . .
2.2. Traitements conditionnels, expressions logiques . . . . . .
2.2.1. Exemple : tude dune fonction dnie par morceaux
2.2.2. Expressions logiques et quanticateurs . . . . . . . .
2.2.3. Exemple de fonction rcursive . . . . . . . . . . . . .
2.3. Les types de donnes utiliss par Matlab . . . . . . . . . .
2.3.1. Type numrique . . . . . . . . . . . . . . . . . . . . .
2.3.2. Chanes de caractres . . . . . . . . . . . . . . . . . .
2.3.3. Type symbolique . . . . . . . . . . . . . . . . . . . . .
2.4. Quelques commandes importantes de Matlab . . . . . . . .
2.4.1. Sauvegardes . . . . . . . . . . . . . . . . . . . . . . .
2.4.2. Gestion des variables . . . . . . . . . . . . . . . . . .
2.4.3. Gestion de lafchage . . . . . . . . . . . . . . . . . .
2.5. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.1. Division euclidienne . . . . . . . . . . . . . . . . . .
2.5.2. Suite pseudo-alatoire . . . . . . . . . . . . . . . . .
2.5.3. P.G.C.D de deux nombres . . . . . . . . . . . . . . .
2.5.4. Calculs sur une chaine de caractres . . . . . . . . .
2.6. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . .
D EUXIME PARTIE . A LGBRE LINAIRE

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

41
41
42
44
46
47
48
49
50
51
51
52
53
53
54
54
55
55
55
56
56
56

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

59

Chapitre 3. Systmes linaires : mthode de Gauss


3.1. Systmes linaires . . . . . . . . . . . . . .
3.1.1. Dnition . . . . . . . . . . . . . . . .
3.1.2. Lensemble des solutions . . . . . . .
3.1.3. Systmes remarquables . . . . . . . .
3.2. Oprations fondamentales sur les systmes
3.3. Mthode de rsolution de Gauss . . . . . .
3.3.1. Prsentation sur un exemple . . . . .
3.3.2. Systmes de Cramer . . . . . . . . . .
3.4. Rsolution avec Matlab . . . . . . . . . . .
3.4.1. Utilisation de solve . . . . . . . . . .
3.4.2. Utilisation de rref . . . . . . . . . . .
3.5. Exercices . . . . . . . . . . . . . . . . . . .
3.5.1. Systmes linaires classiques . . . .
3.5.2. Un systme linaire avec paramtre .
3.6. Solutions . . . . . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

41

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

61

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

61
61
62
63
64
65
66
68
69
69
70
71
71
71
72

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

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

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

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

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

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

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

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

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

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

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

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

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

Table des matires

Chapitre 4. Matrices

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

4.1. Gnralits . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1. Notations et vocabulaire . . . . . . . . . . . . . . .
4.1.2. Cas particuliers . . . . . . . . . . . . . . . . . . . .
4.1.3. Dnir des matrices avec Matlab . . . . . . . . .
4.2. Oprations sur les matrices . . . . . . . . . . . . . . . .
4.2.1. Addition . . . . . . . . . . . . . . . . . . . . . . .
4.2.2. Multiplication par les scalaires . . . . . . . . . . .
4.2.3. Multiplication des matrices . . . . . . . . . . . . .
4.2.4. Transpose dune matrice . . . . . . . . . . . . . .
4.2.5. Calcul matriciel avec Matlab . . . . . . . . . . . .
4.3. Inversion de matrices carres . . . . . . . . . . . . . . .
4.3.1. Dnition . . . . . . . . . . . . . . . . . . . . . . .
4.3.2. Actions de Gauss sur les matrices carres . . . . .
4.3.3. Calcul explicite de linverse dune matrice . . . .
4.4. Dterminant dune matrice carre . . . . . . . . . . . .
4.4.1. Cas dune matrice de type   . . . . . . . . . .
4.4.2. Cas dune matrice de type   . . . . . . . . . .
4.4.3. Cas dune matrice quelconque . . . . . . . . . . .
4.4.4. Dterminant de matrices particulires . . . . . . .
4.4.5. Proprit fondamentale . . . . . . . . . . . . . . .
4.5. Proprits des dterminants . . . . . . . . . . . . . . . .
4.5.1. Dveloppement suivant les colonnes ou les lignes
4.5.2. Quand un dterminant est-il nul ? . . . . . . . . .
4.5.3. Actions de Gauss sur les dterminants . . . . . . .
4.5.4. Dterminant dun produit de matrices . . . . . . .
4.6. Calculs de dterminants . . . . . . . . . . . . . . . . . .
4.6.1. Mthode de Gauss . . . . . . . . . . . . . . . . . .
4.6.2. Utilisation de la commande det de Matlab . . . .
4.7. Retour aux systmes et formules de Cramer. . . . . . .
4.7.1. Ecriture matricielle des systmes . . . . . . . . . .
4.7.2. Rsolution par les dterminants . . . . . . . . . .
4.8. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . .
4.8.1. Construction dune matrice diagonale . . . . . .
4.8.2. Calculs avec trois matrices . . . . . . . . . . . . .
4.8.3. Parts dun march . . . . . . . . . . . . . . . . . .
4.8.4. Calculs avec deux matrices . . . . . . . . . . . . .
4.8.5. Mthode de Sylvester . . . . . . . . . . . . . . . .
4.8.6. Sur un systme de Cramer . . . . . . . . . . . . .
4.8.7. Un systme de Vandermonde . . . . . . . . . . .
4.9. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

79
79
79
80
81
83
83
85
85
88
89
90
90
92
93
96
96
97
99
100
101
102
102
103
103
104
105
105
107
108
108
108
110
110
110
110
111
112
112
113
113

Mathmatiques avec Matlab

Chapitre 5. Espaces vectoriels . . . . . . . . . . . . . . . . . . . . . . . . . . . 127


. . . . . . . . . . . . . . . . . . . .
5.1. Lespace vectoriel
5.1.1. Oprations dans
. . . . . . . . . . . . . . . . . .
5.1.2. Structure despace vectoriel . . . . . . . . . . . . . .
5.1.3. Consquences . . . . . . . . . . . . . . . . . . . . .
5.2. Lespace vectoriel
. . . . . . . . . . . . . . . . . . . .
5.3. Cas gnral . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1. Structure despace vectoriel . . . . . . . . . . . . . .
5.3.2. Exemples . . . . . . . . . . . . . . . . . . . . . . . .
5.3.3. Combinaisons linaires . . . . . . . . . . . . . . . .
5.3.4. Notion de sous-espace vectoriel . . . . . . . . . . .
5.3.5. Sous-espaces vectoriels engendrs . . . . . . . . . .
5.4. Bases dun espace vectoriel . . . . . . . . . . . . . . . . .
5.4.1. Famille gnratrice . . . . . . . . . . . . . . . . . .
5.4.2. Famille libre . . . . . . . . . . . . . . . . . . . . . .
5.4.3. Base et dimension dun espace vectoriel . . . . . .
5.4.4. Caractrisation dune base . . . . . . . . . . . . . .
5.4.5. Matrice des coordonnes dune famille de vecteurs
5.4.6. Rang dune famille de vecteurs . . . . . . . . . . . .
5.5. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.1. Un plan vectoriel de  . . . . . . . . . . . . . . .
5.5.2. Un systme de 4 vecteurs de  . . . . . . . . . . .
5.5.3. Un s-e.v de  . . . . . . . . . . . . . . . . . . . . .
5.5.4. Un s-e.v de    . . . . . . . . . . . . . . . . . .
5.5.5. Matrices magiques de type (3,3) . . . . . . . . . . .
5.5.6. Sur lespace vectoriel  . . . . . . . . . . . . .
5.5.7. Calcul de rang dans  . . . . . . . . . . . . . . . .
5.5.8. Calcul de rang dans  . . . . . . . . . . . . . . . .
5.6. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

127
127
128
129
129
130
130
131
131
132
133
134
135
135
137
138
138
140
141
141
142
142
143
143
144
145
145
145

Chapitre 6. Applications linaires . . . . . . . . . . . . . . . . . . . . . . . . . 163


6.1. Dnitions et exemples . . . .
6.1.1. Exemples introductifs . .
6.1.2. Dnitions . . . . . . . .
6.1.3. Exemples . . . . . . . . .
6.2. Proprits fondamentales . . .
6.2.1. Premires consquences .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

163
163
165
165
168
168

6.2.2. Noyau et image dune application linaire


6.3. Applications linaires en dimension nie . . . .
6.3.1. Dtermination par limage dune base . . .
6.3.2. Matrice dune application linaire . . . . .
6.4. Applications linaires et matrices diagonales . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

169
171
171
172
174

Table des matires

6.4.1. Le problme pos . . . . . . . . . . . . . .


6.4.2. Exemple de diagonalisation . . . . . . . . .
6.4.3. Utilisation de la matrice diagonale  . . .
6.4.4. Les fonctions prdnies de Matlab . . . .
6.5. Exercices . . . . . . . . . . . . . . . . . . . . . .
6.5.1. Noyau et image dune application linaire
6.5.2. Une application linaire avec paramtre .
6.6. Solutions . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

174
176
179
181
182
182
183
183

T ROISIME PARTIE . G OMTRIE . . . . . . . . . . . . . . . . . . . . . . . . 189


Chapitre 7. Calcul vectoriel et gomtrie

. . . . . . . . . . . . . . . . . . . . 191

7.1. Rappels : vecteurs gomtriques du plan ou de lespace .


7.1.1. Vecteur associ un couple de points . . . . . . . .
7.1.2. Oprations sur les vecteurs gomtriques . . . . . .
7.1.3. Vecteurs colinaires, vecteurs coplanaires . . . . . .
7.2. Calculs avec les coordonnes cartsiennes dans le plan .
7.2.1. Bases et coordonnes dun vecteur . . . . . . . . . .
7.2.2. Repres et coordonnes dun point . . . . . . . . . .
7.2.3. Exemples dutilisation . . . . . . . . . . . . . . . . .
7.2.4. Equations dune droite du plan . . . . . . . . . . . .
7.3. Coordonnes cartsiennes dans lespace . . . . . . . . . .
7.3.1. Bases et repres de lespace . . . . . . . . . . . . .
7.3.2. Calculs avec les coordonnes . . . . . . . . . . . . .
7.3.3. Exemples dutilisation . . . . . . . . . . . . . . . . .
7.3.4. Equations de droites et de plans dans lespace . . .
7.3.5. Autres reprsentations paramtriques dans lespace
7.4. Changements de base et changements de repre . . . . .
7.4.1. Changement de base dans lespace . . . . . . . . . .
7.4.2. Changement de repre dans lespace . . . . . . . . .
7.4.3. Changements de base et de repre dans le plan . . .
7.5. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.1. Une suite de paralllogrammes . . . . . . . . . . .
7.5.2. Solutions entires dune quation linaire . . . . .
7.5.3. Etude dun paralllipde . . . . . . . . . . . . . . .
7.5.4. Intersection de deux plans . . . . . . . . . . . . . .
7.5.5. Etude dune symtrie vectorielle . . . . . . . . . .
7.5.6. Changement de repre . . . . . . . . . . . . . . . .
7.5.7. Parabole dans un nouveau repre . . . . . . . . . .
7.6. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

191
191
193
194
195
195
196
196
198
200
200
201
202
204
209
211
211
213
214
215
215
216
216
216
217
218
218
219

Chapitre 8. Produit scalaire et produit vectoriel . . . . . . . . . . . . . . . . 231


8.1. Bases orthonormes dans le plan et lespace . . . . . . . . . . . . . . . 231

10

Mathmatiques avec Matlab

8.1.1. Vecteurs orthogonaux . . . . . . . . . . . . . . . . . . . . . . .


8.1.2. Norme dun vecteur . . . . . . . . . . . . . . . . . . . . . . . .
8.1.3. Dnition dune base orthonorme . . . . . . . . . . . . . . .
8.1.4. Expression analytique de la norme et de la distance . . . . . .
8.1.5. Calculs avec Matlab . . . . . . . . . . . . . . . . . . . . . . . .
8.2. Produit scalaire de deux vecteurs dans le plan ou lespace . . . . . .
8.2.1. Dnition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.2. Proprits de symtrie et bilinarit . . . . . . . . . . . . . . .
8.2.3. Produit scalaire et norme . . . . . . . . . . . . . . . . . . . . .
8.2.4. Produit scalaire et orthogonalit . . . . . . . . . . . . . . . . .
8.2.5. Produit scalaire et changement de base orthonorme . . . . .
8.2.6. Produit scalaire et angle de deux vecteurs . . . . . . . . . . . .
8.2.7. Exemple dutilisation du produit scalaire . . . . . . . . . . . .
8.3. Produit vectoriel dans  . . . . . . . . . . . . . . . . . . . . . . . .
8.3.1. Orientation dans  . . . . . . . . . . . . . . . . . . . . . . . .
8.3.2. Dnition du produit vectoriel . . . . . . . . . . . . . . . . . .
8.3.3. Proprits dantisymtrie et de bilinarit . . . . . . . . . . . .
8.3.4. Produit mixte de trois vecteurs . . . . . . . . . . . . . . . . . .
8.3.5. Proprits gomtriques du produit vectoriel . . . . . . . . . .
8.3.6. Produit vectoriel et changement de base orthonorme directe .
8.4. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4.1. Norme dun vecteur . . . . . . . . . . . . . . . . . . . . . . . .
8.4.2. Distance dun point un plan . . . . . . . . . . . . . . . . . .
8.4.3. Plan mdiateur dun segment . . . . . . . . . . . . . . . . . .
8.4.4. Distance dun point une droite . . . . . . . . . . . . . . . . .
8.4.5. Faces visibles et faces caches dun cube . . . . . . . . . . . .
8.5. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

231
232
233
233
234
235
235
235
235
236
236
237
239
240
240
241
242
242
243
244
245
245
245
247
248
248
251

Chapitre 9. Transformations dans le plan et dans lespace . . . . . . . . . . 263


9.1. Transformations gomtriques et applications linaires . . . . . . . . .
9.1.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.1.2. Application afne et application linaire associe . . . . . . . . .
9.1.3. Applications afnes et calcul matriciel . . . . . . . . . . . . . . .
9.2. Coordonnes homognes et transformations planes . . . . . . . . . . .
9.2.1. Coordonnes homognes dun point du plan . . . . . . . . . . . .
9.2.2. Matrice, en coordonnes homognes, de transformations usuelles
9.2.3. Image dune gure . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2.4. Composition de transformations et matrices en coordonnes homognes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2.5. Rciproque dune transformation et matrices en coordonnes homognes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2.6. Formule de changement de repre en coordonnes homognes . .
9.3. Coordonnes homognes et transformations de lespace . . . . . . . . .

263
263
264
266
270
270
273
275
277
279
279
280

Table des matires

9.3.1. Coordonnes homognes dun point de lespace . . .


9.3.2. Matrices des transformations de lespace . . . . . . .
9.4. Projections et leurs matrices en coordonnes homognes .
9.4.1. Diffrents types de projections . . . . . . . . . . . . .
9.4.2. Projections sur un plan quelconque  . . . . . . . . .
9.4.3. Reprsentation dune gure de lespace avec Matlab
9.5. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.5.1. Quelques matrices en coordonnes homognes . . . .
9.5.2. Rotation et symtrie orthogonale . . . . . . . . . . .
9.5.3. Rotation et translation . . . . . . . . . . . . . . . . .
9.5.4. Ecran graphique . . . . . . . . . . . . . . . . . . . . .
9.5.5. Projection parallle et projection perspective . . . . .
9.5.6. Projection perspective sur un plan "oblique" . . . . .
9.6. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

11

280
281
285
285
291
291
294
294
295
295
296
297
298
300

Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

12

Avant-propos

Le but de cette collection "Applications Mathmatiques avec Matlab" est de comprendre et dutiliser les outils mathmatiques fondamentaux de premier cycle laide
dun logiciel de calcul. Elle correspond lesprit des formations en IUT, BTS, Ecoles
dingnieurs, mais aussi en premiers semestres du cycle L du nouveau schma LMD.
Nous nous sommes bass sur lexprience de nos cours, travaux dirigs et sances
de travaux pratiques de mathmatiques avec des tudiants de 1re et 2me anne du
dpartement dInformatique dIUT de lUniversit du Havre. Pour cet enseignement,
nous disposons du logiciel Matlab 1(la version actuellement installe est 6.5.0) et de
son extension Symbolic Math Toolbox (version 2.1.3).
Ces outils nous ont permis daccompagner les notions de base prsentes, par des
illustrations numriques et graphiques, et par des vrications utilisant le calcul formel.
Lutilisation dun logiciel de calcul permet de se concentrer davantage sur la comprhension du problme pos, sur une stratgie de rsolution et sur linterprtation des
rsultats. Ltudiant devra aussi porter un regard critique sur les rponses fournies, en
prenant garde aux erreurs darrondi dans les calculs numriques, et aux simplications
abusives dans certaines expressions symboliques.
Ce premier tome comprend trois parties.
La premire partie est consacre une prsentation des notions essentielles de
Matlab2, frquemment utilises par la suite. Elle est illustre par des exemples et peut
servir dinitiation la pratique de ce logiciel.

. Matlab est une marque dpose de The MathWorks Inc. Tous les autres produits cits sont
des marques dposes de leur socit respective.
. partir de la version 5

13

14

Mathmatiques avec Matlab

En deuxime partie, on prsente les notions de base et les principaux thormes de


lalgbre linaire, le plus souvent sans dmonstrations, pour les utiliser principalement
dans des applications et calculs concrets.
Une importance particulire a t accorde la gomtrie, traite en troisime
partie. On y prsente les notions de base, en faisant le lien avec la partie prcdente.
On y montre aussi les outils ncessaires en vue dapplications concrtes, comme par
exemple en infographie.
Chaque partie est compose de chapitres. Ils sont accompagns dillustrations et
dexemples traits avec Matlab. Des exercices sont ensuite proposs. Certains sont
originaux, dautres sont repris ou inspirs de divers manuels dont la liste est donne
en bibliographie. La correction de ces exercices se trouve en n de chapitre. Nous
avons choisi de la prsenter en utilisant systmatiquement Matlab. Le lecteur pourra
cependant traiter la plupart de ces exercices " la main".
Lorsquune commande Matlab est utilise pour la premire fois, elle apparat en
gras. Les programmes et squences de calcul sous Matlab sont mis en vidence dans
des tableaux.
En n douvrage, se trouve un index regroupant les mots-cls mathmatiques et
les commandes Matlab utilises. Ces dernires apparaissent en italique.
Nous tenons remercier vivement tous nos collgues qui ont consacr un temps
prcieux la lecture de cet ouvrage, notamment Serge Derible, Thierry Dumont, Khaled Sadallah et Francis Wirth.
Nous remercions particulirement Franois Coquet, Professeur lUniversit du
Havre, pour sa lecture attentive, ses remarques et conseils judicieux .
Nous remercions galement la Maison dditions Hermes/Science qui a ralis
avec efcacit la publication des trois tomes.
Nous accueillerons avec reconnaissance les ventuelles remarques que le lecteur
voudra bien nous faire parvenir.

Note au lecteur

Ce recueil de rappels de cours et dexercices corrigs fait partie dun ensemble


comportant trois tomes.

Tome 1
premire partie : prsentation de Matlab,
deuxime partie : algbre linaire,
troisime partie : gomtrie.

Tome 2
premire partie : analyse,
deuxime partie : analyse numrique lmentaire.

Tome 3
thorie lmentaire du signal.

15

16

P REMIRE PARTIE

Prsentation de Matlab

17

18

Chapitre 1

Calculs avec Matlab

Le but de ce premier chapitre est de se familiariser avec lutilisation du logiciel


Matlab. Il est conseill pour cela de reprendre les exemples traits et de faire au fur et
mesure les exercices proposs (de niveau Terminale).
Ce sont les commandes de base de Matlab qui sont prsentes dans ce chapitre et
le suivant. Dautres commandes seront introduites au fur et mesure des besoins, en
fonction des notions mathmatiques abordes.

1.1. Calculs numriques usuels


1.1.1. Exemple
On utilise la formule


 

 

pour rsoudre lquation


 
  

Pour lancer Matlab, si on dispose dun environnement graphique, il suft le plus


souvent de slectionner licne correspondante. Sinon, dans une fentre de commande,
on crit :



19

20

Mathmatiques avec Matlab

Il est toujours prfrable de crer un sous-rpertoire appropri (destin contenir


les sauvegardes personnelles relatives Matlab), puis de se placer dans ce rpertoire
(par exemple en utilisant la commande cd).
Dans la fentre Matlab, on peut ds lors introduire les instructions souhaites :
diary exoSecondDegre.txt
Cette premire instruction permet de sauvegarder sa session de travail (commandes
et rponses) dans un chier texte qui pourra tre relu, corrig, imprim, ..., ds quon
aura donn linstruction diary off ou quon aura quitt Matlab.
On introduit les variables

en leur affectant la valeur souhaite.

% Entre des coefcients


a = 3.5 ;
b = 152 ;
c = -0.9 ;
Ce qui suit le signe "%" est un commentaire (utile lorsquon imprime ou relit son
travail). Le point-virgule la n des trois instructions prcdentes vite lafchage du
rsultat.
On utilise ensuite les oprations usuelles (addition, multiplication,...) et la fonction
prdnie sqrt de Matlab pour calculer les solutions de lquation.
%Calcul du discriminant
delta = b^2 -4 * a*c
delta =2.3117e+004
racDelta = sqrt(delta)
racDelta = 152.0414
x1 = (-b - racDelta)/(2*a)
x1 =-43.4345
x2 = (-b + racDelta)/(2*a)
x2 =0.0059
Par dfaut, les rsultats sont afchs avec quatre chiffres aprs la virgule. Mais on peut
modier cet afchage grce la commande format.
format long
x2
x2 =0.00592024557515
format % retour au format dafchage par dfaut
clear
La dernire commande, clear, efface de la mmoire toutes les variables. Elle est utile
si on veut passer un nouvel exercice.

Calculs avec Matlab

21

1.1.2. Remarques
On peut crire plusieurs instructions sur une mme ligne, en les sparant dune
virgule, ou dun point-virgule.
La touche du clavier  permet de rditer les lignes dinstructions dj valides,
pour corriger les fautes de frappe ou recommencer un calcul. On peut aussi se dplacer
sur la ligne courante, pour supprimer, insrer, corriger en utilisant les touches  et
.
Pour quitter correctement Matlab, il suft dutiliser la commande quit.

1.1.3. Connatre les fonctions utilisables


1.1.3.1. Fonctions mathmatiques
En plus de la fonction sqrt dj rencontre, on peut utiliser les fonctions :
logarithmes nprien (log) ou dcimal (log10), exponentielle (exp),
trigonomtriques (sin, cos, tan...),
etc...
1.1.3.2. Lutilisation de helpwin
On peut obtenir la liste de ces fonctions disponibles et leur descriptif en ouvrant la
fentre daide par la commande
helpwin
et en slectionnant Elementary math functions (elfun).
Plus gnralement, cette fentre daide, trs utile, permet dafcher la liste des
fonctions ou commandes correspondant un thme slectionn. Elle permet aussi
dobtenir directement des informations sur une fonction ou une commande dont on
donne le nom.

1.1.4. Calculs rpts sur tous les lments dun tableau


Avec Matlab, lutilisation de tableaux est particulirement simple pour stocker
une suite de valeurs, effectuer globalement des calculs sur lensemble des valeurs du
tableau.

22

Mathmatiques avec Matlab

1.1.4.1. Exemple
Calculer

pour  

 
, puis

pour  




 

On utilise les crochets pour entrer un premier tableau de valeurs isoles :


X =[1 2 5 10]
X =1 2 5 10
On effectue les calculs qui sappliqueront tous les lments du tableau. Il faut
pour cela utiliser loprateur  la place de , de mme  et  respectivement la
place de et 
Y = X2log(1+X)
Y = 0.6931 4.3944 44.7940 239.7895
On entre un second tableau de valeurs rgulirement espaces en donnant successivement la valeur initiale le pas  et la valeur nale 1. On calcule ensuite les
images de ces valeurs :
X1 = [0 : 0.2 : 1]
X1 = 0 0.2000 0.4000 0.6000 0.8000 1.0000
Y1 = X12log(1+X1)
Y1 = 0 0.0073 0.0538 0.1692 0.3762 0.6931

1.2. Graphiques
1.2.1. Reprsentation graphique dune fonction
Pour dessiner le graphe dune fonction dont lexpression est donne, on utilise
ezplot(expression, borneInf, borneSup)
Le cadre et le titre sont automatiquement ajusts. Par exemple :
ezplot (x^2*log(1+x),0,2)
grid on % fait apparatre un quadrillage sur la gure

Calculs avec Matlab

23

x^2*log(1+x)
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0

0.2

0.4

0.6

0.8

1
x

1.2

1.4

1.6

1.8

1.2.2. Autres reprsentations graphiques planes


1.2.2.1. La commande plot
Cest la commande de base, quon utilise sous la forme
plot(X,Y,options)
o  reprsente une abscisse ou un tableau dabscisses,  lordonne ou le tableau
des ordonnes correspondantes, et options est une chane de caractres permettant
de prciser le type et la couleur du trac (utiliser laide concernant cette commande
plot pour connatre ces options). Par dfaut, la gure sajuste automatiquement lensemble des points reprsenter, mais la commande axis permet dimposer ses propres
choix :
axis equal pour un repre orthonorm,
axis([xMin xMax yMin yMax]) pour dnir un cadre.
Plusieurs tracs pourront tre effectus sur la mme gure grce la commande
hold on (par dfaut, une nouvelle gure est cre pour chaque trac, ce qui correspond
hold off ). La commande clf permet de rinitialiser la gure courante. On peut ouvrir
simultanment plusieurs gures, et les numroter, grce la commande gure .
1.2.2.2. Exemple


Dessinons un triangle  une de ses mdianes   et son centre de gravit
On donne les coordonnes des points      dans le plan muni dun repre

24

Mathmatiques avec Matlab

orthonorm :
















 


Pour imposer un repre orthonorm et xer le cadre dni par

on crit
clf ; hold on
axis equal
axis([-1 7 0 6])
On reprsente le point  laide dune croix de couleur rouge :
plot(8/3,2,xr)
On dessine ensuite en pointills le segment   en formant le tableau de ses abscisses
et de ses ordonnes :
X=[2 3] ; Y=[4 1] ;
plot(X,Y,- -)
On construit aussi les tableaux de coordonnes du triangle  , ou plutt de la ligne
polygonale ferme   (pour que le ct   soit lui aussi dessin).
X=[2 0 6 2] ; Y=[4 1 1 4] ;
plot(X,Y) % dessin dun trait continu par dfaut
La commande title permet de donner un titre, et gtext permet de placer laide de la
souris la chane de caractres choisie :
title(Un triangle et une de ses mdianes )
gtext(A) ; gtext(B) ; gtext(C) ; gtext(G) ; gtext(I)

Calculs avec Matlab

25

Un triangle et une de ses mdianes


6

1
B

0
1

1.3. Calcul symbolique avec Symbolic Math Toolbox


Souvent on est amen transformer des expressions algbriques laide de rgles
connues, plutt quvaluer directement leur valeur numrique approche. Si le logiciel
Matlab est avant tout un outil de calcul numrique, son complment Symbolic MathToolbox (bas sur le logiciel Maple) permet deffectuer les calculs mathmatiques
usuels (appels aussi calculs symboliques, ou calculs formels).
1.3.1. Simplication dexpression algbrique
Pour simplier lexpression


 


  

on multiplie numrateur et dnominateur par lexpression dite conjugue de ce dnominateur :

 

  





 

 

  

 

   

Un tel calcul peut tre effectu avec Matlab en utilisant :

26

Mathmatiques avec Matlab

sym qui construit une expression symbolique partir dune chane de caractres ;
simple qui simplie cette expression symbolique.
s= sym(((sqrt(12)+3)/(sqrt(12)-3)))
s =((sqrt(12)+3)/(sqrt(12)-3))
simple(s)
ans =7+4*3^(1/2)
simplify, factor, collect, expand effectuent galement les transformations et simplications de ces expressions, simple appelant une une toutes ces fonctions et retenant
nalement le rsultat le plus simple (celui correspondant la chane de caractres
la plus courte). Pour obtenir une valeur numrique approche de lexpression, il suft
dutiliser double :
double(s)
ans = 13.9282

1.3.2. Un exemple de calcul avec une variable


Soit par exemple lexpression


 





o  dsigne une variable entire. On demande de calculer


puis de montrer que  est toujours le carr dun entier.

pour

    ,

Pour cela, on construit, en utilisant la commande sym, une expression symbolique


dans laquelle gure la lettre  . Puis on utilise la commande subs pour remplacer  par 2 dans lexpression  . Enn la commande factor permet de factoriser le
rsultat et de mettre en vidence un carr parfait.


P = sym(n*(n+1)*(n+2)*(n+3)+1);
subs(P,n,2)
ans = 121
factor(ans)
ans = 11 11
On effectue le mme calcul pour remplacer


par 3, et on ferait de mme pour

  

factor(subs(P,n,3))
ans = 19 19

Calculs avec Matlab

Pour montrer que


pression  :

27

est toujours le carr dun entier, on factorise directement lex factor(P)


ans = (n^2+3*n+1)^2

Le rsultat montre que  est toujours le carr de lentier 


.

1.3.3. Utilisation de syms


Une simple variable (mathmatique) telle que , ,  est elle-mme une expression symbolique lmentaire et il est souvent commode de laffecter une variable
(informatique) de mme nom :
n=sym(n) ; x = sym(x) ; theta = sym(theta)
On peut remplacer cette suite daffectations par la seule commande
syms n x theta
On peut ensuite effectuer des calculs utilisant ces variables :
subs(exp(x),x,n*theta)
ans = exp(n*theta)
On peut imposer aux variables mathmatiques ainsi dclares de prendre des valeurs
relles (par dfaut, elles prennent des valeurs dans  ) ou relles positives :
syms x real
simplify(sqrt(x^2))
ans =signum(x)*x
syms x positive
simplify(sqrt(x^2))
ans = x

1.3.4. Calculs trigonomtriques


Le calcul symbolique permet deffectuer des calculs trigonomtriques exacts, ne
pas confondre avec le calcul numrique approch :
sym(cos(pi/4))
ans = sqrt(1/2)
cos(pi/4)
ans = 0.7071

28

Mathmatiques avec Matlab

Les commandes expand, simplify, factor permettent aussi de dvelopper, simplier, factoriser les expressions trigonomtriques par application des formules usuelles.
syms x y
expand (cos(x+y))
ans=cos(x)*cos(y) - sin(x)*sin(y)
La commande simple teste lapplication de plusieurs mthodes, pour retenir lexpression la plus simple
syms x
simple(cos(x)^2-sin(x)^2)
% plusieurs rponses dont
simplify : 2*cos(x)^2-1
factor : (cos(x)-sin(x))*(cos(x)+sin(x))
...
ans= cos(2*x)

1.3.5. Rsolution dquations ou dinquations


Le calcul symbolique permet aussi de transformer, puis rsoudre des quations,
des systmes dquations ou des inquations. La commande de base est solve.
1.3.5.1. Equations
Rsolvons les quations



et

  


 
 





 


  
 .

On utilise pour cela les commandes syms, solve, subs.


syms x
E = 2*x^3-13*x^2-10*x+21;
solve(E)
ans = [ 1 -3/2 7]
E1=subs(E,x,log(x))
E1 = 2*log(x)^3-13*log(x)^2-10*log(x)+21
solve(E1)
ans = [ exp(1) exp(-3/2) exp(7) ]

Calculs avec Matlab

29

1.3.5.2. Systme dquations


On rsout le systme



  

    .

par :
[X,Y]=solve(2*exp(x)-exp(y)=15,exp(x)+2*exp(y)=40)
X = log(14)
Y = log(13)
1.3.5.3. Une inquation
La fonction solve de Matlab ne permet pas de rsoudre des inquations. Il faut
utiliser directement celle de Maple. Par exemple linquation


     

se rsout avec la syntaxe suivante :


maple(solve((x-3)^4(x-3)))
ans = RealRange(-inf,Open(3)), RealRange(Open(4),inf)
Lensemble solution est donc  
  
.
1.3.6. Mises en garde
1.3.6.1. Remarque 1
La commande maple prsente ci-dessus ne reconnat pas les variables dnies
dans lenvironnement Matlab. Si on a dni par exemple :
syms x ; A=(x-3)^4 ; B= x-3 ;
linstruction

solve(A-B)

peut tre utilise pour rsoudre lquation




mais linstruction

     

maple(solve(AB))

donnera
ans =

30

Mathmatiques avec Matlab

1.3.6.2. Remarque 2
Le calcul symbolique de Matlab ne prend pas en compte les cas particuliers. Par
exemple, lorsquon doit rsoudre lquation, dinconnue ,




 

on a, pour   , la solution


mais pour 
Matlab :

lquation na pas de solution. Ce cas nest pas pris en compte par


syms x m
solve(m*x=m-1,x)
ans = (m-1)/m

De la mme faon, des simplications abusives peuvent tre effectues :


syms x m
simplify((x-m-x)/m)
ans = -1
Il appartient donc lutilisateur de dtecter ces cas particuliers, et de les traiter part.
1.3.6.3. Remarque 3
Les variables symboliques sont supposes relles, relles positives, ou complexes.
On ne peut restreindre leur domaine un intervalle born de , ni  , , .... On
ne pourra donc obtenir de simplication de    si on suppose  entier, car cette
hypothse ne peut pas tre prise en compte par Matlab.
1.3.6.4. Remarque 4
Les rsultats obtenus dans le calcul symbolique avec Symbolic Math Toolbox dpendent essentiellement de la version utilise. Nous avons par exemple constat des
diffrences entre les versions 2.0 et 2.1.3.
1.4. Itrations et tude de suites
Les instructions ditration classiques, while et for, permettent de rpter un traitement sur les termes successifs dune suite.
La syntaxe gnrale est :
for variable = valeurInitiale : pas : valeurFinale
% traitements rpter
end

Calculs avec Matlab

ou bien

31

while condition
% traitements rpter
end

On veut par exemple calculer les 20 premiers termes de la suite gomtrique de


raison 0.5 et de premier terme 100, puis dterminer la somme de ces termes. On place
dans un tableau


 


 



les termes successifs de cette suite :


U(1) = 100 ;
for i=1 :1 :19
U(i+1) =0.5* U(i) ;
end
Aucun afchage ne se produit, en raison du
 

plac la n de linstruction


    



Si on souhaite nafcher que les quatre premiers et les cinq derniers termes :
U(1 :4)
100.0000 50.0000 25.0000 12.5000
U(16 :20)
0.0031 0.0015 0.0008 0.0004 0.0002
Enn, on utilise la fonction Matlab sum pour calculer la somme de tous les lments
du tableau  :
sum(U)
ans =199.9998
On calcule maintenant tous les termes de la suite jusqu lobtention dun terme infrieur
 
V(1) = 100 ; i = 1 ;
while V(i)=1e-6,
V(i+1)=0.5*V(i) ;
i= i+1 ;
end
On utilise la fonction length, qui donne le nombre dlments du tableau :
length(V)
ans = 28

32

Mathmatiques avec Matlab

En faisant afcher les lments de  au format long, on peut vrier que 


premier terme infrieur
 



est le

format long
V
...
Columns 25 through 28
0.00000005960464 0.00000002980232 0.00000001490116 0.00000000745058

1.5. Exercices
1.5.1. Format long, format short
Calculer la valeur numrique de

pour  


, au format "short", puis au format "long".
(solution p. 34)
1.5.2. Tableau dvaluation
Calculer les valeurs numriques de

pour   


   



(solution p. 34)
1.5.3. Graphe dune fonction
Reprsenter graphiquement la fonction  dnie par
 

sur lintervalle 

 

.

(solution p. 35)

Calculs avec Matlab

33

1.5.4. Dessin dun quadrilatre


On donne les points





Dessiner dans un repre orthonorm le quadrilatre   et ses diagonales.

(solution p. 35)

1.5.5. Egalits symboliques


On donne lexpression


 

 




 



Vrier les galits

        

     

 

  

.

(solution p. 36)

1.5.6. Itrs dune suite


1) Calculer les 20 premiers nombres de Fibonacci dnis par





 

  .

2) Calculer tous les nombres de Fibonacci infrieurs


 . Combien y en a-t-il ?

(solution p. 37)

34

Mathmatiques avec Matlab

1.5.7. Suite de Fibonacci


On dnit les rels


et, pour tout entier  

,



(I)

1) Montrer que, pour tout  


,
 

2) Trouver et  pour que



 

3) On en dduit que
dni par la formule I, avec les valeurs de et  obtenues
la question 2, est le -ime nombre de Fibonacci (cf 1.5.6). Le vrier en calculant
les 20 premiers nombres de Fibonacci laide de la formule (I) et en comparant aux
rsultats de lexercice 1.5.6.

1.6. Solutions
Exercice 1.5.1
On utilise la fonction exp et la constante pi pour effectuer le calcul.
format
x=1.3181 ;
y= exp(-x^2/sqrt(2*pi))
y = 0.5000
format long
y = 0.50001490296477
Ce deuxime afchage montre que nest pas exactement gal
, contrairement
ce que le premier afchage pouvait laisser penser !
Exercice 1.5.2
On cre le tableau  des valeurs de , puis on obtient  tableau des valeurs correspondantes pour

Calculs avec Matlab

X =0.5 :0.5 :5 ;
Y = exp(-X.^2./sqrt(2*pi))
Y = 0.9051 0.6710 0.4075 0.2028 0.0826
0.0276 0.0075 0.0017 0.0003 0.0000

Exercice 1.5.3

ezplot(exp(-x^2/sqrt(2*pi)),-3,3)
grid on

exp(x^2/sqrt(2*pi))

0.8

0.6

0.4

0.2

0
3

0
x

Exercice 1.5.4
On forme les tableaux dabscisses et dordonnes, pour la ligne polygonale
!" #

les segments   et 

 

35

36

Mathmatiques avec Matlab

Xquad=[3 5 7 1 3] ;
Yquad=[6 6 2 2 6] ;
plot(Xquad,Yquad) ;%trait continu
hold on ;
axis equal ; axis([0 8 0 8])
Xac=[3 7] ;
Yac=[6 2] ;
plot(Xac,Yac,- -) ; % pointill
Xbd=[5 1] ;
Ybd=[6 2] ;
plot(Xbd,Ybd,- -)
gtext(A) ;gtext(B) ;gtext(C) ;gtext(D) ;

7
A

Exercice 1.5.5
On dnit lexpression  comme diffrence de


 

 

et





 

 







Calculs avec Matlab

37

syms x y
Ex = (cos(x-pi/4))^2-(sin(x-pi/4))^2;
Ey= subs(Ex,x,y) ;
E= Ex - Ey ;
La commande simple permet de faire apparatre deux des trois expressions demandes.
simple(E)
expand :
2*sin(x)*cos(x)-2*sin(y)*cos(y)
combine(trig) :
sin(2*x)-sin(2*y)
Pour la troisime, on effectue la vrication inverse :
F = 2*sin(x-y)*cos(x+y)
simple(F)
ans = sin(2*x)-sin(2*y)
On peut aussi vrier que la diffrence entre les deux expressions est nulle.
simple(F-E)
ans = 0

Exercice 1.5.6
Utilisation de linstruction for : les deux premiers termes tant donns, on calcule les 18 suivants.
F(1) = 1 ;F(2)=1 ;
for n=1 :18,
F(n+2)=F(n)+F(n+1) ;
end
F
F =1 1 2 3 5 8 13 21 34 55 89 144 233
377 610 987 1597 2584 4181 6765
Utilisation de linstruction while : litration se terminera lorsque





38

Mathmatiques avec Matlab

Tous les termes, sauf le dernier, sont donc infrieurs



clear F
F(1)=1 ;F(2)=2 ;
n = 2;
while(F(n)$1e6),
F(n+1)=F(n)+F(n-1) ;n=n+1 ;end
F(1 :n-1)
ans = 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
1597 2584 4181 6765 10946 17711 28657 46368
75025 121393 196418 317811 514229 832040
n-1
ans = 29
Exercice 1.5.7
1) On dclare les variables symboliques
  et

 

et on dnit par leurs expressions

A = sym((1+sqrt(5))/2);
B = sym((1-sqrt(5))/2);
syms a b n
Fn=a*A n+b*B n
Fn=a*(1/2+1/2*5 (1/2))n+b*(1/2-1/2*5 (1/2))n
On vrie la relation de rcurrence
FnPlus1 = subs(Fn,n,n+1) ;
FnPlus2 = subs(Fn,n,n+2) ;
simple(FnPlus2-FnPlus1-Fn)
ans = 0
2) On calcule

et

puis on cherche et  vriant les conditions

 

Les solutions du systme obtenu sont places dans des variables  et  :


F1 = subs(Fn,n,1)
F1 = a*(1/2+1/2*5 (1/2))+b*(1/2-1/2*5 (1/2))
F2 = subs(Fn,n,2)
F2 = a*(1/2+1/2*5 (1/2))2+b*(1/2-1/2*5 (1/2))2
[a1, b1] =solve(F1-1, F2-1)
a1 = 1/5*5 (1/2)
b1 = -1/5*5 (1/2)

Calculs avec Matlab

39

3) On remplace, dans lexpression de


et  par les valeurs obtenues ci-dessus,
et on calcule les 20 premiers termes de la suite :
Fn=subs(Fn,a,a1) ; Fn=subs(Fn,b,b1)
Fn =1/5*(1/2+1/2*5 (1/2))n*5(1/2)-1/5*(1/2-1/2*5 (1/2))n*5(1/2)
for k=1 :20, f(k)= simple(subs(Fn,n,sym(k))) ;end
f
f = 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
1597 2584 4181 6765
On retrouve bien les valeurs de la suite de Fibonacci.

40

Chapitre 2

Programmation avec Matlab

Dans le chapitre prcdent, on a vu comment entrer une une des instructions Matlab, pour en obtenir immdiatement le rsultat. Mais Matlab est aussi un langage de
programmation, permettant dcrire et de rutiliser des sous-programmes, deffectuer
des tests logiques, dexcuter des actions conditionnelles, etc...

2.1. Crer des sous-programmes


2.1.1. Mmoriser des instructions dans un chier script
Un chier script est simplement un chier texte contenant une suite dinstructions.
Cela permet de mmoriser, de corriger, de rutiliser ces instructions. A laide dun
diteur de texte 1, on cre dans le rpertoire courant un chier dont le nom comporte
obligatoirement lextension .m, par exemple

%&' (
"() "'

*

 

on y copie les instructions voulues, en respectant la syntaxe de Matlab, en plaant


des commentaires appropris, puis on sauvegarde. Pour excuter ces instructions, il
sufra, sous  '(  dappeler
scriptCalculSuiteFibonacci

. Lenvironnement Matlab, pour la plupart des versions, comprend un diteur, que lon ouvre
en slectionnant le menu File/New/M.le.

41

42

Mathmatiques avec Matlab

2.1.2. Reprsenter une fonction mathmatique


2.1.2.1. Exemple
On considre la fonction   dnie par
 

 

On cre l aussi un chier texte dans lequel sera dnie la fonction   . Ce chier doit
tre enregistr dans le rpertoire de travail courant, sous le nom 
. Le contenu de
ce chier doit respecter scrupuleusement la syntaxe suivante :
% fonction qui calcule y = x * log(x)
function y = f1(x)
y = xlog(x) ;
La premire ligne est un commentaire qui sera automatiquement afch si on appelle
+(& 

La deuxime indique que le calcul de la fonction dpend dune variable (ici ) et que
la valeur que devra retourner cette fonction est . La troisime ligne indique justement
le calcul de en fonction de . Lutilisation de lopration  permettra dappliquer
cette fonction un tableau de valeurs.
Dnir ainsi une fonction permet deffectuer, selon les besoins :
des calculs numriques
f1(1.5)
ans = 0.6082
des calculs sur des tableaux de valeurs ( condition de bien noter .*, ./, .^ les
oprations effectuer)
X =1 :0.1 :2 ;
f1(X)
ans = 0 0.1048 0.2188 0.3411 0.4711 0.6082
0.7520 0.9021 1.0580 1.2195 1.3863
des calculs symboliques : on vrie par exemple que, pour tous rels strictement
positifs 
 





 

syms a b positive
b*f1(a)+a*f1(b)
ans = b*a*log(a)+a*b*log(b)
simple( b*f1(a)+a*f1(b) -f1(a*b))
ans = 0

Programmation avec Matlab

43

des reprsentations graphiques, en utilisant la commande fplot


fplot(f1,[0.2 5])
grid on
title(fonction f1(x) = x * log(x))
fonction f1(x) = x * log(x)
9
8
7
6
5
4
3
2
1
0
1

0.5

1.5

2.5

3.5

4.5

2.1.2.2. Comparaison entre deux mthodes


Au chapitre prcdent, on a vu comment reprsenter une fonction mathmatique
laide dune expression symbolique :
syms x
f1DeX=xlog(x) ;
Cela peut paratre plus simple que de crer un chier f1.m contenant la dnition de
la fonction. Mais, lusage, il est plus naturel dutiliser :
f1(3)
ans = 3.2958
plutt que
subs(f1DeX,x,3))
ans = 3.2958
De plus, lorsquon doit effectuer des calculs rpts un grand nombre de fois, lutilisation des expressions symboliques gnre un temps de traitement plus long. Les
commandes Matlab tic et toc permettent de lancer et darrter un "chronomtre". Les

44

Mathmatiques avec Matlab

rsultats obtenus dpendent de la machine utilise. On obtient par exemple


tic ;for i=1 :1 :1000,y=f1(i) ;end ;toc
elapsedtime =0.0147
tic ;for i=1 :1 :1000,y=double(subs(f1DeX,x,i));end ;toc
elapsedtime = 3.2738
3.2738/0.0147
ans = 222.7075
La deuxime itration a ncessit dans ce cas un temps dexcution plus de 200 fois
suprieur par rapport la premire !

2.1.3. Crer un sous-programme avec paramtres


Un sous-programme permet de mmoriser, dadapter, de rutiliser un calcul. On
lappelle fonction en informatique ( ne pas confondre avec une fonction au sens
mathmatique, mme si les deux notions se rejoignent parfois, comme au paragraphe
prcdent).
Matlab dispose de plusieurs centaines de fonctions prdnies, mais lutilisateur
peut aussi crer ses propres fonctions.
2.1.3.1. Exemple 1
On peut crer une fonction  *

  qui calcule et retourne le tableau constitu des  premiers nombres de Fibonacci. L aussi, lensemble des instructions doit
tre enregistr dans un chier texte du rpertoire courant, appel  *

 
% Fonction qui calcule et retourne les n
% premiers nombres de Fibonacci
function F = bonacci(n)
F(1)=1 ; F(2)=1 ;
for i=3 :n
F(i)=F(i-1)+F(i-2) ;
end
On peut alors appeler cette fonction en remplaant le paramtre  par la valeur souhaite :
T = bonacci(6)
T=112358
total = sum(bonacci(30))
total = 2178308

Programmation avec Matlab

45

2.1.3.2. Remarques
Len-tte
function F=bonacci(n)
indique la fois le nom de la fonction (bonacci), le nom du ou des paramtres (ici n),
et la valeur (ou la liste de valeurs) retourne (ici ). On doit respecter scrupuleusement
cette syntaxe, en ladaptant aux besoins.
Une fonction peut dpendre de plusieurs paramtres, ou daucun. Elle peut retourner une valeur, une liste de valeurs, ou mme aucune valeur si son but est dexcuter
une action (construction dun graphique, afchage de rsultats). A titre dexemple,
lexercice 2.5.1 p. 55 a pour but de construire une fonction dpendant de deux paramtres et retournant une liste de deux valeurs.
2.1.3.3. Exemple 2
On aura not que, par dfaut, les graphiques sous Matlab font apparatre un cadre
gradu, mais pas les axes du repre.

ezplot(log(1+x),-1,2)
grid on
log(1+x)

0.5

0.5

1.5

2.5

0.5

0.5
x

1.5

On peut crer une fonction dessineRepere qui permet de faire apparatre ces axes en
traits mixtes et pais.

46

Mathmatiques avec Matlab

function dessineRepere
hold on
V=axis ;
% V contient les abscisses et ordonnes minimum et maximum courantes
Xmin=V(1) ;Xmax=V(2) ;Ymin=V(3) ;Ymax=V(4) ;
plot([Xmin Xmax],[0 0],-.,LineWidth,1.5)
% LineWidth permet de choisir la largeur du trait (1 par dfaut)
plot(Xmax,0,,LineWidth,1.5) %dessine la che horizontale
plot([0 0],[Ymin Ymax],-.,LineWidth,1.5)
plot(0,Ymax,^,LineWidth,1.5)
Son utilisation donne ici
dessineRepere

log(1+x)

0.5

0.5

1.5

2.5

0.5

0.5
x

1.5

2.2. Traitements conditionnels, expressions logiques


Les instructions conditionnelles (avec if elseif else ) interviennent dans la dnition de certaines fonctions mathmatiques.

Programmation avec Matlab

2.2.1. Exemple : tude dune fonction dnie par morceaux


On considre la fonction  dnie sur [0, 1] par


















- 


 

si




si

 $

si

$ 





On trace la reprsentation graphique de  dans un repre orthonorm









Pour cela, on dnit dans un chier fParMorceaux.m :


function y = fParMorceaux(x)
if(x $1/4) y=x.^2-1/2*x+5/16;
elseif x$=3/4 y=x ;
else y= -x.^2+3/2*x+3/16 ;
end
On peut ensuite appeler
fplot(fParMorceaux,[0 1])
axis equal
grid on

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

47

48

Mathmatiques avec Matlab

On peut aussi effectuer des calculs numriques avec cette fonction :


a=1/6 ; fParMorceaux(a)
ans = 0.2569.
Mais les mthodes de la Symbolic Math Toolbox ne grent pas les expressions dans
lesquelles gurent des conditions.
a=sym(1/6) ;fParMorceaux(a)
? ? ? Function $ is not dened for values of class sym.
Pour effectuer des calculs symboliques (calculs de limites, drives, primitives, etc...),
il faudrait donc crire les trois expressions dnissant  et effectuer les calculs successivement sur chacune delles.

2.2.2. Expressions logiques et quanticateurs


Les expressions logiques utilisent le plus souvent les oprateurs de comparaison
quon rappelle ici :
 gal
  diffrent

strictement suprieur
 suprieur ou gal
$
strictement infrieur
$ infrieur ou gal
Elles utilisent aussi les oprateurs logiques  (et),  (ou),  (non))
Exemple
On considre la fonction  dnie en 2.2.1. On peut vrier, en notant


quon a, pour tout   

 


 




 

On dnit :
X=[0 :0.001 :1] ;
Y=fParMorceaux(X) ;
Z=fParMorceaux(Y) ;

Programmation avec Matlab

49

On peut alors tester globalement les proprits des lments de  et , en utilisant les
fonctions all et any :
all(Y=0 & Y$=1)
ans = 1 % tous les lments de Y sont compris entre 0 et 1
all(Y==Z)
ans = 1
% chaque lment de Y est gal llment correspondant de Z
% Inversement :
any(Y~=Z)
ans = 0

2.2.3. Exemple de fonction rcursive


Une fonction rcursive (fonction dont lexcution peut appeler la fonction ellemme) est base sur un schma conditionnel. En mathmatiques, une dnition par
rcurrence conduit assez naturellement la construction dune fonction rcursive.
Exemple
Partant de la dnition par rcurrence de la factorielle dun entier :

 

  



 




on dnit dans un chier factorielle.m :


function res=factorielle(n)
if n==0, res=1 ;
else res=n*factorielle(n-1) ;
end
A lutilisation, on obtient

factorielle(10)
ans = 3628800

On a ici un exemple de fonction rcursive : factorielle


lui-mme appelle factorielle 

Le principe de rcurrence montre que


factorielle
calcule bien  pour tout   :
par construction, factorielle



retourne bien % 

appelle factorielle

qui

50

Mathmatiques avec Matlab

si on suppose que factorielle


rielle  retourne bien la valeur
%


 retourne la valeur


 alors facto-


'*%((  
    
  
(voir aussi exercice 2.5.3 p. 56)

2.3. Les types de donnes utiliss par Matlab


Avec Matlab, on dnit des expressions et on utilise des variables sans dclarer
explicitement leur type (numrique, symbolique, tableau, chane de caractres). Cest
la valeur affecte une variable qui dtermine le type de celle-ci. Le plus souvent, le
type des expressions manipules est adapt au calcul souhait (calcul numrique approch, calcul symbolique, calcul sur des tableaux de valeurs) dautant que la plupart
des oprations ou fonctions sappliquent de manire adapte chaque type (laddition
par exemple effectue aussi bien la somme de deux valeurs numriques que celle de
deux tableaux de valeurs ou celle de deux expressions symboliques).
Mais il est parfois ncessaire de connatre le type prcis des expressions traites et
de faire la distinction entre ces types. Considrons par exemple les trois affectations
suivantes :
n = 123 ;
% type numrique
c = 123 ;
% type chane de caractres
s = sym(123) ; % type expression symbolique
 est de type numrique,

est de type chane de caractres,
 est de type expression symbolique.
Mme si, lafchage, les valeurs de ces variables apparaissent identiques, les
oprations qui seffectueront sur chacune delles ne seront pas les mmes !
La commande whos permet de visualiser le type de ces trois variables.
whos
Name Size Bytes Class
c
1x3
6
char array
n
1x1
8
double array
s
1x1
130 sym object
Grand total is 8 elements using 144 bytes

Programmation avec Matlab

51

2.3.1. Type numrique


Avec des variables, expressions ou tableaux de ce type, Matlab effectue des calculs
numriques approchs. Cest son mode de calcul par dfaut.
Les calculs se font en base deux, avec des mantisses de 52 chiffres (cette reprsentation interne est dveloppe dans le tome 2, au chapitre 4, consacr larithmtique de lordinateur).
A lafchage les valeurs numriques apparaissent en base 10,.
x= 80/18, y = sqrt(x)
x = 4.4444
y = 2.1082
X =1 :0.2 :2
X = 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000
Y = X*log(X)
Y = 0 0.2188 0.4711 0.7520 1.0580 1.3863
Les options de la commande format permettent de choisir le mode dafchage :
a=pi^3
a = 31.0063
format long ; a
a = 31.00627668029982
format short e ; a
a = 3.1006e+001
format long e ; a
a = 3.100627668029982e+001
2.3.2. Chanes de caractres
Ce sont en fait des tableaux de caractres. Chaque caractre est accessible par son
indice.
c =2et2font4 ;
c(5 :8)
ans = font
Elles permettent de manipuler du texte quon peut concatner (voir strcat) ou placer dans une fentre graphique (voir gtext, title).
Ces chanes peuvent aussi dnir une expression mathmatique. Elles sont alors
traites comme une expression symbolique quon peut reprsenter graphiquement
(voir -&(*') ou valuer numriquement (voir eval).

52

Mathmatiques avec Matlab

A linverse, un nombre rel peut tre converti en chane de caractres (num2str).


A titre dexemple, on pourra analyser chacune des instructions ci-dessous et en
visualiser leffet sur la gure.
expr = x*log(x) ;
ezplot (expr,1,2)
title(strcat(y = ,expr, sur [1 2]))
x = 1.5 ; y = eval(expr)
y = 0.6082 ;
hold on ; plot(x,y, o)
texte = strcat([ x = , num2str(x), y = , num2str(y), ])
gtext(texte)
y =x*log(x) sur [1 2]
1.5

[ x =1.5 y =0.6082 ]
0.5

0
1

1.1

1.2

1.3

1.4

1.5
x

1.6

1.7

1.8

1.9

Les chanes de caractres permettent aussi de reprsenter et convertir les


nombres entiers en base 2, 16, et plus gnralement en base  (voir tome 2, chapitre 4,
arithmtique de lordinateur).
2.3.3. Type symbolique
Des variables, expressions et tableaux de ce type permettent de dnir des variables mathmatiques (voir syms) et deffectuer des calculs symboliques. La commande sym permet de convertir une expression numrique ou une chane de caractres
en type symbolique. A linverse, la commande double convertit une expression symbolique sans variable en type numrique. Voici un exemple de calcul symbolique sur
un tableau de valeurs, puis de conversion de ce tableau en numrique :

Programmation avec Matlab

53

T = sym([0 :pi/12 :pi/2])


T = [ 0, pi/12, pi/6, pi/4, pi/3, 5*pi/12, pi/2]
C = simple(cos(T))
C = [ 1, 1/4*6^(1/2)*(1+1/3*3^(1/2)), 1/2*3^(1/2),
1/2*2^(1/2), 1/2, 1/4*6^(1/2)*(1-1/3*3^(1/2)), 0]
Cnum = double(C)
Cnum = 1.0000 0.9659 0.8660 0.7071 0.5000 0.2588 0

2.4. Quelques commandes importantes de Matlab


2.4.1. Sauvegardes
On a vu que, pour sauvegarder une session de travail (commandes et rponses),
dans un chier texte nomm par exemple session.txt, il fallait utiliser ds le dbut de
la session
diary session.txt

Les sous-programmes (scripts, fonctions) enregistrs dans des chiers dextension


m (voir paragraphe 2.1) sont videmment sauvegards au fur et mesure.

Pour sauvegarder un graphique dans un chier au format PostScript, nomm par


exemple monDessin.ps, on utilise la commande
print -dps monDessin
Lextension & sera donne automatiquement au nom du chier.
Pour sauvegarder lensemble des variables de la session de travail en cours, dans
un chier nomm par exemple mesVariables, on utilise
save mesVariables
Lextension .mat est automatiquement ajoute.
Mme si on quitte Matlab, on pourra lors dune session ultrieure reprendre lexercice
l o on lavait laiss laide de la commande
load mesVariables

54

Mathmatiques avec Matlab

2.4.2. Gestion des variables


En gnral, le rsultat dun calcul est affect une variable, ce qui permet de
rutiliser ultrieurement sa valeur.
Si une expression calculer nest pas affecte une variable, cest par dfaut la
variable ans qui est affecte ou modie.
On peut effacer la valeur dune variable  par la commande
clear x
(utile par exemple pour rinitialiser un tableau), et on peut effacer lensemble des
variables par
clear

2.4.3. Gestion de lafchage


Pour modier le format dafchage des valeurs numriques, on utilise la commande format optionsDeFormat o optionsDeFormat peut tre gal +*%' (*.
etc...
Pour rinitialiser la fentre dafchage, on utilise la commande
clc
Pour rinitialiser la fentre graphique, on utilise la commande
clf

helpwin, on la vu, ouvre une fentre graphique daide, alors que help afche laide
dans la fentre courante.
Pour visualiser le contenu du chier monScript.m contenant un script ou une fonction on utilise la commande
type monScript.m

Lorsquon excute un chier 


%&', on peut visualiser au fur et mesure les commandes en mme temps que leur rsultat grce la commande pralable
echo on

Programmation avec Matlab

55

2.5. Exercices
2.5.1. Division euclidienne
Ecrire une fonction
/

%

#0 "
( 

qui calcule le quotient et le reste de la division de lentier par lentier non nul . On
pourra, pour effectuer le calcul, utiliser la fonction oor qui donne la partie entire
dun nombre rel, et la fonction mod qui calcule le reste de la division euclidienne.

(solution p. 56)

2.5.2. Suite pseudo-alatoire


Une suite pseudo-alatoire de nombres entiers est gnre de la manire suivante :
on se donne trois entiers xs
 avec et  non nuls ;
on choisit une premire valeur   ;
on dnit par rcurrence la suite des valeurs

  par :

 est le reste de la division de  


par .

Ecrire une fonction   "'(


    qui construit ainsi dans un
tableau  une suite de  nombres entiers pseudo-alatoires, compris entre et  
.
Tester dans un cas simple, en vriant que, pour




 



les 12 premiers nombres obtenus sont


1, 13, 14, 27, 10, 6, 16, 22, 7, 29, 5, 3.
Remarque : en choisissant  sufsamment grand et en divisant tous les termes de
la suite obtenue par , on obtient une suite de nombres rels pseudo-alatoires dans
lintervalle [0, 1].

(solution p. 57)

56

Mathmatiques avec Matlab

2.5.3. P.G.C.D de deux nombres


On peut montrer par rcurrence sur que le plus grand commun diviseur (PGCD)
de deux entiers naturels et  tels que   est dni par :

si   ou  
sinon

   

   

    % 

(% est le reste de la division euclidienne de


calcule ce reste).

par , la fonction Matlab

*# 

Ecrire une fonction rcursive


#

   

utilisant cette dnition.


(solution p. 57)
2.5.4. Calculs sur une chaine de caractres
1) On donne la chane de caractres

/%'  .
a) Que reprsente
 ?
b) Comment obtenir la valeur exacte de
pour    ?
c) Comment obtenir la valeur numrique approche de
pour    ?
2) Convertir
en expression symbolique  et reprendre pour  les questions de (1).
3) Dnir dans un chier   la fonction  '(  telle que
 

et reprendre pour  les questions de (1).


(solution p. 58)
2.6. Solutions
Exercice 2.5.1
On cre dans un chier divEuclid.m la fonction divEuclid qui calcule dabord
/

puis %

 



 

Programmation avec Matlab

57

function [q,r] = divEuclid(a,b)


q= oor(a/b) ;
r = mod(a,b) ;
On teste cette fonction sur un exemple :
[q,r] =divEuclid(22,5)
q=4
r=2
% On a bien 22 = 5 x 4 + 2

Exercice 2.5.2
De mme que prcdemment, on cre la fonction suiteAlea, puis on la teste sur
lexemple propos dans lnonc.

function X=suiteAlea(a,c,m,x1,n)
X(1)=x1 ;
for k = 1 :n-1,
[q,X(k+1)]= divEuclid(a*X(k)+c,m);
end
X = suiteAlea (13,0,31,1,12)
X = 1 13 14 27 10 6 16 22 7 29 5 3

Exercice 2.5.3
On reprend les deux cas donns dans lnonc.
function d=PGCD(a,b)
if (b==0 b==a)
d=a ;
else
r = mod(a,b) ;
d = PGCD(b,r) ;
end

58

Mathmatiques avec Matlab

Exercice 2.5.4
1) On cre la chane de caractres
:
c = 1+sqrt(x) ;
c(5)
ans = r % c(5) est le cinquime caractre de la chane c
x = 5 ; eval(c)
ans = 3.2361 % valeur numrique approche
subs(c,x,sym(5)) % subs sapplique aussi au type chane
ans = 5^(1/2)+1
2) A partir de
, on cre lexpression symbolique  :
s = sym(c) ;
s(5)
? ? ? Index exceeds matrix dimensions.
% s nest pas un tableau, contrairement c !
subs(s,x ,5) % valeur exacte
ans = 5^(1/2)+1
double(ans) % conversion en numrique
ans = 3.2361
3) On cre la fonction Matlab  laide dun chier " " :
function y = f(x)
y = 1+sqrt(x) ;
puis on utilise cette fonction  :
f(5) % image de 5 par la fonction f
ans = 3.2361 % valeur numrique approche
f(sym(5)) % image par f dune expression symbolique
ans = 5^(1/2)+1 % rsultat de type symbolique

D EUXIME PARTIE

Algbre linaire

59

60

Chapitre 3

Systmes linaires : mthode de Gauss

Nous commenons par prsenter laspect calculatoire de rsolutions de systmes


linaires quelconques. Tout naturellement apparatra un travail sur des tableaux rectangulaires.
3.1. Systmes linaires
3.1.1. Dnition
On dit quon a un systme linaire de  quations
lorsquon a les quations :

)





















 

 

..
.

  

..
.

 




&

inconnues

     
     
    

 

 

&




1
1

..
.

..
.

o les donnes sont :




1) le second membre du systme constitu par les nombres rels ou complexes


 ...,  ,

2) les coefcients rels ou complexes  pour  prenant toutes les valeurs entre

et  et  prenant toutes les valeurs entre


et &. (, & constantes donnes du systme).




dsigne la  
ligne du systme

61

) 

62

Mathmatiques avec Matlab

Les inconnues dterminer sont  

 

Le systme est dit carr lorsque   &. Cest le cas o on a autant dquations que
dinconnues. Mais on aura aussi considrer des systmes o  et & sont quelconques.
On dira que le systme est homogne lorsque les donnes   sont nulles pour
 On peut remarquer quun systme linaire homogne admet au moins la
solution nulle          Ce nest pas ncessairement la seule
comme le montre lexemple suivant





 



  

1

 

qui admet, en plus de la solution triviale,






 ,



la solution









(et beaucoup dautres !)


3.1.2. Lensemble des solutions
On notera  lensemble des solutions du systme ) . Cet ensemble peut tre vide,
ou contenir une unique solution      ou contenir plusieurs solutions.
Si on suppose connue une solution particulire de




et si on pose, pour 



&

)

note

 

alors


est solution du systme homogne

) 





















 

 

..
.

  

..
.

 

    

 

 

    

 

 

1
1

..
.

..
.

Systmes linaires : mthode de Gauss

63

Do le rsultat :
La solution gnrale du systme )  sobtient en ajoutant
une solution particulire de )  la solution gnrale du
systme homogne )  .
3.1.3. Systmes remarquables
Il existe des systmes, dits chelonns, dont la rsolution est simple. Ce sont les
systmes pour lesquels tous les coefcients sous la diagonale sont nuls, cest--dire
pour lesquels
     
Ils peuvent tre de trois formes :
1) les systmes triangulaires suprieurs,  quations et  inconnues, de la forme :

)




















 




  

 

  




 


..
.
 
..
.

Il est clair que si tous les  sont non nuls, par remontes successives on obtient toutes
les inconnues  On aura dans ce cas, une unique solution du systme.
2) Les systmes chelonns de forme trapzodale, o il y a plus dinconnues que
dquations, cas o  $ &. Ils se prsentent sous la forme

)










 

   
   

..
.

 

Dans ce cas, si tous les coefcients 


   sont non nuls, le systme
admet une innit de solutions, obtenues en donnant des valeurs arbitraires aux &  
inconnues         On peut alors exprimer les  premires inconnues
 
    en fonction de ces valeurs arbitraires.
En voici un exemple simple, pour lequel    et &   :

)

- 

 -  

1
1

64

Mathmatiques avec Matlab

La valeur de - peut tre choisie arbitrairement, et les solutions sont de la forme





'

'  

'   '

'

3) Les systmes chelonns o on a   &

)























 




    


 
..
.

 

 


..
.

..
.

..
.




Dans ce cas, il y a plus dquations que dinconnues. Pour ces systmes il y a deux
possibilits : ou bien au moins lun des nombres       nest pas nul et le
systme na aucune solution, ou bien tous les nombres       sont nuls, et on
est ramen un systme triangulaire suprieur & inconnues et & quations.
3.2. Oprations fondamentales sur les systmes
Il existe trois actions simples (dues Gauss) qui permettent de transformer un
systme )  en un systme quivalent plus simple rsoudre.
1) 1re action : Dans un systme donn ) , on peut changer deux lignes quelconques 1 et 1 . On crira
1  1
2) 2me action : On peut remplacer une ligne quelconque 1  par lun de ses multiples non nuls. On notera
1  2 1
2 
3) 3me action : On peut enn, remplacer une ligne quelconque par la somme
dun multiple (non nul) de cette ligne et dune combinaison nie des autres lignes.
Cela se traduit par




2 1




 1

Lorsquon effectue une quelconque des trois actions ci-dessus, sur un systme
on obtient alors une nouvelle criture quivalente de ce systme.

)

Systmes linaires : mthode de Gauss

65

Nous verrons par la suite quaprs avoir effectu un nombre ni de ces actions
lmentaires, on peut se ramener un systme chelonn, et on obtient toutes les
solutions de )  quels que soient le nombre dinconnues et le nombre dquations
(ou lignes).

Exemple
A partir du systme






  

 

1

 

1

on fait



1


 

 



 

1

 

1

puis
1



1

 1


 

 


 

1

 

1

et enn



1


 


  


 

1

 

1

Dans cette dernire criture du systme )  linconnue  ne gure pas dans les deux
dernires quations et linconnue est prte tre limine de la dernire.

3.3. Mthode de rsolution de Gauss


Cette mthode consiste effectuer un certain nombre dactions lmentaires pour
obtenir un systme quivalent chelonn. Elle sapplique un systme quelconque
(carr ou non).

66

Mathmatiques avec Matlab

3.3.1. Prsentation sur un exemple


Soit trouver toutes les solutions du systme 
nues :

)









 

quations et &

 





1




 





 



1





 



1












incon-

3.3.1.1. Premire tape


Elle consiste choisir une ligne dont le coefcient de   est non nul et la mettre
en premire ligne. Ce coefcient est appel pivot de Gauss. Pour des raisons de commodit de calculs, on pourra privilgier une ligne ayant un pivot gal
si elle existe.
Sur notre exemple, prenons comme premire ligne la deuxime. Autrement dit, on
fait :
1

on a

)









 1






















1











1







1

3.3.1.2. Deuxime tape


On cherche ensuite annuler toute la colonne en dessous du pivot choisi, en effectuant les actions lmentaires de Gauss utilisant la premire ligne.
Ici on fera donc
1

 1  1

1

 1  1

puis
et le systme est quivalent

)









































1







 










 
  

1
1

Systmes linaires : mthode de Gauss

67

3.3.1.3. Troisime tape


La premire ligne ne changera plus. On ritre les deux tapes prcdentes pour le
sous-systme constitu des trois autres lignes :


 








 






















1



 
  

1

par les actions successives


1
1




1

1

1

1

et on continue jusqu la n pour les sous-systmes suivants. On a donc































et enn, aprs laction


1











1



 



 
 



1



1

 1  1

on obtient











 



 


















 






 



  
    

On distingue ainsi deux cas :


1) Si les donnes  ,  ,  et  ne vrient pas la condition


     

alors, on a obtenu un systme chelonn de type (3) (cf. 3.1.3 l) qui nadmet aucune
solution :

  

2) Si la condition


     

est vrie, alors par remontes successives on peut rsoudre ce systme. Faisons le
titre dexemple dans le cas








68

Mathmatiques avec Matlab

Le systme scrit alors


)
























En choisissant comme paramtre linconnue auxiliaire


vient
)





















dans la dernire ligne, il







  



et aprs un autre choix du paramtre   , dans la deuxime ligne, on obtient nalement


)






   
    
  





Cela dtermine toutes les solutions du systme, quon crit sous forme ensembliste

   
        



  

 

 

 

3.3.2. Systmes de Cramer


3.3.2.1. Dnition
On suppose ici que   & On considre donc le systme carr

)





















 

 

..
.

  

..
.




 

  

 

 

1

  

 

Le systme admet une unique solution si, et seulement si, la mthode de Gauss fait
apparatre  pivots successifs tous non nuls. Dans ce cas on dira que le systme est de
Cramer.
3.3.2.2. Exemple
Considrons le systme suivant :


 








1
1

Systmes linaires : mthode de Gauss

69

Choisissons  comme premier pivot (dans la premire ligne). Aprs les deux actions

1
1

 1 1

 1 1


 

 


on obtient

-  

- 

1

-  

1

ensuite par
1

 1 

 

  






il vient




1

1

1

Le systme est donc de Cramer, puisque les trois pivots successifs sont non nuls. La
dernire ligne donne
-

 

En reportant dans la deuxime ligne, on obtient




et enn, en utilisant la premire ligne, on trouve




3.4. Rsolution avec Matlab


3.4.1. Utilisation de solve
Pour rsoudre le systme

)















1

















1









1

70

Mathmatiques avec Matlab

on applique la fonction solve aux quatre lignes, dnies sous forme de chanes de
caractres :
eq1 =0*x1+x2+3*x3-x4+0*x5=0;
eq2= 2*x1+x2+7*x3+x4+6*x5=6;
eq3 = 3*x1+0*x2+6*x3+x4+5*x5=1;
eq4 = 4*x1+x2+11*x3+0*x4+6*x5=0;
S1 =solve(eq1,eq2,eq3,eq4)
S1 =
x1 : [1x1 sym]
x2 : [1x1 sym]
x3 : [1x1 sym]
x4 : [1x1 sym]
La rponse, peu lisible il est vrai, indique que S1 est donn sous forme appele en
informatique structure 4 champs, nots S1.x1, S1.x2, S1.x3, S1.x4. On en explicite
le contenu par
[S1.x1 S1.x2 S1.x3 S1.x4]
ans =
[ -2*x3-x5-1, -3*x3-2*x5+4, x3, -2*x5+4]

3.4.2. Utilisation de rref


La fonction rref applique la mthode de Gauss au tableau constitu des coefcients et des seconds membres, entr ligne par ligne :
T= [0 1 3 -1 0 0 ;2 1 7 1 6 6 ;3 0 6 1 5 1 ;4 1 11 0 6 0] ;
rref(T)
ans =
1 0 2 0 1 -1
013024
000124
000000
La lecture du tableau obtenu en rsultat donne le systme










 

  









  

Il faut alors en achever la rsolution, comme cela a t fait prcdemment.


Remarque : la commande

rrefmovie(T)

Systmes linaires : mthode de Gauss

71

employe la place de rref, permet de visualiser ltat du tableau 4 chaque tape


de la rsolution par la mthode du pivot de Gauss.
3.5. Exercices
3.5.1. Systmes linaires classiques
Rsoudre les systmes suivants :
1) en appliquant pas pas la mthode du pivot de Gauss ;
2) en utilisant les fonctions solve et rref de Matlab.
3.5.1.1.


    

     

3.5.1.2.

3.5.1.3.





 - '  

 - '  
   -  ' 



       


       

'

'

'

   -
' 
(solutions p. 72)

3.5.2. Un systme linaire avec paramtre


1) Rsoudre le systme suivant, en appliquant pas pas la mthode du pivot de
Gauss (on discutera suivant la valeur du paramtre ).



    

      


 

 -

2) Analyser les rponses donnes par lutilisation des fonctions solve et rref de
Matlab pour rsoudre ce systme.
(solution p. 75)

72

Mathmatiques avec Matlab

3.6. Solutions
Exercice 3.5.1.1
Lintrt de la premire mthode est dappliquer, tape par tape, les actions de
Gauss.
1) On dclare les variables symboliques et les trois lignes du systme.
syms x y z
L1=[2*x-3*y+5*z, 1] ;
L2=[x-2*y-4*z, -1] ;
L3=[-3*x+y-3*z, 0] ;
S=[L1 ;L2 ;L3] ;
On effectue laction :
1

 1

(on utilise pour faire cet change une ligne temporaire 4 ).


T=L2 ;L2=L1 ;L1=T ;
S=[L1 ;L2 ;L3]
S=
[ x-2*y-4*z, -1]
[ 2*x-3*y+5*z, 1]
[ -3*x+y-3*z, 0]
On annule le coefcient de  dans les deuxime et troisime quations par
1

 1  1
 1  1 1

L2=L2-2*L1 ;L3=L3+3*L1 ;
S=[L1 ;L2 ;L3]
S=
[ x-2*y-4*z, -1]
[ y+13*z, 3]
[ -5*y-15*z, -3]

On annule le coefcient de dans la troisime quation par


1

 1 1

L3=L3+5*L2 ;
S=[L1 ;L2 ;L3]
S=
[ x-2*y-4*z, -1]
[ y+13*z, 3]
[ 50*z, 12]

Systmes linaires : mthode de Gauss

73

Le systme est donc quivalent


      


  

 



Cest un systme de Cramer, dont on obtient la solution par :


Z=12/50 ;Y=3-13*Z ; X=-1+2*Y+4*Z ;
[X,Y,Z]
ans =-0.2800 -0.1200 0.2400
2) En utilisant la fonction solve, on obtient la solution sous forme symbolique :
Sol=solve(2*x-3*y+5*z= 1, x-2*y-4*z= -1, -3*x+y-3*z= 0) ;
[Sol.x,Sol.y,Sol.z]
ans = [ -7/25, -3/25, 6/25]
Pour utiliser rref, on construit ligne par ligne le tableau des coefcients et des seconds
membres.
Tab=[2 -3 5 1 ; 1 -2 -4 -1 ; -3 1 -3 0]
Tab =
2 -3 5 1
1 -2 -4 -1
-3 1 -3 0
rref(Tab)
ans =
1.0000 0
0
-0.2800
0
1.0000 0
-0.1200
0
0
1.0000 0.2400
Le systme est quivalent :





 







-

Exercice 3.5.1.2
1) Pour rsoudre pas pas, on suit la mthode ci-dessus.

74

Mathmatiques avec Matlab

2) On utilise la fonction rref, et on met le rsultat sous forme symbolique :


Tab=[1 -1 1 1 -1 ;1 1 -1 2 4 ;2 -1 -2 -3 1] ;
rref(Tab)
ans =
1.0000 0 0 1.5000 1.5000
0 1.0000 0 2.3333 2.3333
0 0 1.0000 1.8333 -0.1667
sym(ans)
ans =
[ 1, 0, 0, 3/2, 3/2]
[ 0, 1, 0, 7/3, 7/3]
[ 0, 0, 1, 11/6, -1/6]
Le systme est donc quivalent







-

' 

' 

' 

 
 




Lensemble des solutions est donc

      ' 

   ' 


 

' 

'  '

 

On vrie le rsultat avec solve :


S=solve(x-y+z+t=-1,x+y-z+2*t=4,2*x-y-2*z-3*t=1);
[S.x S.y S.z ]
ans =[ -3/2*t+3/2, -7/3*t+7/3, -11/6*t-1/6]
Exercice 3.5.1.3
Lutilisation de la fonction rref
Tab=[2 6 4 2 -2 ;-2 -3 5 -5 2 ; -3 -8 -3 2 1 ; -1 -2 1 10 0]
Tab =
2 6 4 2 -2
-2 -3 5 -5 2
-3 -8 -3 2 1
-1 -2 1 10 0
rref(Tab)
ans =
1 0 -7 0 0
01300
00010
00001

Systmes linaires : mthode de Gauss

75

montre que le systme est quivalent au systme chelonn









-

-

'

Le systme na pas de solution, ce que montre aussi lutilisation de solve :


solve(2*x+6*y+4*z+4*t=-2,-2*x-3*y+5*z-5*t=2,
-3*x-8*y-3*z+2*t=1,-x-2*y+z+10*t=0)
Warning : Explicit solution could not be found.
ans =
[ empty sym ]

Exercice 3.5.2
1) Pour la rsolution pas pas, on dclare les variables symboliques et les lignes
du systme :
syms x y z m
L1=[(1-m)*x+2*y-z,1];
L2=[-2*x-(3+m)*y+3*z,1];
L3=[x+y-(2+m)*z,1];
S=[L1 ;L2 ;L3] ;
On effectue 1

 1 pour avoir
comme pivot :
T=L1 ;L1=L3 ;L3=T ;
S=[L1 ;L2 ;L3]
S=
[ x+y-(2+m)*z, 1]
[ -2*x-(3+m)*y+3*z, 1]
[ (-m+1)*x+2*y-z, 1]

On effectue les actions 1  1 1 1  1 


 1 ; on utilise collect
pour regrouper les termes en  et en (pour visualiser les pivots.)
L2=L2+2*L1 ;L3=L3-(1-m)*L1;
S=[L1 ;L2 ;L3] ;
S=collect(S,y) ;S=collect(S,x)
S=
[ x+y-(2+m)*z, 1]
[ (-1-m)*y+3*z-2*(2+m)*z, 3]
[ (1+m)*y-z+(-m+1)*(2+m)*z, m]

76

Mathmatiques avec Matlab

a) Dans le cas   
les pivots pour sont nuls. On traite ce cas part :
S0=subs(S,m,-1)
S0 =
[ x+y-z, 1]
[ z, 3]
[ z, -1]
Do le systme





-

qui nadmet aucune solution.


b) On suppose maintenant   
. On effectue les actions
1
1





 
1 
1
1

L2=L2/(-1-m) ;L3=L3-(1+m)*L2 ;
S=[L1 ;L2 ;L3] ;
S=simplify(S) ;
S=collect(S,z) ;S=collect(S,y) ;S=collect(S,x)
S = [ (-2-m)*z+x+y, 1]
[ y+(1+2*m)/(1+m)*z, -3/(1+m)]
[ -z*m*(3+m), 3+m]
c) Dans le cas o  est diffrent de 
mais aussi de et de , le systme









  





  -




 

est de Cramer et on obtient sa solution par :


Z=-(3+m)/(m*(3+m));
Y= -3/(1+m)-(1+2*m)/(1+m)*Z;X=1- (-2-m)*Z-Y ;
simplify([X,Y,Z])
ans =
[ -(3+m)/m/(1+m), -(-1+m)/m/(1+m), -1/m]
soit


 








Systmes linaires : mthode de Gauss

77

d) Dans le cas   , on obtient


S1=subs(S,m,0)
S1 =
[ -2*z+x+y, 1]
[ y+z, -3]
[ 0, 3]
Le systme quivaut alors





-



et nadmet pas de solution.


e) Enn, dans le cas    on a :
S2=subs(S,m,-3)
S2 =
[ z+x+y, 1]
[ y+5/2*z, 3/2]
[ 0, 0]
et le systme peut scrire





  -

 

La valeur de - peut tre choisie arbitrairement et on obtient pour ensemble de solutions

   
 - 

   - 

-  -

 

2) Si on utilise rref pour rsoudre le systme donn au dpart :


Tab= [1-m 2 -1 1 ;-2 -(3+m) 3 1 ;1 1 -(2+m) 1]
Tab =
[ -m+1, 2, -1, 1]
[ -2, -3-m, 3, 1]
[ 1, 1, -2-m, 1]
rref(Tab)
ans =
[ 1, 0, 0, -(3+m)/m/(1+m)]
[ 0, 1, 0, -(m-1)/m/(1+m)]
[ 0, 0, 1, -1/m]
on obtient la solution correcte lorsque le systme est de Cramer, mais des simplications et divisions se font sans tenir compte des cas particuliers     



78

Mathmatiques avec Matlab

3) Il en est de mme lorsquon utilise solve :


eq1= (1-m)*x+2*y-z=1;
eq2= -2*x-(3+m)*y+3*z=1;
eq3 =x+y-(2+m)*z=1;
Sol=solve(eq1,eq2,eq3,x,y,z)
Sol =
x : [1x1 sym]
y : [1x1 sym]
z : [1x1 sym]
[Sol.x,Sol.y,Sol.z]
ans =
[ -(3+m)/m/(1+m), -(m-1)/m/(1+m), -1/m]
On retiendra que les commandes rref et solve ne tiennent pas compte des cas particuliers, dans la rsolution de systmes linaires dpendant de paramtres.
Dans le cas de tels systmes, il est donc conseill dutiliser pas pas la mthode de
Gauss. Les cas particuliers apparatront naturellement dans la mise en uvre de cette
mthode.

Chapitre 4

Matrices

4.1. Gnralits
4.1.1. Notations et vocabulaire
Nous avons vu prcdemment que le travail sur un systme linaire quelconque de
lignes et & colonnes se traduisait par un travail sur le tableau de valeurs constitu
par les coefcients des inconnues. Ce tableau  est appel matrice  lignes et &
colonnes, dite de type  & et est not







..

.





..

.


...

...
...

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
















 
ligne

 
colonne

La notation abrge est


  .
  
Comme pour les systmes, le premier indice dsignera le numro de la ligne et le
deuxime indice celui de la colonne.


79

80

Mathmatiques avec Matlab

Lensemble des matrices de type

On peut aussi dnir lensemble


dans 

coefcients dans

 &

  des matrices de type

est not

 &

4.1.2. Cas particuliers


4.1.2.1. Matrices lignes et matrices colonnes
Une matrice de type

&

...

 

est appele matrice ligne.


De mme une matrice de type




 




... 

est appele matrice colonne.


4.1.2.2. Matrices carres
Une matrice de type

 

est appele matrice carre dordre 

Parmi les matrices carres




   ,
 

on peut distinguer :
1) les matrices carres diagonales, vriant


soit

si   



..
.

..




..

..

..
.








coefcients

Matrices

81

2) les matrices carres triangulaires suprieures, vriant




soit

si   




 

..
.

..

..









..
.

3) les matrices carres triangulaires infrieures, telles que




si  $ 

4) les matrices carres symtriques, telles que, pour tous 






5) la matrice carre identit, vriant

  si   
 

note




..

.



.. . . . .

.



..
.








4.1.3. Dnir des matrices avec Matlab


4.1.3.1. Entre de matrices quelconques
On entre une matrice ligne par ligne. Un simple espace (ou une virgule) spare les
termes dune mme ligne. Un point virgule spare les lignes :
A= [1.5 2 3 ;7 sqrt(2) -8 ;pi exp(1) 12]
A=










 


82

Mathmatiques avec Matlab

On peut aussi dnir trois matrices colonnes, et les juxtaposer :


u=[1 ;-1 ;0] ; v=[2 ;2 ;-1] ; w=[-1 ;0 ;1] ;
B=[u v w]
B=

Pour une matrice  donne :




 




 


permet daccder au terme  ;

permet de modier le terme  ;


 permet daccder la i  
ligne ;
 
colonne.
  permet daccder la j


A(3,2)
ans = 2.7183
A(3,3)=0
A=
1.5000 2.0000 3.0000
7.0000 1.4142 -8.0000
3.1416 2.7183 0
A(3, :)
ans = 3.1416 2.7183 0
A( :,2)
ans =
2.0000
1.4142
2.7183
Si certains des coefcients sont de type symbolique, on obtient une matrice symbolique :
e=sym(exp(1))
e =exp(1)
As=sym( [1.5 2 3 ;7 sqrt(2) -8 ;pi e 12])
As =
[ 3/2, 2, 3]
[ 7, sqrt(2), -8]
[ pi, exp(1), 12]
syms a
B=[a 0 ;-a a]
B=
[ a, 0]
[ -a, a]

Matrices

83

4.1.3.2. Matrices particulires


eye(n) est la matrice identit 

zeros(m,n) est la matrice de type


trice nulle).

 

dont tous les coefcients sont nuls (ma-

rand(m,n) est une matrice de type   dont les coefcients sont choisis alatoirement, selon une loi uniforme, dans lintervalle 

Id=eye(3)
Id=

Z=zeros(2,2)
Z=

R=rand(3,3)
R=














 






Il existe dautres matrices particulires, dnies par les fonctions Matlab diag,
ones, magic, pascal (voir helpwin/elmat).
4.2. Oprations sur les matrices
Nous allons dnir quelques oprations naturelles sur les matrices de mme type
confrant ainsi une structure remarquable lensemble   
4.2.1. Addition
Soient deux matrices de mme type





 .
..

..
.

...
...
...




..
.











 .
..






..
.

...
...
...







..
.







84

Mathmatiques avec Matlab

On appelle matrice somme de  et  , la matrice




 .
..





...
...

...

..
.

  

..
.

 
  







  

De manire condense, on a
)

avec

 

 
  

 



&





On notera que lopration (ou loi) ainsi dnie est une application  de


 

dans
 
On dit que  est une loi de composition interne.


On peut vrier facilement les proprits remarquables suivantes de cette addition


1) Commutativit :

   

   

 

2) Associativit :

   

   

   

3) Existence de llment neutre : Si on note




  ..
.






..
.

  

 




.. 
.

la matrice dont tous les coefcients sont nuls, on a

   

4) Existence de loppos dune matrice : pour toute matrice , notons   la matrice dnie par
    
  
alors
   
La matrice  est dite loppose de  et se note 

Matrices

85

On dira que les quatre proprits ainsi vries confrent une structure de groupe
ablien (ou commutatif) pour lensemble    muni de cette addition matricielle
.
4.2.2. Multiplication par les scalaires
On se donne un scalaire 5 quelconque de


un lment de  

.

. Soit

 
  

On dnit la matrice 5 par



 .
..

...
...

...

5  5 

5

..
.




5 
5

..
.







autrement dit tous les coefcients de la matrice  ont t multiplis par le scalaire 5.
Lopration multiplicative ainsi dnie, est une application  de

 

dans


On dira quelle est une loi de composition externe.


4.2.3. Multiplication des matrices
On dnit le produit de deux matrices dans le cas o la premire matrice est de type
et la deuxime est de type & / . La justication est base sur la composition
dapplications linaires, qui sera vue ultrieurement.
 &

Soient donc deux matrices  (  lignes et & colonnes) et  (


lonnes) :
    
    
 
 
Le produit




&

&




&

lignes et

co-

86

Mathmatiques avec Matlab

est par dnition la matrice  de type




 /

dnie par

 
 



  


 


 

On retiendra que
Le coefcient
 situ en ligne  et en colonne  de  est obtenu
par la somme des produits terme terme des lments de la
ligne  de  et des lments de la colonne  de 
On adopte la disposition suivante :

 

























..
.

..
.








..
.
..
.


..
.












..
.

..
.




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


..
.















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

4.2.3.1. Exemple
On veut effectuer le produit   avec





 



Matrices

On calcule



 



do



 


 

 

 





   

   
 
   


87

On notera indiffremment ce produit :








4.2.3.2. Multiplication interne des matrices carres


Il est clair que lorsque  et  appartiennent lensemble des matrices carres not
 

les deux produits   et   sont dnis et appartiennent aussi 

.

Mais on prendra garde ce que le produit nest pas commutatif, par exemple

mais


On pourra vrier par contre que la multiplication dans 




   



et distributive par rapport laddition




 





  
   
5   


5 

est associative :

88

Mathmatiques avec Matlab

On vrie que, pour toute matrice carre 






,

on a

La matrice identit  est llment neutre pour la multiplication.


On peut aussi dnir la puissance & 
dune matrice carre  :


On en dduit que


 

      

 

4.2.4. Transpose dune matrice


On appelle transpose de la matrice


de  

  ,
  

la matrice note


de 

   
 

dnie par

 

 

&

Cela veut dire que   est obtenue partir de


colonnes. Par exemple, si


alors










en changeant ses lignes avec ses

On peut alors vrier les proprits suivantes :


         
 5  5  
    
          (lorsque lun de ces produits est dni).

Matrices

4.2.5. Calcul matriciel avec Matlab


Les oprations lmentaires seffectuent naturellement :
A=[3 2 1 ; 6 5 4 ; 9 8 7]
A=
321
654
987
B =rand(3,3)
B=
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
Laddition :

S=A+B
S=
3.9501 2.4860 1.4565
6.2311 5.8913 4.0185
9.6068 8.7621 7.8214

La multiplication externe par les scalaires :


P1=0.1*A
P1 =
0.3000 0.2000 0.1000
0.6000 0.5000 0.4000
0.9000 0.8000 0.7000
La multiplication interne :
P=A*B
P=
3.9195 4.0026 2.2278
9.2838 10.4208 6.1170
14.6482 16.8389 10.0061
La puissance :
Q=A^5
Q=
73872 60588 47304
215784 176985 138186
357696 293382 229068

89

90

Mathmatiques avec Matlab

La transposition :
T=A
T=
369
258
147
Matlab reconnat les oprations mal dnies, par exemple
A=[1 2 ; 3 -1]
A=
12
3 -1
B=[2 1 ; 0 1 ; 3 5]
B=
21
01
35
A*B
? ? ? Error using == *
Inner matrix dimensions must agree.

4.3. Inversion de matrices carres


4.3.1. Dnition

Une matrice carre 


 telle que



est dite inversible sil existe une matrice carre

  

La matrice  , lorsquelle existe est unique. On lappelle matrice inverse de  et on la


note


Concrtement, dans 

,

il suft de vrier que




pour conclure que 

 

Par exemple, la matrice




Matrices

admet pour inverse






en effet :
A=[1 0 ;2 1] ;
B=[1 0 ; -2 1] ;
A*B
ans =
10
01
B*A
ans =
10
01
La matrice  est son propre inverse.
Avec Matlab, on peut utiliser
inv()

ou

^(-1),

pour calculer linverse de  numriquement ou symboliquement :


A=[1 2 3 ; 4 5 6 ; 7 8 10]
A1=inv(A)
A1 =
-0.6667 -1.3333 1.0000
-0.6667 3.6667 -2.0000
1.0000 -2.0000 1.0000
As=sym(A)
As =
[ 1, 2, 3]
[ 4, 5, 6]
[ 7, 8, 10]
As1=inv(As)
As1 =
[ -2/3, -4/3, 1]
[ -2/3, 11/3, -2]
[ 1, -2, 1]

91

92

Mathmatiques avec Matlab

Mais la matrice inverse nexiste pas toujours :


As(3,3)=9
As =
[ 1, 2, 3]
[ 4, 5, 6]
[ 7, 8, 9]
inv(As)
? ? ? Error using == sym/inv
Error, (in inverse) singular matrix

4.3.2. Actions de Gauss sur les matrices carres


Nous allons traduire les trois actions fondamentales de Gauss vues dans le chapitre
prcdent sur les systmes, en termes de multiplication matricielle.
Pour simplier et sans restreindre la gnralit, nous travaillerons sur une matrice
de type  

 

 








1) Premire action dchange de lignes : Soit 1  la matrice obtenue partir de la


matrice  par lchange entre ses lignes  et  . Alors le produit 1   est la matrice
obtenue partir de  par lchange de ses lignes  et  Ainsi par exemple
1

#  


#  

. + 

. + 

(On pourrait aussi considrer les matrices   obtenues par lchange des colonnes 
et  de  et faire   , changeant ainsi les colonnes  et  de .)
2) Deuxime action de multiplication dune ligne par 5  : On note 1  5 la
matrice obtenue partir de la matrice  par la multiplication par 5 de sa ligne . Alors
1 5  est la matrice obtenue partir de  par la multiplication par 5 de sa ligne

Matrices

. Ainsi
1

5

#  
. + 

5# 5 5
.

93

3) Troisime action de Gauss : Soit 1  5 la matrice obtenue partir de  en


ajoutant sa  
ligne le produit par 5 de sa   
ligne. Alors la multiplication
1 5  produit le mme effet. Ainsi
1

5




5

#  

. + 

5#

5

5

On pourra vrier que





   1

1 5
 1
5

1 5
 1 5

 

4.3.3. Calcul explicite de linverse dune matrice


Partant de la matrice , si au bout de % actions de Gauss (dcrites ci-dessus), dont
on note les matrices
 

on obtient


    

alors  est inversible et






   

(On pourrait de mme multiplier droite par les matrices reprsentant les actions
colonnes et retrouver cette matrice inverse).
Par exemple, pour obtenir linverse de




 

94

Mathmatiques avec Matlab

on multiplie par 1



et le rsultat par 1
1

 1

 ;

il vient alors







do


1

 1


 



La stratgie de Gauss pour le calcul explicite de linverse   lorsque celle-ci existe,


consiste en la construction dune suite nie de matrices
  

de la manire suivante :
1) agir sur la matrice  pour obtenir une matrice   dont la premire ligne a
un pivot gal
(Si cette action de Gauss nest pas possible,   nexiste pas).
Paralllement, on agira de la mme faon sur la matrice identit  pour obtenir une
matrice note 
2) annuler la colonne juste en dessous du premier pivot
de   pour obtenir 
Cest toujours possible si la premire action lest. On agira de la mme manire sur
 pour obtenir 
3) recommencer le mme travail sur le bloc matrice obtenu partir de  en
retirant sa premire ligne et sa premire colonne. On obtient ainsi   . Faire de mme
sur  pour obtenir 
4) ritrer le principe jusqu la triangularisation infrieure complte de  avec
des pivots gaux
sur toute la diagonale. (Si on obtient un pivot gal sur la
diagonale, la matrice nest pas inversible).
5) Par remontes successives, annuler le triangle suprieur des matrices   ainsi
obtenues jusqu lobtention de la matrice identit

Les mmes actions devront tre effectues sur les matrices   correspondantes pour
avoir enn la matrice inverse


 

Matrices

Illustrons la mthode ci-dessus sur le calcul de linverse de





 

 



On disposera les calculs de la manire suivante :


1) Premire et deuxime tapes :










 

On multiplie par 1 


 





 




On multiplie par 1 










 


 

2) Troisime et quatrime tapes (triangularisation infrieure) :





 


On multiplie par 1


 



 

 



et 1




 



 

On multiplie par 1 

 


 








On peut maintenant afrmer que la matrice est inversible.




 






95

96

Mathmatiques avec Matlab

3) Triangularisation suprieure :


 



 


 

On multiplie par 1 


 






et 1





 



 

 

On multiplie par 1 


 et 1












 

 
 




4.4. Dterminant dune matrice carre


Nous avons vu que pour calculer   par la mthode de Gauss expose prcdemment, tous les pivots successifs devaient tre non nuls. Y-a-t-il une caractristique
dans  qui dtermine cette inversibilit ?
Nous allons voir que la rponse est oui.
Nous pouvons dores et dj dire, grce la mthode du pivot de Gauss, que si
toute la premire colonne de  est nulle, linverse nexiste pas.

4.4.1. Cas dune matrice de type

 

On donne une matrice






et on suppose quun lment de la premire colonne est non nul daprs la remarque
ci-dessus. On prendra   , par exemple.

Matrices

97

Alors le calcul par la mthode de Gauss de linverse de cette matrice seffectue de


la manire suivante :






On choisit  comme pivot

On fait 1

 1 

 

 1

 

 



  

 




En supposant que le nombre






 

est non nul, on voit que linverse de  est calculable. On normalise le deuxime pivot,
il vient



 



 

 

enn, on triangularise suprieurement pour avoir

 



On retiendra donc le rsultat suivant :


Thorme
si   , la matrice  est inversible
 et


 

 

Le nombre  sappelle le dterminant de  et se note




 

4.4.2. Cas dune matrice de type


  








 

On peut utiliser le mme raisonnement (avec des calculs plus longs !) pour une
matrice de type  









98

Mathmatiques avec Matlab

On trouve que, si le dterminant







 

    
  







 







  


not


 

 

  






























est diffrent de zro alors la mthode de Gauss sapplique pour le calcul de


donne linverse suivante










et

o


 

est obtenue par transposition de la matrice




avec


 


 

Le nombre   est le dterminant de la matrice de type   obtenue partir de 


en supprimant sa   
ligne et sa   
colonne. La matrice  est souvent appele
la comatrice de  ou la matrice des cofacteurs   .
A titre dexemple, cherchons par cette mthode, linverse de la matrice vue prcdemment


 



On calcule dabord son dterminant









 
 
   

 



   





  

  

Matrices

Le calcul de  fournit, en indiquant les signes






 




 

 


 

 







  










 

 
 



 


 




 



 






 
 

et donc



 

do la transpose

99


   
 








4.4.3. Cas dune matrice quelconque


Nous avons vu que pour une matrice











 

 

    
  









 


 

on a

 





  





 






En gnralisant ce dveloppement suivant la premire colonne, on dnit de proche


en proche le dterminant dune matrice carre


quelconque par







  
 


  

 

100

Mathmatiques avec Matlab

o  est la matrice carre dordre  


obtenue partir de
 
ligne et sa premire colonne.

Par exemple, pour


en supprimant sa






on a













 









   










 
 



puis






 
 

















 
 

  



 
 










  

 
 

  



 
 















 

  






 

 

 




 
   






4.4.4. Dterminant de matrices particulires


De la dnition prcdente, on dduit que :






Matrices

1) le dterminant de la matrice identit est





  

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



.. 
. 



2) le dterminant dune matrice diagonale





..
.

..



..

..

101

..
.








est








4.4.5. Proprit fondamentale


On admet que les rsultats des paragraphes 4.4.1 et 4.4.2 se gnralisent :
Thorme
Une matrice carre est inversible si et seulement si


Dans ce cas, on a








..
 .



...
...

...

..
.

..
.







o


 

est obtenue par transposition de la matrice




avec


 


 

Le nombre   est le dterminant de la matrice de type  


 
 obtenue partir
de  en supprimant sa   
ligne et sa   
colonne. La matrice  est souvent
appele la comatrice de  ou la matrice des cofacteurs   .

102

Mathmatiques avec Matlab

Remarque
En gnral, le calcul de linverse dune matrice carre par la mthode de Gauss est
plus simple que le calcul prcdent.
4.5. Proprits des dterminants
4.5.1. Dveloppement suivant les colonnes ou les lignes
4.5.1.1. Dveloppement suivant les colonnes
On peut vrier que, pour une matrice









 







      
 








 

  




on a aussi

   
 
  

 




















qui est le dveloppement du dterminant de  suivant sa deuxime colonne.


Dune manire gnrale, pour une matrice carre quelconque.


  
 

si on note  la matrice obtenue partir de


 
colonne, on dmontre quon a








en supprimant sa   
ligne et sa


  

 

cest le dveloppement du dterminant de  suivant la   


colonne.
Par exemple, le calcul du dterminant de la matrice






suivant la troisime colonne, choisie parce quelle contient le maximum de zros,


donne

 









 








puis en dveloppant les deux dterminants suivant leur deuxime colonne, on a





 


 
   

 
 




 
  




 

Matrices

103

4.5.1.2. Dveloppement suivant les lignes


On peut vrier explicitement sur des matrices de type




 

et

 

que

 

 

Ce rsultat reste vrai dans le cas dune matrice carre quelconque




  
 

On obtient alors par transposition, le dveloppement du dterminant de  suivant sa


 
ligne






 


  

 

4.5.2. Quand un dterminant est-il nul ?


Le dterminant dune matrice carre  est nul lorsque :
1) une ligne (ou une colonne) de  est nulle,
2) une ligne 1  (ou une colonne   ) de  est combinaison des autres lignes (resp.
des autres colonnes), cest--dire



 

Par exemple pour




  ou

5 1



car 1

1



 

6 

 

1

4.5.3. Actions de Gauss sur les dterminants


Soit  une matrice carre dordre . Dsignons par 4 la nouvelle matrice obtenue
partir de  aprs chaque action de Gauss effectue, alors
1) si laction est 1

 1 21 , avec 2  et 7  ,


4

 



(cette action ne change pas la valeur du dterminant)


2) si laction est un change de lignes 1 


4

 1 (  7), on a

 



104

Mathmatiques avec Matlab

3) enn si laction est 1 

 21 avec 2  on a


4





(on tiendra compte, si on effectue ces deux dernires actions, du changement de valeur
du dterminant) ;
4) grce la transposition, les mmes proprits sont encore vraies si on effectue
ces actions sur les colonnes.
A titre dexemple, le dterminant de la matrice







est gal  (en le dveloppant suivant la troisime colonne). Aprs laction




la matrice transforme est

    

 

et on vrie bien que 

4



(en le dveloppant suivant la premire colonne).

4.5.4. Dterminant dun produit de matrices


On montre que pour deux matrices carres de mme type  et  , on a


  

 







do aussi


  

 

 

On en dduit le corollaire suivant quant au calcul du dterminant de la matrice inverse




(lorsquelle existe)


en utilisant la relation      .

 




Matrices

105

4.6. Calculs de dterminants


4.6.1. Mthode de Gauss
La stratgie de calcul dun dterminant consiste donc dabord effectuer un certain nombre dactions de Gauss dans une colonne (ou une ligne) pour ne conserver
quun lment non nul de cette colonne (ou de cette ligne), puis ritrer pour les dterminants suivants dordre infrieur. En vue de minimiser les calculs, on veillera
choisir une colonne (resp. une ligne) contenant dj un
et le maximum de zros
lorsque cest possible.
4.6.1.1. Exemple (calcul la main)
Soit calculer




     
    
 
     
  


On commence par effectuer laction

 1

1

(qui ne change pas la valeur du dterminant), pour avoir un pivot gal


:



     

 
 
 





 

  
 

On effectue ensuite les actions


1

 1  1

pour obtenir :


1



 


 1 1


 


1

 1  1


 








En dveloppant suivant la premire colonne, on aura donc




 



 






106

Mathmatiques avec Matlab

puis on effectue laction 1 

 1  1 sur ce dernier tableau

Do





 









 









   


4.6.1.2. Exemple (calcul avec Matlab)


On introduit avec Matlab la matrice  associe  :
M=[3 ,-2,-5,4 ; -5, 2, 8, -5 ; -2, 4, 7, -3 ; 2, -3, -5, 8]
M=
3 -2 -5 4
-5 2 8 -5
-2 4 7 -3
2 -3 -5 8
Laction
1

 1

1

se traduit par :
M(2, :)=M(2, :)+2*M(1, :)
M=
3 -2 -5 4
1 -2 -2 3
-2 4 7 -3
2 -3 -5 8
et les actions
1

donnent

 1  1

1

 1 1

1

 1  1

M(1, :)=M(1, :)-3*M(2, :) ;M(3, :)=M(3, :)+2*M(2, :) ;


M(4, :)=M(4, :)-2*M(2, :)
M=
0 4 1 -5
1 -2 -2 3
0 0 3 3
0 1 -1 2

Matrices

On retrouve




  



 







107

On obtient la matrice correspondante en ne conservant que les lignes et colonnes adquates de 


N=M([1 3 4],[2 3 4])
N=
4 1 -5
0 3 3
1 -1 2
puis on effectue laction 1 

 1  1.
N(1, :)=N(1, :)-4*N(3, :)
N=
0 5 -13
0 3 3
1 -1 2

Ainsi
D=(-1)*1*(5*3-3*(-13))
D = -54

4.6.2. Utilisation de la commande det de Matlab


La commande de Matlab, det calcule le dterminant dune matrice carre
numrique :
M=[3 ,-2,-5,4 ; -5, 2, 8, -5 ; -2, 4, 7, -3 ; 2, -3, -5, 8] ;
det(M)
ans = -54
symbolique
syms x a
M=[a 0 a ;1 x 0 ; a -1 a+x] ;
d=det(M)
d = a*x^2-a
factor(d)
ans =a*(x-1)*(x+1)

108

Mathmatiques avec Matlab

4.7. Retour aux systmes et formules de Cramer.


4.7.1. Ecriture matricielle des systmes
On raisonne pour    Soit le systme






 

 

 

 

 
 



alors matriciellement ce systme scrit





















ou bien
 

o





















est appele la matrice du systme.

4.7.2. Rsolution par les dterminants


Lorsque 



 , lquation     est quivalente




 

do lunique solution du systme, donne matriciellement par














On peut aussi crire explicitement les solutions en utilisant les proprits des dterminants. En effet, en substituant la premire colonne de  la colonne des seconds
membres  , et en calculant le dterminant de la matrice ainsi obtenue, on a










 


 


 


 

 



 
 







Matrices

puis, par laction de Gauss  













   

 
 
  

  

 







 



 





109



On procde de mme avec les deux autres colonnes de  pour obtenir les formules
dites de Cramer :













 


 


 








































Rciproquement, lorsque le systme




est de Cramer (voir chapitre 4.9, paragraphe 3.3.2), les mmes actions de Gauss permettant le calcul de lunique solution conduisent montrer que




On admettra que ces rsultats se gnralisent un systme de


inconnues :

quations

Thorme
Un systme carr est de Cramer si et seulement si
sa matrice est de dterminant non nul.
(Voir exercice 4.8.6).
Remarque
Dans ltude, avec Matlab, dun systme carr dpendant de paramtres, il est
conseill de calculer au pralable le dterminant de la matrice du systme pour dtecter
les cas particuliers. On rappelle que les commandes rref et solve ne permettent pas
toujours de le faire (voir exercice 4.8.7).

110

Mathmatiques avec Matlab

4.8. Exercices
4.8.1. Construction dune matrice diagonale
Construire la matrice carre nulle de type
matrice diagonale :





.
..
 ..
.









.. 
. 




 puis



.. ..
. .

la modier pour obtenir la

(solution p. 113)

4.8.2. Calculs avec trois matrices


1) Utiliser rand pour construire trois matrices carres ,  ,  de type  .
2) Vrier sur cet exemple la proprit dassociativit. Comparer   et  .
3) Comparer    et 
4) En utilisant le calcul symbolique de Matlab, dnir




#

et reprendre les questions prcdentes (pour vrier que deux matrices symboliques
sont gales, il suft de calculer leur diffrence.)

(solution p. 114)

4.8.3. Parts dun march


Soient  et  deux produits concurrentiels. On suppose quaucun produit nouveau
napparat sur le march. Les parts sur le march la date ' pour les produits  et 
sont reprsentes par la matrice colonne


avec  





(puisquil ny a pas dautre produit que  et  sur le march).

Matrices

La rpartition prvue la date '


est   , telle que













111





( sappelle matrice de transition). On notera que


 

1) Pour 

         

, calculer  ,  , 

 

2) Refaire ces calculs avec dautres valeurs de  




 

.

Quobserve-t-on ?



 

, vriant toujours

3) Soit # un rel appartenant lintervalle 


  
On note  
 # Calculer en fonction de # les valeurs de 
par rcurrence  .
4) Quelle est la limite de 



(solution p. 116)
4.8.4. Calculs avec deux matrices
On donne les matrices












 





1) Calculer 8 et vrier quici, on a 8

8 

2) Donner 8
3) Montrer que


 8   

 

8  

, puis

lorsque  tend vers


? Quelle inter-

prtation conomique peut-on faire de ce rsultat ?





 8 

4) En dduire  
(solution p. 118)






112

Mathmatiques avec Matlab

4.8.5. Mthode de Sylvester


On propose dutiliser la mthode dite de Sylvester, expose ici sur des matrices
dordre  pour prouver lgalit


 

 




 

!  
 

et ! le dterminant



Soient


 

 

 

 







1) En dveloppant ! suivant la premire ligne, montrer quon a


!  





 

2) Grce aux actions de Gauss suivantes


1
1




1

 1 

1

 1

1

et en dveloppant ensuite par rapport la deuxime colonne, montrer quon a


!  

  

4.8.6. Sur un systme de Cramer


On considre le systme















  -

-

'

'
'
'





1) Montrer que ce systme est de Cramer.


2) Donner sa solution en utilisant la fonction rref de Matlab.
3) Vrier quon obtient aussi cette solution directement par linversion matricielle.
4) En adaptant les formules de Cramer au cas dun systme de quatre quations
quatre inconnues, retrouver la solution de ce systme.
(solution p. 121)

Matrices

113

4.8.7. Un systme de Vandermonde


On considre le systme dit de Vandermonde suivant





1) En calculant le dterminant de ce systme, donner une condition ncessaire


et sufsante sur les coefcients  et
pour avoir une unique solution. En donner
lexpression.
2) Montrer que dans le cas   et  
il y a des solutions si et seulement si
#  ou # 
et trouver toutes les solutions dans ces deux cas.
3) Montrer que si   
il y a des solutions si et seulement si #  et donner
ces solutions.

(solution p. 123)

4.9. Solutions
Exercice 4.8.1
  -%*

 permet de construire la matrice nulle de type
modie ensuite les termes de la diagonale.

M=zeros(10,10) ;
for i=1 :10,
M(i,i)=11-i ;
end
M
M=
10 0 0 0 0 0 0 0 0 0
0900000000
0080000000
0007000000
0000600000
0000050000
0000004000
0000000300
0000000020
0000000001


.

On

114

Mathmatiques avec Matlab

On pouvait aussi utiliser la fonction diag


clear
V=[10 :-1 :1] ;
M=diag(V) ;

Exercice 4.8.2
1) On dnit les trois matrices 

 

A=rand(3,3)
A=
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
B=rand(3,3)
B=
0.4447 0.9218 0.4057
0.6154 0.7382 0.9355
0.7919 0.1763 0.9169
C=rand(3,3)
C=
0.4103 0.3529 0.1389
0.8936 0.8132 0.2028
0.0579 0.0099 0.1987
2) On compare  
sont gaux.

   

et 

  

P1=(A*B)*C
P1 =
1.6924 1.4640 0.6672
1.1092 0.9553 0.4575
1.8012 1.5372 0.7901
P2=A*(B*C)
P2 =
1.6924 1.4640 0.6672
1.1092 0.9553 0.4575
1.8012 1.5372 0.7901

On constate que les rsultats

Matrices

Aux erreurs darrondi machine prs :


P1-P2
ans =
1.0e-015 *
0
0
-0.2220 0
0.2220 0
Pour 

 

et 

-0.1110
-0.0555
0

, on a :

 

P1=A*B
P1 =
1.0831 1.3151 1.2586
0.6660 0.8743 0.9445
1.3894 1.2668 1.7123
P2=B*A
P2 =
0.8818 1.3469 0.5533
1.3231 1.6700 1.0630
1.3496 1.2407 1.1179
P1-P2
ans =
0.2013 -0.0319 0.7053
-0.6571 -0.7957 -0.1185
0.0398 0.0260 0.5944
3) On vrie que   

I3=eye(3)
I3 =
100
010
001
P1=A*I3
P1 =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
P1-A
ans =
000
000
000

115

116

Mathmatiques avec Matlab

4) On effectue les mmes vrications sur des matrices de type


le calcul symbolique.

 

en utilisant

syms a b c d a1 b1 c1 d1 a2 b2 c2 d2 real
A=[a b ; c d]
A=
[ a, b]
[ c, d]
B=[a1 b1 ;c1 d1] ;
C=[a2 b2 ; c2 d2] ;
D1=simplify(A*B-B*A)
D1 =
[ b*c1-c*b1, a*b1+b*d1-a1*b-b1*d]
[ c*a1+d*c1-c1*a-d1*c, c*b1-b*c1]
D2=simplify((A*B)*C - A*(B*C))
D2 =
[ 0, 0]
[ 0, 0]
I2=eye(2) ;
P=A*I2
P=
[ a, b]
[ c, d]

Exercice 4.8.3
1) On entre les matrices 



et on calcule 

M= [0.4 0.2 ;0.6 0.8] ;


P0=[0.7 ; 0.3 ] ;
P1=M*P0
P1 =
0.3400
0.6600
P2=M*P1
P2 =
0.2680
0.7320

 

 

Matrices

Pour calculer 

on a la relation de rcurrence 

117



P10=M^10*P0
P10 =
0.2500
0.7500
P20=M^20*P0
P20 =
0.2500
0.7500
2) On peut effectuer les calculs avec dautres valeurs pour


dans chaque cas  


3) On exprime  




sont trs proches de

 , , 

 

en fonction de #

syms d
x0=1/4+d ;
y0=1-x0 ;
P0=[x0 ;y0] ;
M=sym(M) ;
P1=M*P0
P1 =
[ 1/4+1/5*d]
[ 3/4-1/5*d]
P2=M*P1
P2 =
[ 1/4+1/25*d]
[ 3/4-1/25*d]
P3=M*P2
P3 =
[ 1/4+1/125*d]
[ 3/4-1/125*d]
On peut achever de prouver par rcurrence la relation




  


vrie ci-dessus pour  


 .
On suppose la relation vraie un rang  et on vrie quelle est encore vraie au rang

118

Mathmatiques avec Matlab

syms n
Pn=[1/4+1/5^n*d ;3/4-1/5^n*d]
Pn =
[ 1/4+1/(5^n)*d]
[ 3/4-1/(5^n)*d]
PnPlus1=M*Pn
PnPlus1 =
[ 1/4+1/5/(5^n)*d]
[ 3/4-1/5/(5^n)*d]
simple(PnPlus1)
[ 1/4+(5^(-1-n)*d]
[ 3/4-(5^(-1-n)*d]

4) De la relation obtenue pour 

 

on dduit


 

Ce rsultat montre que, quelle que soit la rpartition initiale


march, la rpartition tend vers " "

Exercice 4.8.4
1) On introduit les matrices  et 8  puis on calcule 8

   

A=[-1 1 1 -2 ; 1 -1 -2 1 ;1 -2 -1 1 ; -2 1 1 -1] ;
J=[0 0 0 1 ;0 0 1 0 ; 0 1 0 0 ; 1 0 0 0] ;
J2=J^2
J2 =
1000
0100
0010
0001

des parts de

Matrices

On vrie que 8

8

P1 =A*J
P1 =
-2 1 1 -1
1 -2 -1 1
1 -1 -2 1
-1 1 1 -2
P2=J*A
P2 =
-2 1 1 -1
1 -2 -1 1
1 -1 -2 1
-1 1 1 -2

2) De la relation 8

 

obtenue ci-dessus, on dduit

On pouvait aussi lobtenir par :

J^(-1)
ans =
0001
0010
0100
1000

3) On vrie la relation

 8   

 8 

119

120

Mathmatiques avec Matlab

I4=eye(4)
I4 =
1000
0100
0010
0001
Exp1=(A+2*I4+3*J)^2
Exp1 =
4444
4444
4444
4444
Exp2=4*(A+2*I4+3*J)
Exp2 =
4444
4444
4444
4444

puis

 

8  



Exp3=A*(A+6*J)
Exp3 =
-5 0 0 0
0 -5 0 0
0 0 -5 0
0 0 0 -5

On en dduit que la matrice




8 

Matrices

121

est linverse de  Avec Matlab :

Inv=-1/5*(A+6*J)
Inv =
0.2000 -0.2000 -0.2000 -0.8000
-0.2000 0.2000 -0.8000 -0.2000
-0.2000 -0.8000 0.2000 -0.2000
-0.8000 -0.2000 -0.2000 0.2000
%Vrication
A^(-1)
ans =
0.2000 -0.2000 -0.2000 -0.8000
-0.2000 0.2000 -0.8000 -0.2000
-0.2000 -0.8000 0.2000 -0.2000
-0.8000 -0.2000 -0.2000 0.2000

Exercice 4.8.6
1) On introduit la matrice  des coefcients du systme, sous forme symbolique
an dobtenir les rsultats ultrieurs sous forme fractionnaire exacte. Puis on calcule
  pour vrier que ce systme carr est de Cramer.

A=sym([2 3 -1 1 ;1 -1 3 -2 ; 3 -4 1 -3 ; 1 5 -2 2])
A=
[ 2, 3, -1, 1]
[ 1, -1, 3, -2]
[ 3, -4, 1, -3]
[ 1, 5, -2, 2]
d=det(A)
d = -26

122

Mathmatiques avec Matlab

2) Pour utiliser rref, on cre la matrice forme par juxtaposition de


matrice colonne  des seconds membres.

et de la

B=[1 ;0 ;0 ;0] ;
Syst=[A B]
Syst =
[ 2, 3, -1, 1, 1]
[ 1, -1, 3, -2, 0]
[ 3, -4, 1, -3, 0]
[ 1, 5, -2, 2, 0]
rref(Syst)
ans =
[ 1, 0, 0, 0, 23/26]
[ 0, 1, 0, 0, -17/26]
[ 0, 0, 1, 0, 11/13]
[ 0, 0, 0, 1, 53/26]
Ainsi, le systme est quivalent









  


 

'

  

3) On obtient aussi la solution du systme par )

 

S=inv(A)*B
S=
[ 23/26]
[ -17/26]
[ 11/13]
[ 53/26]
4) Enn, les formules de Cramer donnent, par exemple









o  sobtient en remplaant dans  la premire colonne (celle de linconnue ) par


la colonne  des seconds membres :
x=det([B A( :,2 :4)])/d
x = 23/26
Ici, A( :,2 :4) signie la sous-matrice extraite de  en conservant les colonnes de 2
4. On calcule de mme















'








Matrices

123

y=det([A( :,1) B A( :,3 :4)])/d


y = -17/26
z=det([A( :,1 :2) B A( :,4)])/d
z = 11/13
t=det([A( :,1 :3) B])/d
t = 53/26
Exercice 4.8.7
1) On dclare les donnes et on calcule le dterminant du systme
syms a b c d real
M=[1 1 1 ; a b c ; a^2 b^2 c^2] ;
B = [1 ; d ;d^2] ;
D = factor(det(M))
D =-(-c+b)*(a-c)*(a-b)
La matrice est donc inversible si et seulement si les trois nombres
tincts. On rsout dans ce cas le systme

et

sont dis-

S=simple(inv(M)*B)
S=
[ (c-d)*(b-d)/(a-c)/(a-b)]
[ -(c-d)*(a-d)/(-c+b)/(a-b)]
[ (b-d)*(a-d)/(-c+b)/(a-c)]
Do


 #   #

  


 #  #
 
  




 #  #


 


On rsout maintenant les cas particuliers.


2) Cas  
et   On dtermine la matrice du systme particulier
M1= subs(M,b,c)
M1 =
[ 1, 1, 1]
[ a, c, c]
[ a^2, c^2, c^2]
det(M1)
ans =0
J=[M1 B]
J=
[ 1, 1, 1, 1]
[ a, c, c, d]
[ a^2, c^2, c^2, d^2]

124

Mathmatiques avec Matlab

Lutilisation de rref donne, en raison de simplications abusives


rref(J)
ans =
[ 1, 0, 0, 0]
[ 0, 1, 1, 0]
[ 0, 0, 0, 1]
On utilise donc la mthode de Gauss, pas pas
J(2, :)=J(2, :)-a*J(1, :) ;
J(3, :)=J(3, :)-a^2*J(1, :)
J=
[ 1, 1, 1, 1]
[ 0, c-a, c-a, -a+d]
[ 0, c^2-a^2, c^2-a^2, d^2-a^2]
J(3, :)=J(3, :)-(c+a)*J(2, :) ;
J=simplify(J)
J=
[ 1, 1, 1, 1]
[ 0, c-a, c-a, -a+d]
[ 0, 0, 0, d^2-a*d+c*a-c*d]
Le systme a des solutions si et seulement si
#

cest--dire
# #

 #

# 

  
#   


 #   

ce qui quivaut #  ou # 
On traite ces deux cas :
 cas # 
K=subs(J, d,a)
K=
[ 1, 1, 1, 1]
[ 0, c-a, c-a, 0]
[ 0, 0, 0, 0]
Comme
 on peut utiliser rref
rref(K)
ans =
[ 1, 0, 0, 1]
[ 0, 1, 1, 0]
[ 0, 0, 0, 0]

Matrices

ce qui se traduit par

 
-

-

Do lensemble des solutions :

 cas # 

Do

 

H=subs(J, d,c)
H=
[ 1, 1, 1, 1]
[ 0, c-a, c-a, c-a]
[ 0, 0, 0, 0]
rref(H)
ans =
[ 1, 0, 0, 0]
[ 0, 1, 1, 1]
[ 0, 0, 0, 0]

   -

-

 

3) Cas   
On calcule la matrice du systme particulier
M2 =subs(M,{a,b},{c,c})
M2 =
[ 1, 1, 1]
[ c, c, c]
[ c^2, c^2, c^2]
J2=[M2 B]
J2 =
[ 1, 1, 1, 1]
[ c, c, c, d]
[ c^2, c^2, c^2, d^2]
Puis on effectue pas pas deux actions de Gauss
J2(2, :)=J2(2, :)-c*J2(1, :) ;
J2(3, :)=J2(3, :)-c^2*J2(1, :) ;
J2
J2=
[ 1, 1, 1, 1]
[ 0, 0, 0, d-c]
[ 0, 0, 0, d^2-c^2]

125

126

Mathmatiques avec Matlab

Il y a des solutions si et seulement si # 


et
subs(J2,d,c)
ans =
[ 1, 1, 1, 1]
[ 0, 0, 0, 0]
[ 0, 0, 0, 0]
Ainsi lensemble des solutions est

    -

-

 

Chapitre 5

Espaces vectoriels

Nous avons vu que les manipulations essentielles de Gauss sur les systmes linaires, les matrices ou les dterminants taient celles qui combinaient entre les lignes
(ou les colonnes). Nous allons donc considrer des ensembles forms partir de ces
lignes (ou colonnes) sur lesquels nous dnissons des oprations, permettant, entre
autres, de retrouver ces "combinaisons".
5.1. Lespace vectoriel
5.1.1. Oprations dans
Lensemble

est par dnition lensemble des couples de rels :




Un lment



de



 

sera not



0 



Avec Matlab, il est reprsent entre crochets :


syms a b real
v= [a, b]
v =[ a, b]
Par dnition, deux lments
seulement si



0



et

127



9 

de

sont gaux si, et

128

Mathmatiques avec Matlab

Le couple

sera not




et appel vecteur nul.

Comme on la fait sur les matrices au chapitre prcdent, on va dnir deux oprations naturelles sur les lments de


1) Laddition. Pour deux lments 
0 


leur somme  par


 


  0 0 

  


et 
0 



 de

, on dnit

 

On a ainsi dni une application :



0






0   

2) La multiplication par les rels. Soit 5 un nombre quelconque de , on dnit



0   par
un multiple dun lment 





  5 0  5
Cela dnit lapplication :



5 5 






0   
Avec Matlab, ces oprations sont notes et  :
5

syms a1 a2 b1 b2 k real
v1 = [a1, b1] ;
v2 = [a2, b2] ;
s= v1+v2
s =[ a1+a2, b1+b2]
m = k*v1
m = [ k*a1, k*b1]

5.1.2. Structure despace vectoriel


La premire loi daddition (interne) satisfait aux proprits suivantes : pour tous





 


0
0 0
0









On dit que



 

 

0 0  0 0 (commutativit),






 

 

0 0 0   0 0  0 (associativit)
 

 







0  0  0 (existence de llment neutre 




9    est le symtrique de 0  


 

 
 
i.e. 
0 9  9 0 


est un groupe commutatif.

Espaces vectoriels

129

On vrie aussi les quatre proprits de compatibilit entre les deux lois :




pour tous 
0 , 9 




 

 

 






0




5 6 0   56 0








5 0 9   5 0 5 9






5 6 0  5 0 6 0

0 

et tous rels 5

A titre dexemple, on peut vrier avec Matlab la proprit (P3) :


E1= k*(v1+v2)
E1 = [ k*(a1+a2), k*(b1+b2)]
E2 = k*v1+k*v2
E2 = [ k*a1+k*a2, k*b1+k*b2]
expand(E1)
ans =[ k*a1+k*a2, k*b1+k*b2]
On dira que lensemble
muni des deux lois daddition et de multiplication par
les rels est un espace vectoriel sur le corps de base (en abrg -e.v). Un lment

quelconque 
0   sera appel un vecteur, tandis quun lment de
sera appel
un scalaire.
5.1.3. Consquences
Des quatre proprits fondamentales ci-dessus, on dduit que





pour tout 0 de





2) 5 
0   5  ou 0  

1) 
0 

5.2. Lespace vectoriel


On gnralise les notions prcdentes lensemble


Un lment de

est not



0 



et sera aussi appel un vecteur.


De mme ici, on dnit naturellement laddition et la multiplication par les scalaires, en posant pour



0 



9 

 

130

Mathmatiques avec Matlab

la somme :



 


  0 9 



 

et le produit par un scalaire :




5  5

5 0

Il est facile de voir que


 est un espace vectoriel sur , cest--dire quil vrie
les proprits cites au paragraphe prcdent 
    dune part et


 
    dautre part.
5.3. Cas gnral
5.3.1. Structure despace vectoriel
5.3.1.1. Dnitions
Soit  un ensemble quelconque sur lequel on a dni deux lois : une, interne
note


0

"





"

et une autre dite externe note laide dun point,

 
" 

on dira que  est un espace vectoriel sur


5 "

( en abrg un

-e.v) si :

est un groupe commutatif :


0 0 (commutativit),
0   0 0  0 (associativit)




0

0 



0





(existence de llment neutre 


il existe 9 de  , dit symtrique de 0 vriant 0 9  9 0
(9 est not  0 ),

pour tous

 0  0   0

0

0

de  ,

et de plus :



 

" 

 

 

"

6 "

56 "

0 

5 "

5 0

6 " 

5 "

6 "

"

pour tous lments " et 0 de  et tous scalaires 5

de




 

Espaces vectoriels

131

5.3.1.2. Remarque
Lorsque les scalaires sont dans  , on dit quon a un espace vectoriel sur  .
5.3.2. Exemples
1) Lensemble

est un

-e.v.

2) Lensemble des matrices    que nous avons tudi, muni de laddition


matricielle et de la multiplication par les scalaires de est un -e.v.
3) Lensemble
 des polynmes nul ou de degr infrieur ou gal
 si
coefcients dans est un -e.v. Ici  
 

 

avec 

et

(o  est une variable relle par exemple). Les deux lois sont laddition naturelle des
polynmes et la multiplication par les scalaires.
4) Lensemble     des fonctions dnies sur un intervalle 
dans est aussi un -e.v pour les deux lois naturelles suivantes

   .    
 5    5 

. 

5





valeurs



5.3.3. Combinaisons linaires


Cest une notion fondamentale en algbre linaire.
1) Dans
. On appelle combinaison linaire de deux vecteurs

0 de la forme
vecteur 



 tout

0 et 0







0  5 0 5 0

o 5 5 
2) Dans un espace vectoriel gnral  , une combinaison linaire de & vecteurs
" "

" "

est un vecteur " de la forme

avec 5

"

pour  

5 "

"

5 " 5 "

&

Exemple.
Dans

on donne



0  

 



0 



132

Mathmatiques avec Matlab

on peut calculer







 0  0

puis

  


0

0

v1= [-1, 2, 0] ; v2 = [1, -3, 0] ;


w= 2*v1+5*v2
w = 3 -11 0
syms a b real
w = a*v1+b*v2
w = [ -a+b, 2*a-3*b, 0]
Ainsi







 0   0  

et

  


0   

0

  

5.3.4. Notion de sous-espace vectoriel


5.3.4.1. Dnition
Soit  un -e.v et un sous-ensemble de  . On dira que est un sous-espace
vectoriel de  (en abrg -s-e.v.) si , muni des deux lois de  , est lui-mme un
espace vectoriel.
On a la caractrisation importante suivante :
Un sous ensemble non vide de  est un sous-espace vectoriel ssi :
pour tous " 0    , on a " 0 
Cela traduit le fait que

est stable vis--vis des lois et 

On remarquera que tout sous-espace vectoriel contient llment neutre pour


laddition (ou le vecteur nul). En effet puisque est non vide, il existe au moins un
lment "  et donc, par stabilit, on dduit que

"


"  

5.3.4.2. Exemple
Dans 

le sous-ensemble




0 

 

 

Espaces vectoriels

133


est un -s-e.v. En effet, pour    , on obtient 
0   qui appartient





: et lorsquon forme une combinaison linaire   
on
0  0 dlments de
a:


 

 

 

 


On obtient encore un lment de la forme 
 





 

lment de

5.3.5. Sous-espaces vectoriels engendrs


Dans lespace vectoriel





0 et 0 . Soit

autrement dit,

par exemple, considrons deux vecteurs quelconques







0  5 0 5 0  5

 

est lensemble de toutes les combinaisons linaires de

Alors on peut montrer que :


1) est un sous-espace vectoriel de
2)

est le plus petit (au sens de linclusion) sous-espace vectoriel de





0 et 0 .

est appel le sous-espace vectoriel engendr par les vecteurs


not


 
'





0 et 0





0 0 


ou ) &  
0

contenant





0 et 0 et est



0 

5.3.5.1. Remarques




Pour montrer que  
'  
0 0  est inclus dans un sous-espace vectoriel , il suft




de vrier que 0 et 0 appartiennent .
La notion prcdente est videmment gnralisable dans un espace vectoriel quelconque et avec un nombre ni de vecteurs donns dans cet espace.
5.3.5.2. Exemple




On reprend les vecteurs 
0 0 de lexemple 5.3.3 et le sous-espace vectoriel
paragraphe 5.3.4.2. Vrions que


 
'





0 0 





0 et 0 appartiennent videmment
, donc
 
'





0 0  

du

134

Mathmatiques avec Matlab

Montrons lautre inclusion : tant donn un lment quelconque





0 et 0 .
cherche sil peut scrire comme combinaison linaire de 

   

de

on

syms a b x0 y0 real
v1=[-1, 2, 0] ; v2 =[1, -3, 0] ;
a*v1+b*v2
ans = [ -a+b, 2*a-3*b, 0]
S= solve(-a+b=x0, 2*a-3*b=y0,a,b);
S.a
ans = -3*x0-y0
S.b
ans = -2*x0-y0
On en dduit que tout lment

  

de

peut scrire sous la forme

  


0

0

avec




  
  

5.3.5.3. Proprits de Vect


 


Considrons titre dexemple trois vecteurs 
0 0 et 0 dans un espace vectoriel
quelconque  . Alors les trois actions de Gauss suivantes conservent le sous-espace
engendr  
' 
1) on peut changer deux vecteurs quelconques . On a, par exemple,
 
'










0 0
0    
'  0 0 0 





0  0 

2) on peut multiplier un vecteur par un rel non nul 5. Par exemple :


 
'



 






0 0
0    
' 5 0 0
0 





0  5 0 

3) on peut ajouter un vecteur une combinaison linaire des autres. Par exemple :
 
'






0 0
0 





 

 


5
0 0 5 0 6 0 0 
 

 



 
'  0 5 0 6 0 0
0 
 
'

etc.
5.4. Bases dun espace vectoriel
Soit  un espace vectoriel sur .

Espaces vectoriels

135

5.4.1. Famille gnratrice


Soit

une partie de  et


0 0
&

vecteurs quelconques de

. On dira que la famille

0

5



0 0

est gnratrice de ssi tout vecteur


 
 & En dautres termes :

" 

0 0

de

"

est combinaison linaire des 0  pour

"

5 0

5 0

Par exemple la famille constitue par les vecteurs



 
est gnratrice de lespace



 


puisque tout vecteur 
" 


" 

 

 

peut scrire

 




 

5.4.2. Famille libre


5.4.2.1. Dnitions
Une famille de vecteurs

0



0 0

de  est dite libre si aucun de ces vecteurs nest une combinaison linaire des autres.
Cela signie que la seule combinaison linaire nulle de ces vecteurs est la combinaison triviale
0 0 0  
Cest quivalent dire que si
5 0

5 0  

alors
5

Par exemple la famille constitue par les deux vecteurs



0 
est libre car



 5 


0  

5 0



5



0 

 

5 

5 5 



5

136

Mathmatiques avec Matlab

Lorsque une famille de vecteurs est libre, on dit aussi que ces vecteurs sont linairement indpendants.
Si une famille nest pas libre, on dira quelle est lie ou que les vecteurs la constituant sont linairement dpendants.
Voici une famille lie dans



0 



0 

 

puisque

 






0 

 0

En pratique, dterminer si une famille de


un systme admet la solution unique   

est libre ou lie conduit chercher si


ou admet une innit de solutions.

5.4.2.2. Exemple
Dterminer si la famille de vecteurs






0 0
0   

 



 

est libre ou lie.


On dnit

v1 =[1,2,0] ; v2=[2,-1,3] ;v3=[5,0,6] ;

Formons une combinaison linaire de






0 0
0 :

syms t1 t2 t3 real
c= t1*v1+t2*v2+t3*v3
c = [ t1+2*t2+5*t3, 2*t1-t2, 3*t2+6*t3] ;


La famille 
0





0
0  est libre si, et seulement si, le systme :





'
'

'

'

'

'

'

admet une solution unique. On forme la matrice permettant dappliquer la mthode de


Gauss ce systme :
M= [1 2 5 0 ;2 -1 0 0 ;0 3 6 0]
M=
1 2 50
2 -1 0 0
0 3 60

Espaces vectoriels

137

Lapplication de cette mthode donne :


rref(M)
ans =
1010
0120
0000
Do le systme quivalent

'

'

'
'

dont lensemble des solutions est

   ' '

Ainsi la famille 
0

' 

'

 





0
0  est lie.

5.4.3. Base et dimension dun espace vectoriel


5.4.3.1. Dnition
Dans un espace vectoriel quelconque, on appelle base une famille gnratrice et
libre.
5.4.3.2. Exemples
On peut facilement vrier que dans



 



 

la famille constitue par les vecteurs



 

est une base. On lappelle la base canonique.


Dans lespace vectoriel 
matrices


des matrices carres, la famille constitue par les

est une base.


5.4.3.3. Proprits fondamentales
Si dans un espace vectoriel  il existe une partie gnratrice nie, on dira que
est de dimension nie. Dans le cas contraire on dira quil est de dimension innie.
On a les rsultats suivants :

138

Mathmatiques avec Matlab

Thorme
Dans un espace vectoriel  de dimension nie sur :
(i) il existe au moins une base nie,
(ii) toutes les bases sont nies et ont le mme nombre dlments .
Ce nombre  est appel la dimension de  et se note 



Thorme
Dans un espace vectoriel  de dimension nie  sur :
(i) toute famille libre de  lments est une base,
(ii) toute famille gnratrice de  lments est une base.

Par exemple, on a






  

5.4.4. Caractrisation dune base


Dans un espace vectoriel  de dimension  sur



 

une famille de  vecteurs

est une base, si :


Pour tout vecteur 
0 il existe  scalaires 5
dtermins de manire unique, tels que
0

Les scalaires 5 5
lativement la base

5  

5  5

sont appels les composantes (ou coordonnes) de 0 re-



 

et sont dtermins dune manire unique. Lorsque la base est xe, on notera

5
5

..
.







5.4.5. Matrice des coordonnes dune famille de vecteurs


5.4.5.1. Dnition
Soit  un espace vectoriel de dimension  sur



 

dans lequel on sest x une base

Espaces vectoriels

On se donne & vecteurs 0 



..
.

0 0







 , avec leurs coordonnes respectives :

La matrice






 

..
.



..
.




..
.




..
.













..
.

139







obtenue en juxtaposant les colonnes des vecteurs 0  0 0 est appele matrice de


cette famille de vecteurs relativement la base      
Thorme.
Dans le cas &   les vecteurs 0
si et seulement si    

forment une base

En effet ces vecteurs sont linairement indpendants si on a lquivalence


 0

  



 



autrement dit si le systme












 



 

 

est de Cramer, cest--dire 



..
.

5.4.5.2. Remarque
si on utilise la base canonique

Dans le cas de



 





 




 
 

alors tout vecteur



0 

 

a pour matrice de coordonnes



  




  

 




..
.







140

Mathmatiques avec Matlab

Matlab ne faisant pas la distinction entre llment      de


et la matrice
ligne     on peut remarquer quon obtient la matrice colonne des coordon



nes de 
0 par transposition de 0 . Vrions le dans
e1=[1,0,0] ;
e2=[0,1,0] ;
e3=[0,0,1] ;
syms x1 x2 x3 real
v=[x1,x2,x3]
v=
[ x1, x2, x3]




On vrie lgalit 
0    





  

x1*e1+x2*e2+x3*e3
ans =
[ x1, x2, x3]
On obtient la matrice colonne des coordonnes de

0 :
ligne 
coordV=v
coordV =
[ x1]
[ x2]
[ x3]



0 par transposition de la matrice

5.4.6. Rang dune famille de vecteurs


Soit une famille (ou un systme) de vecteurs


dun -e.v

0

0 0



On appelle rang de la famille  le nombre maximum, not % de vecteurs linairement indpendants pris dans  .
On a ncssairement

%
%

&

   
' 0

0 0



Lorsque le systme est pris dans un espace vectoriel de dimension  on a aussi


%

Espaces vectoriels

141

5.4.6.1. Exemple.


Pour dterminer le rang % du systme de




on utilise les actions de Gauss. On a


 
' 
 
' 
 
' 
 
' 
 
' 
 
' 
 
' 
 
' 
 
'











ainsi









   

   

  


   


  










  






  
' 


 

 

5.4.6.2. Caractrisation
Si de plus, lespace vectoriel est rapport une base      , alors on
montre que le rang du systme  est lordre de la plus grande matrice carre de dterminant non nul extraite de la matrice



..
.




..
.




..
.










de la famille  (voir exercice 5.5.8 p. 145).


5.5. Exercices
5.5.1. Un plan vectoriel de

On donne le sous-ensemble


de

 -

dni par


  - 

142

Mathmatiques avec Matlab

1) Vrier que  est un sous-espace vectoriel.


2) Montrer que    %  
 

.
3) En utilisant des actions de Gauss vrier que


 %





 

(solution p 145)

5.5.2. Un systme de 4 vecteurs de




On donne les vecteurs de


 

   




   

1) Quelle relation doivent vrier 


libre ?


 

 

   


 

   

pour que ces vecteurs forment une famille

2) Lorsque ces vecteurs forment une famille lie, donner dans chaque cas une
combinaison linaire vrie.

(solution p 147)

5.5.3. Un s-e.v de

On donne le sous-ensemble  de
 

  

  

dni par


 



montrer que


 %



et donner ensuite une base et la dimension de  

(solution p 148)




  

Espaces vectoriels

5.5.4. Un s-e.v de  
Soit

le sous-ensemble des matrices carres de  

 # 




o 
#  .
1) Vrier que



:







 
'



8 : 1

dnies par

  

#

 


#
 
 #

avec

143

En dduire une base et la dimension de .


2) Montrer que la multiplication des matrices est stable dans
tative dans ?

Est-elle commu-

3) Calculer le produit
 # 
  #

  


4) En dduire la matrice inverse ventuelle de 

# 


Discuter.

(solution p. 149)
5.5.5. Matrices magiques de type (3,3)
Quels chiffres tous diffrents entre
et doit-on mettre dans chaque case du
tableau de type   pour que la somme de chaque ligne, de chaque colonne et des
deux diagonales soit toujours gale
 ?
Une solution est la matrice

On propose ltude suivante pour trouver lensemble des solutions.


1) On dit quune matrice de    est magique si les huit sommes de lignes,
de colonnes et des deux diagonales sont gales un nombre donn . Ecrire cette
proprit sous forme dun systme.

144

Mathmatiques avec Matlab

2) Vrier que ce systme est rsoluble par la mthode de Gauss pour tout  
3) Donner lensemble solution de ce systme. Faire des vrications.

4) Montrer que cet ensemble est un s-e.v. de dimension .


5) Etude du cas  
, avec coefcients entiers. Donner toutes les possibilits
pour un tableau   coefcients entiers tous distincts entre
et pour avoir la
proprit dune matrice magique avec  

(solution p 152)
5.5.6. Sur lespace vectoriel



On considre  
 lespace vectoriel des polynmes nul ou de degr infrieur ou gal  et coefcients rels. Ici  dsigne une variable relle. Ainsi tout
lment de  est de la forme
& 

 

avec   ,  

1) Montrer que si, en trois points     distincts, on connat les valeurs
   de &  alors celui-ci est entirement dtermin.
2) Vrier que la famille de polynmes constitue par
& 

& 

&



est une base de  .


3) Mme question avec la famille

















/ 

/ 



      
       
       
       
       

       




4) Montrer que les composantes dun polynme quelconque &


sont respectivement
&  

&  

& 



5) On choisit




 

Ecrire le polynme %  
   sur la base / / / 
6) Sans dterminer explicitement &  calculer &  sachant que
&

 

&

  

&

(solution p 157)

  

sur cette base

Espaces vectoriels


5.5.7. Calcul de rang dans


Calculer le rang

145

du systme





(solution p. 160)
5.5.8. Calcul de rang dans

Trouver laide de Matlab le rang du systme









(solution p. 160)
5.6. Solutions
Exercice 5.5.1
1) On vrie que est un s-e.v :
-  
- On forme une combinaison linaire dlments de

, note  :

syms x1 y1 z1 x2 y2 z2 a b real
s= a*[x1,y1,z1]+ b*[x2,y2,z2]
s = [ a*x1+b*x2, a*y1+b*y2, a*z1+b*z2]
on dnit  / , lquation caractrisant les lments de
lquation  / 

et on montre que

vrie

syms x y z real
Eq =x-2*y+z ;
Eqs=subs(Eq,{x,y,z},{s(1),s(2),s(3)})
Eqs = a*x1+b*x2-2*a*y1-2*b*y2+a*z1+b*z2
collect(Eqs,a)
ans = (x1-2*y1+z1)*a+b*x2-2*b*y2+b*z2
collect(ans,b)
ans = (x2-2*y2+z2)*b+(x1-2*y1+z1)*a
collect a permis de faire apparatre les deux expressions


   - et   

qui sont nulles puisque par hypothse  


Ainsi  vrie lquation caractrisant .

 - 

et

appartiennent

146

Mathmatiques avec Matlab


2) On vrie que 
9 


 et



9  


 appartiennent

subs(Eq,{x,y,z},{2,1,0})
ans = 0
subs(Eq,{x,y,z},{-1,0,1})
ans = 0
Ainsi

 

 
'9 9  





Montrons que   
' 9 9 , cest--dire que tout lment de est combinaison
 

linaire de 
9 et 9
% On calcule aw1+bw2 :
w1 =[2,1, 0] ; w2 =[-1,0,1] ;
syms a b real
C =a*w1+b*w2
C = [ 2*a-b, a, b]


9 et
est combinaison linaire de de 
suivant, dinconnues et  admet une solution :
 -



9 si, et seulement si le systme





Par la mthode de Gauss, en faisant

 1 
1





on obtient

Ainsi, le systme admet la solution

 

si et seulement si 
tout lment de .






-

    - , soit    -

 ,

relation qui est vrie par

3) Ici la commande rref applique la matrice des vecteurs


question !
M=[w1 ; w2] ;
rref(M)
ans = 1 0 -1
0 1 2
donc



   
'


 
' 9 9







9 9 rpond la




Espaces vectoriels

147

Exercice 5.5.2
1) On dclare les vecteurs donns et on forme une combinaison linaire quelconque :
syms a b c real
u1 =[c,a,b,c] ;
u2=[a,c,c,b] ;
u3=[b,c,c,a] ;
u4=[c,b,a,c] ;
syms t1 t2 t3 t4 real
combLin = t1*u1+t2*u2+t3*u3+t4*u4
combLin = [ t1*c+t2*a+t3*b+t4*c, t1*a+t2*c+t3*c+t4*b,
t1*b+t2*c+t3*c+t4*a, t1*c+t2*b+t3*a+t4*c ]
On doit donc tudier le systme

)









'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

qui scrit matriciellement  4

ce quon peut vrier en dnissant  et 4 :

M=[u1 u2 u3 u4] ;
T =[t1 ;t2 ;t3 ;t4] ;
S = M*T
S=
[ t1*c+t2*a+t3*b+t4*c]
[ t1*a+t2*c+t3*c+t4*b]
[ t1*b+t2*c+t3*c+t4*a]
[ t1*c+t2*b+t3*a+t4*c]
Lorsque le dterminant de la matrice  est non nul, le systme admet une solution
unique, et la famille de vecteurs donne est libre. Dans le cas contraire, le systme
nest plus de Cramer, admet dautres solutions que la solution triviale  et la
famille est lie.
d =det(M)
d =-4*c^2*a^2+8*c^2*b*a-4*b^2*c^2+a^4-2*b^2*a^2+b^4
factor(d)
ans = (a-b)^2*(b+a+2*c)*(b+a-2*c)
Ainsi la famille est libre si et seulement si

 




 
 

148

Mathmatiques avec Matlab

2) La famille de vecteurs est lie dans chacun des trois cas suivants :


  

 

Dans chaque cas, il suft de trouver une solution non trivialement nulle au systme.
a) Cas   : on rsout le systme correspondant ce cas :
S1 = subs(S,b,a)
S1 = [ t1*c+t2*a+t3*a+t4*c]
[ t1*a+t2*c+t3*c+t4*a]
[ t1*a+t2*c+t3*c+t4*a]
[ t1*c+t2*a+t3*a+t4*c]
res=solve(S1(1),S1(2),S1(3),S1(4),t1,t2,t3,t4);
[res.t1 res.t2 res.t3 res.t4]
ans = [ -t4, -t3, t3, t4]
Do






 


' 
"  ' " ' " ' " 
b) Cas     
:
S2 = subs(S,b,-a-2*c)
S2 =[ t1*c+t2*a+t3*(-a-2*c)+t4*c]
[ t1*a+t2*c+t3*c+t4*(-a-2*c)]
[t1*(-a-2*c)+t2*c+t3*c+t4*a]
[ t1*c+t2*(-a-2*c)+t3*a+t4*c]
res=solve(S2(1),S2(2),S2(3),S2(4),t1,t2,t3,t4);
[res.t1 res.t2 res.t3 res.t4]
ans = [ t4, t4, t4, t4]

Do





 


 ' 
" ' " ' " 

' "

c) Cas    
:

en procdant de la mme faon, on obtient





 


  ' 
"  ' " ' " 

' "

Exercice 5.5.3
On dnit un vecteur quelconque de  cest--dire un vecteur



0 

 

  

Espaces vectoriels

vriant

149

 





 

syms x1 x2 x3 x4 real
v = [x1,x2,x3,x4] ;
v= subs(v,{x1,x3},{x2-3*x3,2*x4})
v = [ (x2-3*(2*x4)), x2, (2*x4), x4]
Pour montrer que


 
'







on vrie que 
0   si et seulement si il existe et  rels tels que



 

0  " "
avec


 
"



"  




ce qui conduit la rsolution dun systme de quatre quations, dinconnues et  :


u1 = [1 , 1, 0, 0] ; u2 =[-6,0,2,1] ;
syms a b real
diff=a*u1+b*u2-v
diff = [ a-6*b-x2+6*x4, a-x2, 2*b-2*x4, b-x4]
[a b]=solve(diff(1),diff(2),diff(3),diff(4),a,b)
a = x2
b = x4



Ainsi    
' 
" "  et
linairement indpendants.



  

car il est facile de voir que

Exercice 5.5.4
1) On introduit les matrices


 # 



1






 

" et " sont

150

Mathmatiques avec Matlab

syms a b c d real
M=[d -a -b -c ; a d -c b ; b c d -a ; c -b a d] ;
I=subs(M, {d,a,b,c},{1,0,0,0})
I =[ 1, 0, 0, 0]
[ 0, 1, 0, 0]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]
J = subs(M, {d,a,b,c},{0,1,0,0})
J=[ 0, -1, 0, 0]
[ 1, 0, 0, 0]
[ 0, 0, 0, -1]
[ 0, 0, 1, 0]
K=subs(M, {d,a,b,c},{0,0,1,0});
L=subs(M, {d,a,b,c},{0,0,0,1});
On vrie que 

si et seulement si il existe ' 




 '  '

'

' '

rels tels que

' : ' 1

syms t1 t2 t3 t4 real
diff=t1*I+t2*J+t3*K+t4*L-M;
[t1 t2 t3 t4]=solve(diff(1,1),diff(2,1),diff(3,1),diff(4,1), ...
diff(1,2),diff(2,2),diff(3,2),diff(4,2), ...
diff(1,3),diff(2,3),diff(3,3),diff(4,3), ...
diff(1,4),diff(2,4),diff(3,4),diff(4,4),t1,t2,t3,t4)
t1 = d
t2 =a
t3 =b
t4 =c
Ainsi   
' 8
trons quelle est libre :

 et 

: 1

 est une famille gnratrice de

8 : 1

syms t1 t2 t3 t4 real
comb=t1*I+t2*J+t3*K+t4*L
comb =
[ t1, -t2, -t3, -t4]
[ t2, t1, -t4, t3]
[ t3, t4, t1, -t2]
[ t4, -t3, t2, t1]
De
*  on dduit que ncessairement
'

'

 '  ' 

Mon-

Espaces vectoriels

Donc 

151

 constitue une base et

8 : 1



  

2) Montrons la stabilit de la multiplication : on effectue le produit de deux lments quelconques   et  de :


syms a1 b1 c1 d1 a2 b2 c2 d2 real
M1 = subs(M,{d,a,b,c},{d1, a1, b1, c1}) ;
M2 = subs(M,{d,a,b,c},{d2, a2, b2, c2}) ;
N = M1*M2 ;
N( :,1) % on nafche que la premire colonne
ans =[ d1*d2-a1*a2-b1*b2-c1*c2]
[ a1*d2+d1*a2-c1*b2+b1*c2]
[ -a1*c2+d1*b2+c1*a2+b1*d2]
[ -b1*a2+c1*d2+d1*c2+a1*b2]

Pour montrer que le produit ; est lui-mme lment de


tel que ; 
un lment ;        de
premire colonne de ; ci-dessus.

il suft alors de construire


en tenant compte de la

;

N1=subs(M,{d,a,b,c},{d1*d2-a1*a2-b1*b2-c1*c2,a1*d2+d1*a2-c1*b2+b1*c2, ...
-a1*c2+d1*b2+c1*a2+b1*d2,-b1*a2+c1*d2+d1*c2+a1*b2});
N-N1
ans =[ 0, 0, 0, 0]
[ 0, 0, 0, 0]
[ 0, 0, 0, 0]
[ 0, 0, 0, 0]

Do la stabilit de la multiplication. La loi nest pas commutative car


C = simplify(M1*M2 - M2*M1)
C=
[ 0, -2*b1*c2+2*c1*b2, 2*a1*c2-2*c1*a2, 2*b1*a2-2*a1*b2]
[ -2*c1*b2+2*b1*c2, 0, 2*b1*a2-2*a1*b2, -2*a1*c2+2*c1*a2]
[ -2*a1*c2+2*c1*a2, -2*b1*a2+2*a1*b2, 0, -2*b1*c2+2*c1*b2]
[ -2*b1*a2+2*a1*b2, 2*a1*c2-2*c1*a2, -2*c1*b2+2*b1*c2, 0]

152

Mathmatiques avec Matlab

3) On construit  

 #

  
 et on calcule le produit demand    :

M3 = subs(M,{d,a,b,c},{d,-a,-b,-c})
M3 =
[ d, a, b, c]
[ -a, d, c, -b]
[ -b, -c, d, a]
[ -c, b, -a, d]
M*M3
ans=[ d^2+a^2+b^2+c^2, 0, 0, 0]
[ 0, d^2+a^2+b^2+c^2, 0, 0]
[ 0, 0, d^2+a^2+b^2+c^2, 0]
[ 0, 0, 0, d^2+a^2+b^2+c^2]
4) Ainsi
 

Donc, si


#




la matrice 

Exercice 5.5.5
1) Une matrice

 #

 # 


a pour inverse

  


 









est magique si elle vrie le systme

























































Espaces vectoriels

153

On dclare les inconnues et on crit la matrice des coefcients et seconds membres,


permettant dappliquer rref :
syms a11 a12 a13 a21 a22 a23 a31 a32 a33 s real
M=[a11 a12 a13 ;a21 a22 a23 ; a31 a32 a33] ;
% les inconnues sont respectivement :
% a11 a12 a13 a21 a22 a23 a31 a32 a33
MatSyst = [ 1, 1, 1, 0, 0, 0, 0, 0, 0, s ; ...
0, 0, 0, 1, 1, 1, 0, 0, 0, s ; ...
0, 0, 0, 0, 0, 0, 1, 1, 1, s ; ...
1, 0, 0, 1, 0, 0, 1, 0, 0, s ; ...
0, 1, 0, 0, 1, 0, 0, 1, 0, s ; ...
0, 0, 1, 0, 0, 1, 0, 0, 1, s ; ...
1, 0, 0, 0, 1, 0, 0, 0, 1, s ; ...
0, 0, 1, 0, 1, 0, 1, 0, 0, s] ;
2) Rsolution du systme. On a
MatSystRed= rref(MatSyst)
MatSystRed =
[ 1, 0, 0, 0, 0, 0, 0, 0, 1, 2/3*s]
[ 0, 1, 0, 0, 0, 0, 0, 1, 0, 2/3*s]
[ 0, 0, 1, 0, 0, 0, 0, -1, -1, -1/3*s]
[ 0, 0, 0, 1, 0, 0, 0, -1, -2, -2/3*s]
[ 0, 0, 0, 0, 1, 0, 0, 0, 0, 1/3*s]
[ 0, 0, 0, 0, 0, 1, 0, 1, 2, 4/3*s]
[ 0, 0, 0, 0, 0, 0, 1, 1, 1, s]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Do le systme quivalent































 
 

 
 

 






  
  


 
 

 

  


La dernire ligne montre clairement que le systme est rsoluble pour tout  rel.
3) Ce systme rduit montre que les sept inconnues
 





154

Mathmatiques avec Matlab

se calculent en fonction des inconnues auxiliaires 


forme les matrices magiques solutions :



et du second membre  On

Magic =subs(M,{a11,a12,a13 },
{2/3*s-a33,2/3*s-a32,-1/3*s+a33+a32}) ...
Magic =
[ 2/3*s-a33, 2/3*s-a32, -1/3*s+a33+a32]
[ a21,
a22,
a23 ]
[ a31,
a32,
a33]
Magic =subs(Magic,{a21,a22,a23 }, ...
{-2/3*s+2*a33+a32,1/3*s,4/3*s-2*a33-a32})
Magic =
[ 2/3*s-a33,
2/3*s-a32, -1/3*s+a33+a32]
[ -2/3*s+2*a33+a32, 1/3*s,
4/3*s-2*a33-a32]
[ a31,
a32,
a33]
Magic = subs(Magic, a31,s-a33-a32)
Magic =
[ 2/3*s-a33,
2/3*s-a32, -1/3*s+a33+a32]
[ -2/3*s+2*a33+a32, 1/3*s,
4/3*s-2*a33-a32]
[ s-a33-a32,
a32,
a33]

Les matrices magiques solutions sont donc de la forme

 .

 

   
 


  

   

   
 


   
      


On peut, par exemple, vrier que les trois colonnes ont pour somme  :

for i =1 :3,
sum(Magic(i, :))
end
ans=s
ans=s
ans=s

Espaces vectoriels

155

Mme vrication pour les lignes et les diagonales :


for j =1 :3,
sum(Magic( :,j))
end
ans=s
ans=s
ans=s
Magic(1,1)+Magic(2,2)+Magic(3,3)
ans=s
Magic(1,3)+Magic(2,2)+Magic(3,1)
ans =s
4) Pour trouver une base et la dimension de lespace  des matrices magiques, on
dnit les trois matrices magiques     obtenues en remplaant dans  .

les paramtres    successivement par


 (0,1,0) et
. Puis on
vrie que toute matrice magique est de la forme
 

  

M1 =subs(Magic,{a32,a33,s},{sym(1),sym(0),sym(0)})
M1 =[ 0, -1, 1]
[ 1, 0, -1]
[ -1, 1, 0]
M2 =subs(Magic,{a32,a33,s},{sym(0),sym(1),sym(0)})
M2 =[ -1, 0, 1]
[ 2, 0, -2]
[ -1, 0, 1]
M3 =subs(Magic,{a32,a33,s},{sym(0),sym(0),sym(1)})
M3 =[ 2/3, 2/3, -1/3]
[ -2/3, 1/3, 4/3]
[ 1, 0, 0]
% Vrication
CombLin =a32*M1+a33*M2+s*M3;
CombLin-Magic
ans=[ 0, 0, 0]
[ 0, 0, 0]
[ 0, 0, 0]
On a ainsi    
'     On peut montrer que  
une famille libre, donc     



 forme

156

Mathmatiques avec Matlab

5) Etude du cas  
 Pour former tous les tableaux magiques coefcients
entiers et distincts entre
et , on dnit la fonction tousDistincts permettant de slectionner les tableaux magiques lments distincts :
function res=tousDistincts(M)
res=1 ;
for i=1 :3,
for j=1 :3,
for k=1 :3,
for l=1 :3,
if (i k  j l)& M(i,j)==M(k,l)
res=0 ;
return
end
end
end
end
end
Ensuite, en donnant   toutes les valeurs possibles entre 1 et 9, cette fonction
slectionne toutes les matrices magiques coefcients positifs et distincts :
for i = 1 :9,
for j = 1 :9,
if i~=j
Magicij = double(subs(Magic,{a32,a33,s},{i,j,15}));
if all(all(Magicij0 & Magicij$10))& tousDistincts(Magicij)
Magicij
end
end
end
end
Magicij = 4 9 2
357
816
Magicij = 2 9 4
753
618
Magicij = 6 7 2
159
834
% etc..., (Il y a huit possibilits).

Espaces vectoriels

Exercice 5.5.6
1) Pour &     

dinconnues 





157

on a rsoudre le systme
&  
&  
& 

 
 



On exprime les premiers membres de ce systme :


syms x a0 a1 a2 real
p = a0+a1*x+a2*x^2 ;
syms x0 x1 x2 f0 f1 f2 real
px0=subs(p,x,x0)
px0 = a0+a1*x0+a2*x0^2
px1=subs(p,x,x1)
px1 = a0+a1*x1+a2*x1^2
px2=subs(p,x,x2)
px2 = a0+a1*x2+a2*x2^2

Il a donc pour matrice :


Ms =[1 x0 x0^21 x1 x1^2 ;1 x2 x2^2]
Ms =
[ 1, x0, x0^2]
[ 1, x1, x1^2]
[ 1, x2, x2^2]
d= factor(det(Ms))
d = -(-x2+x1)*(x0-x2)*(x0-x1)
Le dterminant de la matrice du systme est non nul puisque les coefcients
  

sont distincts, ce qui montre lunicit de la solution, donc des coefcients


 

2) Tout lment de lespace vectoriel  scrit


& 

 

 & 

 &



&



La famille & & &  est donc gnratrice. Pour montrer quelle est libre, on doit
vrier que si pour tout   , on a :
& 

 & 

 &



&



158

Mathmatiques avec Matlab

alors


Il suft dcrire quen particulier, on a :





 

&
&

 

&

 

et de rsoudre le systme correspondant dont la matrice est :


Syst = [subs(p,x,0) ;subs(p,x,1) ;subs(p,x,2)]
Syst =
[ a0]
[ a0+a1+a2]
[ a0+2*a1+4*a2]
Do


Donc les polynmes

 

sont linairement indpendants. Ainsi, la famille

&
est une base de  .
3) On dnit les polynmes
ces lments

/ 

*1

& &

/ /

 on forme une combinaison linaire de


 /
 /

et, selon le mme raisonnement que ci-dessus, si

 /


 /

ncessairement ce polynme sannule pour les valeurs particulires


  

q0 = ((x-x1)*(x-x2))/((x0-x1)*(x0-x2));
q1 = ((x-x0)*(x-x2))/((x1-x0)*(x1-x2));
q2 = ((x-x0)*(x-x1))/((x2-x0)*(x2-x1));
syms c0 c1 c2 real
combLin = c0*q0+c1*q1+c2*q2;
subs(combLin,x,x0)
ans =c0
subs(combLin,x,x1)
ans =c1
subs(combLin,x,x2)
ans =c2

Espaces vectoriels

159

ce qui montre que

 /


 /

  

 ,
 

et

 

La famille / / /  est donc libre. Lespace tant de dimension 3, cette famille de
trois lments est une base (voir paragraphe 5.4.3.3.).
4) Il suft de vrier que
&

&  /

&

 /

&

/

en calculant la diffrence
px0*q0+px1*q1+px2*q2-p;
simplify(ans)
ans = 0
5) Les coefcients de
:

%   %   % 

% 

 

dans la base

r = 1-2*x+3*x^2 ;
r0 = subs(r,x,0)
r0 =1
r1 = subs(r,x,1)
r1 =2
r2 = subs(r,x,2)
r2 =9

Do %  / / /
6) Cette fois-ci, &  & / &

/ & / 


/ / /

Q0=subs(q0,{x0,x1,x2},{0,1,2});
Q1=subs(q1,{x0,x1,x2},{0,1,2});
Q2=subs(q2,{x0,x1,x2},{0,1,2});
P=1*Q0+2*Q1+4*Q2 ;
Pde3=subs(P,x,3)
Pde3 = 7
Do &

  

/ 

On peut effectuer la vrication :


expand(P)
ans = 1/2*x^2+1/2*x+1
subs(P,x,0)
ans =1
subs(P,x,1)
ans =2
subs(P,x,2)
ans =4
subs(P,x,3)
ans =7

/ /

 sont

160

Mathmatiques avec Matlab

Exercice 5.5.7
On a


 
' 
 
' 
 
' 
 
' 
 
' 
 
'







Les vecteurs

 






 








 et
 sont



  

linairement indpendants, donc %



 

Exercice 5.5.8
On introduit les vecteurs
de leurs coordonnes :






" "
" " de

et, par transposition, la matrice 

u1=[1 ,0, -1, 2] ;u2=[0, 2, -1, 5] ;u3=[1,-4,1, -8] ;


M =[u1 u2 u3]
M=
1 0 1
0 2 -4
-1 -1 1
2 5 -8

Pour rechercher lordre du plus grand dterminant non nul extrait de la matrice  ,
on calcule les quatre dterminants dordre 3 obtenus en supprimant lune des lignes

Espaces vectoriels

161

de la matrice  .
M1 =[M(1, :) ; M(2, :) ; M(3, :)] % lignes 1 3
M1 =
1 0 1
0 2 -4
-1 -1 1
det(M1)
ans=0
M2 =[M(1, :) ; M(2, :) ; M(4, :)] ;
det(M2)
ans =0
M3 =[M(1, :) ; M(3, :) ; M(4, :)] ;
det(M3)
ans =0
M4 =[M(2, :) ; M(3, :) ; M(4, :)] ;
det(M4)
ans =0
On cherche alors un dterminant dordre 2 non nul :
M5 =M(1 :2,1 :2)
M5 =
10
02
det(M5)
ans =2.
Le rang du systme est donc 2.
On pouvait directement utiliser la commande rank(M) ou utiliser les actions de
Gauss par rref(M) :
rank(M)
ans =2
rref(M)
ans =
10 1
0 1 -2
000
000
Enn, colspace(sym(M)) construit partir de la matrice symbolique sym(M) une base
du sous-espace engendr par les vecteurs colonnes de cette matrice : il sagit donc

162

Mathmatiques avec Matlab


dune base de  
' 
"





"
" " 
colspace(sym(M))
ans =
[ 0,
1]
[ 1,
0]
[ -1/2, -1]
[ 5/2, 2]

Ainsi
 
'

avec



0 









" "
" "    
' 0 0 





0 




 

Chapitre 6

Applications linaires

6.1. Dnitions et exemples


6.1.1. Exemples introductifs
6.1.1.1. Applications linaires de

vers

On connat les applications










appeles fonctions linaires.


De telles applications vrient, pour tous  

 

 

  





 



do
 

Et aussi, pour tout 7

 

  

 7 

7 

7  

7 

donc
 7 

7  

163

164

Mathmatiques avec Matlab

6.1.1.2. Intgrale dune fonction


On parle de linarit de lintgrale, ce qui signie que lintgrale de la somme de
deux fonctions continues sur un intervalle  




.  '#'

est gale la somme des intgrales de ces fonctions




 '#'

. '#'

et que lintgrale du produit par le rel 7 dune fonction  continue sur 




7   '#'

est gale au produit par le rel 7 de cette intgrale


 '#'

6.1.1.3. Drive dune fonction


De la mme faon, les fonctions drivables sur un intervalle  de
proprits :

. 
7  

7 

6.1.1.4. Proprits communes


Sur ces diffrents exemples, on a les deux proprits remarquables :
i) limage dune somme est la somme des images,
ii) limage dun multiple est le multiple de limage.
Do les dnitions gnrales suivantes.

vrient les

Applications linaires

165

6.1.2. Dnitions
Soient  et

deux espaces vectoriels sur . On dit quune application








"

 "

est linaire lorsquelle vrie les deux proprits :

 "

0 

 5"

pour tous vecteurs "

 "

0

5 "

de  et tout scalaire 5 de

On peut en dduire que  est une application linaire de  dans

si

"

 5"

  5

60  

5 "

si et seulement


6

0 

Notations
Lensemble des applications linaires de  vers
Lorsque 
Si

, cet ensemble est not 1

, une application de 1

est not 1

est appele une forme linaire.

6.1.3.1. Identit et homothties


Soit  un espace vectoriel quelconque. Alors :
1) Lapplication dite identit






"

est linaire car

et

0 

#

"

#

"

#

"

"

0

# 7 "

7 "

"

7 "

7 #

"

2) Il en est de mme des homothties de rapport 7


+


"

 

6.1.3. Exemples

#




7 "

166

Mathmatiques avec Matlab

6.1.3.2. Application de

vers

Considrons le cas o 
cation dnie par

(muni de sa base canonique), et  est lappli-

 




  



On peut vrier avec Matlab que cette application est linaire : pour cela, on dnit


 

puis on calcule la somme des images 

et 


  


syms x y x1 y1 real
X=[x,y] ;X1=[x1,y1] ;
FdeX=[2*x+y,-x+5*y];
FdeX1=subs(FdeX,X,X1)
FdeX1 =
[ 2*x1+y1, -x1+5*y1]
sommeDesImages=simplify(FdeX+FdeX1)
sommeDesImages =
[ 2*x+y+2*x1+y1, -x+5*y-x1+5*y1]
On compare alors avec limage de la somme 

  

S=X+X1 ;
imageDeLaSomme=subs(FdeX, X,S)
imageDeLaSomme =
[ 2*x+y+2*x1+y1, -x+5*y-x1+5*y1]
simplify(imageDeLaSomme-sommeDesImages)
ans =[ 0, 0]
On compare de mme 

7  

et 7 



syms k real
FdekX=subs(FdeX,X,k*X)
FdekX = [ 2*k*x+k*y, -k*x+5*k*y]
kFDeX =k*FdeX
kFDeX =[ k*(2*x+y), k*(-x+5*y)]
simplify(FdekX- kFDeX)
ans =[ 0, 0]
6.1.3.3. Polynme driv
Soit lapplication  qui tout polynme & dni par :
& 

 

Applications linaires

associe le polynme driv & dni par :

En utilisant la base

 

de 

,

 

on peut reprsenter  par lapplication



&







Si / est un autre polynme tel que


/ 

    

on a








 



  



 

 

 

  




  

Cela traduit le fait que


&

/ 

&

De mme, on vrie que pour 7 rel quelconque,





7  



7  7  7

7 
7 

7

 

qui signie
7 &

7 &

6.1.3.4. Contre-exemple
Lapplication



 

 
 

nest pas linaire car, par exemple,





 

  


   



 

   

167

168

Mathmatiques avec Matlab

6.2. Proprits fondamentales


6.2.1. Premires consquences

1

1) Pour toute application linaire 

,

on a

   

Cela dcoule du fait que pour tout "  




2) Si 

  

 "

 "  

"



et  sont trois espaces vectoriels sur






"

 

et si

 

sont linaires, alors la compose


.

 

est linaire
3) Si  est un sous-espace vectoriel de  ,     est un sous-espace vectoriel de
.
4) Si  est un sous-espace vectoriel de , limage rciproque     est un
sous-espace vectoriel de  On rappelle que


 

"    

"



Exemple
En reprenant lexemple 6.1.3.3, on peut dnir lapplication linaire


 

on calcule  
On cherche



 

 



 

tel que


 




est donc


 







 .

 

 

 

On peut interprter ce rsultat : les polynmes dont la drive est une constante

 

sont les polynmes de la forme


& 

Applications linaires

169

6.2.2. Noyau et image dune application linaire


6.2.2.1. Dnitions
Soit 



linaire.

(1) On appelle noyau de  , not #$   (du mot anglais kernel),


le sous-ensemble particulier de  
#$



"    

(2) On appelle image de  not %


%







"

 

le sous-ensemble particulier de

"

"

 

Grce aux proprits cites prcdemment, ces deux ensembles constituent deux sousespaces vectoriels de  et respectivement.
6.2.2.2. Applications linaires injectives et surjectives
On rappelle quune application  est injective si et seulement si, pour deux vecteurs quelconques distincts " et 0 de  , les images correspondantes  " et  0  sont
distinctes. Cela quivaut dire que lquation
 "

 0

"

implique
Lorsque  est linaire, en posant "  0


on en dduit que :

est injective si et seulement si


#$

de



  

Une application linaire     est surjective si et seulement si, tout vecteur


est limage dau moins un vecteur de  . Cela est quivalent
%



6.2.2.3. Exemple 1
Considrons lapplication linaire  dnie prcdemment :


 






  

Pour tudier linjectivit de cette application, on va dterminer son noyau #$


a
  

 

 

On

170

Mathmatiques avec Matlab

si et seulement si

   



ou bien



 

Le dterminant de ce systme est

donc il admet lunique solution


Ainsi #$     ,  est injective.
Etudions la surjectivit. Soit 2 3  un vecteur quelconque de
existe au moins un vecteur   tel que
  

 

Cherchons sil

2 3 

Cette dernire quation quivaut au systme



 

qui admet une unique solution puisque son dterminant est non nul. Ainsi
%




est donc surjective.

6.2.2.4. Exemple 2
Par contre, sur lexemple du paragraphe 6.2.1 , on a

#$









 


 

  

 

et

%











 

2 3



 

 

 

 
3 



Ces calculs montrent que  nest ni injective, ni surjective.

 

Applications linaires

171

6.3. Applications linaires en dimension nie


6.3.1. Dtermination par limage dune base
On suppose que  et

sont de dimension nie. On note






On se donne une base de 

"


"

5 "

"

   5
"

"

Si  est une application linaire de  vers


 "




scrit dune manire unique

Nous savons que tout vecteur " de 


"



, on a

   5
"


5  "

5  " 

5 "

  

5 

" 

    5


"

"

"


"

et donc ds quon connait limage par  des vecteurs de la base

"
on connait 

"

"

"

pour tout " de 

Exemple
Soit  une application linaire de

vers . On donne



Alors pour tout vecteur 
" 




"  

 

 

  

 



, on a


    

Proprits du noyau et de limage


Les calculs du paragraphe 6.3.1 montrent que tout vecteur de %   scrit comme
combinaison linaire de  "    "   "
 et rciproquement toute combinaison linaire de ces vecteurs est lment de %   Ainsi
%



 
'



" 

"



"

On admet la proprit suivante, qui permet de connatre la dimension de


connaissant celle de #$   ou vice-versa :
dim

%

 

 #$

 

 



%



172

Mathmatiques avec Matlab

6.3.2. Matrice dune application linaire


6.3.2.1. Calcul dans un cas particulier
 . On utilise les bases

Considrons le cas dune application linaire  de


dans
canoniques de ces deux espaces, notes respectivement




" " 

On note aussi






0 0
0 


   





0  0
 0








 "   0  0
0


 

Pour tout vecteur 
, on obtient par linarit
"  " " de




"





 " 


 

" 




 "   " 


   0
 "

Si on note les composantes de




"

 



"




0

 




 0



-

on a



La matrice de type

 

 

 

 

 











dont les colonnes sont les composantes de  
"  et  "  sur la base donne de
est appele la matrice de  relativement aux deux bases canoniques.
Lgalit vectorielle



"

se traduit par lgalit matricielle



-






"

Ces calculs, cette dnition et cette dernire galit se gnralisent.

,

Applications linaires

173

6.3.2.2. Cas gnral


Soient    
dimension nie. Notons

une application linaire entre deux espaces vectoriels de




et dsignons par

"





"

0

"



deux bases quelconques de  et


respectivement. Alors la matrice   de  par
rapport ces deux bases est la matrice de type   dont la   
colonne est forme
par les coordonnes de  "   sur la base 0 0 0 . On schmatise cela par



 








..
.

Si on note



 "


..
.













..
.


les composantes dun vecteur " de  , et




..
.







..
.


0
0

..
.












celles de "

 "




..
.

on a la relation matricielle











..
.





..
.









..
.












..
.








6.3.2.3. Exemple
Pour dterminer la matrice, relativement aux bases canoniques, de lapplication
linaire donne au paragraphe 6.2.1, et dnie par


 



174

Mathmatiques avec Matlab

on calcule

 

 

do


6.3.2.4. Matrice dune compose


Si   
trois e.v sur



et .    sont deux applications linaires, o 


de dimension nie et de bases donnes, alors
 

sont

 

6.4. Applications linaires et matrices diagonales


6.4.1. Le problme pos
6.4.1.1. Calculs avec une matrice diagonale
Soit  une application linaire dun espace vectoriel  dans lui-mme. On suppose
que  est de dimension nie , et que la matrice de  relativement une base

est la matrice diagonale



#



..

..
.

..

..
.

On a donc pour tout   



..










 

   # 

On a dans ce cas des calculs simples pour obtenir, entre autres :

Applications linaires

175

limage dun vecteur quelconque :


  



 # 

 


# 

# 

les composes successives 




donc 

     #    #     # 

 a pour matrice

# 



..

..
.

..



..
.

..








et plus gnralement


a pour matrice

 

# 



..
.

..



..

..
.

..








6.4.1.2. Notion de diagonalisation


Soit maintenant  une application linaire quelconque dun espace vectoriel  de
dimension nie  dans lui-mme. Compte tenu des calculs prcdents, il est intressant de chercher une base

0
de  telle que









 0 
 0

 0



# 0





# 0




Lorsquon obtient une telle base, on dit quon a diagonalis lapplication linaire  .
Dans les paragraphes suivants, on traite ce problme sur un exemple, et on prsente
les fonctions de Matlab qui permettent de le rsoudre.

176

Mathmatiques avec Matlab

6.4.2. Exemple de diagonalisation


On considre lapplication linaire



 -

On calcule









  - 

  



 


 


 - 




et on en dduit la matrice   de  relativement la base canonique de

Mf=[3 -1 1 ;0 2 0 ; 1 -1 3]
Mf =
3 -1 1
0 20
1 -1 3


On cherche alors les vecteurs 
0 

 -


Matriciellemnt, on rsout




ou encore


non nuls tels que





0   7 0

 7  



Cest lcriture matricielle dun systme homogne, qui admet des solutions autres
que la solution nulle, si, et seulement si


 7   

On calcule ce dterminant avec Matlab :


syms k real
MatDiff=Mf-k*eye(3)
MatDiff =
[ 3-k, -1, 1]
[ 0, 2-k, 0]
[ 1, -1, 3-k]
d=det(MatDiff)
d = 16-20*k+8*k^2-k^3

Applications linaires

177

on obtient un polynme appel polynme caractristique de  . Puis on rsout lquation donnant les valeurs de 7 pour lesquelles ce polynme est nul.
S=solve(d)
S=
[ 4]
[ 2]
[ 2]
La racine simple 4 et la racine double 2 obtenues sappellent les valeurs propres de 
Pour la premire solution obtenue # 


 ,


on cherche les vecteurs 
0 tels que





0   # 0

syms x y z real
d1=4 ;
V=[x ;y ;z] ;
diff=Mf*V-d1*V
diff =
[ -x-y+z]
[ -2*y]
[ x-y-z]
S1=solve( -x-y+z=0, -2*y=0, x-y-z=0) ;
[S1.x ;S1.y ;S1.z]
ans =
[ z]
[ 0]
[ z]


Lensemble des solutions est  
0  -

On effectue les mmes calculs avec #

 .

 .

d2=2 ;
diff2=Mf*V-d2*V
diff2 =
[ x-y+z]
[ 0]
[ x-y+z]
S2=solve( x-y+z=0,0=0, x-y+z=0) ;
[S2.x ;S2.y ;S2.z]
ans =
[ y-z]
[ y]
[ z]

178

Mathmatiques avec Matlab


On obtient lensemble  
0 


 -

On a ainsi obtenu trois vecteurs de

 .



 


 




  


0
0
0

tels que













0    0




0    0




0    0

On peut le vrier
v1=[1 ;0 ;1] ;
Mf*v1
ans =
4
0
4
v2=[1 ;1 ;0] ;v3=[-1 ;0 ;1] ;
Mf*v2
ans =
2
2
0
Mf*v3
ans =
-2
0
2
On vrie aussi que ces trois vecteurs forment une base de  en calculant le dterminant de la matrice  forme par les coordonnes de ces trois vecteurs.
V=[v1 v2 v3]
V=
1 1 -1
010
101
det(V)
ans =
2

Applications linaires


Relativement la base 
0

179





0
0 ,  a pour matrice
D=diag([4 2 2])
D=
400
020
002

6.4.3. Utilisation de la matrice diagonale 


En reprenant les notations prcdentes,    reprsente la matrice des coordon




nes de  
0   0  et  0  Mais cette matrice sobtient aussi en multipliant 
par la matrice diagonale 
Ainsi


 

 

ce quon peut vrier dans notre exemple


Mf*V
ans =
4 2 -2
02 0
40 2
V*D
ans =
4 2 -2
02 0
40 2
Il en rsulte que


  

puis, par rcurrence




 

180

Mathmatiques avec Matlab

Vrions ce dernier rsultat dans le cas  


:
D10=D^10
D10 =
1048576 0
0
0
1024
0
0
0
1024
V*D10*V^(-1)
ans =
524800 -523776 523776
0
1024 0
523776 -523776 524800
Mf^10
ans =
524800 -523776 523776
0
1024
0
523776 -523776 524800

On compare les temps dexcution entre un calcul direct de    par multiplications successives, et celui utilisant la matrice diagonale  Le calcul symbolique, plus
lent, fait mieux apparatre la diffrence entre les deux mthodes.
Mf=sym(Mf) ;
V=sym(V) ;
D=sym(D) ;
On calcule  pour    : on procde par multiplications successives, en ne
calculant que les trois lments diagonaux.
n=500 ;
tic
Dn=D ;
for i=2 :n
for j=1 :3
Dn(j,j)=Dn(j,j)*D(j,j) ;
end
end
res1=V*Dn*V^(-1) ;
toc
elapsed-time= 6.1500

Applications linaires

Puis on calcule

181

 :

tic
Mfn=Mf ;
for i=2 :n
Mfn=Mfn*Mf ;
end
toc
elapsed-time=13.9500

Le temps de calcul est plus que le double.

6.4.4. Les fonctions prdnies de Matlab

La fonction eig permet dobtenir directement la matrice diagonale  et la matrice






de la famille de vecteurs  
0 0
0 

[V,D]=eig(sym(Mf))
V=
[ -1, 1, 1]
[ 0, 1, 0]
[ 1, 0, 1]
D=
[ 2, 0, 0]
[ 0, 2, 0]
[ 0, 0, 4]

(les valeurs propres  et  ont t ici interverties, mais les vecteurs colonnes de  sont
donns dans lordre des valeurs propres de ).

182

Mathmatiques avec Matlab

6.4.4.1. Remarque
Le problme de la diagonalisation dune application linaire
jours de solution.
M=[0 -1 1 ;1 2 -1 ; -2 -1 3]
M=
0 -1 1
1 2 -1
-2 -1 3
[V D]=eig(sym(M))
V=
[ 1, -1]
[ 0, 1]
[ 1, -1]
D=
[ 1, 0, 0]
[ 0, 2, 0]
[ 0, 0, 2]

nadmet pas tou-


Ici, on na pas pu trouver de base  
0



0 
mais seulement deux vecteurs 





0
0  pour laquelle




0   # 0







0 
et 


 tels que





0   0




0    0

On ne doit pas tenir compte dans ce cas de la matrice  donne (malheureusement)


par Matlab.
6.5. Exercices
6.5.1. Noyau et image dune application linaire
On considre lapplication  :







 -

1) Vrier
la linarit
de




canonique   7 .
2) Dterminer 




-

-

et donner sa matrice relativement la base

.

3) Utiliser la fonction null pour trouver une base du noyau de  Vrier que les
vecteurs du sous-espace ainsi obtenu ont bien pour image le vecteur nul.

Applications linaires

183

4) Utiliser la fonction colspace pour dterminer une base  de


%



 
'

 



Vrier l aussi que tout vecteur de %


des vecteurs de 









7

peut scrire comme combinaison linaire

(solution p 183)
6.5.2. Une application linaire avec paramtre
Soit
.

 -






 -

-  "

o
"

est un vecteur x de

  - 

1) Montrer que . est linaire.


2) Donner sa matrice relativement la base canonique.
3) Calculer la compose . . en supposant dans cette question


 - 

4) Dterminer le noyau et limage de . et donner leur dimension respective.


(solution p. 186)
6.6. Solutions
Exercice 6.5.1
1) On vrie la linarit de  , en comparant, pour deux vecteurs quelconques  et
 :
 de
      et    . On a
syms x y z x1 y1 z1 real
U=[x,y,z] ;V=[x1,y1,z1] ;
FdeU=[x+z,x+2*y-z,x+z];
FdeV=subs(FdeU,U,V)
FdeV = [ x1+z1, x1+2*y1-z1, x1+z1]
sommeDesImages=simplify(FdeU+FdeV)
sommeDesImages = [ x+z+x1+z1, x+2*y-z+x1+2*y1-z1, x+z+x1+z1]

184

Mathmatiques avec Matlab

et
S=U+V ;
imageDeLaSomme=subs(FdeU,U,S)
imageDeLaSomme = [ x+z+x1+z1, x+2*y-z+x1+2*y1-z1, x+z+x1+z1]
simplify(imageDeLaSomme-sommeDesImages)
ans = [ 0, 0, 0]
On vrie de mme la proprit

  7  


0 

 7 0

Pour obtenir la matrice de  on dnit les vecteurs  8 : de la base canonique


de  et on construit, grce la transposition, la matrice dont les colonnes sont les
coordonnes de     8   : 
I=sym([1,0,0]) ; J=sym([0,1,0]) ; K=sym([0,0,1]) ;
FdeI=subs(FdeU,U,I)
FdeI = [ 1, 1, 1]
FdeJ=subs(FdeU,U,J)
FdeJ = [ 0, 2, 0]
FdeK=subs(FdeU,U,K)
FdeK = [ 1, -1, 1]
MatriceDeF=[FdeI FdeJ FdeK]
MatriceDeF =
[ 1, 0, 1]
[ 1, 2, -1]
[ 1, 0, 1]
2) On utilise la proprit
 

 

puis on utilise cette matrice pour calculer la matrice des coordonnes de (


MatriceDeFrondF=MatriceDeF^2
MatriceDeFrondF =
[ 2, 0, 2]
[ 2, 4, -2]
[ 2, 0, 2]
FrondFdeU=MatriceDeFrondF*U
FrondFdeU =
[ 2*x+2*z]
[ 2*x+4*y-2*z]
[ 2*x+2*z]





Applications linaires

185

3) On applique la fonction null la matrice de  qui donne une base du noyau de




:
baseKerF=null(MatriceDeF)
baseKerF =
[ -1]
[ 1]
[ 1]

Do
#$



 
'

 

A titre de vrication, on calcule limage par


 
' 


.




dun vecteur quelconque de

syms k real
W=k*[-1,1,1] ;
fDeW=subs(FdeU,U,W)
fDeW =
[ 0, 0, 0]
4) Pour %



on applique la fonction colspace la matrice de  :


baseImF=colspace(MatriceDeF)
baseImF =
[ 1, 0]
[ 0, 1]
[ 1, 0]

Do
%



Pour vrier que tout vecteur 


nus, il suft de remarquer que
 

 
'



est combinaison linaire des deux vecteurs obte-

-

-

- 






 - 

186

Mathmatiques avec Matlab

Exercice 6.5.2

On dclare lapplication, en dnissant les vecteurs 


colonnes :



de

syms x y z x0 y0 z0
U0=[x0 ;y0 ;z0 ] ;
U=[x ;y ; z] ;
gDeU=U-(x+y+z)*U0
gDeU=
[x-(x+y+z)*x0]
[y-(x+y+z)*y0]
[z-(x+y+z)*z0]

1) On vrie la linarit :
% On calcule g(U1) et g(U+U1)
syms x1 y1 z1 ; U1=[x1 ;y1 ;z1] ;
gDeU1=subs(gDeU,U,U1)
gDeU1=
[x1-(x1+y1+z1)*x0]
[y1-(x1+y1+z1)*y0]
[z1-(x1+y1+z1)*z0]
gDeUPlusU1=subs(gDeU,U,U+U1)
gDeUPlusU1=
[x+x1-(x+x1+y+y1+z+z1)*x0]
[y+y1-(x+x1+y+y1+z+z1)*y0]
[z+z1-(x+x1+y+y1+z+z1)*z0]
% on vrie que g(U+U1)=g(U)+g(U1)
simplify(gDeUPlusU1 -gDeU-gDeU1)
ans =
[ ]
[ ]
[ ]

On ferait de mme pour vrier que


. 7  

7 .  

par leurs matrices

Applications linaires

2) On calcule la matrice de lapplication . , colonne par colonne :


M( :,1)=subs(gDeU,U,[1 ;0 ;0]) ;
M( :,2)=subs(gDeU,U,[0 ;1 ;0]) ;
M( :,3)=subs(gDeU,U,[0 ;0 ;1]) ;
M=
[1-x0, -x0, -x0]
[-y0, 1-y0, -y0]
[-z0, -z0, 1-z0]
Do

 
  



 
-

On peut vrier que .



-


  

 -

a pour matrice de coordonnes  


simplify(M*U-gDeU)
ans=
[0]
[0]
[0]

3) Avant de calculer la matrice  de . . on tient compte de la relation




 - 

M=subs(M,z0, 1-x0-y0)
M=
[1-x0, -x0, -x0]
[-y0, 1-y0, -y0]
[-1+x0+y0, -1+x0+y0, x0+y0]
M2=simplify(M*M)
M2=
[1-x0, -x0, -x0]
[y0, 1-y0, -y0]
[-1+x0+y0, -1+x0+y0, x0+y0]
Puisque 

on a donc
.

.  .

Une rcurrence montre qualors


.

187

188

Mathmatiques avec Matlab

4) On utilise null pour dterminer une base de #$


6.5.1, p. 183).
BaseKerg=null(M)
BaseKerg=
[
1]
[ y0/x0]
[-(-1+x0+y0)/x0]

(voir solution de lexercice

.

Le noyau est donc le sous-espace vectoriel engendr par

 

     

On peut retrouver ce rsultat en rsolvant le systme obtenu partir de lquation


. 

g=subs(gDeU,z0,1-x0-y0);
S=solve(g(1),g(2),g(3),x,y,z);
[S.x ; S.y ;S.z]
ans=
[ y*x0/y0]
[ y]
[ -y*(-1+x0+y0)/y0]

Les solutions obtenues sont de la forme


  

 

     

Pour trouver une base de limage de . on utilise la fonction colspace(M) :


colspace(M)
ans =
[ 1, 0]
[ 0, 1]
[ -1, -1]
Ainsi
%

.

 
'







T ROISIME PARTIE

Gomtrie

189

190

Chapitre 7

Calcul vectoriel et gomtrie

Le but du premier paragraphe est de rappeler brivement comment ont t dnis


au lyce vecteurs gomtriques et oprations sur ces vecteurs. Il permet de faire le lien
avec la structure despace vectoriel et les notions qui lui sont attaches (combinaisons
linaires, bases, dimensions).
Dans les paragraphes suivants, on utilise le calcul sur les coordonnes pour reprsenter des gures du plan ou de lespace, et tudier leurs proprits.
Enn, on consacre un paragraphe aux changements de base et de repre. Les formules obtenues ont un intrt pratique, notamment en infographie, lorsque des calculs
sont plus simples faire dans un autre repre que celui donn lorigine (projection
sur un plan oblique, rotation autour dun axe oblique, etc...).

7.1. Rappels : vecteurs gomtriques du plan ou de lespace


7.1.1. Vecteur associ un couple de points
A tout couple de points    du plan ou de lespace, on peut associer un vecteur


gomtrique 
"   Gomtriquement, pour que    et    reprsentent le

mme vecteur 
" , il faut et il suft que  soit un paralllogramme. Il existe donc

191

192

Mathmatiques avec Matlab

une innit de couples de points

 

 

, ..., reprsentant un mme vecteur



".

Reprsentants dun vecteur donn u

Par contre, si on xe un point  dans le plan ou dans lespace, alors, pour tout

" , il existe un unique point  tel que
vecteur 






"

Lorsquon veut tudier ou reprsenter les vecteurs gomtriques, on convient gnralement de se xer un point  et de considrer pour chaque vecteur son unique reprsentant dorigine .
Reprsentants de mme origine

u
v

u
O

w
C

v
B

Calcul vectoriel et gomtrie

193

7.1.2. Oprations sur les vecteurs gomtriques


7.1.2.1. Addition
Soient deux vecteurs

 


 
"  , 0  




Le vecteur somme de 
" et 0 est le vecteur



 

" 0  
tel que   soit un paralllogramme.
Addition vectorielle

A
u
O

u+v
v

On peut vrier quon a :


1) la relation de Chasles

 


 




2) la commutativit, lassociativit ;
3) lexistence dun lment neutre, le vecteur nul







qui vrie donc pour tout vecteur









" :

 

 


 

"  "  " ;







4) pour tout vecteur 
"   lexistence dun symtrique  not  " , tel que





 

 
" "  " " 

194

Mathmatiques avec Matlab

7.1.2.2. Multiplication dun vecteur par un rel


A tout couple





"  form dun rel et dun vecteur, on associe le vecteur 7 "
Multiplication des vecteurs par les rels

k.u

Cette multiplication vrie : quels que soient les rels





vecteurs 
"
0 on a

, et quels que soient les









" 0   7 " 7 0






7 7  "  7 " 7 "




7 7 "   77  "
 



"  "
7

7.1.3. Vecteurs colinaires, vecteurs coplanaires


des vecteurs du plan (ou lensemble  des
Daprs ce qui prcde, lensemble
vecteurs de lespace), muni de laddition et de la multiplication par les rels est un
espace vectoriel. On peut lui appliquer les rgles de calcul vues au chapitre correspondant. En particulier :



"
0 formant une famille lie.
On appelle vecteurs colinaires deux vecteurs 
Cela signie que lun des vecteurs est combinaison linaire de lautre, par exemple





0  7 "





Gomtriquement, les points  ,  sont aligns si et seulement si  et  sont


colinaires.





"
0
9 de lespace formant
On appelle vecteurs coplanaires trois vecteurs 
une famille lie. Cela signie que lun des vecteurs est combinaison linaire des deux
autres, par exemple







9  7 " 7 0

Gomtriquement les points    et  appartiennent un mme plan si et seule  


ment si, ,  et  sont coplanaires.

Calcul vectoriel et gomtrie

195

7.2. Calculs avec les coordonnes cartsiennes dans le plan


7.2.1. Bases et coordonnes dun vecteur
7.2.1.1. Bases
Lensemble
des vecteurs
du plan, not , est un espace vectoriel de dimension 2.



Tout couple   de vecteurs non colinaires en constitue une base. Tout vecteur



0 du plan se dcompose alors de manire unique sous forme






0    
Dcomposition dun vecteur du plan selon la base (i,j)

y.j

v=xi+yj
j

x.i

On note



0

o


est la matrice colonne des coordonnes du vecteur


 



0 dans la base
.



7.2.1.2. Calculs avec les coordonnes des vecteurs


Fixons une base






. Soient les vecteurs



"



0

196

Mathmatiques avec Matlab

alors leur somme est





" 0


et le produit de 
" par un rel 7 est



7 "

7

7.2.2. Repres et coordonnes dun point


7.2.2.1. Repres

 







Tout triplet    , o  est un point du plan et 


un repre du plan. Pour tout point  du plan, lunique couple








 

une base, constitue


tel que

 





sappelle couple de coordonnes du point  dans le repre


l aussi la notation



 




On emploie

7.2.2.2. Calculs avec les coordonnes dun point


Le plan tant muni dun repre, soient les points





alors le vecteur  est donn par








 
 

et le milieu  du segment   est




   
   

7.2.3. Exemples dutilisation


Les proprits prcdentes de calcul sur les coordonnes de vecteurs et de points
permettent deffectuer avec Matlab, les calculs matriciels analogues.

Calcul vectoriel et gomtrie

197

Exemple
On donne dans le plan muni dun repre les points









1) Vrions que   est un paralllogramme :


par abus de notation, on dnit chaque point par sa matrice colonne et on calcule
 
les coordonnes des vecteurs  et 
A=[6 ;13]
A=


B=[11 ;5] ;C=[7 ;-6] ;D=[2 ;2] ;


AB=B-A
AB =




DC=C-D
DC=





On a ainsi vri que 





Donc   est un paralllogramme.

2) On calcule ensuite les coordonnes de son centre, qui est le milieu de   (et
de ).
I=1/2*(A+C)
I=
 
 

% Vrication :
1/2*(B+D)
ans =
 
 

3) Dessinons le paralllogramme, ses diagonales et son centre, en utilisant la commande plot   , o  ,  reprsentent les coordonnes dun point, de deux points

198

Mathmatiques avec Matlab

(pour tracer un segment) ou de  points (pour tracer une ligne polygonale) :


%Dessin du point I, marqu dune croix :
plot(I(1),I(2),x)
hold on
% Dessin des diagonales, en pointill
plot([A(1) C(1)],[A(2) C(2)],k)
plot([B(1) D(1)],[B(2) D(2)],k)
% Dessin de la ligne polygonale ABCD :
P=[A B C D A] ;
plot(P(1, :),P(2, :),k)
% Pour xer le cadre
axis([1 12 -7 15])
% Pour placer laide de la souris le nom des points :
gtext(A) ;gtext(B) ;gtext(C) ;
gtext(D) ;gtext(I) ;
14
A
12
10
8
6
B
4

0
2
4
6

C
1

10

11

12

7.2.4. Equations dune droite du plan




Etant donn un point  et un vecteur non nul 
"   la droite  passant par 


et de vecteur directeur " (non nul) est dnie vectoriellement par


Dans un repre donn,  et







' "

'



" peuvent tre dnis par leurs coordonnes :







"

Calcul vectoriel et gomtrie

199

En exprimant une condition ncessaire et sufsante pour quun point




appartienne la droite  on peut obtenir :


une quation cartsienne de ,
un point  appartient  si, et seulement si les vecteurs
soit :





" sont colinaires,
et 

 
"  

#' 


 


ou

ou encore






    


 

   

qui scrit sous la forme


2

3 < 

un systme dquations paramtriques de ,


un point  appartient  si, et seulement si il existe un rel ' tel que




ce qui quivaut

 
 


ou encore




' "




'

 '
 '

Un tel systme dquations paramtriques permet de gnrer point par point la droite.
Exemple
On considre la droite

 

avec





" de la droite
Un vecteur directeur 

 




est

 

  




200

Mathmatiques avec Matlab

Un systme dquations paramtriques de la droite

 

est donc



'

   '

On obtient un dessin point par point de cette droite en faisant varier ' de  , avec
un pas de  :
T=-5 :0.2 :5 ;
X=1+17*T ;
Y=30-28*T ;
hold on
plot(X,Y,x)
200

150

100

50

50

100

150
100

80

60

40

20

20

40

60

80

100

7.3. Coordonnes cartsiennes dans lespace


7.3.1. Bases et repres de lespace
7.3.1.1. Bases
Lensemble  des vecteurs de lespace est un espace
vectorielde dimension 3.




Donc une base de cet espace est constitue dun triplet   7 de vecteurs non


coplanaires. Tout vecteur 
0 de lespace scrit de manire unique sous forme








0     - 7

Calcul vectoriel et gomtrie

201

z.k

v = x.i+y.j+z.k
k

y.j

x.i




On note

7.3.1.2. Repres

 









Tout quadruplet    7 , o  est un point de lespace et   7 une


base, constitue un repre de lespace. Pour tout point  de lespace, lunique triplet
 -  tel que







 







- 7

sappelle triplet de coordonnes du point  dans le repre


ploie l aussi la notation

7.3.2. Calculs avec les coordonnes


Beaucoup de calculs sont analogues ceux du plan.
Soient les vecteurs



"


 
0

 



. On em

202

Mathmatiques avec Matlab

 



alors leur somme est

"


et le produit de 
" par un rel ' est




' "

'
'

'

Soient les points






-

alors



-

    
  

-  -

et le milieu  du segment   est

   
   
- -  

7.3.3. Exemples dutilisation


7.3.3.1. Exemple
Dessinons le ttradre

  

avec




On dnit les points     et la suite    qui permet de parcourir toutes les artes. Pour les dessiner, on utilise la commande plot3 (analogue la
commande plot de dessin dans le plan).
A=[3 ;0 ;0] ; B=[0 ;2 ;0] ;C=[0 ;0 ;5] ;D =[6 ;4 ;12] ;
T=[A B C D B C A D] ;
plot3(T(1, :),T(2, :),T(3, :),k) ;hold on
On note  8 : et 1 les milieux respectifs des cts  
on vrie que  8 : 1 est un paralllogramme.

 

 

et   et

Calcul vectoriel et gomtrie

203

I=1/2*(A+B) ; J=1/2*(A+C) ;K=1/2*(D+B) ;L=1/2*(D+C) ;


v1=J-I
v1 =
0
-1.0000
2.5000
v2=L-K
v2 =
0
-1.0000
2.5000
v1-v2
ans = 0
0
0
Pour visualiser la gure  8 : 1, on utilise la commande ll3 qui colorie lintrieur de
ce quadrilatre.
F = [I J L K] ; ll3(F(1, :),F(2, :),F(3, :),y)
Pour marquer le nom des points, on utilise la commande text, mais il faut indiquer en
paramtres la position o doit tre plac ce nom.
h=0.2 ; text(B(1),B(2)+h,B(3)+2*h,B)
Ici, on a choisi un cart de +   et on a plac la lettre  en ajoutant + et +
aux deuxime et troisime coordonnes de  Il faut procder par essais visuels. On
effectue ensuite le mme traitement pour les autres points.
D

12
10
8

L
K

6
4
2
0
4

C
3

I
1
0

204

Mathmatiques avec Matlab

7.3.4. Equations de droites et de plans dans lespace


7.3.4.1. Systme dquations paramtriques dune droite
On considre une droite  dnie par un point  et un vecteur directeur


 



-


"



" :

On obtient un systme dquations paramtriques de  en crivant quun point

appartient  si, et seulement si, il existe un rel ' tel que







cest--dire





ou encore



-




' "






-  -


'

 '
 '
 - '



7.3.4.2. Systme dquations paramtriques dun plan


De la mme faon, tant donn un point  et deux vecteurs non colinaires



" 


0 on dnit le plan  passant par  et de vecteurs directeurs
0  par :








 ' 

   "
0  
    ' "  0
Si on note :




-



 
"


 
0

on obtient un systme dquations paramtriques de  en crivant quun point



-



" et

Calcul vectoriel et gomtrie

205

appartient  si, et seulement si




cest--dire







-  -


  


0

' "







ou encore

'






-

 ' 
 ' 
 - '




Un tel systme dquations paramtriques permet de reprsenter graphiquement


avec Matlab des plans de lespace.
7.3.4.3. Exemple
On donne le plan passant par






 



 

Il a donc pour vecteurs directeurs








 

 et




et on obtient le systme paramtrique






' 

  ' 


 '  

Pour le dessiner, on fait varier ' et  dans des intervalles donns


 

et

 

et la fonction meshgrid(t,s) va crer un quadrillage de valeurs


' 

 

  

t=0 :0.5 :2 ;s=0 :0.5 :3 ;


[T,S]=meshgrid(t,s) ;

206

Mathmatiques avec Matlab

A partir de ce quadrillage de valeurs, on calcule les valeurs correspondantes de 


- et on utilise la fonction mesh pour dessiner le quadrillage de points obtenus.

et

X=1+2*T+5*S ;
Y=-1-T-4*S ;
Z=3+2*T+2*S ;
mesh(X,Y,Z)
hold on ;
Pour vrication, on reprsente les trois points 

 

plot3(1,-1,3,ko)
plot3(3,-2,5,ko)
plot3(6,-5,5,ko)

14
12
10
8
6

4
C
2
0

A
20

15
10

10
5
15

7.3.4.4. Equation cartsienne dun plan


Soit 



0  un plan de lespace, avec

"




-



 
"


 
0

On obtient une quation cartsienne de  en crivant quun point  appartient  si


  

et seulement si les vecteurs  
"
0 sont coplanaires, soit


 


 


"

Calcul vectoriel et gomtrie

cest--dire


 
 



-



-




 

207

En dveloppant ce dterminant, on obtient une quation de la forme


2

3 < - 

7.3.4.5. Dune quation cartsienne un systme dquations paramtriques


Illustrons ce passage sur un exemple. On se donne lquation
 


- 


En appliquant la mthode de Gauss, on peut choisir arbitrairement deux des inconnues,


ici par exemple et - , et exprimer  en fonction de ces inconnues. On a alors le
systme :




 










qui sinterprte vectoriellement par la relation




avec




-

 - 


0

"

 

 

 

 

"

Ce qui montre que lquation propose est celle du plan

Cette reprsentation permet aussi de dessiner le plan :


y=[-2 :0.5 :2] ;
z=[-2 :0.5 :2] ;
[Y,Z]=meshgrid(y,z);
X=-7/2*Y+15/2*Z+5;
mesh(X,Y,Z)





"
0 

208

Mathmatiques avec Matlab

2
1.5
1
0.5
0
0.5
1
1.5
2
2
30

1
20

10
0

10
2

20

La mme dmarche peut tre applique toute quation de la forme


3 < - 

2

o 2 3 < ne sont pas tous trois nuls, ce qui montre que toute quation de la forme
ci-dessus est celle dun plan.
7.3.4.6. Dun systme dquations paramtriques une quation cartsienne
Prenons lexemple du plan dni par le systme dquations paramtriques






'

  ' 



'

Ce plan passe par le point




et a pour vecteurs directeurs



"

  
 
0

On obtient une quation cartsienne de  en crivant




cest--dire

 


 



 

 


"



  
 

Calcul vectoriel et gomtrie

209

syms x y z real
M=[x-1 2 1 ; y 1 -3 ; z-3 2 2] ;
det(M)
ans = 8*x+13-2*y-7*z
Do lquation cartsienne
  

 -
 

7.3.4.7. Droite dnie par un systme dquations cartsiennes


Contrairement ce qui se passe dans le plan, on ne peut pas dnir une droite de
lespace par une quation cartsienne. Une telle quation caractrise en effet un plan.
On peut simplement dnir une droite comme intersection de deux plans, donc par un
systme de deux quations cartsiennes. Lexercice 7.5.4 p. 216 en est une illustration.

7.3.5. Autres reprsentations paramtriques dans lespace


La commande plot3 permet plus gnralement de dessiner point par point une
courbe de lespace, alors que mesh permet de reprsenter des surfaces.
7.3.5.1. Exemple de dessin dune courbe de lespace
On considre la courbe (hlice circulaire) dnie par le systme dquations paramtriques :





o '  

 

   '

   '

 '

Le dessin sobtient par :

T=0 :pi/50 :6*pi ;


X=3*cos(T) ; Y= 3*sin(T) ; Z = 2*T ;
plot3(X,Y,Z)
hold on ; title(Hlice circulaire)

210

Mathmatiques avec Matlab


Hlice circulaire

40
35
30
25
20
15
10
5
0
3
2
1
0
1
2
3

7.3.5.2. Exemple de dessin dune surface de lespace


On veut dessiner la surface de lespace, appele hyperbolode, dquation
-

avec 

  

.

On a :
[X,Y] = meshgrid(-1 :0.1 :1,-1 :0.1 :1) ;
Z=X.*X - Y.*Y ;
mesh(X,Y,Z)
title(Hyperbolode)
Hyperbolode

0.5

0.5

1
1
1

0.5
0.5

0
0

0.5

0.5
1

Calcul vectoriel et gomtrie

211

7.4. Changements de base et changements de repre


Certains calculs ou
dessins
sont plus faciles effectuer si 
on se place dans
 certains

 
 





un "nouveau" repre    7 plutt que dans le repre initial    7 .
Le but de cette partie est dobtenir des formules de passage des coordonnes dans un
repre celles dans lautre repre.

3
2.5

j
O

1.5
k
1
0.5
0
0.5
4

k
3

3
2

0
1

Les calculs seront effectus pour des bases et des repres de lespace. On donnera
aussi les formules correspondantes de gomtrie plane.
7.4.1. Changement de base dans lespace
On donne
trois vecteurs



 
:











par leurs coordonnes relativement une base


 



 

On note


212

Mathmatiques avec Matlab




 




, relativement la base





la matrice de la famille
que les vecteurs
si

On rappelle

forment une famille libre, donc une base, si et seulement






On supposedans la suite
cette condition
ralise.



  



passage de   7   7

sappelle alors la matrice de


Pour un vecteur 
0 quelconque de lespace, on note






ses coordonnes dans la base de dpart

et






ses coordonnes dans la nouvelle base

On a lgalit vectorielle















0     - 7     - 7
qui scrit aussi




 







- 7

 
 















 









 

 

 

soit, en utilisant les proprits de calcul vectoriel




 








- 7








 7

 




Calcul vectoriel et gomtrie

ce qui quivaut au systme





 

Ce dernier scrit matriciellement :



ou encore


213



-

Ainsi,
on obtient la matrice unicolonne des coordonnes dun vecteur dans la
base de dpart en multipliant la matrice de passage  par la matrice
des coordonnes de ce vecteur dans la nouvelle base.
La matrice  tant inversible, on a aussi :




7.4.2. Changement de repre dans lespace


7.4.2.1. Formule de changement

 


 


  
  

 

On note relativement au repre

Si 
et 



-


&

&

reprsentent les coordonnes dun point  dans le repre

celles de ce mme point dans le repre

&







 





on obtient les for-



mules de changement de repre


en considrant
le vecteur
  et ses coordonnes re



 


lativement aux deux bases   7 et   7 Les formules de changement
de base prcdentes scrivent alors :







-  -




&

&

&



-

214

Mathmatiques avec Matlab

On en dduit aussi



&

&

&


 




-  -

7.4.2.2. Calcul avec Matlab


En utilisant la formule ci-dessus, la fonction dnie par




(#; 9 

  8 : 

calcule les nouvelles coordonnes   du point  dans le repre dorigine   et


de vecteurs de base   8 : en fonction des anciennes coordonnes   .
function Mnew =Old2New(Mold,O1,I1,J1,K1)
MatPass = [I1 ,J1 , K1] ;
Inv=MatPass^(-1) ;
Mnew = Inv*(Mold-O1) ;

7.4.3. Changements de base et de repre dans le plan


7.4.3.1. Changement de base
On obtient des formules analogues, dans le plan, en notant
plan,
du














une base

deux vecteurs dnis par leurs coordonnes relativement la base




 


On note galement











la matrice de la famille   relativement la base  


suivants :



les vecteurs   forment une base, si et seulement si




On a les rsultats

Calcul vectoriel et gomtrie

215



Si cette condition est ralise, alors, pour un vecteur
0 quelconque du plan, en



notant  ses coordonnes dans la base de dpart   et  ses coordonnes
dans la nouvelle base






, on a la relation matricielle :

7.4.3.2. Changement de repre


On considre deux repres

 

 
et

 


vement au repre







du plan et on note, relati-





Pour  de coordonnes 

 


 
 





dans le repre


 



on a :

 


et


dans le repre






7.5. Exercices
7.5.1. Une suite de paralllogrammes
On dnit la suite




de quadrilatres de la manire suivante :

est le quadrilatre   de lexemple 7.2.3 ;


est le quadrilatre joignant les milieux des cts de 



1) Dessiner sur une mme gure,       


2) Montrer que tous ces quadrilatres sont des paralllogrammes.

(solution p 219)

216

Mathmatiques avec Matlab

7.5.2. Solutions entires dune quation linaire


Utiliser  '(  pour visualiser les solutions entires de lquation
avec  

  

Indication : on remarquera que ncessairement  doit tre pair, et on posera donc




  '

'

 

(solution p 220)
7.5.3. Etude dun paralllipde
On considre le paralllipipde




 

avec :


On prcise que les faces     ,   sont des paralllogrammes.


1) Calculer les coordonnes des sommets    et .
2) Pour 7 rel quelconque, calculer les coordonnes du point I tel que





  

7 

3) Pour quelle valeur de 7 les vecteurs    sont-ils coplanaires ? Interprtation gomtrique.


4) Dessiner sur une mme gure le paralllipipde, le triangle   (utiliser la
commande ll), le segment   et le point 
(solution p 221)
7.5.4. Intersection de deux plans
On considre le systme



-

1) Dessiner les deux plans   et  correspondant chaque quation du systme.


2) Appliquer la mthode de Gauss ce systme pour exprimer  et en fonction
de -


3) En dduire une reprsentation paramtrique de la droite dintersection de   et


. Dessiner cette droite.
(solution p 223)

Calcul vectoriel et gomtrie

217

7.5.5. Etude dune symtrie vectorielle


Soit 





une base de






1) Vrier que  


 

 

On dnit les trois vecteurs

 

 










est aussi une base de



 

  7


2) On considre lapplication  (appele symtrie vectorielle) qui, tout vecteur









0     8 , :
associe le vecteur



0




 




 8



 , :

(voir gure ci-dessous).

On note respectivement :




-





,





-












0 dans la base  celles de 0 dans la base   celles de 0 dans
les coordonnes de 


la base  et enn celles de 0 dans la base 
- En utilisant la dnition de  exprimer matriciellement   en fonction de


218

Mathmatiques avec Matlab

- En utilisant la matrice de passage de    exprimer matriciellement  


en fonction de   et  en fonction de  
- En dduire lexpression de   en fonction de  
3) Vrier ce dernier rsultat en calculant limage des vecteurs




 
 
7
    7










(solution p 225)
7.5.6. Changement de repre
En sinspirant de la fonction (#; 9 dcrite au paragraphe 7.4.2.2, dnir une
fonction
 *(#  ; 9 (#     8 : 
qui calcule les anciennes coordonnes   du point  en fonction des nouvelles
 donnes dans le repre dorigine   et de vecteurs de base   8 : .

(solution p 226)
7.5.7. Parabole dans un nouveau repre

 



Le plan est rapport un repre orthogonal  


des points dont les coordonnes vrient lquation





 


On considre lensemble

1) Peut-on utiliser cette quation pour construire  ?


2) On va utiliser un changement de repre pour reconnatre la nature de cet ensemble. (Ce changement de repre devra permettre dcrire lquation sous forme :
   ). Il sera dni par le systme







 

Rsoudre ce systme dinconnues  et et trouver les valeurs de


telles que

 
 





 




Calcul vectoriel et gomtrie

3) En dduire le repre

 


dans lequel


219

a pour quation

 

et utiliser cette dernire pour construire et reconnatre  .


(solution p 227)
7.6. Solutions
Exercice 7.5.1
1) On construit le premier paralllogramme :
A=[6 ;13] ;B=[11 ;5] ;C=[7 ;-6] ;D=[2 ;2] ;
P=[A B C D A] ;plot(P(1, :),P(2, :),k)
A chaque itration, on calcule les milieux de deux cts conscutifs de la ligne polygonale  et on dessine la nouvelle ligne polygonale obtenue :
hold on
for n = 1 :10
for i=1 :4
P( :,i)=(P( :,i)+P( :,i+1))/2 ;
end
P( :,5)=P( :,1) ;
plot(P(1, :),P(2, :),k)
end
axis([1 12 -7 15])
14
12
10
8
6
4
2
0
2
4
6
1

10

11

12

220

Mathmatiques avec Matlab

2) Pour montrer que ces quadrilatres sont des paralllogrammes, on pourrait utiliser des proprits gomtriques (droites de milieux), mais on peut ici utiliser le calcul
symbolique de Matlab
On a dj vri (voir paragraphe 7.2.3) que   tait un paralllogramme.
A un rang  
donn, on dnit les coordonnes des quatre sommets
du quadrilatre  

   

syms xA yA xB yB xC yC xD yD real
A = [xA ;yA] ;B=[xB ;yB] ;C=[xC ;yC] ;D=[xD ;yD] ;
On calcule alors les coordonnes des milieux  

  
 
des vecteurs     et     :

 

des quatre cts, puis celles

I1=1/2*(A+B) ;I2=1/2*(B+C) ;I3=1/2*(C+D) ;I4=1/2*(D+A) ;


V1=I2-I1
V1 =
[ 1/2*xC-1/2*xA]
[ 1/2*yC-1/2*yA]
V2=I3-I4
V2 =
[ 1/2*xC-1/2*xA]
[ 1/2*yC-1/2*yA]
V1-V2
ans =
[ 0]
[ 0]



On a ainsi vri lgalit  



  

Exercice 7.5.2
En mettant lquation  


sous

la forme

     

on voit que, ncessairement,  est pair 1, soit




 '

avec '  

Par substitution, on dduit


   '

avec '  

. par application dun thorme darithmtique (lemme de Gauss).

Calcul vectoriel et gomtrie

221

On a ainsi obtenu un systme dquations paramtriques :

Les conditions  

 '

avec '  

' 

 donnent alors respectivement 


'

'

'

'

  Soit

 

Do les instructions :
hold on ; grid on
T=0 :1 :16 ;
X=2*T ;Y=-3*T+50 ;
plot(X,Y,x)
50
45
40
35
30
25
20
15
10
5
0

10

Exercice 7.5.3.
1) On dclare les points 

15

20

25

30

35

  

O=[0 ;0 ;0] ;A=[3 ;0 ;0] ;


C=[0 ;5 ;0] ;G=[0 ;0 ;4] ;
Par hypothse, 

'

un paralllogramme, donc




De plus, comme  est lorigine, 


ment




 





ont mmes coordonnes que respective-

  

  

222

Mathmatiques avec Matlab

Do

B=A+C ;
% De mme :
F = A+G ;D=C+G ; E=F+(D-G) ;
% Visualisation des coordonnes de ces quatre points
[ B D E F]
ans = 3 0 3 3
5550
0444

2) On dnit les coordonnes de 


syms k real
I=k*E
I = [ 3*k]
[ 5*k]
[ 4*k]
3) Les vecteurs
famille lie, soit

  






sont coplanaires si, et seulement si ils forment une



  

  

d = det([C-A G-A I-A])


d = 180*k-60
k0=solve(d,k)
k0 =1/3

  

Ainsi les vecteurs    sont coplanaires pour 7 


 Gomtriquement,
cela signie que, dans ce cas, le point  appartient au plan  
4) On construit une suite de sommets du paralllipipde qui permet de parcourir
au moins une fois toutes les artes
P=[O A B C O G F A F E B E D C D G] ;
clf ;plot3(P(1, :),P(2, :),P(3, :),k)
et on reprsente le point  le triangle   et le segement   :
I =double(subs(I,k,k0));
hold on ;plot3(I(1),I(2),I(3),kx)
Tr = [A C G A] ;
ll3(Tr(1, :), Tr(2, :),Tr(3, :),y)
S=[O E] ;
plot3(S(1, :),S(2, :),S(3, :),k- -)

Calcul vectoriel et gomtrie

223

On marque ensuite le nom des points, en utilisant la commande text, comme dans
lexemple du paragraphe 7.3.3.1.

4
3.5

D
F

3
2.5

2
1.5
1
I

0.5
C
0
5

A
4
3
2
O

1.5

0.5

Exercice 7.5.4
1) Le plan  peut tre dni par





et  par







-



Do les instructions de dessin :


y=[-2 :0.1 :2] ;
z=[-4 :0.4 :4] ;
[Y,Z]=meshgrid(y,z) ;
X1=5-3*Y ;
mesh(X1,Y,Z) ; hold on
X2=6-Y/2+Z/2 ;
mesh(X2,Y,Z) ;

2.5

224

Mathmatiques avec Matlab

2) La mthode de Gauss donne :


Syst=[1 3 0 5 ; 2 1 -1 12]
Syst = [ 1 3 0 5]
[ 2 1 -1 12]
sym(rref(Syst))
ans = [ 1, 0, -3/5, 31/5
[ 0, 1, 1/5, -2/5]
Le systme est donc quivalent












  -




-

On peut alors construire la droite dintersection de   et  partir de cette reprsentation paramtrique :


z=[-5 5] ;
x=3/5*z+31/5 ;
y=-1/5*z-2/5 ;
plot3(x,y,z,k,LineWidth,1.5)

5
2
1
0
1
2

10

12

Calcul vectoriel et gomtrie

Exercice 7.5.5
1) On dnit par leurs coordonnes relativement la base
vecteurs







puis







i=[1 ;0 ;0] ; j=[0 ;1 ;0] ;k=[0 ;0 ;1] ;


I=i+j
I=
1
1
0
% De mme :
J=i+k ;K=j-i-k ;
Pour montrer que la famille





forme une base :


% On dnit la matrice de la famille (I,J,K) :


P=[I J K]
P=
1 1 -1
101
0 1 -1
% On calcule son dterminant :
d=det(P)
d =-1
2) On a par dnition de  :

soit matriciellement










On a le schma suivant :


qui peut se noter




,














,



 


225





les


226

Mathmatiques avec Matlab

do


 

On dveloppe le second membre en utilisant Matlab :


M=[1 0 0 ; 0 1 0 ; 0 0 -1] ;
syms x y z real
vB=[x ; y ; z] ;
ProdMat=P*M*P^(-1)
ProdMat =
-1 2 2
2 -1 -2
-2 2 3
v1B=ProdMat*vB
v1B =
[ -x+2*y+2*z]
[ 2*x-y-2*z]
[ -2*x+2*y+3*z]

Ainsi, dans la base 


vecteur



0











tel que



-


la symtrie vectorielle associe au vecteur 
0 le

      -


  

3) On peut vrier ce rsultat en calculant par exemple limage du vecteur


subs(v1B,vB,sym(I))
ans =
[ 1]
[ 1]
[ 0]
Exercice 7.5.6
En utilisant la relation







-  -


on a



&

&

&

function Mold =New2Old(Mnew,O1,I1,J1,K1)


MatPass = [I1 ,J1 , K1] ;
Mold = O1+ MatPass*Mnew ;





Calcul vectoriel et gomtrie

227

Exercice 7.5.7
1) On sait (grce la commande ezplot), construire avec Matlab une courbe
dquation de la forme

 

On utilise donc Matlab pour rsoudre lquation dinconnue







 


syms x y real
eq= x+y-1-2*(x-y-1)^2;
Sy=solve(eq,y)
Sy =
[ -3/4+x+1/4*(-15+16*x)^(1/2)]
[ -3/4+x-1/4*(-15+16*x)^(1/2)]


apparat comme la runion des deux courbes dquations respectives


    


    


 



dnies sur lintervalle 






.

On peut donner un aperu de 

ezplot(Sy(1),[15/16 10])
hold on
ezplot(Sy(2),[15/16 10])
title(x+y-1=2(x-y-1)^2)
x+y1=2(xy1)^2

6
x

10

228

Mathmatiques avec Matlab

2) Du systme, dinconnues 




on dduit

ou encore







 

 



  









3) On dnit donc le nouveau repre




 



 







 

8

avec

On utilise ensuite les formules de changement de repre pour dnir les anciennes
coordonnes   des points de la courbe  en fonction des nouvelles coordonnes
 

A=[1 ;0] ;I=[1/2 ;-1/2] ;J=[1/2 ;1/2] ;


MatPass=[I J] ;
X=-3 :0.01 :3 ;
Y=2.*X.^2 ;
AncCoord=MatPass*[X ;Y] ;
x=AncCoord(1, :)+A(1) ;
y=AncCoord(2, :)+A(2) ;
plot(x,y)
On complte le trac en plaant lorigine  et les axes du nouveau repre :
hold on ;axis equal ;
plot(A(1),A(2),kx);
Axe1=[A-5*I A+5*I] ;
plot(Axe1(1, :),Axe1(2, :),k- -)
Axe2=[A A+10*J] ;
plot(Axe2(1, :),Axe2(2, :),k- -)
title(Y=2X^2)
gtext(A)

Calcul vectoriel et gomtrie

Y=2X2
10

2
2

est donc une parabole de sommet  daxe

 

.


10

12

229

230

Chapitre 8

Produit scalaire et produit vectoriel

Le produit scalaire et le produit vectoriel fournissent des outils de calcul permettant


de vrier que des vecteurs sont orthogonaux, de calculer langle form par deux
vecteurs, de construire un vecteur orthogonal deux vecteurs de lespace donns,
etc...
On utilise ces deux outils en infographie, notamment pour dterminer quelles sont
les faces visibles et les faces caches dun polydre convexe (voir exercice 8.4.5).
Dans ce chapitre, on fait le choix, en supposant connues les notions de gomtrie
lmentaire vues ds le collge de rappeler certains rsultats concernant les vecteurs
orthogonaux et les bases orthonormes. On dnit ensuite le produit scalaire et le produit vectoriel par leur expression algbrique relativement une base orthonorme. Les
calculs sur ces expressions algbriques permettent ensuite de retrouver les proprits
gomtriques de ces deux oprations.
Toutes ces notions seront prsentes en gomtrie de lespace. Les proprits lies
au produit scalaire dans le plan sen dduisent naturellement.
8.1. Bases orthonormes dans le plan et lespace
8.1.1. Vecteurs orthogonaux
8.1.1.1. Dnition gomtrique




" et 0 du plan ou de lespace sont dits orthogonaux
Deux vecteurs non nuls 



si, pour  point donn, les droites  
"  et  0  sont perpendiculaires. Cette

231

232

Mathmatiques avec Matlab

dnition est indpendante du choix du point .

A
v

Par convention, le vecteur

 est orthogonal tout vecteur de







Lorque les vecteurs 
" et 0 sont orthogonaux, on note :




" 0
8.1.2. Norme dun vecteur
8.1.2.1. Dnition




Etant donn un vecteur 
" de reprsentant  la norme (euclidienne) du vecteur




"
gal la distance  . Ce nombre est indpendant du
" est le rel positif, not
 

reprsentant  de " choisi.
8.1.2.2. Proprits
La norme euclidienne vrie :



pour tous vecteurs 
"
0 et tout rel 7

" 




 

"
  " 
  7  


7 "
"








" 0
"
0










"  0 
" 0
 "



0

(ingalit triangulaire),
(thorme de Pythagore).

Produit scalaire et produit vectoriel

233

8.1.2.3. Vecteur unitaire (ou norm)


Cest par dnition un vecteur 
" tel que


"



" le vecteur

Etant donn un vecteur non nul quelconque



" 
est un vecteur unitaire, colinaire



"



"





" et de mme sens que "

8.1.3. Dnition dune base orthonorme






Dans  trois vecteurs   7 forment une base orthonorme sils sont unitaires et deux deux orthogonaux, cest--dire sils vrient :






  

  
    

 
 
 

 
 

  
 7
7   .

On dnit de manire analogue une base orthonorme

 









du plan.

Un repre    7 de lespace est dit orthonorm si les les vecteurs


forment une base orthonorme.
8.1.4. Expression analytique de la norme et de la distance
Soit





une base orthonorme de lespace. Pour tout vecteur




0

on montre, en utilisant le thorme de Pythagore, que :



0
do



0







234

Mathmatiques avec Matlab

Si

 



est un repre orthonorm de lespace, la distance des points


est




-


  

  

 - 

On obtient des formules analogues relativement une base ou un repre orthonorm du plan.
8.1.5. Calculs avec Matlab
Pour le graphisme, dans le plan ou lespace, la commande axis
le repre choisi pour le dessin soit orthonorm.


 impose que

Pour un vecteur  du plan ou de lespace dni par ses coordonnes,


calcule la norme euclidienne du vecteur 



8.1.5.1. Exemple
On donne les trois points de lespace














par leurs coordonnes dans un repre orthonorm. On montre en utilisant la proprit


de Pythagore que le triangle  est rectangle en .
A=[1 ;3 ;5] ;B=[2 ;4 ;7] ;C=[3 ;5 ;3] ;
ABcarre=norm(B-A)^2
ABcarre =6.0000
ACcarre=norm(C-A)^2
ACcarre = 12.0000
BCcarre=norm(C-B)^2
BCcarre = 18.0000
PythagoreVerie= ABcarre+ACcarre- BCcarre
PythagoreVerie = 3.5527e-015
Le rsultat nest pas exactement gal 0, en raison des erreurs dues la reprsentation machine des nombres.

Produit scalaire et produit vectoriel

235

8.2. Produit scalaire de deux vecteurs dans le plan ou lespace


8.2.1. Dnition
Dans lensemble des vecteurs de lespace, on xe une base orthonorme
Etant donn deux vecteurs





 







leur produit scalaire est le rel

Avec Matlab, la fonction

 





0 0  


 

--

calcule le produit scalaire des vecteurs  et  .

8.2.2. Proprits de symtrie et bilinarit


Le produit scalaire des vecteurs du plan ou de lespace vrie :

 la proprit de symtrie :
 





0 0  0 0
 les proprits
de bilinarit
:
 

 







 

 

"
0 0
 0 0
"  " 0 " 0
  






" 7 0
 7 0 "  7 " 0 
On en dduit le dveloppement :

 


















 ( 


0 

7 "

77

" "

7 "

7(

( 0

" 0

(7

0 "

8.2.3. Produit scalaire et norme


On a la proprit
do aussi
On en dduit :





0 0  



0

- 



0





0 0

0 


0 





 

0 0   0 

((

0 0

236

Mathmatiques avec Matlab

8.2.4. Produit scalaire et orthogonalit


Par dveloppement et rduction, on montre que



 

 











" 0  " 0  " "
0 0   " 0

On vrie cette galit avec Matlab en calculant la diffrence des deux membres :
syms a b c a1 b1 c1 real
U=[a ;b ;c] ; V=[a1 ;b1 ;c1] ;
diff = 1/2*(dot(U+V,U+V)-dot(U,U)-dot(V,V));
simplify(diff)
ans = a*a1+b*b1+c*c1
Comme le premier membre est aussi gal



 

 








" 0  " 0   " " 
0 0  



 
  
  



"

"

on en dduit, en utilisant le thorme de Pythagore, la proprit fondamentale :




" et 0 sont orthogonaux si et seulement si
Deux vecteurs 




" 0 

8.2.5. Produit scalaire et changement de base orthonorme


Soit





la base orthonorme de rfrence, dans laquelle a t dni le






produit scalaire, et


 -

et

une autre base orthonorme. On note

  ,

et




les coordonnes de deux vecteurs 
0 et 0 dans cette nouvelle base,

leurs coordonnes dans lancienne base. On a

  



  




 






0 0

 

 8

, :




, :

En dveloppant ce produit scalaire, et en utilisant les proprits de norme :




 

et dorthogonalit




 8

on trouve




8 8




8 :





0 0  




: :




: 

  ,,

Ainsi, lexpression du produit scalaire est la mme, quelle que soit la base orthonorme choisie.

Produit scalaire et produit vectoriel

237

8.2.6. Produit scalaire et angle de deux vecteurs




Soient 
" et 0 deux vecteurs non nuls de lespace. On xe un point  et on dnit
  tels que :
 




"  
0  

et  est le projet orthogonal de  sur la droite

 

u
I

On montre alors que



    






" 0                 
  
"
0

On peut ainsi calculer langle non orient des vecteurs


relation







"
0








"
0





" et 0 en utilisant la





" 0
" 


0

En particulier selon que le produit scalaire est positif, nul ou ngatif, langle (non
orient) est aigu, droit ou obtus respectivement.

238

Mathmatiques avec Matlab

8.2.6.1. Exemple
On demande de calculer langle form par les diagonales
faces adjacentes du cube dessin ci-dessous.

 

et

 

des deux

B
A

On prcise que

A=[1 ;0 ;0] ;B=[0 ;1 ;0] ;C=[1 ;1 ;1] ;


cosAngle = dot(B-A,C-A)/(norm(B-A)*norm(C-A))
cosAngle = 0.5000
Angle =sym(acos(cosAngle))
Angle = pi/3

 

Ainsi les vecteurs  et  forment un angle (non orient) de   On peut retrouver


ce rsultat en calculant les distances    pour vrier que le triangle 
est quilatral.

Produit scalaire et produit vectoriel

239

8.2.7. Exemple dutilisation du produit scalaire


8.2.7.1. Plan de vecteur normal donn
Lespace tant rapport un repre orthonorm


teur non nul 
 et un point  :





Lensemble des points




 



, on donne un vec



-


tels que








est lensemble des points dont les coordonnes vrient lquation


   

  

 -  

On reconnat lquation dun plan, appel plan passant par  et de vecteur normal





Inversement, tant donnn un plan dquation





- # 

dans un repre orthonorm, il suft de trouver un triplet solution


mettre lquation donne sous la forme

   

et reconnatre ainsi le plan passant par

et de vecteur normal

  







-







 -  

 -  pour

240

Mathmatiques avec Matlab

8.2.7.2. Remarques
On trouvera dautres exemples dutilisation du produit scalaire en exercices 8.4.2
et 8.4.3.
On obtient des rsultats et formules analogues dans le plan, en adaptant les dimensions (plan devient droite, "  
- #  " devient "  
 ",
etc...).
8.3. Produit vectoriel dans
8.3.1. Orientation dans

Intuitivement, lorientation consiste choisir sur une droite un sens de "parcours",


dans le plan un sens de "rotation", et dans lespace un sens de "vissage". Dans chaque
cas, il ny a que deux orientations possibles.

On
peut caractriser
par
le calcul lorientation dans lespace : pour toutes bases











7
et     7
on note  la matrice de passage de   .
Les bases  et  sont dites de mme sens, ou de mme orientation, si
#'   

Elles sont dites de sens (ou dorientation) contraire si


#'   $

Lespace vectoriel est orient par le choix dune base de rfrence   : les bases
de mme orientation que   sont alors dites directes, les autres sont dites indirectes.
8.3.1.1. Exemple
On peut vrier, que, si




 



 






est une base directe, alors 
et


sont des bases indirectes :


i=[1 ;0 ;0] ;j=[0 ;1 ;0] ;k=[0 ;0 ;1] ;
P=[-i j k] ;
d=det(P)
d = -1
P1=[j i k] ;
d1=det(P1)
d1 = -1

Produit scalaire et produit vectoriel

241

8.3.1.2. Remarque
Plus gnralement, daprs les proprits des dterminants, si on remplace lun des
vecteurs dune base  par son oppos, on change lorientation de  . Il en est de mme
si on permute deux vecteurs de  .
8.3.2. Dnition du produit vectoriel
8.3.2.1. Dnition
On oriente
choisie.

 , et on note





une base orthonorme directe de rfrence


Etant donns deux vecteurs de





, 
0

leur produit vectoriel est le vecteur






!






0



























8.3.2.2. Remarque
Le produit vectoriel nest pas dni dans
8.3.2.3. Calcul sous Matlab

 

Avec Matlab, la fonction


   calcule le produit vectoriel des deux vecteurs  et 
syms x y z x1 y1 z1 real
U=[x ;y ;z] ; V=[x1 ;y1 ;z1] ;
W=cross(U,V)
W=
[ y*z1-z*y1]
[ z*x1-x*z1]
[ x*y1-y*x1]

242

Mathmatiques avec Matlab

8.3.3. Proprits dantisymtrie et de bilinarit


Le produit vectoriel vrie :

 la proprit dantisymtrie :


 




0 ! 0  0 ! 0
 les proprits
de bilinarit :

 





 
 
 
" !
0 0
 " ! 0 " ! 0

 

 

 

 

0 0
!
"  0 ! " 0 ! "




 


 


" ! 7 0   7 "  ! 0  7 " ! 0 
On en dduit le dveloppement :

 ( 


0  !

7 "

77



 
"

!"

 

7 "

(7






 
0

!"

7(



 
"

!0

((



 
0

!0

8.3.4. Produit mixte de trois vecteurs


"
Etant donns trois vecteurs quelconques 


 


" 0 ! 9   
En effet, pour



"


, 
0





0
9 on a lgalit






"
0
9


 

on a, en dveloppant le dterminant suivant la premire colonne,




Le rel 
"







"
0
9









 



 


" 0 ! 9























0 ! 9  sappelle le produit mixte des vecteurs "
0
9




Produit scalaire et produit vectoriel

243

8.3.5. Proprits gomtriques du produit vectoriel


8.3.5.1. Condition de nullit
Le produit vectoriel de deux vecteurs est nul si, et seulement si ces deux vecteurs
sont colinaires.
8.3.5.2. Caractrisation
Etant donn deux vecteurs non colinaires

est le vecteur 
9 :



" et 0
orthogonal 
de norme





 


" et 0 leur produit vectoriel " ! 0

 






0
"
0
sin 




"

(cest aussi laire du paralllogramme construit partir des vecteurs


de sens tel que





" et 0 







"
0
9

est une base directe (non orthonorme en gnral !)


Produit vectoriel de u et v

8.3.5.3. Remarque


Dans le cas particulier o 
" et




daprs ce qui prcde, " ! 0 :



0 sont des vecteurs norms et orthogonaux,

244

Mathmatiques avec Matlab




est orthogonal 
" et 0
a pour norme

 






"
0
0
 




sin 



"








Dans ce cas, la base 
"
0
" ! 0  est orthonorme directe. Cest l un moyen
de complter une base orthonorme dun plan de lespace en une base orthonorme de lespace.
8.3.6. Produit vectoriel et changement de base orthonorme directe
Soit





la base orthonorme directe de rfrence, dans laquelle a t






dni le produit vectoriel, et


note   ,  et
nouvelle base, 

et

,


une autre base orthonorme directe. On





les coordonnes de deux vecteurs 
0 et 0 dans cette
-  leurs coordonnes dans lancienne base. On a

  




  








0 ! 0 
   8 , :
!    8 , :

En dveloppant ce produit vectoriel, on obtient une somme de neuf termes. Mais on


a:

 

 
 
 
 
 

 !   8 ! 8  : ! : 

on a aussi, par proprits des bases orthonormes

 

 

 ! 8  : ,

et enn par antisymtrie

 

 

8 ! :   ,

 

 

: !   8

 


 


8 !     ! 8

etc...
Do, aprs calculs





0 ! 0 

Ainsi, dans la base





 ,  8      :



, le produit vectoriel de 
0 et 0 a pour coordonnes

 , 

 


 ,




















,


 
 

 


 

 

Produit scalaire et produit vectoriel

245

Lexpression du produit vectoriel est donc la mme, quelle que soit la base orthonorme directe choisie.

8.4. Exercices
8.4.1. Norme dun vecteur
On peut remarquer que la fonction norm nest pas dnie pour des vecteurs dont
les coordonnes sont de type symbolique :
syms a b c real
U=[a ;b ;c] ;
norm(U)
? ? ? Function norm not dened for values of class sym.

Dnir votre propre fonction norme(U), qui, quel que soit le type (numrique ou
symbolique) des lments de  , retourne la norme du vecteur  Utiliser cette fonction et le calcul symbolique pour vrier formellement lgalit de Pythagore dans
lexemple 8.1.5.1 p. 234.

(solution p 251)

8.4.2. Distance dun point un plan


Cet exercice a pour but de calculer la distance dun point un plan dquation
donne.
Dans lespace rapport un repre orthonorm, on considre un plan  dquation



- # 

et un point





-

On note = le projet orthogonal de   sur  On cherche exprimer la distance


 = , sans calculer les coordonnes du point = .

246

Mathmatiques avec Matlab

On montre, grce au thorme de Pythagore, que   = est la plus petite des distances de  un point quelconque de  . On dira que   = est la distance du point
 au plan  .

M0




On utilise le vecteur



qui est normal au plan  , donc colinaire au vecteur


 =

1) Dmontrer les relations :


a)


 =

 =

et on note 7 le rel tel que




7 


7 


b)

 
  

 


    =     7   

c)

 

      
- #

d)
 =

   
- #


2) Application : calculer la distance du point




Produit scalaire et produit vectoriel

au plan  passant par les trois points




247

(solution p 252)
8.4.3. Plan mdiateur dun segment
On considre deux points distincts  et  de lespace et on note
segment  .
1) Montrer que, pour  point de lespace :

le milieu du

   


 
             
2) En dduire lquivalence :




 
    

Lensemble des points  quidistants de  et  est le plan passant par



vecteur normal  . On lappelle le plan mdiateur de [AB].

A
P

(solution p 253)

et de

248

Mathmatiques avec Matlab

8.4.4. Distance dun point une droite


On se propose de calculer la distance dun point une droite de lespace. On
considre un point  de lespace, et une droite " passant par  et de vecteur directeur


" On note = le projet orthogonal du point  sur la droite " .

1) Justier les galits suivantes :


 
 
a) 
"  = ! " .
! 

 



b) =  ! "   =   
"

On en dduit que



 ! 



=



"

"


et peut se calculer analytiquement, connaissant les coordonnes de   et 
"
Comme dans le cas de la distance dun point un plan (voir exercice 8.4.2), on
montre que =  est la distance du point  la droite "
2) Application : calculer la distance du point  la droite   avec


(solution p. 254)
8.4.5. Faces visibles et faces caches dun cube
On veut reprsenter un polydre convexe (un cube par exemple) en distinguant
ses faces visibles et ses faces caches, pour un observateur se trouvant une posi

tion donne. Supposons connu un vecteur ; normal une face donne, "dirig vers


lextrieur", et un vecteur de vue  reprsentant "la direction dans laquelle se trouve
lobservateur", partir dun point  de la face. On utilise alors le critre suivant :

Produit scalaire et produit vectoriel







si langle ;  est aigu, cest--dire si le produit scalaire


face est visible,
sinon elle est cache.




; 

249

est positif, la

Pour calculer un vecteur normal la face en question, il suft de calculer, partir de


 
trois points non aligns    de cette face, le produit vectoriel  !  Mais pour
dterminer si ce vecteur normal est tourn ou non vers lextrieur, il faut dterminer
un sens de parcours de la face, ce qui nest pas simple. On peut choisir une autre
mthode : on considre un point  situ lintrieur du polydre convexe (on peut
par exemple construire le centre de gravit de ses sommets), et  un point de la face
considre.
si langle






le vecteur normal



;

 


est obtus, cest--dire si le produit scalaire   ; est ngatif,

est dirig vers lextrieur

250

Mathmatiques avec Matlab

sinon il est dirig vers lintrieur.





On en dduit donc que la face est visible si les deux produits scalaires
  ; sont de signes contraires, et cache sils sont de mmes signes.

; 

 


Application : on considre les points

1) Vrier que





  














et

est un carr.

2) Dterminer un point  tel que


avec de plus





soit un vecteur normal au plan de ce carr,

  


puis dnir les points

 =

3) Dterminer si la face
au point

tels que

  



 

= 

soit un cube.

est visible ou cache, pour un observateur plac




 


Produit scalaire et produit vectoriel

251

4) Reprsenter le cube, avec ses faces visibles en traits pleins et ses faces caches
en traits pointills, toujours pour un observateur se trouvant au point ) On pourra
suivre les indications suivantes :
- crire une fonction visib=dessineFace(F,S,I) qui dtermine si la face F est
visible ou cache, compte tenu de la position ) de lobservateur et de la donne du
point  intrieur au polydre convexe. )  pourront tre donns sous forme de
matrices colonnes de coordonnes.
- utiliser cette fonction pour reprsenter successivement les six faces du cube,
- pour que la position ) de lobservateur soit prise en compte dans le dessin
ralis par Matlab, on utilisera la commande
view

)






(solution p. 255)

8.5. Solutions
Exercice 8.4.1
On utilise la relation



"





" "

function v=norme(U)
v1=dot(U,U) ;
v=sqrt(v1) ;
Pour reprendre lexemple du triangle  du paragraphe 8.1.5.1, on utilise la fonction sym qui convertit les coordonnes des points   et  en symbolique :
A=sym([1 ;3 ;5]) ;B=sym([2 ;4 ;7]) ;C=sym([3 ;5 ;3]) ;
ABcarre=norme(B-A)^2
ABcarre = 6
ACcarre=norme(C-A)^2
ACcarre = 12
BCcarre=norme(C-B)^2
BCcarre = 18
PythagoreVerie= ABcarre+ACcarre- BCcarre
PythagoreVerie = 0

252

Mathmatiques avec Matlab

Exercice 8.4.2
1)
a) On a


 =

donc


 =

b)




7 



    
 =

  
 

   
= = 


 






 =   =   
 

 =   
 


 7   

(relation de Chasles)




(car =  
)


(car =   7 
)

c) En utilisant les coordonnes :

 

   





  

   -  - 

   
- 

 
-

Mais, comme les coordonnes du point  vrient lquation du plan  ,




on a

  
-

#

 

      
- #
d) De la question b), on dduit

7  

 

   






  

puis en utilisant a) et c)
 =





7 





  






  




  



   
- #


Produit scalaire et produit vectoriel

2) On dtermine dabord lquation du plan 


directeurs

 

253

: il a pour vecteurs



  





et 




Un point 

de coordonnes

  

teurs 

 


, appartient ce plan si et seulement si les vec-



-

sont coplanaires, soit

  






  


 



ou encore





 


do lquation cartsienne de 


 - 
On peut vrier ces calculs avec Matlab :
A =[1 ;0 ;0] ;
B=[1 ;1 ;1] ;
C=[0 ;1 ;0] ;
AB=B-A ;AC=C-A ;
syms x y z ;M=[x ;y ;z] ;
AM=M-A ;
Equation = det([AM AB AC])
Equation = -x+1-y+z
On utilise ensuite la formule dmontre dans la premire question pour calculer la
distance de  ce plan :
#   















Exercice 8.4.3
La premire galit pourrait se dmontrer en utilisant la relation de Chasles et les
proprits de bilinarit du produit scalaire. Elle peut aussi se vrier avec Matlab par

254

Mathmatiques avec Matlab

le calcul sur les coordonnes de  et  :


syms xA yA zA xB yB zB x y z real
A=[xA ;yA ;zA] ;
B=[xB ;yB ;zB] ;
I=(A+B)/2 ;
prodScal =simplify(2*dot(M-I,B-A));
diffCarres=simplify(dot(A-M,A-M)-dot(B-M,B-M));
simplify(prodScal-diffCarres)
ans = 0
En utilisant les proprits du produit scalaire et lgalit vrie prcdemment, on a
les quivalences suivantes :

 
   
 
    
(produit scalaire et orthogonalit)
   
 
         (utilisation de lgalit dmontre)
 
      
(produit scalaire et norme)
     
(norme et distance)
Exercice 8.4.4
1) On a :
a) en utilisant la relation de Chasles et la colinarit des vecteurs


=


et 
" :

  
 
 

  
  

 ! " 
= = 
!
"  = ! " =  ! "  =  ! "



b) comme les vecteurs =  et 
" sont orthogonaux


  
 
  

    

!   

   

=

2) La droite

"

 

=

"

=

"

passe par  et a pour vecteur directeur

ici

 
 ! 

 
 








On effectue les calculs avec Matlab

=



"



"



On a donc

Produit scalaire et produit vectoriel

255

A=[1 ;0 ;0] ; B=[0 ;1 ;1] ; C=[1 ;1 ;0] ;


AB=B-A
AB =
-1
1
1
AC=C-A
AC =
0
1
0
V=cross(AB,AC)
V=
-1
0
-1
sym(norm(V))
ans = sqrt(2)
sym(norm(AB))
ans = sqrt(3)
norm(V)/norm(AB)
ans = 0.8165
Ainsi

  
 ! 
   #
 

 


# 










Exercice 8.4.5
1) Pour vrier que




  

est un carr, on calcule les coordonnes des vecteurs


















Ainsi    donc   est un paralllogramme (ce qui implique en particulier que la gure est plane). Dautre part

 
 

 

donc
 

 

 


256

Mathmatiques avec Matlab

 

 

 
 
  
      
 
  

Enn



et



do





Le paralllogramme   est la fois un rectangle et un losange, cest donc un


carr. Ces vrications peuvent aussi tre effectues en utilisant le calcul symbolique
  
de Matlab : on calcule les coordonnes des vecteurs    :
A=sym([1 ;1 ;2]) ;B=sym([2 ;3 ;3]) ;
C=sym([2+sqrt(3) ;3 ;3-sqrt(3)]) ;
D=sym([1+sqrt(3) ;1 ;2-sqrt(3)]) ;
AB=B-A
AB =
[ 1]
[ 2]
[ 1]
AD=D-A
AD =
[ 3^(1/2)]
[ 0]
[ -3^(1/2)]
DC=C-D
DC =
[ 1]
[ 2]
[ 1]

   

puis  



 et 





dot(AB,AD)
ans = 0
normeAB = sqrt(dot(AB,AB))
normeAB = 6^(1/2)
normeAD = sqrt(dot(AD,AD))
normeAD = 6^(1/2)
2) On calcule un vecteur normal la face



;

  

 
 ! 

par exemple

Produit scalaire et produit vectoriel

257


   







puis on calcule le vecteur



colinaire









;



et de mme norme que

Le point



peut alors tre dni par

N=cross(AB,AD) ;
normeN=sqrt(dot(N,N))
normeN = 6
U=simplify(normeAB/normeN*N)
U=
[ -2^(1/2)]
[ 2^(1/2)]
[ -2^(1/2)]
E=A+U
E=
[ 1-2^(1/2)]
[ 2^(1/2)+1]
[ 2-2^(1/2)]

On complte le cube par les points




 =




tels que


=




F=B+U
F=
[ 2-2^(1/2)]
[ 3+2^(1/2)]
[ 3-2^(1/2)]
G=C+U
G=
[ 2+3^(1/2)-2^(1/2)]
[ 3+2^(1/2)]
[ 3-3^(1/2)-2^(1/2)]
H=D+U
H=
[ 1+3^(1/2)-2^(1/2)]
[ 2^(1/2)+1]
[ 2-3^(1/2)-2^(1/2)]




3) On a dj calcul le vecteur ; normal la face


de vue






)

  

On calcule le vecteur

258

Mathmatiques avec Matlab

on choisit pour point intrieur au cube le milieu  de la diagonale  et on compare




 
 
le signe des produits scalaires ;  et ; 
S=[-15 ;-20 ;25] ;
V=S-A ;
I=1/2*(A+G)
I=
[ 3/2+1/2*3^(1/2)-1/2*2^(1/2)]
[ 2+1/2*2^(1/2)]
[ 5/2-1/2*3^(1/2)-1/2*2^(1/2)]
double(dot(N,V))
ans =-96.9948
double(dot(N,I-A))
ans =7.3485
On en dduit que la face   est visible.
4) Pour crire la fonction dessineFace, on note
de la face On calcule le vecteur normal



;

le vecteur de vue
du produit






)

  

les trois premiers points

 
 ! 


et le vecteur  On sait que la face est visible si le signe



 
 

; 

est ngatif. Si cest le cas, on dessine la face


traits pointills.

; 

en traits pleins, sinon on la dessine en

function visib=dessineFace(F,S,I)
AB=F( :,2)-F( :,1) ;
AC=F( :,3)-F( :,1) ;
N=cross(AB,AC) ;
A=F( :,1) ;
V=S-A ;
AI=I-A ;
visib=-sign(dot(V,N)*dot(AI,N));
F=[F A] ;
if (visib==1)
plot3(F(1, :),F(2, :),F(3, :),r-,LineWidth,2)
else
plot3(F(1, :),F(2, :),F(3, :),b- -,LineWidth,1)
end

Produit scalaire et produit vectoriel

259

Pour faire les calculs de signe et les dessins, il faut convertir au format numrique les
coordonnes des points qui avaient t introduites sous forme symbolique.

A=double(A) ;B=double(B) ;C=double(C) ;D=double(D) ;


E=double(E) ;F=double(F) ;G=double(G) ;H=double(H) ;
I=double(I) ;
clf ; dessineFace([A B C D],S,I)
ans = 1
hold on ; dessineFace([A B F E],S,I)
ans = 1
dessineFace([B C G F],S,I)
ans = -1
dessineFace([C D H G],S,I)
ans = -1
dessineFace([D A E H],S,I)
ans = 1
dessineFace([E F G H],S,I)
ans = -1

Les faces caches sont ici     =   = 


On rend le repre orthonorm et on utilise la fonction view pour placer virtuellement
lobservateur la position voulue.

axis equal ;
view([S(1) S(2) S(3)])

Enn, on complte le dessin en marquant les sommets du cube.

h=0.3 ;
text(A(1),A(2),A(3)-h,A)
text(B(1),B(2),B(3)+h,B)
text(C(1),C(2),C(3)+h,C)
text(D(1),D(2),D(3)-h,D)
text(E(1),E(2),E(3)-h,E)
text(F(1),F(2),F(3)+h,F)
text(G(1),G(2),G(3)+h,G)
text(H(1),H(2),H(3)-h,H)

260

Mathmatiques avec Matlab

B
3

C
F

2
G
1

0
A
1

D
E
4

2
1

2
0

(il faut regarder la gure en considrant que cest le point  qui est le plus proche de
lobservateur).
Remarque
On peut aussi reprsenter les faces visibles en utilisant la reprsentation des plans
vue au chapitre 7, paragraphe 7.3.4.3 et en ladaptant au dessin des faces dun paralllipipde.
La fonction dessineFaceParallelipipede reprsente la face


 

sous forme dun quadrillage.


function dessineFaceParallelipipede(F)
A=F( :,1) ;
AB=F( :,2)-F( :,1) ;
AD=F( :,4)-F( :,1) ;
F=[F A] ;
u=[0 :0.1 :1] ;
v=u ;
[U,V]=meshgrid(u,v) ;
X=A(1)+U*AB(1)+V*AD(1) ;
Y=A(2)+U*AB(2)+V*AD(2) ;
Z=A(3)+U*AB(3)+V*AD(3) ;
mesh(X,Y,Z)

Produit scalaire et produit vectoriel

On utilise cette fonction pour reprsenter les trois faces visibles du cube :
clf ;
dessineFaceParallelipipede([A B C D]) ; hold on
dessineFaceParallelipipede([A B F E])
dessineFaceParallelipipede([A D H E])
view([S(1) S(2) S(3)]) ; axis equal ;
h=0.3 ;
text(A(1),A(2),A(3)-h,A); text(B(1),B(2),B(3)+h,B)
text(C(1),C(2),C(3)+h,C); text(D(1),D(2),D(3)-h,D)
text(E(1),E(2),E(3)-h,E); text(F(1),F(2),F(3)+h,F)
text(G(1),G(2),G(3)+h,G); text(H(1),H(2),H(3)-h,H)

B
3

C
F

2
G
1

0
A
1

D
E
4

2
1

2
1

261

262

Chapitre 9

Transformations dans le plan et dans lespace

9.1. Transformations gomtriques et applications linaires


9.1.1. Introduction
Dplacer un objet du plan ou de lespace, lagrandir, le transformer, le projeter,
sont des oprations frquemment utilises, notamment en infographie. Cela conduit
associer des points du plan ou de lespace dautres points. Le modle mathmatique
est donc celui dapplication du plan ou de lespace vers lui-mme.


 

Ces applications sont appeles transformations ponctuelles.

B
C
B

263

264

Mathmatiques avec Matlab

9.1.2. Application afne et application linaire associe


9.1.2.1. Notion dapplication afne
Les transformations usuelles (translations, rotations, homothties, symtries, ...)
ont notamment pour proprits gomtriques de conserver lalignement, le paralllisme (deux droites parallles ont pour images des droites parallles) et le rapport des
distances. Plus prcisment, ces applications vrient la proprit :
si trois points 
leurs images 





vrient   7  ,


 vrient aussi    7  

 

(1)

De manire gnrale, une transformation ponctuelle  vriant cette proprit 1


est dite une application afne. Il en rsulte la proprit fondamentale suivante :
si quatre points   
leurs images   








vrient la relation     ,
 
vrient     



En effet, supposons quatre points     vriant la relation  


milieu  des diagonales  et   du paralllogramme  vrie

(2)




. Le



    


    
Daprs la proprit 1, son image  vrie



    


    
ce qui montre que    et    ont aussi le mme milieu. Ainsi 
paralllogramme et on en conclut que


 

 

On peut alors dnir lapplication vectorielle > qui au vecteur


le vecteur
  



 

est un



9.1.2.2. Application linaire associe

"

  

   






"   associe


limage du vecteur 
" ne dpendant pas du reprsentant  choisi daprs la proprit
2.
De plus, cette application vectorielle > est linaire :

Transformations dans le plan et dans lespace

Soient
que





" et 0 deux vecteurs quelconques. On note 



"  




0  

  

265

des points tels



 

" 0  

et    les images de    par   est un paralllogramme, et, daprs


la proprit 2,     aussi. Il en rsulte que


 



  





" 0        > " > 0 

>

A
D

u+v

u+v

v
v
O


De mme, pour 
" vecteur quelconque et 7 rel, on note



"  
et 

les images de 


 

>

et  On a daprs la proprit (1)









7 "

>

  7 

 

7 "

mais aussi


 



7  

7 >




7 >

7 >



"



"

266

Mathmatiques avec Matlab

k.u

k.u

u
O

9.1.2.3. Compose et rciproque dapplications afnes


Si deux transformations  et . sont des applications afnes du plan ou de lespace,
donc vrient la proprit  de "conservation de lalignement et du rapport des distances", leur compose .  vrie galement cette proprit, donc est une application
afne.

De mme, si  est une application afne bijective du plan ou de lespace, lapplication rciproque   est galement une application afne.
9.1.3. Applications afnes et calcul matriciel
Soit  une application
afne et > son application linaire associe. On se place ici
 


dans un repre    du plan. Les calculs relatifs un repre de lespace sont
analogues. On note


avec





 











>








On dira, par abus de langage que  transforme le repre

>




 

 
en


Daprs les proprits des applications linaires, > a pour matrice









Transformations dans le plan et dans lespace

et la relation vectorielle


 

se traduit matriciellement par




 
 

>




267




et sont ainsi dtermins de manire unique, ce


montre
aussi quil existe
une
 qui



  
unique application afne  transformant le repre    en   

9.1.3.1. Exemple
On se donne un repre orthonorm
 et dangle ' :

 


et on tudie la rotation


de centre

j
j
t
i
t
O

Comme








 
   












'

on dduit des rgles de calcul sur le cercle trigonomtrique que le vecteur


coordonnes :






 '
 '





a pour

268

Mathmatiques avec Matlab

On applique la mme mthode pour calculer les coordonnes du vecteur


fois-ci

















Do










  '





, avec cette

'

 '

La matrice de lapplication linaire associe la rotation % est


?




et un point  de coordonnes



Donc  a pour coordonnes


  '

 '

 '



 '

 '

  '

 '

 '

a pour image  tel que




>





 '   '

 '  '

9.1.3.2. Calcul avec Matlab


On veut calculer limage  du point


par la rotation de centre  et dangle '  



O=[0 ;0] ; A=[2 ;3] ;
t =5*pi/12 ;
R=[cos(t) -sin(t) ; sin(t) cos(t)] ;
A1= R*A
A1 =
-2.3801
2.7083
On dessine les points 

 

Fig=[A O A1] ;
clf
plot(Fig(1, :),Fig(2, :),kx)
hold on ;axis equal
plot(Fig(1, :),Fig(2, :),k)
gtext(O) ;gtext(A) ;gtext(A) ;

Transformations dans le plan et dans lespace

269

3
A
2.5

1.5

0.5

0
O
2

9.1.3.3. Cas o 



1.5

0.5

0.5

1.5

 

Dans le cas o    , on ne peut pas obtenir de relation matricielle aussi


simple. Considrons par exemple une translation plane de vecteur



0
dans un repre donn. La relation






0 entrane immdiatement


 

qui ne peut se mettre sous forme matricielle




Par contre, en remarquant que

on a la relation matricielle




 




Cela conduit associer au point  non plus un couple mais un triplet de coordonnes
et utiliser pour cela la notion de coordonnes homognes.

270

Mathmatiques avec Matlab

9.2. Coordonnes homognes et transformations planes


9.2.1. Coordonnes homognes dun point du plan
9.2.1.1. Dnition
Le plan est rapport un repre
nes (cartsiennes)

 


. Etant donn un point


de coordon-

on appelle coordonnes homognes de  tout triplet

'
'

'

avec ' 
Un point  a donc une innit de coordonnes homognes, dnies
un facteur multiplicatif prs. Si on choisit ' 
, on retrouve le triplet


introduit au paragraphe ci-dessus.


Inversement, si on se donne un triplet




on cherche sil existe un point  admettant ce triplet pour coordonnes homognes.


Les coordonnes cartsiennes



de  doivent vrier : il existe ' 





tel que :

'

'

'

Daprs la troisime quation et par substitutions dans les deux premires, on a :


Si 4  , il existe un unique point  dont les coordonnes homognes sont
donnes ; il a pour coordonnes cartsiennes


Si 4

 ,

 4

 4

aucun point  du plan nest solution.

Transformations dans le plan et dans lespace

271

9.2.1.2. Interprtation gomtrique

 



On plonge le plan de repre

 



dans lespace rapport un repre


A tout point 

et on considre le point

 


du plan
, de coordonnes cartsiennes


respondre lensemble des vecteurs non nuls colinaires

et ont donc pour coordonnes




, on fait cor-

. Ces vecteurs vrient




"  ' 
'
'

'

u(tx,ty,t)

M(x,y,0)

O
A(0,0,1)

Ainsi, les coordonnes homognes dun point  du plan sinterprtent comme les

coordonnes cartsiennes des vecteurs non nuls de lespace colinaires  .
9.2.1.3. Calcul avec Matlab
Etant donn un tableau de coordonnes cartsiennes (reprsentant par exemple les
sommets successifs dune ligne polygonale), il sera utile par la suite de lui associer le

272

Mathmatiques avec Matlab

tableau des coordonnes homognes associ. On peut le faire laide dune fonction
Matlab cart2Homog :
function Mh = cart2Homog(Mc)
m = size(Mc,2) ; % nombre de points
L = ones(1,m) ;
Mh = [Mc ;L] ;% on ajoute une ligne de 1
Exemple dutilisation
A=[2 ;1] ;
B =[5 ;-1] ;
C =[4 ;4] ;
T= [A B C]
T= 254
1 -1 4
Thomog= cart2Homog(T)
Thomog = 2 5 4
1 -1 4
111

On dnit de mme une fonction homog2Cart qui convertit les coordonnes homognes dune suite de points en leurs coordonnes cartsiennes. Pour cela, on divise
les deux premires lignes de la matrice des coordonnes homognes par la dernire :
function Mc = homog2Cart(Mh)
Mc(1, :) =Mh(1, :)./Mh(3, :) ;
Mc(2, :) =Mh(2, :)./Mh(3, :) ;
end
Exemple dutilisation :
F = [1 1 2 4 ; 2 5 6 3 ; 3 3 3 1]
F=
1124
2563
3331
homog2Cart(F)
ans =
0.3333 0.3333 0.6667 4.0000
0.6667 1.6667 2.0000 3.0000

Transformations dans le plan et dans lespace

273

9.2.2. Matrice, en coordonnes homognes, de transformations usuelles


9.2.2.1. Translation de vecteur



0

(repre

 


quelconque)


On a vu au paragraphe 9.1.3.3 que les coordonnes homognes du translat


dun point  peuvent tre donnes par la relation matricielle



9.2.2.2. Remarque
Si les coordonnes homognes de  sont multiplies par un mme facteur non
nul ', celles de  le sont aussi. Il en sera de mme si on multiplie la matrice  
de la translation par '. La matrice de la translation est donc elle-mme dnie un
facteur non nul prs. Cette remarque vaut galement pour les matrices de toutes les
autres transformations.
9.2.2.3. Homothtie de centre , de rapport 7 (repre



La relation vectorielle 



7 


7



et en coordonnes homognes par :

se traduit en coordonnes cartsiennes par

 


quelconque)

9.2.2.4. Changement dchelle


En infographie, on gnralise la notion prcdente
en introduisant
facteurs
 
 des


multiplicatifs diffrents 7 et ( selon la direction   et la direction   Cela
permet en pratique "dallonger" ou "daplatir" la gure. On a cette fois-ci les relations :


7
(

et en coordonnes homognes :



274

Mathmatiques avec Matlab

9.2.2.5. Rotation de centre , dangle  (repre

 


orthonorm direct)


On a obtenu au paragraphe 9.1.3.1 la relation

  

 

   

En coordonnes homognes, on peut donc crire :



 

  

 

 

9.2.2.6. Symtrie orthogonale daxe




do, en coordonnes homognes :



On a les relations classiques

 
 



(repre
orthonorm)

Transformations dans le plan et dans lespace

 


 



  
lapplication afne qui transforme
en
avec
 
 




9.2.2.7. Application afne quelconque, relativement un repre


Soit 

275




On a vu au paragraphe 9.1.3 que limage  dun point quelconque  a ses coordonnes cartsiennes dnies par


 
 

On vrie que cette galit peut scrire, laide des coordonnes homognes :






9.2.3. Image dune gure


On considre une gure dnie par une suite de points         
peut tout aussi bien tre un segment de droite (  ), une ligne polygonale,  points
        de
dune courbe plane. On souhaite construire la transforme
la gure par une transformation de matrice 4 en coordonnes homognes donne.
On pourrait obtenir les coordonnes homognes de        en multipliant
successivement 4 par la matrice-colonne des coordonnes homognes de chaque point
de la gure Mais les rgles de calcul ligne par colonne du produit matriciel font
que cela revient multiplier globalement la matrice 4 par la matrice

 





4

obtenue en juxtaposant les colonnes


.



4











 des coordonnes homognes des points

Exemple
On utilise Matlab pour reprsenter le triangle  et son image par la rotation
de centre  et dangle 3 , les points   et  tant donns par leurs coordonnes
cartsiennes dans un repre orthonorm





276

Mathmatiques avec Matlab

Pour cela, on dnit la matrice de la rotation :


c = cos(3*pi/4) ; s= sin(3*pi/4) ;
R=[c -s 0 ; s c 0 ; 0 0 1]
R=
-0.7071 -0.7071 0
0.7071 -0.7071 0
0
0
1.0000
On dessine la ligne polygonale ferme

 

et le centre  de la rotation

A=[2 ;1] ;B=[5 ;-1] ;C=[4 ;4] ;


Fc =[A B C A]
Fc =
2542
1 -1 4 1
axis equal ; hold on
plot(0,0,kx)
plot (Fc(1, :),Fc(2, :),k)
On applique la matrice de la rotation ? la matrice en coordonnes homognes du triangle. On utilise pour cela la fonction de conversion cart2Homog (vue au paragraphe
9.2.1.3).
F= cart2Homog(Fc) ;
F1=R*F
F1 =
-2.1213 -2.8284 -5.6569 -2.1213
0.7071 4.2426 0.0000 0.7071
1.0000 1.0000 1.0000 1.0000
On reconvertit la matrice de la gure image  en coordonnes cartsiennes, en utilisant cette fois-ci la fonction homog2Cart (voir paragraphe 9.2.1.3) et on dessine
limage obtenue :
F1c=homog2Cart(F1) ;
plot (F1c(1, :),F1c(2, :),k)
On complte la gure en dessinant le repre (voir chapitre 2, paragraphe 2.1.3.3) et en
marquant le nom des points :
dessineRepere
gtext(O)
gtext(A) ;gtext(B) ;gtext(C) ;
gtext(A) ;gtext(B) ;gtext(C) ;

Transformations dans le plan et dans lespace

277

5
B

A
O

0
C
1

B
2
4

9.2.4. Composition de transformations et matrices en coordonnes homognes


9.2.4.1. Proprit
et  pour
Soient  et . deux transformations planes admettant respectivement
 


matrices en coordonnes homognes, relativement un repre x    Etant
donn un point




quelconque de coordonnes homognes


 son image par

et 





 limage de





, on note

matricielles :











4










par . . On a les relations







do

Ainsi :
Si  et . admettent pour matrices respectives en coordonnes
homognes et , alors leur compose .  admet pour
matrice en coordonnes homognes 

278

Mathmatiques avec Matlab

9.2.4.2. Remarque
Etant donn une transformation  , on cherchera lcrire comme compose de
transformations usuelles (dont on connat les matrices en coordonnes homognes).
On utilisera ensuite le thorme ci-dessus pour obtenir la matrice de  .
9.2.4.3. Exemple
Considrons une rotation plane %

de centre 

? 

et dangle  On

peut la dcomposer en une suite de trois transformations :

M
M1

I
i

M1



'
 la translation de vecteur  
? la rotation de centre  dangle  ,



'
 la translation de vecteur 
En effet, si on considre  un point quelconque du plan,  son image par % et si

on note  et  les translats de  et  par la translation de vecteur   on a par
proprits gomtriques des translations et des rotations :








et

 








ce qui prouve


  
'






    ' ? '   

 ?
'

? '  a donc pour matrice en coordonnes homognes


    



  
 

 
? 

?


'




Transformations dans le plan et dans lespace

279

9.2.5. Rciproque dune transformation et matrices en coordonnes homognes


pour matrice en coordonnes homoSoit  une transformation plane admettant
 


gnes, relativement un repre x    On a alors :

  est bijective si et seulememt si est inversible.


 Si  est bijective,   admet  pour matrice en coordonnes homognes.


En effet, si on note

 et



4


 les coordonnes homognes de deux



4

points  et  on a les quivalences :


 est bijective.
Pour tout point  , il existe un unique point  tel que 

Pour tout triplet



4

il existe un unique triplet






4

La matrice








 tel que
 

est inversible.

De plus, si les proprits ci-dessus sont vries, la relation






est quivalente













ce qui montre que  est limage de  par lapplication de matrice

9.2.6. Formule de changement de repre en coordonnes homognes


On reprend les notations usuelles en se donnant deux repres

 

 
,







280

Mathmatiques avec Matlab

le second tant caractris par ses coordonnes relativement au premier :







 



Pour un point  de cooordonnes


coordonnes

relativement

 


relativement au repre






 


et de


on rappelle les formules de chan-

gement de repre obtenues au chapitre "Calcul vectoriel et gomtrie" (paragraphe


7.4.3.2, p. 215) :



  




 

#
Cette galit matricielle peut aussi scrire






 







En introduisant  application afne transformant    en   


on
reconnait dans lgalit ci-dessus la matrice en coordonnes homognes de  . Pour
obtenir la formule de changement de repre ci-dessus,
suftdonc de dterminer
 il





et
gomtriquement lapplication afne qui transforme    en   
de se rappeler quon multiplie la matrice de cette application afne par les nouvelles
coordonnes homognes dun point pour en retrouver les anciennes.
9.3. Coordonnes homognes et transformations de lespace
9.3.1. Coordonnes homognes dun point de lespace
Les dnitions et proprits
sont analogues
celles donnes pour le plan. Lespace
 



tant rapport un repre    7 , pour tout point  de coordonnes (cart-

siennes)


, on appelle coordonnes homognes de

avec ' 

'
'
'-




,

'


Inversement, si on se donne un quadruplet


tout quadruplet



,






avec

 , il existe un

unique point  dont les coordonnes homognes sont gales ce quadruplet, et 

Transformations dans le plan et dans lespace

pour coordonnes cartsiennes




4

4

281

,
4

La fonction cart2Homog dnie prcdemment pour un tableau de points du plan


sadapte lespace, puisquelle a pour effet dajouter une ligne de 1 aux coordonnes
cartsiennes.
On rcrit la fonction homog2Cart, pour quelle soit utilisable aussi bien dans le
plan que dans lespace.
function Mc = homog2Cart(Mh)
n = size(Mh,1) ;
Mc(1, :) =Mh(1, :)./Mh(n, :) ;
Mc(2, :) =Mh(2, :)./Mh(n, :) ;
if (n==4)
Mc(3, :) =Mh(3, :)./Mh(n, :) ;
end

9.3.2. Matrices des transformations de lespace


Les dnitions, lutilisation, les proprits de ces matrices relatives la compose, la rciproque, au changement de repre sont identiques celles des matrices
des transformations planes. Il suft donc l aussi de connatre la matrice de certaines
transformations de base, et de dcomposer une transformation quelconque laide de
ces transformations lmentaires (voir exercice 9.5.6).
On note respectivement



-








-






un point quelconque de lespace et son image par la transformation considre. On


donnera dans chaque cas une caractrisation gomtrique, lexpression analytique et
lexpression matricielle des coordonnes homognes de  en fonction de celles de
.

282

Mathmatiques avec Matlab

9.3.2.1. Translation ' de vecteur



"




k
M
j
O
i

On a, gomtriquement


' 





analytiquement

et matriciellement



-








-

 
    
"

 
- 








-






9.3.2.2. Rotation autour dun axe de coordonnes.


Dans ce paragraphe, on suppose le repre

 

daxe
et dangle

 



orthonorm direct.


 7
.
1) La rotation %
Elle peut tre dnie gomtriquement de la manire suivante :
- on construit le plan  passant par  , perpendiculaire 

la base directe






- on note  le point dintersection de  et de

 






7

orient par

Transformations dans le plan et dans lespace

- on construit alors
dangle .

image de

par la rotation plane de

283

, de centre  ,

j
O
i

Pour trouver lexpression analytique de %, on peut donc utiliser les formules


des rotations planes, permettant de calculer  et en fonction de  et . On a





ce qui quivaut



-






 

   

 

  

 

 

2) La rotation %

 

daxe
et dangle


De manire analogue et partant de 





et

  



-













-






.
, on a

% 

 -  

 

  -  

 

  

 

 








-






284

Mathmatiques avec Matlab

3) La rotation % daxe
On obtient de mme

et



-

 

et dangle






   

 

    







 

 

 

9.3.2.3. Symtrie orthogonale  par rapport au plan


Le repre









-






 




 



de lespace est suppos orthonorm direct.


 



On construit le point dintersection  du plan    avec la perpendiculaire


ce plan passant par  , puis le point  tel que  soit le milieu de   .

M
k
j
O
i

De 

, on dduit les caractrisations

 





-

Transformations dans le plan et dans lespace

et



-













-






285

9.4. Projections et leurs matrices en coordonnes homognes


Les projections de lespace sur un plan permettent en pratique dobtenir une vue
plane (sur un cran graphique dordinateur par exemple) dun objet de lespace.
On associe ces projections une matrice en coordonnes homognes, ce qui permet deffectuer les calculs de coordonnes des projets, notamment lorsquon compose une projection avec des rotations, translations, etc...
On
dabord aux diffrentes projections usuelles sur le plan de coordon sintresse



nes    .

9.4.1. Diffrents types de projections sur le plan


9.4.1.1. Projection parallle selon la direction








9

k
w
j
O
i

On donne un vecteur



9 , nappartenant pas la direction du plan
 



projet dun point  , sur le plan

 


. Le


suivant la direction de la droite



9 ,

286

Mathmatiques avec Matlab

est le point
parallle




, intersection du plan



9 .

Si on note


 


 


et de la droite passant par




, do


7 9

on a  



-

et









   7
  7 
 -  7

et
-


9 napprtient pas la direction du plan
Ncessairement
 car le vecteur 
On a donc


-

do











 




et lgalit matricielle en coordonnes homognes



-

















-






9.4.1.2. Projection orthogonale


Un cas particulier important de projection
est celui o la droite  
9
 parallle



est perpendiculaire au plan de projection    On parle alors de projection

Transformations dans le plan et dans lespace

287

orthogonale sur ce plan.

j
O
i
M

En reprenant les rsultats ci-dessus, avec le vecteur



 

9

on a, dans le cas dune projection orthogonale, les galits



-











et









-






9.4.1.3. Projection perspective de centre 


On donne un point

nappartenant pas au plan de projection

 



 


projection perspective, de centre
sur le plan
transforme un point
 


de lespace en
point dintersection du plan
et de la droite


Le point

nest pas dni si

appartient au plan passant par

La


  .
et parallle

288

Mathmatiques avec Matlab

 




M
k
j

O
i

Pour le calcul, on choisit 

 

sur laxe


et on note 

On a par dnition

de 




do







7  

  7   
  7  

 7 - 




-

et
-

 


nappartenant pas au plan












-

on a -

et


On peut donc crire

- 






- 

Transformations dans le plan et dans lespace

289


On ne peut pas exprimer matriciellement les coordonnes cartsiennes  en fonc

tion de  mais en introduisant les coordonnes homognes
telles


-

que

4 

avec










on a

et matriciellement



,

4 -


























-

9.4.1.4. Remarque
Etudions limage de droites parallles par une projection perspective sur le
plan

 


. Considrons par exemple les droites



. Un point
et de vecteur directeur 
0

passant par le point 


 appartient

si et seulement si


 




' 0

'

 .

Les coordonnes cartsiennes de  vrient donc





'

'

'

Pour ' 
le projet  de  a ses coordonnes homognes dnies par



,
4









,















'
'
'

'

'

'






290

Mathmatiques avec Matlab

do les coordonnes cartsiennes









'

'

'

'








On peut mettre ces coordonnes sous la forme


 





 

'

'








ce qui prouve que, lorsque

varie sur

, le point

apppartient la droite







9

. Toutes ces
passant par le point ' 
, et de vecteur directeur 

droites sont scantes en ', appel point de fuite : cest leffet de perspective. On peut
illustrer graphiquement cette proprit, en dnissant quatre droites  ou plutt
quatre segments    ports par ces droites, et en construisant leurs images par
projection perspective.
clf ;hold on
c=-10 ;
MatProjPers=[-c 0 0 0 ;0 -c 0 0 ; 0 0 0 0 ;0 0 1 -c] ;
v=[1 ;1 ;1] ;
t=1000 ;
for n=1 :4
An= [n ;0 ;0] ;
Bn=An+t*v ;
Dn=[An Bn] ;
DnHomog=cart2Homog(Dn);
DnPrimeHomog=MatProjPers*DnHomog;
DnPrime=homog2Cart(DnPrimeHomog);
plot(DnPrime(1, :),DnPrime(2, :))
end
On construit galement le point '




du plan de projection  
.
 



plot(-c,-c,x,LineWidth,1.5)
axis ([0 11 0 11])

Transformations dans le plan et dans lespace

291

11
10
9
8
7
6
5
4
3
2
1
0

10

11

On notera que, les projections perspectives ne conservant pas le paralllisme, ce ne


sont pas des applications afnes.
9.4.2. Projections sur un plan quelconque 
Pour reprsenter limage dune gure  de lespace par projection perspective de
centre  sur un plan  on construit une transformation  (obtenue
composition
 par



et  a
de rotations et translations) par laquelle  a pour image le plan   
pour image un point  de laxe

 



En appliquant la transformation  la gure  on obtient une gure  isomtrique de  et la projection perspective de centre  sur le plan  pour la gure 



se ramne une projection perspective de centre  sur le plan    pour la
gure 

En pratique, il suft donc de dterminer la matrice de la transformation  pour


obtenir les coordonnes de  puis deffectuer les calculs matriciels du paragraphe
prcdent, partir des coordonnes des points de la gure  (voir exercice 9.5.6 p.
298).
On procde de manire analogue lorsquil sagit dune projection orthogonale ou
oblique sur un plan quelconque 
9.4.3. Reprsentation dune gure de lespace avec Matlab
Par dfaut, les gures de lespace dessines laide des commandes plot3, surf,
mesh, etc..., sont visualises en utilisant une projection orthogonale sur un plan  . On

292

Mathmatiques avec Matlab

peut modier la direction de ce plan par la commande

    


o 

 ,



reprsentent les coordonnes dun vecteur



0 normal  .

On dnit par exemple le cube unit avec Matlab en construisant la suite des sommets qui permettra de dessiner toutes ses artes.
A1=[0 ;0 ;0] ;A2=[1 ;0 ;0] ;A3=[1 ;1 ; ;0] ;A4=[0 ;1 ;0] ;
B1=[0 ;0 ;1] ;B2=[1 ;0 ;1] ;B3=[1 ;1 ; ;1] ;B4=[0 ;1 ;1] ;
Cube=[A1 A2 B2 A2 A3 B3 A3 A4 B4 A4 A1 B1 B2 B3 B4 B1] ;
On le reprsente laide de la commande plot3, en dnissant un vecteur normal au
plan de projection
"presque horizontal"
view([20 10 1]) ;hold on
plot3(Cube(1, :),Cube(2, :),Cube(3, :))

1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0

0.2

0.4

0.6

0.8

0.5

"presque vertical"
clf ;view([1 1 10]) ;hold on
plot3(Cube(1, :),Cube(2, :),Cube(3, :))

Transformations dans le plan et dans lespace

293

1
0.5
0
0

0
0.1

0.1
0.2

0.2
0.3

0.3
0.4

0.4
0.5

0.5
0.6

0.6
0.7

0.7
0.8

0.8
0.9

0.9
1

"oblique"
clf ;view([20 19 18 ]) ;hold on
plot3(Cube(1, :),Cube(2, :),Cube(3, :))

0.8

0.6

0.4

0.2

0
0

0
0.2

0.2
0.4

0.4
0.6

0.6
0.8

0.8
1

La commande view accepte aussi deux paramtres angulaires :


09 - ( 

o - et ( sont des angles mesurs en degrs permettant de dnir la direction de


vecteur normal au plan de projection :
-








 0

 


entre le vecteur
 



est langle du plan horizontal


0 sur ce plan
  et le projet orthogonal du vecteur 



0 ,

294

Mathmatiques avec Matlab

(






0

est un angle du plan vertical contenant les deux vecteurs



0

et





0 compt positivement si le vecteur 0 a une cote positive, ngativement sinon.

v
k

O
i

el

az
v

Par analogie avec un mode de reprage utilis en astronomie, - et ( sont appels


azimut et lvation.
Si on nutilise pas explictement la commande view, les valeurs par dfaut du graphisme 3D de Matlab sont :
-



et

(

 

9.5. Exercices
9.5.1. Quelques matrices en coordonnes homognes
Pour automatiser les calculs ultrieurs, on dnit les fonctions Matlab
 '4 %  

 '?*' '+'   ')   '


+ 7 ( 

qui retournent les matrices en coordonnes homognes des transformations planes du


paragraphe 9.2.2.

Transformations dans le plan et dans lespace

295

Par exemple :
function M=matTrans(V)
M =[ 1 0 V(1) ;
0 1 V(2) ;
0 0 1 ];
Procder de mme pour dnir les autres fonctions.

(solution p. 300)

9.5.2. Rotation et symtrie orthogonale


1) On considre dans un repre orthonorm direct
 
, avec


 


la ligne polygonale


Construire
 avec Matlab cette ligne polygonale et son image par la rotation de centre


et dangle 3 


2) On considre la symtrie orthogonale par rapport la droite  
"  formant un
angle 2 avec laxe des abscisses. La dcomposer en une suite de transformations de
base (cf 9.2.2).

"  dans le cas
3) Donner la matrice de la symtrie daxe  
2







"

et construire limage de la ligne polygonale

 

 

par cette symtrie.

(solution p 300)

9.5.3. Rotation et translation


1) Vrier par le calcul matriciel les proprits gomtriques suivantes :
a) La transformation rciproque de la translation de vecteur



0

est la


0 .
translation de vecteur  
b) La transformation rciproque de la rotation % de centre , dangle  est la
rotation de centre , dangle .

296

Mathmatiques avec Matlab

2) En crivant la rotation

de centre



et dangle

comme

compose de transformations du type ci-dessus (voir paragraphe 9.2.4.3), retrouver sa


transformation rciproque. On rappelle que, si   et  sont deux matrices inversibles de mme taille,   lest aussi, et vrie


 


(solution p. 303)
9.5.4. Ecran graphique
Sur un cran graphique, chaque point cran (pixel) est reprsent par deux coordonnes entires   telles que :

et

!

!

partir dune origine  situe en haut gauche de lcran.  ! et ! sont
deux constantes dpendant de la rsolution graphique. Par exemple, en mode VGA,
!   et !  

xMAX

Oe
d

ju
a

Ou

b
iu

yMAX

On veut utiliser un tel cran pour reprsenter des points de coordonnes


un repre orthogonal cadr de telle sorte que

On note

et





le repre "cran" et





" "

 

" le repre "utilisateur".

dans

Transformations dans le plan et dans lespace

297

1) Trouver
une suitede transformations
simples permettant de passer du repre






au repre   
" " "

2) En dduire la formule matricielle permettant de passer, en coordonnes homognes, des coordonnes "cran" aux coordonnes "utilisateur".
3) On se place dans le cas :
!

 

!

 







a) Lutilisateur se place sur le pixel de coordonnes (400, 200). A quel point


du repre utilisateur cela correspond-il ?
b) Quel pixel correspond  " ? Quel pixel correspond au point de coordonnes 
 du repre utilisateur ?

(solution p. 304)

9.5.5. Projection parallle et projection perspective


On considre les points 

avec

   





et la gure forme par les deux faces   et  

1) Vrier que ces deux faces sont des rectangles.


2) Construire le projet de cette gure par la projection parallle, sur
suivant la direction



9  avec


 



 




3) Construire galement
projet de cette gure par la projection perspective sur

le

 




de centre 



(solution p. 306)

298

Mathmatiques avec Matlab

9.5.6. Projection perspective sur un plan "oblique"

 




Lespace est rapport un repre orthonorm direct    7 . Le but de cet


exercice est de reprsenter un objet de lespace en projection perspective sur un plan
 passant par  . Le centre de la projection est un point ; tel que

; 

 



Si   
dans la suite

 

le problme a dj t rsolu au paragraphe 9.4.1.3. On suppose

donc ; nappartient pas la droite

 




 

.


Premire partie
de
On cherche une suite de deux rotations de lespace %  et % , autour
! daxes

coordonnes, telles que leur compose % % transforme la demi-droite  ; en
la demi-droite

 




Pour cela, on dnit ; projet orthogonal de ; sur le plan

puis les trois rels %

;

>

! 





;

tels que :

, angle orient du plan rapport au repre direct



 
;

 >

;

 




angle orient du plan rapport au repre direct

avec





"  
 ;

;

 




"

Transformations dans le plan et dans lespace

(Ces nombres %

 >

299

sappellent les coordonnes sphriques de ; 

k
phi

O
i
theta

1) Trouver langle dune rotation de lespace %  , daxe


demi-droite

! 
 ;

! 

en la demi-droite


 



qui transforme la

Caractriser le point ; &  %

 

2) Trouver langle dune rotation de lespace , daxe
!  
! 

la demi-droite
en la demi-droite
!  
%

 ;

3) Quelle est limage de la demi-droite




 ;

; 

qui transforme

par la compose

% (

Quelle est limage du plan  par  ? Celle de ; ?


4) Donner la matrice

de 

5) Vrier par le calcul le rsultat gomtrique de la question 3, concernant


limage de ; (on pourra calculer les coordonnes cartsiennes de ; grce la fonction Matlab sph2cart.
Deuxime partie : application graphique
On choisit


>

300

Mathmatiques avec Matlab

et on considre le cube "unit" de lespace, (les coordonnes de ses sommets sont


toutes gales ou
 Dessiner ce cube en projection perspective, en donnant %
successivement les valeurs

(solution p. 309 )
9.6. Solutions
Exercice 9.5.1
On utilise les matrices des transformations, vues au paragraphe 9.2.2 :
1) Rotation de ce centre  et dangle 
function M=matRotO(theta)
c = cos(theta) ;
s = sin(theta) ;
M = [c -s 0 ;
s c 0;
0 0 1 ];
2) Symtrie orthogonale daxe

 



function S=matSymOx
S=[1 0 0 ;0 -1 0 ;0 0 1] ;
3) Changement dchelle
function M=matChEch(kx,ky)
M =[ kx 0 0 ; 0 ky 0 ; 0 0 1 ] ;
Exercice 9.5.2
1) On dnit la matrice 1 des points     
 de la ligne polygonale
que lon construit
L=[1 4 4 2 2 1 1 ;1 1 2 2 5 5 1] ;
axis equal ; hold on
plot(L(1, :),L(2, :),k)
On calcule ensuite la matrice 4 de la compose ' 
 ? '
 (cf 9.2.4.3), en
utilisant les fonctions de lexercice 9.5.1
I=[1 ;0] ;
T=matTrans(I)* matRotO(3*pi/4)*matTrans(I)
T=
-0.7071 -0.7071 0.2929
0.7071 -0.7071 0.7071
0
0
1.0000

Transformations dans le plan et dans lespace

301

On multiplie par cette matrice 4 la matrice en coordonnes homognes de la ligne


polygonale, et on transforme le rsultat en coordonnes cartsiennes, ceci en utilisant
les fonctions cart2Homog et homog2Cart (voir paragraphe 9.2.1.3).
L1= homog2Cart(T*cart2Homog(L))
L1 =
-1.1213 -3.2426 -3.9497 -2.5355 -4.6569 -3.9497 -1.1213
0.7071 2.8284 2.1213 0.7071 -1.4142 -2.1213 0.7071
plot(L1(1, :),L1(2, :),k)
On complte la gure en dessinant le repre, le point  et en matrialisant langle de
la rotation.

dessineRepere ; grid on
plot(I(1),I(2),x,LineWidth,1.5)
Angle =[L( :,2) I L1( :,2)] ;
plot(Angle(1, :),Angle(2, :),- -)
gtext(I)
1)
5

0
I
1

3
4



2) Pour effectuer la symtrie )  

"  par rapport laxe  "  on peut effectuer :



- une rotation de centre  et dangle 2 qui amne laxe  "  sur laxe






- la symtrie orthogonale  daxe

 



302

Mathmatiques avec Matlab

- la rotation de centre



" .

et dangle

qui ramne laxe

 

sur laxe


Do )  

"   ?  #  ?  #
3) On effectue les calculs dans le cas 2   
S=matRotO(pi/3)*matSymOx*matRotO(-pi/3)
S=
-0.5000 0.8660 0
0.8660 0.5000 0
0
0
1.0000
L2=homog2Cart(S*cart2Homog(L))
L2 =
0.3660 -1.1340 -0.2679 0.7321 3.3301 3.8301 0.3660
1.3660 3.9641 4.4641 2.7321 4.2321 3.3660 1.3660

On dessine la gure

 

de dpart et son image par la symtrie.

clf ; axis equal ;hold on


plot(L(1, :),L(2, :),k)
plot(L2(1, :),L2(2, :),k)

On reprsente aussi laxe de symtrie, en choisissant deux points de cet axe : lorigine  du repre, et le point  tel que







  "

soit


 

 

 

 

O=[0 ;0] ;M=[5*cos(pi/3) ;5*sin(pi/3)] ;


plot([O(1) M(1)],[O(2) M(2)],-.,LineWidth,1.5)
dessineRepere ;grid on
gtext((O,u))

Transformations dans le plan et dans lespace

303

5
4.5

(O,u)

4
3.5
3
2.5
2
1.5
1
0.5
0

Exercice 9.5.3


1)
a) On construit la matrice  de la translation de vecteur 
0 
matrice de la transformation rciproque que lon compare la matrice   de la transla
0
tion de vecteur  
syms a b real ; v=[a ;b] ;
M=matTrans(v) ;
Mmoins1=M^(-1)
Mmoins1 =
[ 1, 0, -a]
[ 0, 1, -b]
[ 0, 0, 1]
M1=matTrans(-v)
M1 =
[ 1, 0, -a]
[ 0, 1, -b]
[ 0, 0, 1]

Ce qui montre que  

do

 
'

"

"


'

304

Mathmatiques avec Matlab

b) On procde de mme pour comparer les matrices de


?  $ .
syms theta
M=matRotO(theta) ;
Mrecip=simplify(M^(-1))
Mrecip =
[ cos(theta), sin(theta), 0]
[ -sin(theta), cos(theta), 0]
[ 0,
0,
1]
Mopp=matRotO(-theta)
Mopp =
[ cos(theta), sin(theta), 0]
[ -sin(theta), cos(theta), 0]
[ 0,
0,
1]
2) On a vu que
?

donc

"






" #



'


'

On le vrie avec Matlab


'

"

"

? 

et de

? ' 






? ' 

" #

'







syms xI yI ; I=[xI ; yI] ;


M=matTrans(I)* matRotO(theta)*matTrans(-I);
Mrecip=simplify(matTrans(I)* matRotO(-theta)*matTrans(-I))
Mrecip =
[ cos(theta), sin(theta), -cos(theta)*xI-sin(theta)*yI+xI]
[ -sin(theta), cos(theta), sin(theta)*xI-cos(theta)*yI+yI]
[ 0,
0,
1]
Verif = simplify(M^(-1))
Verif =
[ cos(theta), sin(theta), xI-sin(theta)*yI-cos(theta)*xI]
[ -sin(theta), cos(theta), -cos(theta)*yI+yI+sin(theta)*xI]
[ 0,
0,
1]

Exercice 9.5.4
1) On applique successivement :
  ! dans la
- lechangement
dchelle de centre , de rapports 7 
  



direction " " et ( 
 # ! dans la direction " " qui transforme
le repre





" "

" en





" 

Transformations dans le plan et dans lespace



305

- la translation de vecteur "  .


2) Do la matrice  permettant de passer du repre utilisateur au repre cran,
et les formules permettant de passer du repre cran au repre utilisateur :
syms a b c d xMAX yMAX
k=(b-a)/xMAX ; l =(c-d)/yMAX ;
MchEch=[k 0 0 ; ...
0 l 0 ; ...
0 0 1] ;
Mtrans=[1 0 a ; ...
0 1 d ;...
0 0 1] ;
M =Mtrans * MchEch
M=
[ (b-a)/xMAX, 0,
a]
[ 0,
(c-d)/yMAX, d]
[ 0,
0,
1]
et les formules de changement de repre sont donc

"

"





!


#

!

#

!

!




















a) Avec les valeurs numriques donnes :


M = sym(subs(M,{a, b, c, d,xMAX, yMAX},{-6,2,-3,1,640,480}))
M=
[ 1/80, 0, -6]
[ 0, -1/120, 1]
[ 0, 0, 1]
coordUtilisateur=M*[400 ;200 ;1]
coordUtilisateur =
[ -1]
[ -2/3]
[ 1]

306

Mathmatiques avec Matlab

b) On utilise la matrice inverse de  pour obtenir les coordonnes "cran" en


fonction des coordonnes "utilisateur" :
Mmoins1=M^(-1)
Mmoins1 =
[ 80, 0, 480]
[ 0, -120, 120]
[ 0, 0, 1]
coordEcranOu=Mmoins1*[0;0 ;1]
coordEcranOu =
[ 480]
[ 120]
[ 1]
coordEcran2=Mmoins1*[-1;-2 ;1]
coordEcran2 =
[ 400]
[ 360]
[ 1]

Exercice 9.5.5
1) On dnit les points  
et   sont des rectangles :

  

et on vrie que les deux faces  

A=[-1 ;0 ;1] ; B=[1 ;0 ;1] ;C=[1 ;1 ;3] ;


D=[-1 ;1 ;3] ;E=[-1 ;2 ;0] ;F=[1 ;2 ;0] ;
B-A
ans =
2
0
0
C-D
ans =
2
0
0
dot(B-A,D-A)
ans =
0

Transformations dans le plan et dans lespace



Ainsi, 






et 

307


   On procde de mme pour la face   :
F-E
ans =
2
0
0
dot(C-D,E-D)
ans =
0

2) Pour construire toutes les lignes de la gure, on dnit la matrice correspondant


la suite de points   . On dnit galement la matrice de la projection
parallle quon multiplie par la matrice des coordonnes homognes de la suite de
points.

Fig=[D A B C D E F C] ;
MatProjPar=[1 0 -1/2 0 ; 0 1 1/2 0 ; 0 0 0 0 ; 0 0 0 1] ;
FigProjHom=MatProjPar*cart2Homog(Fig);
FigProjCart=homog2Cart(FigProjHom)
-2.5000 -1.5000 0.5000 -0.5000 -2.5000 -1.0000 1.0000 -0.5000
2.5000 0.5000 0.5000 2.5000 2.5000 2.0000 2.0000 2.5000
0
0
0
0
0
0
0
0

 


la suite des projets, en marquant

On peut alors construire, dans le plan   


le nom des sommets grce la commande text :

clf
plot(FigProjCart(1, :),FigProjCart(2, :),k,LineWidth,1.5)
axis ([-3 1.5 0 3]) ;axis equal
nomSommets=DABCDEFC ;
h=0.1 ;
for i=2 :7,
text(FigProjCart(1,i),FigProjCart(2,i)+h,nomSommets(i))
end

308

Mathmatiques avec Matlab

On obtient

2.5

1.5

0.5

0
3

2.5

1.5

0.5

0.5

1.5

3) Pour construire limage de cette gure par la projection perspective , on effectue des traitements analogues, en utilisant cette fois-ci la matrice de la projection
perspective.

c=-5 ;
MatProjPers=[-c 0 0 0 ;0 -c 0 0 ; 0 0 0 0 ;0 0 1 -c] ;
FigProjHom=MatProjPers*cart2Homog(Fig);
FigProjCart=homog2Cart(FigProjHom)
FigProjCart =
-0.6250 -0.8333 0.8333 0.6250 -0.6250 -1.0000 1.0000 0.6250
0.6250 0
0
0.6250 0.6250 2.0000 2.0000 0.6250
0
0
0
0
0
0
0
0
clf
plot(FigProjCart(1, :),FigProjCart(2, :),k,LineWidth,1.5)
axis([-1.5 1.5 -0.5 2.5]) ; axis equal
for i=2 :7,
text(FigProjCart(1,i)+h,FigProjCart(2,i)+h,nomSommets(i))
end

Transformations dans le plan et dans lespace

309

1.5

0.5

0
1.5

0.5

0.5

1.5

On remarque sur cet exemple que la projection parallle a conserv le paralllisme, et


a transform les deux faces rectanglaires en paralllogrammes. Par contre, les images
par la projection perspective de  et   ne sont plus des droites parallles, de
mme que les images de   et  
Exercice 9.5.6


Premire partie :
1) La rotation de lespace %  , daxe 





;

transforme la demi-droite
plan vertical contenant ;

 


en


;

!  
 ;

et le point ;







en la demi-droite



! 



Elle transforme le





;




;





;

"






"
7

 >

 

et dangle
!  
! 

  pour transformer la demi-droite
en la demi-droite
2) Il suft donc dutiliser la rotation de lespace

  

 


en un point
de
tel que
 ;






;

dangle







;

et




>

 ;

, daxe

310

Mathmatiques avec Matlab

3) Limage de la demi-droite

!  
par la compose
 ;

est limage de la demi-droite

%

!  

par % cest donc la demi-droite

 
et est perpendiculaire
 ;

Le plan  passe par 


son image par  passe par

 ;

 

 

%

! 



Par proprit des rotations,

 
 

cest--dire
. Limage du
 



plan est donc le plan de coordonnes
! 
! 


Enn puisque
a pour image
le point a pour image le point
! 

et est perpendiculaire limage de

 ;

 ;

de la demi-droite



?

tel que

est donc dni par 


4) En notant



;




% 7

les matrices respectives de 




%

on a

? ?

Les matrices ? et ? ont t donnes au paragraphe 9.3.2.2, et on a :















>
>







 


 












>

>




















Transformations dans le plan et dans lespace

On calcule avec Matlab les matrices ? 

et

311

syms theta phi r


PI = sym(pi)
a = PI/2-theta ;
R1 = [cos(a) -sin(a) 0 0 ;sin(a) cos(a) 0 0 ; 0 0 1 0 ; 0 0 0 1]
R1 =
[ sin(theta), -cos(theta), 0, 0]
[ cos(theta), sin(theta), 0, 0]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]
a = PI/2- phi ;
R2= [1 0 0 0 ; 0 cos(a) -sin(a) 0 ; 0 sin(a) cos(a) 0 ;0 0 0 1 ]
R2 =
[ 1, 0, 0, 0]
[ 0, sin(phi), -cos(phi), 0]
[ 0, cos(phi), sin(phi), 0]
[ 0, 0, 0, 1]
F = simplify(R2 * R1)
F=
[ sin(theta), -cos(theta), 0, 0]
[ sin(phi)*cos(theta), sin(phi)*sin(theta), -cos(phi), 0]
[ cos(phi)*cos(theta), cos(phi)*sin(theta), sin(phi), 0]
[ 0, 0, 0, 1]
Ainsi






 

  

>

 >  

  >

>

 >  

 >






5) On calcule les coordonnes cartsiennes de ; en utilisant sph2cart, puis les


coordonnes homognes de ; et celles de    ; .
[x, y, z]=sph2cart(theta,phi,r) ;
NHomog=[x ;y ;z ;1]
NHomog =
[ r*cos(phi)*cos(theta)]
[ r*cos(phi)*sin(theta)]
[ r*sin(phi)]
[ 1]

312

Mathmatiques avec Matlab

On a bien 

! 



CHomog =simplify(F*NHomog)
CHomog =
[ 0]
[ 0]
[ r]
[ 1]

Deuxime partie
On dnit par leurs coordonnes les huit sommets du cube, et on dnit Cube, suite
de 16 points permettant de tracer toutes les artes. On applique ensuite la mthode
prsente au paragraphe 9.4.2 : pour obtenir limage du cube par  on multiplie par
la matrice Cube, convertie en coordonnes homognes.

A1=[0 ;0 ;0] ;A2=[1 ;0 ;0] ;A3=[1 ;1 ; ;0] ;A4=[0 ;1 ;0] ;


B1=[0 ;0 ;1] ;B2=[1 ;0 ;1] ;B3=[1 ;1 ; ;1] ;B4=[0 ;1 ;1] ;
Cube=[A1 A2 B2 A2 A3 B3 A3 A4 B4 A4 A1 B1 B2 B3 B4 B1] ;
imageCube= F*cart2Homog(Cube) ;
Puis
on multiplie
le rsultat obtenu par la matrice   de la projection perspective sur
 


 

et on convertit le rsultat en coordonnes cartsiennes.
P0 = [-r 0 0 0 ; ...
0 -r 0 0 ; ...
0 0 0 0 ; ...
0 0 1 -r] ;
projeteCube=homog2Cart(P0*imageCube);
Pour effectuer les dessins, on remplace %

 >

par les valeurs donnes dans lnonc.

projeteCube1=double(subs(projeteCube,{r,theta,phi},{10,pi/3,pi/4}));
gure(1) ;clf
plot(projeteCube1(1, :),projeteCube1(2, :))
axis equal ;axis off ;title(r=10)
projeteCube2=double(subs(projeteCube,{r,theta,phi},{5,pi/3,pi/4}));
gure(2) ;clf
plot(projeteCube2(1, :),projeteCube2(2, :))
axis equal ; axis off ;title(r=5)

Transformations dans le plan et dans lespace

313

r=10

r=5

Leffet de perspective est accentu lorsque % diminue (lobservateur se rapproche de


la gure).

314

Bibliographie

[AST 88] J-D. A STIER , B. B OUCHON , P. FAURE, "Mathmatiques BTS secteur tertiaire",
Nathan, 1988.
[AUD 83] M-N. AUDIGIER
Paris, 1983.

ET AL .,

"Mathmatiques TC", collection N. Dimathme, Didier,

[CAL 70] B. C ALVO , J. D OYEN , A. C ALVO , F. B OSCHET, "Exercices dalgbre, 1er cycle
universitaire, 1re anne prparation aux grandes coles", Collection U, Armand Colin,
Paris, 1970.
[CHA 91] D. C HARLOT, A. D ROGUET, "Prcis de mathmatiques", HEC option conomie,
Algbre, Bral, 1991.
[FOL 95] J. F OLEY, A. VAN DAM , S. K. F EINER, "Introduction linfographie", AddisonWesley, Paris, 1995.
[LAR 96] C. L ARCHER , M. P RIENTE , J.-C. ROY, "Lessentiel du cours, 300 exercices comments et rsolus", Techniplus, 1996.
[LIE 88] T. L IEBLING , H. ROTHLISBERGER, "Infographie et applications", Masson, Paris,
1988.
[PLA 87] R. A. P LASTOCK , G. K ALLEY, "Infographie Cours et problmes", McGraw-Hill,
Paris, 1987.
[QUE 64] M. Q UEYSANNE, "Algbre, 1er cycle scientique, prparation aux grandes coles",
Armand Colin, Paris, 1964.

315

316

Index

collect 26, 75, 145


colspace 161, 183, 185
comatrice 98, 101
combinaison linaire 131
commentaires avec Matlab ( %) 20
commutativit 84
composantes (dun vecteur) 138
coordonnes (dun point) 196, 201
coordonnes (dun vecteur) 195
coordonnes homognes 270, 280
coordonnes sphriques 299
coordonnes (dun vecteur) 138
coplanaires (vecteurs) 194
cos 21, 27
Cramer (formules de) 108
Cramer (systmes de) 68
cross 241

addition (des matrices) 83, 89


afchage (avec Matlab) 20, 54
all 49
angle de vecteurs 237
ans 54
any 49
application afne 264
application linaire 165
associativit 84
axis 23, 46
axis equal 23, 24, 234
B
base 137, 195, 200
base canonique 137
base orthonorme 233
base orthonorme directe 241

D
dessineRepere (fonction utilisateur) 45
det 107
dterminant (dune matrice) 96
diag 83
diagonalisation dune application linaire
175
diary 20, 53
dimension 137
dot 235
double 26, 52

C
calcul matriciel ( avec Matlab) 81, 89
calcul symbolique (avec Matlab) 25, 50, 52
chane de caractres (avec Matlab) 50, 51
changement de base 211, 214
changement de repre 213, 215
Chasles (relation de) 193
clc 54
clear 20, 54
clf 23, 54
cofacteur 98, 101
colinaires (vecteurs) 194

E
chelonn (systme) 63

317

318

Mathmatiques avec Matlab

echo 54
eig 181
lment neutre 84
quation cartsienne (dune droite) 199
quation cartsienne (dun plan) 206
quations paramtriques (dune droite)
199, 204
quations paramtriques (dun plan) 204
espace vectoriel 127, 129, 130
et logique () 48
eval 51
exp 21
expand 26, 28
expression logique (avec Matlab) 48
extension .m (chier Matlab) 41, 42, 53
externe (loi de composition) 85, 130
eye 83
ezplot 22
F
factor 26, 28
famille gnratrice 135
famille libre 135
famille lie 136
Fibonacci (suite de) 33
gure 23
ll3 203
fonction dnie par morceaux (avec
Matlab) 47
fonction mathmatique (dnir avec
Matlab) 42
fonction Matlab (dnir) 44
fonctions mathmatiques usuelles (avec
Matlab) 21
for 30, 37
format 20, 51, 54
format long 20
forme linaire 165
fplot 43
function 42
G
Gauss (actions de) 64, 92
Gauss (mthode de rsolution) 65
graphisme dans le plan (avec Matlab) 23
grid on 22

groupe ablien 85
gtext 24, 51
H
helpwin 21
hold on 23
homogne (systme) 62
homothtie 165, 273
I
if ... else 46
image dune application linaire 169
image rciproque 168
inconnue auxiliaire 68
innit de solutions (systme) 63
injective (application linaire) 169
interne (loi de composition) 84, 130
inverse (dune matrice) 90, 91
inversible (matrice) 101
L
linairement dpendants 136
linairement indpendants 136
LineWidth 46
load 53
log 21
M
maple 29
matrice 79
matrice carre 80
matrice dune application linaire 172
matrice dune famille de vecteurs 138
matrice de passage 212
matrice diagonale 80
matrice identit 81
matrice symbolique (avec Matlab) 82
matrice symtrique 81
matrice triangulaire 81
mesh 206, 209
meshgrid 205
mod 55
multiplication (des matrices) 85, 89
N
non logique () 48

Index
norm 234
norme (dun vecteur) 232
noyau dune application linaire 169
null 182, 185
num2str 52
O
ones 83
oprations sur les tableaux de valeurs avec
Matlab (. * ./ .^) 22, 42
operations usuelles avec Matalb (+ - * / ^)
20
oppos 84
orientation 240
orthogonaux (vecteurs) 231
ou logique 48
P
paramtre (dune fonction Matlab) 44, 45
pivot de Gauss 66
plan mdiateur 247
plot 23
plot3 202, 209
print 53
produit mixte (de trois vecteurs) 242
produit scalaire 235
produit vectoriel 241
programme Matlab (crire) 41, 44, 53
projection orthogonale 286
projection parallle 285
projection perspective 287
Pythagore (thorme de) 232
Q
quit 21
R
rand 83
rang dune famille de vecteurs 140
rank 161
rcursive (fonction Matlab) 49
repre 196, 201
repre orthonorm 233
reprsentation graphique dune fonction
(avec Matlab) 22

319

rotation 267, 274, 282


rref 70
S
sauvegardes (avec Matlab) 53
save 53
scalaire 85, 89, 129
script Matlab 41, 54
second membre (systme linaire) 61
short (format) 51
simple 26, 28, 37
simplify 26, 28
sin 21
solution gnrale (systme) 63
solve 2830, 70
sous-espace vectoriel 132
sous-espace vectoriel engendr 133
sph2cart 299
sqrt 20
stable (sous-ensemble) 132
strcat 51
subs 26
sum 31
surjective (application linaire) 169
Sylvester (mthode de) 112
sym 26, 52
symtrie orthogonale 274, 284
syms 27, 52
systme linaire 61, 108
T
tableaux de valeurs (avec Matlab) 22, 31
tan 21
text 203, 307
tic 43
title 24, 51
toc 43
touches ddition et de correction avec
Matlab (  ,  ) 21
translation 273, 282
transpose (dune matrice) 88, 90
type 54
type (dune matrice) 79
type numrique (sous Matlab) 50, 51
types de donnes (sous Matlab) 50

320

Mathmatiques avec Matlab

Vandermonde 113
variable (Matlab) 5052, 54
Vect 133
vecteur 129
vecteur gomtrique 191
vecteur normal 239
view 251, 292, 293

while 30, 37
whos 50

Z
zeros 83

Vous aimerez peut-être aussi