class PolySurfaceModel( LinearModel ) | Source |
---|
General polynomial surface model of arbitrary degree.
f( x,y:p ) = ∑d ∑k pn * xd-k * yk )
where the first sum is over d running from 0 to degree ( inclusive ) and the second sum is over k running from 0 to d ( inclusive ). The index n is just incrementing, making all p's different.
It is a 2-dimensional linear model.
Examples
poly = PolySurfaceModel( 3 ) # 3rd degree polynomial
print poly.getNumberOfParameters( ) # 10
Author Do Kester
Attributes
- degree : int
degree of the polynomial
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
PolySurfaceModel( degree, copy=None, **kwargs ) |
---|
Polynominal surface of a certain degree. Two dimensions.
degree | polysurface |
---|---|
0 | p0 |
1 | p0 + p1 * x + p2 * y |
2 | p0 + p1 * x + p2 * y + p3 * x2 + p4 * x * y + p5 * y2 |
3 | p0 + p1 * x + p2 * y + p3 * x2 + p4 * x * y + p5 * y2 + |
p6 * x3 + p7 * x2 * y + p8 * x * y2 + p9 * y3 | |
etc |
The number of parameters is ( degree+2 ) * ( degree+1 ) / 2
Parameters
- degree : int
the degree of the polynomial. - copy : PolySurfaceModel
model to be copied - fixed : dictionary of {int:float|Model}
int list if parameters to fix permanently. Default None.
float|Model list of values for the fixed parameters.
Attribute fixed can only be set in the constructor.
See FixedModel
copy( ) |
---|
basePartial( xdata, params, parlist=None ) |
---|
The partials are the powers of x,y ( xdata ) from 0 to degree.
Parameters
- xdata : array_like
values at which to calculate the result - params : array_like
values for the parameters.
baseDerivative( xdata, params ) |
---|
degree | df/dx |
---|---|
0 | 0 |
1 | p1 |
2 | p1 + 2 * p3 * x + p4 * y |
3 | p1 + 2 * p3 * x + p4 * y + 3 * p6 * x2 + 2 * p7 * x * y + p8 * y2 |
degree | df/dy |
---|---|
0 | 0 |
1 | p2 |
2 | p2 + p4 * x + 2 * p5 * y |
3 | p2 + p4 * x + 2 * p5 * y + p7 * x2 + 2 * p8 * x * y + 3 * p9 * y2 |
Parameters
- xdata : array_like
values at which to calculate the partials - params : array_like
parameters for the model.
baseName( ) |
---|
baseParameterUnit( k ) |
---|
Methods inherited from LinearModel |
---|
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 )
- partial( 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( )
- isMixed( )
- 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 |
---|