def test_produit_permut_g(): nbErreur = 0 #teste avec des matrices aleatoires for i in range(1,20) : mat = permutation.matrice_aleatoire(i) permut = permutation.permutation_aleatoire(i) matPermutation = permutation.matrice_permutation(permut) result = permutation.produit_permut_g(matPermutation, mat) matInversePermut = permutation.matrice_permutation_inverse(matPermutation) if permutation.produit_permut_g(matInversePermut, result) != mat: nbErreur +=1 print "Erreur lors du test de produit_permut_g(", matPermutation, ",", mat, ")" return nbErreur
def test_produit_permut_g(): nbErreur = 0 #teste avec des matrices aleatoires for i in range(1, 20): mat = permutation.matrice_aleatoire(i) permut = permutation.permutation_aleatoire(i) matPermutation = permutation.matrice_permutation(permut) result = permutation.produit_permut_g(matPermutation, mat) matInversePermut = permutation.matrice_permutation_inverse( matPermutation) if permutation.produit_permut_g(matInversePermut, result) != mat: nbErreur += 1 print "Erreur lors du test de produit_permut_g(", matPermutation, ",", mat, ")" return nbErreur
def resolution_cramer_avec_plu(P,L,U,b): """P : une matrice de permutation L : une matrice triangulaire inferieure U : une matrice triangulaire superieure b : une liste correspondant au vecteur B dans l'equation PLUX = B PLUX = B doit etre un systeme de cramer""" b = [[b[i]]for i in range(len(b))] b = permutation.produit_permut_g(permutation.transpose(P), b) b = [b[i][0] for i in range(len(b))] Y = resolution_tri_inf_cramer(L, b) X = resolution_tri_sup_cramer(U, Y) return X
def resolution_cramer(a,b): """a : une matrice b : une liste correspondant au vecteur B dans l'equation AX = B Le systeme A*X=B doit etre de Cramer sortie : la solution de A*X=B""" P, L, U = decomposition.decomposition_plu(a) P = permutation.matrice_permutation_inverse(P) b = [[b[i]]for i in range(len(b))] b = permutation.produit_permut_g(permutation.transpose(P), b) b = [b[i][0] for i in range(len(b))] Y = resolution_tri_inf_cramer(L, b) X = resolution_tri_sup_cramer(U, Y) return X