Skip to content

Instantly share code, notes, and snippets.

@dimidagd
Created March 1, 2022 15:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dimidagd/bf773878b4e1482f747a795ac6396329 to your computer and use it in GitHub Desktop.
Save dimidagd/bf773878b4e1482f747a795ac6396329 to your computer and use it in GitHub Desktop.
snippet
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