5.8 Ce qui se cache sous la commande MATLAB \
157
Pour calculer sa solution au sens des moindres carrés, on utilise les instructions
suivantes :
[Q , R ]= qr( A );
Qt= Q (: ,1:2); Rt= R (1:2 ,:);
xstar = Rt \ (Qt ’* b)
xstar =
0.3741
0.0654
Ce sont précisément les mêmes coefficients que pour la droite de régression
calculée dans l’Exemple 3.12. Ce procédé est utilisé dans la commande \.
L’instruction xstar = A\b fournit effectivement le même vecteur xstar, calculé avec les formules (5.39) et (5.40).
5.8 Ce qui se cache sous la commande MATLAB \
Il est utile de savoir que l’algorithme utilisé par MATLAB quand on
invoque la commande \ dépend de la structure de la matrice A. Pour
déterminer la structure de A et choisir l’algorithme approprié, MATLAB
suit cette démarche :
1. si A est creuse et a une structure bande, alors des algorithmes spécifiques à ces structures sont utilisés (comme l’algorithme de Thomas
de la Section 5.6). On dit qu’une matrice A ∈ R
m×n (ou C
m×n ) a
une bande inférieure de taille p si a ij = 0 quand i > j + p et a une
bande supérieure de taille q si a ij = 0 quand j > i + q. Le maximum
entre p et q est appelé largeur de bande de la matrice ;
2. si A est une matrice triangulaire supérieure ou inférieure (ou bien une
permutation d’une matrice triangulaire), alors le système est résolu
par un algorithme de remontée (matrices triangulaires supérieures),
ou par un algorithme de descente (matrices triangulaires inférieures).
Le test de “triangularité” est effectué pour les matrices pleines en
vérifiant les éléments nuls et pour les matrices creuses en inspectant
la structure de la matrice ;
3. si A est symétrique et a des éléments diagonaux réels positifs (ce
qui n’implique pas que A est définie positive), une factorisation de
Cholesky est tentée (chol). Si A est creuse, un algorithme de réordonnement est d’abord appliqué ;
4. si aucun des critères précédents n’est vérifié, alors une factorisation
en matrices triangulaires est calculée par élimination de Gauss avec
pivot partiel (lu) ;
5. si A est creuse, la bibliothèque UMFPACK (qui fait partie de
la suite Suitesparse, voir par exemple http://www.cise.ufl.edu/
research/sparse/SuiteSparse/) est utilisée pour calculer la solution du système ;
157
Pour calculer sa solution au sens des moindres carrés, on utilise les instructions
suivantes :
[Q , R ]= qr( A );
Qt= Q (: ,1:2); Rt= R (1:2 ,:);
xstar = Rt \ (Qt ’* b)
xstar =
0.3741
0.0654
Ce sont précisément les mêmes coefficients que pour la droite de régression
calculée dans l’Exemple 3.12. Ce procédé est utilisé dans la commande \.
L’instruction xstar = A\b fournit effectivement le même vecteur xstar, calculé avec les formules (5.39) et (5.40).
5.8 Ce qui se cache sous la commande MATLAB \
Il est utile de savoir que l’algorithme utilisé par MATLAB quand on
invoque la commande \ dépend de la structure de la matrice A. Pour
déterminer la structure de A et choisir l’algorithme approprié, MATLAB
suit cette démarche :
1. si A est creuse et a une structure bande, alors des algorithmes spécifiques à ces structures sont utilisés (comme l’algorithme de Thomas
de la Section 5.6). On dit qu’une matrice A ∈ R
m×n (ou C
m×n ) a
une bande inférieure de taille p si a ij = 0 quand i > j + p et a une
bande supérieure de taille q si a ij = 0 quand j > i + q. Le maximum
entre p et q est appelé largeur de bande de la matrice ;
2. si A est une matrice triangulaire supérieure ou inférieure (ou bien une
permutation d’une matrice triangulaire), alors le système est résolu
par un algorithme de remontée (matrices triangulaires supérieures),
ou par un algorithme de descente (matrices triangulaires inférieures).
Le test de “triangularité” est effectué pour les matrices pleines en
vérifiant les éléments nuls et pour les matrices creuses en inspectant
la structure de la matrice ;
3. si A est symétrique et a des éléments diagonaux réels positifs (ce
qui n’implique pas que A est définie positive), une factorisation de
Cholesky est tentée (chol). Si A est creuse, un algorithme de réordonnement est d’abord appliqué ;
4. si aucun des critères précédents n’est vérifié, alors une factorisation
en matrices triangulaires est calculée par élimination de Gauss avec
pivot partiel (lu) ;
5. si A est creuse, la bibliothèque UMFPACK (qui fait partie de
la suite Suitesparse, voir par exemple http://www.cise.ufl.edu/
research/sparse/SuiteSparse/) est utilisée pour calculer la solution du système ;
