Ensemble Kalman Inversion
EnsembleKalmanProcesses.Inversion — Type
An ensemble Kalman Inversion process.
struct Inversion{FT<:AbstractFloat, NorV<:Union{Nothing, AbstractVector}, NorAMorUS<:Union{Nothing, LinearAlgebra.UniformScaling, AbstractMatrix}} <: EnsembleKalmanProcesses.ProcessFields
prior_mean::Union{Nothing, AbstractVector}: Mean of Gaussian parameter prior in unconstrained spaceprior_cov::Union{Nothing, LinearAlgebra.UniformScaling, AbstractMatrix}: Covariance of Gaussian parameter prior in unconstrained spaceimpose_prior::Bool: flag to explicitly impose the prior mean and covariance during updatesdefault_multiplicative_inflation::AbstractFloat: if prior is imposed, inflation is often required. This sets a default multiplicative inflation withs = default_multiplicative_inflation
Constructors
Inversion(
prior_mean,
prior_cov,
impose_prior,
default_multiplicative_inflation
)defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanInversion.jl:23.
Inversion(
mean_prior,
cov_prior;
impose_prior,
default_multiplicative_inflation
)defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanInversion.jl:68.
Inversion(
prior;
impose_prior,
default_multiplicative_inflation
)defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanInversion.jl:79.
Inversion()defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanInversion.jl:95.
EnsembleKalmanProcesses.TransformInversion — Type
An ensemble transform Kalman inversion process.
struct TransformInversion{FT<:AbstractFloat, NorV<:Union{Nothing, AbstractVector}, NorAMorUS<:Union{Nothing, LinearAlgebra.UniformScaling, AbstractMatrix}} <: EnsembleKalmanProcesses.ProcessFields
prior_mean::Union{Nothing, AbstractVector}: Mean of Gaussian parameter prior in unconstrained spaceprior_cov::Union{Nothing, LinearAlgebra.UniformScaling, AbstractMatrix}: Covariance of Gaussian parameter prior in unconstrained spaceimpose_prior::Bool: flag to explicitly impose the prior mean and covariance during updatesdefault_multiplicative_inflation::AbstractFloat: if prior is imposed, inflation is often required. This sets a default multiplicative inflation withs = default_multiplicative_inflationbuffer::AbstractVector: used to store matrices: buffer[1] = Y' *Γinv, buffer[2] = Y' * Γinv * Y
Constructors
TransformInversion(
prior_mean,
prior_cov,
impose_prior,
default_multiplicative_inflation,
buffer
)TransformInversion(
mean_prior,
cov_prior;
impose_prior,
default_multiplicative_inflation
)TransformInversion(
prior;
impose_prior,
default_multiplicative_inflation
)TransformInversion()EnsembleKalmanProcesses.GaussNewtonInversion — Type
A Gauss-Newton Kalman Inversion process.
struct GaussNewtonInversion{VV<:(AbstractVector), AMorUS<:Union{LinearAlgebra.UniformScaling, AbstractMatrix}} <: EnsembleKalmanProcesses.ProcessFields
prior_mean::AbstractVector: Mean of Gaussian parameter prior in unconstrained spaceprior_cov::Union{LinearAlgebra.UniformScaling, AbstractMatrix}: Covariance of Gaussian parameter prior in unconstrained space
Constructors
GaussNewtonInversion(prior_mean, prior_cov)defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/GaussNewtonKalmanInversion.jl:17.
GaussNewtonInversion(prior)defined at /home/runner/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/GaussNewtonKalmanInversion.jl:30.
EnsembleKalmanProcesses.eki_update — Function
eki_update(
ekp::EnsembleKalmanProcess{FT<:Real, IT, II<:Inversion},
u::AbstractArray{FT<:Real, 2},
g::AbstractArray{FT<:Real, 2},
y::AbstractArray{FT<:Real, 2},
obs_noise_cov::Union{AbstractArray{CT<:Real, 2}, LinearAlgebra.UniformScaling{CT<:Real}},
prior_mean::Union{Nothing, AbstractVector},
prior_cov::Union{Nothing, AbstractMatrix}
) -> Any
Return the updated parameter vectors given their current values and the corresponding forward model evaluations, using the inversion algorithm from eqns. (4) and (5) of Schillings and Stuart (2017).
Localization is implemented following the ekp.localizer.