isotopylog.fit_HH21inv

isotopylog.fit_HH21inv(he, nu_max=10, nu_min=-50, nnu=300, non_neg=True, omega='auto', **kwargs)

Fits D evolution data using the distributed activation energy model of Hemingway and Henkes (2021). This function solves for rho_nu, the regularized distribution of rates in lnk space. See HH21 Eq. X for notation and details. This function can estimate best-fit omega using Tikhonov regularization.

Parameters:
  • he (isotopylog.HeatingExperiment) – ipl.HeatingExperiment instance containing the D data to be modeled.
  • nu_max (float) – The maximum lnk value to consider. Defaults to 10.
  • nu_min (float) – The minimum lnk value to consider. Defaults to -50.
  • nnu (int) – The number of nu values in the array such that dnu = (nu_max - nu_min)/nnu. Defaults to 300.
  • non_neg (boolean) – Tells the function whether or not to constrain the solution to be non-negative. Defaults to True.
  • omega (str or float) – The “smoothing parameter” to use. This can be a number or auto; if ‘auto’, the function uses Tikhonov regularization to calculate the optimal omega value. Defaults to auto.
Returns:

  • rho_nu_inv (array-like) – Resulting regularized rho distribution, of length n_nu.
  • omega (float) – If inputed omega = ‘auto’, then this is the best-fit omega value. If inputted omega was a number, this is simply same as the inputted value.
  • res_inv (float) – Root mean square error of the inverse model fit, in D47 units.
  • rgh_inv (float) – Roughness norm of the inverse model fit.

Raises:
  • TypeError – If omega is not ‘Auto’ or float or int type.
  • TypeError – If unexpected keyword arguments are passed to calc_L_curve.

See also

isotopylog.fit_HH21()
Method for fitting heating experiment data using the lognormal model of Hemingway and Henkes (2021).
kDistribution.invert_experiment()
Method for generating a kDistribution instance from experimental data.

Examples

Basic implementation, assuming a ipl.HeatingExperiment instance he exists:

#import modules
import isotopylog as ipl

#assume he is a HeatingExperiment instance
results = ipl.fit_HH21inv(he, omega = 'auto')

Same implementation, but if best-fit omega is known a priori:

#import modules
import isotopylog as ipl

#assume best-fit omega is 3
omega = 3

#assume he is a HeatingExperiment instance
results = ipl.fit_HH21inv(he, omega = 3)

References

[1] Forney and Rothman (2012) J. Royal Soc. Inter., 9, 2255–2267.

[2] Hemingway and Henkes (2021) Earth Planet. Sci. Lett., 566, 116962.