def test_permutation_associee(): compte = 0 for i in range(1,20) : permut = permutation.permutation_aleatoire(i) mat = permutation.matrice_permutation(permut) if (permutation.permutation_associee(mat) != permut): compte += 1 print "Erreur lors du test de permutation_associee(", mat, ") \n" return compte
def test_permutation_associee(): compte = 0 for i in range(1, 20): permut = permutation.permutation_aleatoire(i) mat = permutation.matrice_permutation(permut) if (permutation.permutation_associee(mat) != permut): compte += 1 print "Erreur lors du test de permutation_associee(", mat, ") \n" return compte
def determinant_plu(m): """m : une matrice carree sortie : le determinant de m""" P, L, U = decomposition.decomposition_plu(m) #multiplication des diagonales det = reduce(operator.mul, [L[i][i] for i in range(len(L))]) det *= reduce(operator.mul, [U[i][i] for i in range(len(U))]) #calcul du nombre de permutation necessaires pour retrouver la matrice identite perm = permutation.permutation_associee(P) alpha = 0 i = 0 while (perm != range(len(P))): if perm[i] != i: perm[perm.index(i)] = perm[i] perm[i] = i alpha += 1 i += 1 if alpha % 2 != 0 : det *= -1 return det