Chebyshev1D¶
- class astropy.modeling.polynomial.Chebyshev1D(degree, domain=None, window=None, n_models=None, model_set_axis=None, name=None, meta=None, **params)[source]¶
Bases:
_PolyDomainWindow1D
Univariate Chebyshev series.
It is defined as:
\[P(x) = \sum_{i=0}^{i=n}C_{i} * T_{i}(x)\]where
T_i(x)
is the corresponding Chebyshev polynomial of the 1st kind.For explanation of
`domain
, andwindow
see Notes regarding usage of domain and window.- Parameters:
- degree
python:int
degree of the series
- domain
python:tuple
orpython:None
, optional - window
python:tuple
orpython:None
, optional If None, it is set to (-1, 1) Fitters will remap the domain to this window.
- **params
python:dict
keyword : value pairs, representing parameter_name: value
- degree
- Other Parameters:
- fixed
a
python:dict
, optional A dictionary
{parameter_name: boolean}
of parameters to not be varied during fitting. True means the parameter is held fixed. Alternatively thefixed
property of a parameter may be used.- tied
python:dict
, 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 thetied
property of a parameter may be used.- bounds
python:dict
, 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, themin
andmax
properties of a parameter may be used.- eqcons
python:list
, optional A list of functions of length
n
such thateqcons[j](x0,*args) == 0.0
in a successfully optimized problem.- ineqcons
python:list
, optional A list of functions of length
n
such thatieqcons[j](x0,*args) >= 0.0
is a successfully optimized problem.
- fixed
Notes
This model does not support the use of units/quantities, because each term in the sum of Chebyshev polynomials is a polynomial in x - since the coefficients within each Chebyshev polynomial are fixed, we can’t use quantities for x since the units would not be compatible. For example, the third Chebyshev polynomial (T2) is 2x^2-1, but if x was specified with units, 2x^2 and -1 would have incompatible units.
Attributes Summary
The number of inputs.
The number of outputs.
Methods Summary
__call__
(*inputs[, model_set_axis, ...])Evaluate this model using the given input(s) and the parameter values that were specified when the model was instantiated.
clenshaw
(x, coeffs)Evaluates the polynomial using Clenshaw's algorithm.
evaluate
(x, *coeffs)Evaluate the model on some input variables.
fit_deriv
(x, *params)Computes the Vandermonde matrix.
prepare_inputs
(x, **kwargs)This method is used in
__call__
to ensure that all the inputs to the model can be broadcast into compatible shapes (if one or both of them are input as arrays), particularly if there are more than one parameter sets.Attributes Documentation
- n_inputs = 1¶
The number of inputs.
- n_outputs = 1¶
The number of outputs.
Methods Documentation
- __call__(*inputs, model_set_axis=None, with_bounding_box=False, fill_value=nan, equivalencies=None, inputs_map=None, **new_inputs)¶
Evaluate this model using the given input(s) and the parameter values that were specified when the model was instantiated.
- fit_deriv(x, *params)[source]¶
Computes the Vandermonde matrix.
- Parameters:
- x
ndarray
input
- *params
throw-away parameter list returned by non-linear fitters
- x
- Returns:
- result
ndarray
The Vandermonde matrix
- result
- prepare_inputs(x, **kwargs)[source]¶
This method is used in
__call__
to ensure that all the inputs to the model can be broadcast into compatible shapes (if one or both of them are input as arrays), particularly if there are more than one parameter sets. This also makes sure that (if applicable) the units of the input will be compatible with the evaluate method.