Created
March 1, 2022 15:43
-
-
Save dimidagd/bf773878b4e1482f747a795ac6396329 to your computer and use it in GitHub Desktop.
snippet
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from typing import Any | |
import numpy as np | |
from nptyping import NDArray | |
def main(name): | |
# Use a breakpoint in the code line below to debug your script. | |
print(f'Hi, {name}') # Press Ctrl+F8 to toggle the breakpoint. | |
f: NDArray[(3, 3), Any] = lambda A, f: A ** f | |
ak = 3 | |
n = 2 | |
A: NDArray[(n, n), Any] | |
Fk: NDArray[(ak, n), Any] | |
Pk: NDArray[(n, n), Any] | |
phik: NDArray[(n, n), Any] | |
Gk: NDArray[(n, n), Any] | |
Wk: NDArray[(n, n), Any] | |
Omegak: NDArray[(n, n * ak), Any] | |
Xk: NDArray[(n, n)] | |
lk: NDArray[(ak, ak)] | |
phi_k: NDArray[(n, n), Any] = lambda A, tkp, tk: np.expm(A * (tkp - tk)) | |
Theta_k: NDArray[(ak, n), Any] = lambda lk, Fk, Pk, phik, Gk, Wk, Omegak: ( | |
lk @ Fk @ Pk @ phi_k.T + lk @ Gk @ Wk @ Omegak.T) | |
Gamma1k: NDArray[(ak, ak), Any] = lambda lk, Fk, Pk: (lk @ Fk @ Pk @ Fk.T @ lk.T) | |
Gamma2k: NDArray[(ak, ak), Any] = lambda Fk, Xk, lk: np.dot((Fk @ Xk @ Fk.T), (lk - lk ** 2)) | |
Gamma3k: NDArray[(ak, ak), Any] = lambda lk, Gk, Wk: lk @ Gk @ Wk @ f(Gk.T, lk) + np.dot(Gk @ Wk @ Gk.T, | |
lk - lk ** 2) | |
Gamma4k: NDArray[(ak, ak), Any] = lambda lk, Dk, Vk: lk @ Dk @ Vk @ f(Dk.T, lk) + np.dot(Dk @ Vk @ Dk.T, | |
lk - lk ** 2) | |
Omegak: NDArray[(n, ak * n), Any] = lambda ak, A, Delta: np.vstack( | |
[np.expm(A @ Delta * (_ - 1)) for _ in range(1, ak + 1)]) | |
Xkplus1: NDArray[(n, n), Any] = lambda phik, Xk, Omegak, Wk: phik @ Xk @ phik.T + Omegak @ Wk @ Wk.T | |
# Press the green button in the gutter to run the script. | |
if __name__ == '__main__': | |
main('PyCharm') | |
# See PyCharm help at https://www.jetbrains.com/help/pycharm/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment