Skip to main content
`Ctrl`+`K`

# Legendre2D

class astropy.modeling.polynomial.Legendre2D(x_degree, y_degree, x_domain=None, x_window=None, y_domain=None, y_window=None, n_models=None, model_set_axis=None, name=None, meta=None, **params)

  Bases: `OrthoPolynomialBase`

  Bivariate Legendre series.

  Defined as:

  \[P_{n_m}(x,y) = \sum_{n,m=0}^{n=d,m=d}C_{nm} L_n(x ) L_m(y)\]

  where `L_n(x)` and `L_m(y)` are Legendre polynomials.

  For explanation of `x_domain`, `y_domain`, `x_window` and `y_window` see Notes regarding usage of domain and window.

  Parameters:
    x_degree `python:int`

      degree in x

    y_degree `python:int`

      degree in y

    x_domain `python:tuple` or `python:None`, optional

      domain of the x independent variable

    y_domain `python:tuple` or `python:None`, optional

      domain of the y independent variable

    x_window `python:tuple` or `python:None`, optional

      range of the x independent variable If None, it is set to (-1, 1) Fitters will remap the domain to this window

    y_window `python:tuple` or `python:None`, optional

      range of the y independent variable 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

  Other Parameters:
    fixed `python:dict`, 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.

    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 the `tied` 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, the `min` and `max` properties of a parameter may be used.

    eqcons `python:list`, optional

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

    ineqcons `python:list`, optional

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

  Notes

  Model formula:

  \[P(x) = \sum_{i=0}^{i=n}C_{i} * L_{i}(x)\]

  where `L_{i}` is the corresponding Legendre polynomial.

  This model does not support the use of units/quantities, because each term in the sum of Legendre polynomials is a polynomial in x - since the coefficients within each Legendre polynomial are fixed, we can’t use quantities for x since the units would not be compatible. For example, the third Legendre polynomial (P2) is 1.5x^2-0.5, but if x was specified with units, 1.5x^2 and -0.5 would have incompatible units.

  Methods Summary

  `fit_deriv`(x, y, *params) | Derivatives with respect to the coefficients.

  Methods Documentation

  fit_deriv(x, y, *params)

    Derivatives with respect to the coefficients.

    This is an array with Legendre polynomials:

    Lx0Ly0 Lx1Ly0…LxnLy0…LxnLym

    Parameters:
      x `ndarray`

        input

      y `ndarray`

        input

      *params

        throw-away parameter list returned by non-linear fitters

    Returns:
      result `ndarray`

        The Vandermonde matrix