cholesky_zerlegung.py 573 B

1234567891011121314151617181920212223
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. def get_l(A):
  4. n = len(A)
  5. L = [[0 for i in range(n)] for j in range(n)]
  6. print(L)
  7. print("")
  8. for k in range(n):
  9. L[k][k] = (A[k][k] - sum([L[k][i]**2 for i in range(k)]))**0.5
  10. for i in range(k+1, n):
  11. L[i][k] = ((A[i][k] - sum([L[i][j]*L[k][j] for j in range(k)]))
  12. / L[k][k])
  13. print("L_%i%i = A%i%i - sum(L_...)/L_%i%i) = %i" %
  14. (i, k, i, k, k, k, L[i][k]))
  15. return L
  16. A = [[1, 2, 3], [2, 8, 14], [3, 14, 34]]
  17. print(get_l(A))