simpeg.regularization.LinearCorrespondence#

class simpeg.regularization.LinearCorrespondence(mesh, wire_map, coefficients=None, **kwargs)[source]#

Bases: BaseSimilarityMeasure

Linear correspondence regularization for joint inversion with two physical properties.

LinearCorrespondence is used to recover a model where the differences between the model parameter values for two physical property types are minimal. LinearCorrespondence can also be used to minimize the squared L2-norm of a linear combination of model parameters for two physical property types. See the Notes section for a comprehensive description.

Parameters:
meshsimpeg.regularization.RegularizationMesh, discretize.base.BaseMesh

Mesh on which the regularization is discretized. This is not necessarily the same as the mesh on which the simulation is defined.

active_cellsNone, (n_cells, ) numpy.ndarray of bool

Boolean array defining the set of RegularizationMesh cells that are active in the inversion. If None, all cells are active.

wire_mapsimpeg.maps.Wires

Wire map connecting physical properties defined on active cells of the RegularizationMesh` to the entire model.

coefficientsNone, (3) numpy.ndarray of float

Coefficients \(\{ \lambda_1, \lambda_2, \lambda_3 \}\) for the linear relationship between model parameters. If None, the coefficients are set to \(\{ 1, -1, 0 \}\).

Attributes

W

Weighting matrix.

active_cells

Active cells defined on the regularization mesh.

coefficients

Coefficients for the linear relationship between model parameters.

mapping

Mapping from the inversion model parameters to the regularization mesh.

model

The model parameters.

nP

Number of model parameters.

parent

The parent objective function

reference_model

Reference model.

regularization_mesh

Regularization mesh.

units

Units for the model parameters.

weights_keys

Return the keys for the existing cell weights

wire_map

Mapping from model to physical properties defined on the regularization mesh.

Methods

__call__(model)

Evaluate the regularization function for the model provided.

deriv(model)

Gradient of the regularization function evaluated for the model provided.

deriv2(model[, v])

Hessian of the regularization function evaluated for the model provided.

f_m(m)

Not implemented for BaseRegularization class.

f_m_deriv(m)

Not implemented for BaseRegularization class.

get_weights(key)

Cell weights for a given key.

map_class

alias of IdentityMap

relation(model)

Computes the relation vector for the model provided.

remove_weights(key)

Removes the weights for the key provided.

set_weights(**weights)

Adds (or updates) the specified weights to the regularization.

test([x, num, random_seed])

Run a convergence test on both the first and second derivatives.

Notes

Let \(\mathbf{m}\) be a discrete model consisting of two physical property types such that:

\[\begin{split}\mathbf{m} = \begin{bmatrix} \mathbf{m_1} \\ \mathbf{m_2} \end{bmatrix}\end{split}\]

Where \(\{ \lambda_1 , \lambda_2 , \lambda_3 \}\) define scalar coefficients for a linear combination of vectors \(\mathbf{m_1}\) and \(\mathbf{m_2}\), the regularization function (objective function) is given by:

\[\phi (\mathbf{m}) = \big \| \lambda_1 \mathbf{m_1} + \lambda_2 \mathbf{m_2} + \lambda_3 \big \|^2\]

Scalar coefficients \(\{ \lambda_1 , \lambda_2 , \lambda_3 \}\) are set using the coefficients property. For a true linear correspondence constraint, we set \(\{ \lambda_1 , \lambda_2 , \lambda_3 \}\) to \(\{ 1, -1, 0 \}\).