L'élimination de gauss avec pivotante en python

Je suis en train d'écrire une fonction qui permettra de résoudre un système linéaire à l'aide de l'élimination de gauss avec pivotante. Je ne suis pas autorisé à utiliser tous les modules soit.
Quelqu'un peut-il m'aider ici? Je ne sais pas ce que je fais mal. Merci d'avance 🙂 🙂 🙂

J'ai d'abord configurer la matrice augmentée M, alors je ne le pivotement de rangée et des opérations et, enfin, je fais le dos de substitution

def linearsolver(A,b):   
  n = len(A) 
  M = A 

  i = 0 
  for x in M:
   x.append(b[i]) 
   i += 1 

  for k in range(n):   
   for i in range(k,n): 
     if abs(M[i][k]) > abs(M[k][k]):  
        M[k], M[i] = M[i],M[k]  
     else: 
        pass  

   for j in range(k+1,n):
       q = M[j][k] / M[k][k] 
       for m in range(k, n+1):         
          M[j][m] +=  q * M[k][m]

  x = [0 for i in range(n)]

  x[n] =float(M[n][n+1])/M[n][n]
  for i in range (n-1,-1,-1): 
    z = 0 
    for j in range(i+1,n):
        z = z  + float(M[i][j])*x[j] 
    x[i] = float(M[i][n+1] - z)/M[i][i]
  print x 
  • Pas permis? Est-ce une espèce de devoirs?
  • Ouais mec, on ne peut pas utiliser n'importe quel module. Pouvez-vous au moins me dire si je suis proche haha
  • Je pense que je suis de se mêler avec l'indexation et mes boucles, après je fais le swap
  • vous devez mettre à jour votre réponse avec le type d'entrée que vous utilisez pour cette fonction
InformationsquelleAutor Olli | 2015-08-12