DiscreteFiltering
Documentation for DiscreteFiltering.
DiscreteFiltering.DiscreteFiltering
DiscreteFiltering.S
DiscreteFiltering.S!
DiscreteFiltering.S_stencil!
DiscreteFiltering.circulant
DiscreteFiltering.create_data_dns
DiscreteFiltering.create_data_exact
DiscreteFiltering.create_data_filtered
DiscreteFiltering.create_gaussian
DiscreteFiltering.create_initial_state
DiscreteFiltering.create_loss_fit
DiscreteFiltering.create_loss_mixed
DiscreteFiltering.create_loss_prior
DiscreteFiltering.create_tophat
DiscreteFiltering.filter_matrix
DiscreteFiltering.fit_embedded
DiscreteFiltering.interpolation_matrix
DiscreteFiltering.plotmat
DiscreteFiltering.relerr
DiscreteFiltering.relerrs
DiscreteFiltering.spectral_relerr
DiscreteFiltering.DiscreteFiltering
— ModuleDiscrete filtering toolbox
DiscreteFiltering.S!
— MethodS!(A, u, t; kwargs...)
Solve ODE for given operator and IC (mutating form, not differentiable).
DiscreteFiltering.S
— MethodS(A, u₀, t; kwargs...)
Solve ODE for given operator and IC. This form is differentiable.
DiscreteFiltering.S_stencil!
— MethodS_stencil!(A, u, t; kwargs...)
Solve ODE for given operator and IC (mutating form, not differentiable).
DiscreteFiltering.circulant
— Methodcirculant(n, inds, stencil)
Create circulant SparseMatrixCSC
.
DiscreteFiltering.create_data_dns
— Methodcreate_data_dns(A, c, ξ, t)
Create DNS solution (numerical approximation).
DiscreteFiltering.create_data_exact
— Methodcreate_data_exact(c, ξ, t)
Create exact unfiltered solutions.
DiscreteFiltering.create_data_filtered
— Methodcreate_data_filtered(W, A, dns)
Create discrete filtered solution from DNS
DiscreteFiltering.create_gaussian
— Methodcreate_gaussian(h)
Create Gaussian filter with filter radius h
.
The kernel is given by
\[ G(x, \xi) = \sqrt{\frac{3}{2 \pi h^2(x)}} \mathrm{e}^{-\frac{3 (\xi - x)^2}{2 h^2(x)}},\]
and the local transfer function by
\[ \hat{G}_k(x) = \mathrm{e}^{-\frac{2 \pi^2}{3} k^2 h^2(x)}.\]
DiscreteFiltering.create_initial_state
— Methodcreate_initial_state(A_ref)
Create initial state for the ADAM optimizer.
DiscreteFiltering.create_loss_fit
— Methodcreate_loss_fit(u, t; n_sample = size(u, 2), n_time = length(t) - 1, kwargs...)
Create embedded loss function on dataset, evaluating at n_sample
random initial conditions and n_time
random time steps at each call.
The keyword arguments kwargs
are passed to the ODE-solver S
.
DiscreteFiltering.create_loss_mixed
— Methodcreate_loss_mixed(losses, weights)
Create a composed loss function $L(A) = \sum_i w_i L_i(A)$.
DiscreteFiltering.create_loss_prior
— Methodcreate_loss_prior(A_ref)
Create a prior loss functino comparing the operator A
to a reference operator A_ref
.
DiscreteFiltering.create_tophat
— Methodcreate_tophat(h)
Create top-hat filter with filter radius h
.
The kernel is given by
\[ G(x, \xi) = \begin{cases} \frac{1}{2h(x)} \quad & |\xi - x| \leq h(x), \\ 0 \quad & \text{otherwise}, \end{cases}\]
and the local transfer function by
\[ \hat{G}_k(x) = \frac{\sin \left ( 2 \pi k h(x) \right )}{2 \pi k h(x)}.\]
DiscreteFiltering.filter_matrix
— Methodfilter_matrix(F, x, ξ)
Create filter matrix with filter F
from fine grid ξ
to coarse grid x
.
DiscreteFiltering.fit_embedded
— Methodfit_embedded(
state,
loss;
α = 0.001,
β₁ = 0.9,
β₂ = 0.999,
ϵ = 1e-8,
n_iter = 100,
testloss,
ntestloss = 10,
doplot = true,
)
Fit operator to data while embedded in ODE solver using the ADAM optimizer.
If doplot
, a real time plot of the validation performance is plotted.
https://arxiv.org/abs/1412.6980
DiscreteFiltering.interpolation_matrix
— Methodinterpolation_matrix(x, y)
Create matrix for interpolating from grid $x \in \mathbb{R}^N$ to $y \in \mathbb{R}^M$.
DiscreteFiltering.plotmat
— Functionplotmat(A; kwargs...)
Plot matrix.
DiscreteFiltering.relerr
— Methodrelerr(A, uₜ, t; kwargs...)
Relative error, averaged over time and data samples.
DiscreteFiltering.relerrs
— Methodrelerrs(A, uₜ, t; kwargs...)
Time dependent relative errors, averaged over data samples.
DiscreteFiltering.spectral_relerr
— Methodspectral_relerr(A, uₜ, t; kwargs...)
Time dependent spectral relative errors, averaged over data samples.