simpeg.regularization.SmoothnessSecondOrder.f_m_deriv#

SmoothnessSecondOrder.f_m_deriv(m)[source]#

Derivative of the regularization kernel function.

For second-order smoothness regularization, the derivative of the regularization kernel function with respect to the model is given by:

\[\frac{\partial \mathbf{f_m}}{\partial \mathbf{m}} = \mathbf{L_x} \frac{\partial \mu(\mathbf{m})}{\partial \mathbf{m}}\]

where \(\mathbf{L_x}\) is the second-order derivative operator with respect to x, and \(\mu\) is the mapping function.

Parameters:
mnumpy.ndarray

The model.

Returns:
scipy.sparse.csr_matrix

The derivative of the regularization kernel function.

Notes

The objective function for second-order smoothness regularization along the x-direction is given by:

\[\phi (\mathbf{m}) = \left\lVert \mathbf{W} \mathbf{L_x} \left[ \mu(\mathbf{m}) - \mu(\mathbf{m}^\text{ref}) \right] \right\rVert^2.\]

where \(\mathbf{m}\) are the discrete model parameters (model), \(\mathbf{m}^\text{ref}\) is the reference model, \(\mathbf{L_x}\) is the second-order x-derivative operator, \(\mu\) is the mapping function and \(\mathbf{W}\) is the weighting matrix. Similar for smoothness along y and z. See the SmoothnessSecondOrder class documentation for more detail.

We define the regularization kernel function \(\mathbf{f_m}\) as:

\[\mathbf{f_m}(\mathbf{m}) = \mathbf{L_x} \left[ \mu(\mathbf{m}) - \mu(\mathbf{m}^\text{ref}) \right]\]

such that

\[\phi_m(\mathbf{m}) = \lVert \mathbf{W \, f_m} \rVert^2.\]

The derivative of the regularization kernel function with respect to the model is:

\[\frac{\partial \mathbf{f_m}}{\partial \mathbf{m}} = \mathbf{L_x} \frac{\partial \mu(\mathbf{m})}{\partial \mathbf{m}}\]