# SimPEG.regularization.LinearCorrespondence.deriv2#

LinearCorrespondence.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 \phi^2}{\partial \mathbf{m_1}^2} & \dfrac{\partial \phi^2}{\partial \mathbf{m_1} \partial \mathbf{m_2}} \\ \dfrac{\partial \phi^2}{\partial \mathbf{m_2} \partial \mathbf{m_1}} & \dfrac{\partial \phi^2}{\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.

vNone, (n_param, ) numpy.ndarray (optional)

A numpy array to model the Hessian by.

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 not None, the Hessian multiplied by the vector provided is returned.