1
Fork 0

python(denoising): Copied files over

Signed-off-by: prescientmoon <git@moonythm.dev>
This commit is contained in:
Matei Adriel 2023-03-28 01:04:30 +02:00 committed by prescientmoon
parent 53c1af07ef
commit 8384e125b5
Signed by: prescientmoon
SSH key fingerprint: SHA256:UUF9JT2s8Xfyv76b8ZuVL7XrmimH4o49p4b+iexbVH4
7 changed files with 524 additions and 0 deletions
python/denoising/modules

View file

@ -0,0 +1,44 @@
import numpy as np
def decompose(M):
n = len(M)
U = M.copy()
L = np.identity(n)
for i in range(0, n - 1):
for j in range(i + 1, n):
L[j, i] = U[j, i] / U[i, i]
U[j, i:n] -= L[j, i] * U[i, i:n]
assert np.allclose(M, L@U)
return L, U
def solve_lower(m, v):
x = np.zeros(len(v))
for i in range(0, len(v)):
x[i] = (v[i] - m[i, :i] @ x[:i]) / m[i, i]
assert np.allclose(m@x, v)
return x
def solve_upper(m, v):
x = np.zeros(len(v))
for i in reversed(range(0, len(m))):
x[i] = (v[i] - m[i, i+1:] @ x[i+1:]) / m[i, i]
assert np.allclose(m@x, v)
return x
def solve(m, v):
L, U = decompose(m)
x = solve_upper(U, solve_lower(L, v))
assert np.allclose(m@x, v)
return x