Tu peut détailler un peu ton truc ?pascal16 a écrit:On peut aller bien plus haut et bien plus vite en utilisant le calcul par bloc 14*14 revient 2 det 7*7 simples et 2 det avec un x en 7*7
pascal16 a écrit:j'ai juste fait un algo "det(xId-M)", j'ai transformé la matrice réelle en matrice de polynômes de degré 1 et développé par rapport à la première colonne de façon récursive pour constituer le polynôme.
La classe faite n'a pas de limite, 14*14 sans problème, mais sans variable, c'est pas du calcul formel. Ca serait quoi le but ? Ca serait assez chronophage de repenser toute la structure
/// <summary> Polynome caractéristique, Algo de Le Verrier </summary>
public double[] Pol_Car_LeVerrier()
{
//Pour A ∈ Mn(K), on pose : A0 = A et ∀k ∈ { 1, . . . , n} Ak = A × (Ak−1 − 1/k Tr(Ak−1)·In)
//χA(X) = X ^ n − somme de 1 à n(1 / k Tr(Ak−1) · X ^ (n−k)
int n = GetnLignes();
double[] resultat = new double[n + 1]; // indices de 0 à n
Matrice A = new Matrice(this);
Matrice A0 = new Matrice(this);
Matrice I = new Matrice(Identite(n));
resultat[n] = 1;
for (int k = 1; k <= n; k++)
{
resultat[n - k] = -(1 / (double)k) * A.Trace();
A = Multiplier(A0, Soustraire(A, I.Multiplier(A.Trace() / (double)k)));
}
return resultat;
}
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 30 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :