From ea584906e3769840a17297f6ef9ddb68c4de128d Mon Sep 17 00:00:00 2001 From: Konstantinos Konstantinidis Date: Fri, 8 Dec 2023 22:46:38 +0200 Subject: [PATCH] added Cholesky algorithm for matrix solving --- Algorithms/Cholesky.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Algorithms/Cholesky.py diff --git a/Algorithms/Cholesky.py b/Algorithms/Cholesky.py new file mode 100644 index 0000000..db3a4b6 --- /dev/null +++ b/Algorithms/Cholesky.py @@ -0,0 +1,24 @@ +from math import sqrt +from numpy import array + +def Cholesky(A): + L = [[0.0 for x in range(len(A))] for y in range(len(A))] + L = array(L) + + for k in range(len(A)): + for i in range(len(A)): + if k is not i: + L[k][i] += A[k][i] + for j in range(i-1): + L[k][i] -= L[i][j]*L[k][j] + if L[i][i] == 0: + L[k][i] = 0 + else: + L[k][i] /= L[i][i] + else: + L[k][k] += A[k][k] + for j in range(k-1): + L[k][k] -= pow(L[k][j], 2) + L[k][k] = sqrt(L[k][k]) + + return L \ No newline at end of file