simpeg.regularization.CrossGradient.deriv2#
- CrossGradient.deriv2(model, v=None)[source]#
Hessian of the regularization function evaluated for the model provided.
Where \(\phi (\mathbf{m})\) is the discrete regularization function (objective function), this method evalutate and returns the second derivative (Hessian) with respect to the model parameters: For a model \(\mathbf{m}\) consisting of two physical properties such that:
\[\begin{split}\mathbf{m} = \begin{bmatrix} \mathbf{m_1} \\ \mathbf{m_2} \end{bmatrix}\end{split}\]The Hessian has the form:
\[\begin{split}\frac{\partial^2 \phi}{\partial \mathbf{m}^2} = \begin{bmatrix} \dfrac{\partial^2 \phi}{\partial \mathbf{m_1}^2} & \dfrac{\partial^2 \phi}{\partial \mathbf{m_1} \partial \mathbf{m_2}} \\ \dfrac{\partial^2 \phi}{\partial \mathbf{m_2} \partial \mathbf{m_1}} & \dfrac{\partial^2 \phi}{\partial \mathbf{m_2}^2} \end{bmatrix}\end{split}\]When a vector \((\mathbf{v})\) is supplied, the method returns the Hessian times the vector:
\[\frac{\partial^2 \phi}{\partial \mathbf{m}^2} \, \mathbf{v}\]- Parameters:
- model(
n_param
, )numpy.ndarray
The model; a vector array containing all physical properties.
- v
None
, (n_param
, )numpy.ndarray
(optional
) A numpy array to model the Hessian by.
- model(
- Returns:
- (
n_param
,n_param
)scipy.sparse.csr_matrix
| (n_param
, )numpy.ndarray
If the input argument v is
None
, the Hessian for the models provided is returned. If v is notNone
, the Hessian multiplied by the vector provided is returned.
- (