det a comme argument une matrice A.
det renvoie le déterminant de la matrice A.
On tape :
On obtient :
On tape :
On obtient :
On peut spécifier l’algorithme de calcul du déterminant en ajoutant un argument optionnel
lagrange
: lorsque les coefficients de la matrice sont
des polynômes ou des fractions rationnelles, calcule le
déterminant par évaluation des variables de ces polynômes
ou fractions et interpolation de Lagrange
rational_det
: l’algorithme du pivot de Gauss est
appliqué sans conversion au format interne pour les fractions, et
sans réduction préalable vers des coefficients sans
dénominateurs
bareiss
: l’algorithme de Gauss-Bareiss est utilisé
(réduction sans fraction et division par le pivot de
l’étape précédente).
linsolve
: algorithme p-adique (pour une matrice
à coefficients entiers).
minor_det
: l’algorithme utilisé est le développement
des mineurs. Ceci nécessite 2n opérations, mais est parfois
plus rapide que les autres algorithmes pour des matrices de taille
moyenne (jusquà n=20 environ) à coefficients polynomiaux.
Par défaut, l’algorithme utilisé est choisi parmi Bareiss et
Lagrange, celui donnant à priori en fonction des coefficients
le temps de calcul le plus rapide est utilisé.
Pour les matrices à coefficients entiers, l’algorithme utilisé
par défaut est un mix d’une méthode p-adique et d’une méthode
modulaire. On commence par résoudre un système linéaire modulo
un premier p pour trouver un grand facteur du déterminant, puis
on termine le calcul en complétant par les restes chinois
avec quelques nombres premiers. On arrête l’algorithme de manière
probabiliste (en fonction de la valeur de
є=proba_epsilon
)
lorsque le déterminant reconstruit par les restes chinois reste
constant pour un produit de nombres premiers supérieur à
1/є.
Si є=0, l’algorithme est déterministe, le test d’arrêt
utilise la borne de Hadamard du déterminant. Le temps de calcul
est en O(n4 ln(n)) mais pour des valeurs de n pas trop grandes
il ressemble plutot à un O(n3).