Sparse Ensemble Kalman Inversion
EnsembleKalmanProcesses.SparseInversion
— TypeSparseInversion <: Process
A sparse ensemble Kalman Inversion process
Fields
γ::AbstractFloat
: upper limit of l1-normthreshold_value::AbstractFloat
: threshold below which the norm of parameters is pruned to zerouc_idx::Union{Colon, AbstractVector}
: indices of parameters included in the evaluation of l1-norm constraintreg::AbstractFloat
: a small regularization value to enhance robustness of convex optimization
Constructors
SparseInversion(; γ, threshold_value, uc_idx, reg)
SparseInversion(γ, threshold_value, uc_idx, reg)
SparseInversion(γ; threshold_value, uc_idx, reg)
EnsembleKalmanProcesses.sparse_eki_update
— Function sparse_eki_update(
ekp::EnsembleKalmanProcess{FT, IT, SparseInversion{FT}},
u::AbstractMatrix{FT},
g::AbstractMatrix{FT},
y::AbstractMatrix{FT},
obs_noise_cov::Union{AbstractMatrix{CT}, UniformScaling{CT}},
) where {FT <: Real, CT <: Real, IT}
Returns the sparse updated parameter vectors given their current values and the corresponding forward model evaluations, using the inversion algorithm from eqns. (3.7) and (3.14) of Schneider et al. (2021).
Localization is applied following Tong and Morzfeld (2022).
EnsembleKalmanProcesses.sparse_qp
— Functionsparse_qp(
ekp::EnsembleKalmanProcess{FT, IT, SparseInversion{FT}},
v_j::Vector{FT},
cov_vv_inv::AbstractMatrix{FT},
H_u::SparseArrays.SparseMatrixCSC{FT},
H_g::SparseArrays.SparseMatrixCSC{FT},
y_j::Vector{FT};
H_uc::SparseArrays.SparseMatrixCSC{FT} = H_u,
) where {FT, IT}
Solving quadratic programming problem with sparsity constraint.