Académique Documents
Professionnel Documents
Culture Documents
Xavier Bourgeois
Kamil Kaderbay
3 ETI Groupe D
Octobre 2011
2 Factorisation de Cholesky 2
2.1 Construction d’une matrice SDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Matrice opposée de la dérivée seconde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 Matrice SDP définie par un paramètre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4 Isométries du plan 5
4.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2 Application à un triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.3 Application pour générer plusieurs polygônes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6 Conclusion 9
1
1 Familiarisation avec Matlab
L’objectif de ce TP était de nous initier à l’utilisation de Matlab ainsi qu’à l’application de méthodes de
calcul à l’aide de celui-ci. Nous avons traité des exemples de factorisations de Cholesky, puis des exemples
d’approximations de nuages de points par la méthode des moindres carrés. Ensuite on a traité des isométries
du plan, et des opérations de filtrage de signal. L’utilisation de scripts est fortement conseillée, cela permet
de travailler sur de gros algorithmes en ayant tout sous les yeux, tout en pouvant modifier rapidement des
paramètres.
2 Factorisation de Cholesky
2.1 Construction d’une matrice SDP
La factorisation de Cholesky est applicable aux matrices symétriques et définies positives (notées SDP).
Une matrice A qui est SDP, peut s’écrire A = C t C. De plus, A est SDP, si, et seulement si, ses valeurs propres
sont réelles et strictement positives. Nous nous sommes servis de cette propriété pour générer une matrice
SDP A ∈ M2x2 .
1 A=rand ( 4 , 4 ) ; %i n i t i a l i s a t i o n e t a f f e c t a t i o n de l a m a t r i c e
2 while (min( eig (A) ) <= 0 ) %on v é r i f i e l a c o n d i t i o n s u r l e s v a l e u r s p r o p r e s
3 disp ( " Boucle , M a t r i c e non SDP " ) ;
4 A = rand ( 4 , 4 ) ; %t a n t que l a m a t r i c e n ’ e s t pas SDP, on recommence
5 end
Nous avons aussi remarqué une autre méthode pour vérifier si une matrice est SDP, en faisant appel à la
fonction chol() : elle renvoie une variable p, qui est nulle, si et seulement si, la matrice passée en paramètre
est SDP.
Remarque : On ne teste pas la nullité, la probabilité que la fonction rand() retourne une valeur nulle tendant
vers zéro.
3 D =
4
5 2 −1 0 0
6 −1 2 −1 0
7 0 −1 2 −1
8 0 0 −1 2
9
12 C =
13
14 1.4142 −0.7071 0 0
15 0 1.2247 −0.8165 0
16 0 0 1.1547 −0.8660
17 0 0 0 1.1180
Un calcul exact, à la main, abouti au même résultat. De même qu’un calcul de C t C permet de s’assurer
de la réversibilité de l’opération.
On remplace le terme de la premières ligne et colonne de la matrice précèdente par un 1.
1 >> E=[D+diag ( [ − 1 , 0 , 0 , 0 ] ) ] ;
2 >> chol (E)
3 1 −1 0 0
4 0 1 −1 0
5 0 0 1 −1
6 0 0 0 1
2
7
1 1 1 a
On trace une courbe des valeurs propres de ces matrices en fonction du paramètre a , en se rappellant
qu’une matrice est symétrique définie positive, si et seulement si, ses valeurs propres sont strictement positives.
1 F=diag ( [ a −1,a −1,a −1,a −1])+ o n e s ( 4 , 4 ) ;
2
3 f o r i = −100:100
4 a=i / 1 0 0 ;
5 D=o n e s ( 4 , 4 ) + diag ( ( a −1)∗ o n e s ( 4 , 1 ) ) ;
6 v=eig (D) ;
7 plot ( a , v , ’ bd ’ ) ;
8 end
On remarque qu’il n’y a que deux courbes, d’où certaines valeurs propres sont de multiplicité comprise entre
2 et 3. On peut
vérifier rigoureusement celà en calculant le polynôme caractéristique de cette matrice.
a−λ 1 1 1
1 a−λ 1 1
|F − λI4 | = = (a − λ + 3)(a − λ − 1)3
1 1 a−λ 1
1 1 1 a−λ
On remarque bien que la plus petite valeur propre a - 1 est d’ordre de multiplicité trois. Pour que toutes les
valeurs propres soient strictement positives, il faut que le paramètre a soit strictement supérieur à 1.
3
3 Méthode des moindres carrés
Cette méthode permet d’acquérir des données expérimentales, généralement entachées d’erreurs de mesure,
et de les relier à un modèle mathématique censé décrire ces données.
Ondonne les pointssuivants : A1 (1, 0), A2 (2, 0) , A3 (2, 1) , A4 (3, 1), puis on pose :
quatre
1 1 0
2 1 0 a
M = , N = et X =
Puis on cherche la droite d’équation y = ax + b approximant
2 1 1 b
3 1 1
le mieux le système.
1 >> M= [ 1 , 1 ; 2 , 1 ; 2 , 1 ; 3 , 1 ] ;
2 >> N = [ 0 ; 0 ; 1 ; 1 ] ;
3 >> X=inv (M’ ∗M) ∗M’ ∗N
4 0.50000
5 −0.50000
Le vecteur X nous donne l’équation de la droite y = 0.5x − 0.5 approximant tous les points donnés.
On obtient ainsi une erreur minimale kEk = √1 , d’où la methode de calcul donnée permet d’atteindre ce
2
minimum.
4
Fig. 2 – Droite moyenne
Des résultats avec plus de points donnent un écart qui tend vers 1 quand les points sont très espacés, et tend
vers 0 quand les points sont alignés. En général, pour une approximation affine, les résultats sont satisfaisants.
4 Isométries du plan
X1 X2 X3 cos(α) − sin(α) x1 x2 x3 a a a
= +
Y1 Y2 Y3 sin(α) cos(α) y1 y2 y3 b b b
4.1 Principe
On donne un polygone tr sous la forme d’une matrice 2 × n. On définit un angle α aléatoire, tel que
α ∈ [−π; +π], puis on lui associe une matrice de rotation Rot ∈ M2×2 . On multiplie la matrice Rot par
la matrice tr pour obtenir un triangle ’pivoté’ d’un angle aléatoire. Par la suite, on définit une matrice de
translation, de mêmes dimensions que la matrice définissant le triangle tr. Chaque ligne de cette matrice
contient un coefficient aléatoire. On somme cette matrice à celle contenant le triangle ’pivoté’, pour obtenir le
triangle final, ’pivoté’ et ’translaté’ aléatoirement.
5
Fig. 3 – Isométrie d’un triangle
On affiche le triangle original, et le triangle transformé pour vérifier qu’ils ne sont pas confondus, et qu’ils
sont bien superposables.
6
Fig. 4 – Motif de feuille
Ensuite, effectue cette transformation en boucle pour environ 100 images, pour générer un tapis de feuilles
mortes.
7
5 s 1=m∗ s ’ ;
Plus la période du filtre L, en nombre d’éléments est grande, plus le filtre est ”lent”, et coupe à une fréquence
basse.
On retrouve les caractéristiques des filtres analogiques passe-bas, avec une avance de phase dans la bande
”coupée”.
8
1 deb =0; f i n =20; pas = 0 . 1 ;
2 a =0.0005; %b r u i t
3 b= −0.5; %o f f s e t
4 c =0.05; %rampe
5 s=b+c ∗ t+sin ( t )+a∗randn ( 1 , length ( t ) ) ;
6 plot ( t , s ) ; %o r i g i n a l b l e u
7 m=[1 , −1]/( pas ) ; %m a t r i c e de d é r i v a t i o n
8 s 1=conv (m, s ) ;
9 s 2=conv (m, s 1 ) ;
10 s 1 t=s 1 ( 1 , 2 : end ) ;
11 plot ( t , s 1 t , ’ r ’ , ’ l i n e w i d t h ’ , 2 ) ; %r o u g e d é r i v é e p r e m i è r e
12 s 2 t=s 2 ( 1 , 2 : end−1);
13 plot ( t , s 2 t , ’ k ’ ) ; %n o i r d é r i v é e s e c o n d e
En rajoutant une rampe et un offset au signal original (bleu), on se rend compte qu’après plusieurs dérivations,
on perd des informations sur ce signal (bien que cela puisse être utile).
6 Conclusion
On a appris à utiliser les bases de Matlab pour les appliquer au cours d’algèbre linéaire. Matlab est très
utile pour effectuer des calculs quand les dimensions empêchent de les effectuer à la main. Il faut aussi ne pas
oublier que Matlab interprête directement les instructions. Pour l’exemple du ”tapis de feuilles mortes”, il faut
près de dix minutes pour génèrer 10 000 feuilles. Alors qu’il faut autour de 200 milisecondes pour afficher une
image formée de 100 000 à 400 000 triangles dans un jeu video récent.