Pascal Molin on Wed, 24 Oct 2012 13:01:44 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

charpoly via Newton


(sorry for writing in french)

En Ãcrivant des sujets de tp, je dÃcouvre que calculer un polynÃme
caractÃristique par les sommes de Newton n'est pas dÃraisonnable,
en tous cas avec pari pour des matrices en caractÃristique moyenne (0
ou >dimension dans la fonction ci-dessous):

charpoly_newton(A) = {
  my(d = matsize(A)[1]);
  my(B = matid(d));
  my(S = x*Ser(vector(d,i,B*=A;-trace(B)/i)));
  polrecip(Pol(exp(S)));
};

[gp-2.6 sur paridev] ============
? A = matrix(100,100,i,j,random(Mod(1,1009)));
? charpoly(A);
time = 2,329 ms.
? charpoly_newton(A);
time = 408 ms.
===========================

L'algo peut Ãtre gÃnÃralisÃ/amÃliorà (Ãvaluation des traces avec BSGS,
extension aux caractÃristiques p<dim) : dites-moi
si Ãa peut Ãtre intÃressant.

Dans tous les cas, je souhaiterais proposer pour Pari un certain
nombre d'opÃrations sur les polynÃmes (reconstruction à partir
des sommes de Newton, produits composÃs, puissances symÃtriques --
c'est initialement Ãa que je voulais --...), modalitÃs et
syntaxe à voir par exemple durant l'atelier de janvier.

Pascal