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