Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include Tikhonov-prior versions of EKP. #437

Open
odunbar opened this issue Jan 13, 2025 · 0 comments
Open

Include Tikhonov-prior versions of EKP. #437

odunbar opened this issue Jan 13, 2025 · 0 comments

Comments

@odunbar
Copy link
Member

odunbar commented Jan 13, 2025

Issue

"Tikhonov" EKI in the literature, is achieved by applying the standard algorithms to an augmented state.
Namely, for tikhonov parameter a, and a prior N(m,C) the typical update is computed with the change:

  • G(u) -> [G(u),u]'
  • y -> [y,m]'
  • Gamma -> [Gamma 0; 0 a*C]
    Currently we leave such changes to be completed by the user. However we could produce an interface for this, if it is of interest.

Possible Solution

  • In one interface, the user provides additionally a Tikhonov constant a (default 1) and the prior distribution
  • This must take place at/before construction of EKP
  • The user will call update_ensemble!(...) with G(u) as usual
  • During update_ensemble! the augmentations are applied to states.

When performing this internally (vs leaving it to user) imlementations must take care of additional locations where there is misalignments of state.

  • compute_error! will need to include the prior term
  • adaptive scheduler computations may require the prior term
  • and possible index issues for update-groups

Finally one must note that

  • UKI, currently has an impose_prior flag, and EKS, GNKI hav prior contributions by definition. So one may need to reconcile consistency here (e.g., impose_prior = true is the same as the Tikhonov with a=1?)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant