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.
- http : //en.wikipedia.org/wiki/Cauchy_distribution#Probability_density_function
Definitions that integrate to 1.0 are more fit as a distribution function. See sample/CauchyErrorDistribution.
We choose our definition for 2 reasons.
- 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.
- 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 ) |
---|
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( ) |
---|
baseResult( xdata, params ) |
---|
Parameters
- xdata : array_like
values at which to calculate the result - params : array_like
values for the parameters.
basePartial( xdata, params, parlist=None ) |
---|
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 ) |
---|
Parameters
- xdata : array_like
values at which to calculate the derivative - params : array_like
values for the parameters.
baseName( ) |
---|
baseParameterUnit( k ) |
---|
Parameters
- k : int
parameter number.
Methods inherited from NonLinearModel |
---|
Methods inherited from Model |
---|
- chainLength( )
- isNullModel( )
- isolateModel( k )
- addModel( model )
- subtractModel( model )
- multiplyModel( model )
- divideModel( model )
- pipeModel( model )
- appendModel( model, operation )
- correctParameters( params )
- result( xdata, param=None )
- operate( res, pars, next )
- derivative( xdata, param, useNum=False )
- selectPipe( ndim, ninter, ndout )
- pipe_0( dGd, dHdG )
- pipe_1( dGd, dHdG )
- pipe_2( dGd, dHdG )
- pipe_3( dGd, dHdG )
- pipe_4( dGdx, dHdG )
- pipe_5( dGdx, dHdG )
- pipe_6( dGdx, dHdG )
- pipe_7( dGdx, dHdG )
- pipe_8( dGdx, dHdG )
- pipe_9( dGdx, dHdG )
- shortName( )
- getNumberOfParameters( )
- numDerivative( xdata, param )
- numPartial( xdata, param )
- isDynamic( )
- hasPriors( isBound=True )
- getPrior( kpar )
- setPrior( kpar, prior=None, **kwargs )
- getParameterName( kpar )
- getParameterUnit( kpar )
- getIntegralUnit( )
- setLimits( lowLimits=None, highLimits=None )
- getLimits( )
- hasLimits( fitindex=None )
- unit2Domain( uvalue, kpar=None )
- domain2Unit( dvalue, kpar=None )
- partialDomain2Unit( dvalue )
- nextPrior( )
- getLinearIndex( )
- testPartial( xdata, params, silent=True )
- strictNumericPartial( xdata, params, parlist=None )
- assignDF1( partial, i, dpi )
- assignDF2( partial, i, dpi )
- strictNumericDerivative( xdata, param )
Methods inherited from FixedModel |
---|
Methods inherited from BaseModel |
---|