determinants
Publié : mer. sept. 24, 2008 12:46 pm
Je suis en train d'essayer d'optimiser le calcul de determinants a coeffs polynomiaux. On peut dorenavant specifier l'algo en 2nd argument:
- det(A,minor_det): developpement (intelligent) des mineurs
- det(A,lagrange): interpolation
- det(A,bareiss): Bareiss
si l'algo n'est pas specifie, giac choisit entre Lagrange et Bareiss en fonction de la majoration du degre total et des degres partiels (j'espere que le choix est judicieux mais je n'en suis pas sur...). Je n'ai pas encore ajoute de detection des matrices creuses ou le developpement des mineurs est plus rapide.
Pour les determinants a coeffs entiers, l'algorithme determine (presque surement) le plus grand facteur invariant de la matrice par calcul p-adique d'une solution du systeme, puis reconstruit le quotient determinant/facteur invariant par evaluation mod p et restes chinois. Il s'arrete avant la borne de Hadamard si le resultat reste constant pour suffisamment de nombres premiers, l'algorithme est donc probabiliste, on controle la probabilite d'erreur dans la fenetre de configuration de xcas (valeur du champ proba).
- det(A,minor_det): developpement (intelligent) des mineurs
- det(A,lagrange): interpolation
- det(A,bareiss): Bareiss
si l'algo n'est pas specifie, giac choisit entre Lagrange et Bareiss en fonction de la majoration du degre total et des degres partiels (j'espere que le choix est judicieux mais je n'en suis pas sur...). Je n'ai pas encore ajoute de detection des matrices creuses ou le developpement des mineurs est plus rapide.
Pour les determinants a coeffs entiers, l'algorithme determine (presque surement) le plus grand facteur invariant de la matrice par calcul p-adique d'une solution du systeme, puis reconstruit le quotient determinant/facteur invariant par evaluation mod p et restes chinois. Il s'arrete avant la borne de Hadamard si le resultat reste constant pour suffisamment de nombres premiers, l'algorithme est donc probabiliste, on controle la probabilite d'erreur dans la fenetre de configuration de xcas (valeur du champ proba).