CholeskyZerlegung.py 521 B

12345678910111213141516171819
  1. def getL(A):
  2. n = len(A)
  3. L = [[0 for i in range(n)] for j in range(n)]
  4. print(L)
  5. print("")
  6. for k in range(n):
  7. L[k][k] = (A[k][k] - sum([L[k][i]**2 for i in range(k)]))**0.5
  8. for i in range(k+1, n):
  9. L[i][k] = (A[i][k]
  10. - sum([L[i][j]*L[k][j] for j in range(k)])) \
  11. / L[k][k]
  12. print("L_%i%i = A%i%i - sum(L_...)/L_%i%i) = %i" % (i, k, i, k, k, k, L[i][k]))
  13. return L
  14. A = [[1,2,3],[2,8,14],[3,14,34]]
  15. print getL(A)