Lorentz1D#

class astropy.modeling.functional_models.Lorentz1D(amplitude=1, x_0=0, fwhm=1, **kwargs)[source]#

Bases: Fittable1DModel

One dimensional Lorentzian model.

Parameters:
amplitudefloat or Quantity.

Peak value. For a normalized profile (integrating to 1), set amplitude = 2 / (np.pi * fwhm).

x_0float or Quantity.

Position of the peak.

fwhmfloat or Quantity.

Full width at half maximum (FWHM).

Other Parameters:
fixeddict, optional

A dictionary {parameter_name: boolean} of parameters to not be varied during fitting. True means the parameter is held fixed. Alternatively the fixed property of a parameter may be used.

tieddict, optional

A dictionary {parameter_name: callable} of parameters which are linked to some other parameter. The dictionary values are callables providing the linking relationship. Alternatively the tied property of a parameter may be used.

boundsdict, optional

A dictionary {parameter_name: value} of lower and upper bounds of parameters. Keys are parameter names. Values are a list or a tuple of length 2 giving the desired range for the parameter. Alternatively, the min and max properties of a parameter may be used.

eqconslist, optional

A list of functions of length n such that eqcons[j](x0,*args) == 0.0 in a successfully optimized problem.

ineqconslist, optional

A list of functions of length n such that ieqcons[j](x0,*args) >= 0.0 is a successfully optimized problem.

Notes

The x, x_0, and fwhm inputs must have compatible units or be unitless numbers.

Model formula:

\[f(x) = \frac{A \gamma^{2}}{\gamma^{2} + \left(x - x_{0}\right)^{2}}\]

where \(\gamma\) is the half width at half maximum (HWHM), which is half the FWHM.

Examples

import numpy as np
import matplotlib.pyplot as plt

from astropy.modeling.models import Lorentz1D

plt.figure()
s1 = Lorentz1D()
r = np.arange(-5, 5, .01)

for factor in range(1, 4):
    s1.amplitude = factor
    plt.plot(r, s1(r), lw=2, label=f'Amplitude={factor}')

plt.axis([-5, 5, -1, 4])
plt.legend()
plt.show()

(png, svg, pdf)

../_images/astropy-modeling-functional_models-Lorentz1D-1.png

Attributes Summary

amplitude

fwhm

input_units

This property is used to indicate what units or sets of units the evaluate method expects, and returns a dictionary mapping inputs to units (or None if any units are accepted).

param_names

Names of the parameters that describe models of this type.

x_0

Methods Summary

evaluate(x, amplitude, x_0, fwhm)

One dimensional Lorentzian model function.

fit_deriv(x, amplitude, x_0, fwhm)

One dimensional Lorentzian model derivative with respect to parameters.

Attributes Documentation

amplitude = Parameter('amplitude', value=1.0)#
fwhm = Parameter('fwhm', value=1.0)#
input_units#
param_names = ('amplitude', 'x_0', 'fwhm')#

Names of the parameters that describe models of this type.

The parameters in this tuple are in the same order they should be passed in when initializing a model of a specific type. Some types of models, such as polynomial models, have a different number of parameters depending on some other property of the model, such as the degree.

When defining a custom model class the value of this attribute is automatically set by the Parameter attributes defined in the class body.

x_0 = Parameter('x_0', value=0.0)#

Methods Documentation

static evaluate(x, amplitude, x_0, fwhm)[source]#

One dimensional Lorentzian model function.

static fit_deriv(x, amplitude, x_0, fwhm)[source]#

One dimensional Lorentzian model derivative with respect to parameters.