simpeg.regularization.BaseSparse.get_lp_weights#
- BaseSparse.get_lp_weights(f_m)[source]#
Compute and return iteratively re-weighted least-squares (IRLS) weights.
For a regularization kernel function
evaluated at model , compute and return the IRLS weights. SeeSmallness.f_m()
andSmoothnessFirstOrder.f_m()
for examples of least-squares regularization kernels.For
SparseSmallness
, f_m is a (n_cells, )numpy.ndarray
. ForSparseSmoothness
, f_m is anumpy.ndarray
whose length corresponds to the number of faces along a particular orientation; e.g. for smoothness along x, the length is (n_faces_x, ).- Parameters:
- f_m
numpy.ndarray
The regularization kernel function evaluated at the current model.
- f_m
Notes
For a regularization kernel function
evaluated at model , the IRLS weights are computed via:where
represents elementwise division, is a small constant added for stability of the algorithm (set using the irls_threshold property), and defines the norm at each cell. applies optional scaling to the IRLS weights (when the irls_scaled property isTrue
). The scaling acts to preserve the balance between the data misfit and the components of the regularization based on the derivative of the l2-norm measure. And it assists the convergence by ensuring the model does not deviate aggressively from the global 2-norm solution during the first few IRLS iterations.To apply elementwise scaling, let
And define a vector array
such that:The elementwise scaling vector
is: