Aufgabe:
Hallo alle zusammen!
Ich versuche einen Code in Python zu programmieren um die LU-Zerlegung einer Bandmatrix mit dem Crout-Algorithmus zu berechnen. Ich habe bereits einen Code programmiert komme aber nicht auf das richtige Ergebnis
Könnt ihr mir weiter helfen?
Problem/Ansatz:
def crout(A, q, p):
n = len(A)
L = [[0] * n for i in range(n)]
U = [[0] * n for i in range(n)]
for j in range(n):
L[j][j] = 1
for i in range(n):
for k in range(i, min(q+i,n)):
sum = 0
for j in range(i-p,i-1):
sum = sum + L[i][j]*U[j][k]
U[i][k] = A[i][k] - sum
for k in range(i+1, min(p+i,n)):
sum = 0
for j in range(i-q,i-1):
sum = sum + L[k][j]*U[j][i]
L[k][i] = int((A[k][i]-sum)/U[i][i])
return(L,U)