BayesicFitting

Model Fitting and Evidence Calculation

View project on GitHub



class LorentzModel( NonLinearModel )[source]

Lorentzian Model.

  f( x:p ) = p0 * ( p22 / ( ( x - p1 )2 + p22 )

  where
     p0 = amplitude
     p1 = x-shift
     p2 = gamma ( width )

The parameters are initialized at [1/PI, 0.0, 1.0] where the integral over the function equals 1. Parameter 2 ( gamma ) is always kept stricktly positive ( >0 ).

This model is also known as Cauchy or Cauchy-Lorentz.

Notes
There are other possible definitions of this model, where the integral equals 1.0. en.wikipedia.org/wiki/Cauchy_distribution

Definitions that integrate to 1.0 are more fit as a distribution function. See sample/CauchyErrorDistribution.

We choose our definition for 2 reasons.

  1. to be in line with the definitions of the GaussModel, SincModel, VoigtModel, all KernelModels etc. In all of them the amplitude parameter, p_0, equals the maximum of the function. I.e. p_0 is indeed the amplitude.
  2. to have maximally independent parameters, meaning that if you change one parameter, only that aspect changes. In the present definition this is the case. In the alternative definition if you change p_2, not only the width of the function changes, but also the amplitude.

Examples

lorentz = LorentzModel( )
lorentz.setParameters( [5, 4, 1] )
print( lorentz( numpy.arange(  41 , dtype=float ) / 5 ) )

Attributes from Model
     npchain, parameters, stdevs, xUnit, yUnit

Attributes from FixedModel
     npmax, fixed, parlist, mlist

Attributes from BaseModel
     npbase, ndim, priors, posIndex, nonZero, tiny, deltaP, parNames

Alternate
LorentzModel() is equivalent to KernelModel( kernel=Lorentz() ).

LorentzModel( copy=None, **kwargs ) [source]

Lorentzian model.

Number of parameters is 3.

Parameters

  • copy : LorentzModel
         to be copied
  • fixed : None or dictionary of {int:float|Model}
         int index of parameter to fix permanently.
         float|Model values for the fixed parameters.
         Attribute fixed can only be set in the constructor.
         See: FixedModel

copy( ) [source]

Copy method.

baseResult( xdata, params ) [source]
Returns the result of the model function.

Parameters

  • xdata : array_like
         values at which to calculate the result
  • params : array_like
         values for the parameters.

basePartial( xdata, params, parlist=None ) [source]
Returns the partials at the xdata value.

Parameters

  • xdata : array_like
         values at which to calculate the partials
  • params : array_like
         values for the parameters.
  • parlist : array_like
         list of indices active parameters (or None for all)

baseDerivative( xdata, params ) [source]
Return the derivative df/dx at each xdata (=x).

Parameters

  • xdata : array_like
         values at which to calculate the derivative
  • params : array_like
         values for the parameters.

baseName( ) [source]
Returns a string representation of the model.

baseParameterUnit( k ) [source]
Return the unit of the indicated parameter.

Parameters

  • k : int
         parameter number.
Methods inherited from NonLinearModel
Methods inherited from Model
Methods inherited from FixedModel
Methods inherited from BaseModel