Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- from loguru import logger
- def get_mat(ell_n: int):
- n = 2**ell_n+1
- mat = np.zeros((n, n))
- for i in range(ell_n):
- lt_zero_i, lt_zero_j = i, i
- rb_zero_i, rb_zero_j = -i-1, -i-1
- mat[
- lt_zero_i,
- lt_zero_j+1,
- ] = 1/3
- mat[
- rb_zero_i,
- rb_zero_j-1,
- ] = 1/3
- mat[
- lt_zero_i+1,
- lt_zero_j,
- ] = 2/3
- mat[
- rb_zero_i-1,
- rb_zero_j,
- ] = 2/3
- return mat
- for ell_n in range(11):
- mat = get_mat(ell_n=ell_n)
- det = np.linalg.det(mat)
- try:
- np.linalg.inv(mat)
- logger.success(f"ℓ: {ell_n} is invertible")
- except np.linalg.LinAlgError:
- logger.warning(f"ℓ: {ell_n} is not invertible (det: {det})")
- """ output
- 2022-09-16 11:58:15.490 | WARNING | __main__:<module>:40 - ℓ: 0 is not invertible (det: 0.0)
- 2022-09-16 11:58:15.491 | WARNING | __main__:<module>:40 - ℓ: 1 is not invertible (det: 0.0)
- 2022-09-16 11:58:15.492 | WARNING | __main__:<module>:40 - ℓ: 2 is not invertible (det: 0.0)
- 2022-09-16 11:58:15.492 | WARNING | __main__:<module>:40 - ℓ: 3 is not invertible (det: 0.0)
- 2022-09-16 11:58:15.493 | WARNING | __main__:<module>:40 - ℓ: 4 is not invertible (det: 0.0)
- 2022-09-16 11:58:15.495 | WARNING | __main__:<module>:40 - ℓ: 5 is not invertible (det: 0.0)
- 2022-09-16 11:58:15.531 | WARNING | __main__:<module>:40 - ℓ: 6 is not invertible (det: 0.0)
- 2022-09-16 11:58:15.551 | WARNING | __main__:<module>:40 - ℓ: 7 is not invertible (det: 0.0)
- 2022-09-16 11:58:15.604 | WARNING | __main__:<module>:40 - ℓ: 8 is not invertible (det: 0.0)
- 2022-09-16 11:58:15.923 | WARNING | __main__:<module>:40 - ℓ: 9 is not invertible (det: 0.0)
- 2022-09-16 11:58:16.452 | WARNING | __main__:<module>:40 - ℓ: 10 is not invertible (det: 0.0)
- """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement