Espacios de nombres
Variantes
Acciones

std::assoc_legendre, std::assoc_legendref, std::assoc_legendrel

De cppreference.com
 
 
 
 
Definido en el archivo de encabezado <cmath>
double      assoc_legendre(unsignedint n, unsignedint m, double x );

float       assoc_legendre(unsignedint n, unsignedint m, float x );
longdouble assoc_legendre(unsignedint n, unsignedint m, longdouble x );
float       assoc_legendref(unsignedint n, unsignedint m, float x );

longdouble assoc_legendrel(unsignedint n, unsignedint m, longdouble x );
(1) (desde C++17)
double      assoc_legendre(unsignedint n, unsignedint m, TipoEntero x );
(2) (desde C++17)
1) Calcula los polinomios asociados de Legendre de grado n, orden m, y argumento x.
2) Un conjunto de sobrecargas o una plantilla de función que acepta un argumento de cualquier tipo entero. Equivalente a (1) después de convertir el argumento a double.

Contenido

[editar]Parámetros

n - El grado del polinomio, un valor de tipo entero sin signo.
m - El orden del polinomio, un valor de tipo entero sin signo.
x - el argumento, un valor de tipo entero o de punto flotante.

[editar]Valor de retorno

Si no ocurren errores, el valor del polinomio asociado de Legendre Pm
n
de x. Es decir, se devuelve (1-x2
)m/2
dm
dxm
P
n
(x)
, (donde P
n
(x)
es el polinomio no asociado de Legendre, std::legendre(n, x)).

Observa que el término de fase Condon-Shortley(-1)m
se omite en esta definición.

[editar]Manejo de errores

Los errores se pueden informar como se especifica en math_errhandling.

  • Si el argumento es NaN, se devuelve NaN y no se informa de un error de dominio.
  • Si |x| > 1, se puede generar un error de dominio.
  • Si n es mayor que o igual a 128, el comportamiento está definido por la implementación.

[editar]Notas

Las implementaciones que no son compatibles con C++17, pero son compatibles con ISO 29124:2010, proporcionan esta función si __STDCPP_MATH_SPEC_FUNCS__ está definida por la implementación a un valor de al menos 201003L y si el usuario define __STDCPP_WANT_MATH_SPEC_FUNCS__ antes de incluir cualquier archivo de encabezado de la biblioteca estándar.

Las implementaciones que no son compatibles con ISO 29124:2010 pero son compatibles con TR 19768:2007 (TR1), proporcionan esta función en el archivo de encabezado tr1/cmath y el espacio de nombres std::tr1.

Una implementación de esta función también se encuentra disponible en Boost.Math como boost::math::legendre_p, excepto que la definición en Boost.Math incluye el término de la fase Condon-Shortley.

Unos pocos de los primeros polinomios asociados de Legendre son:

  • assoc_legendre(0, 0, x) = 1
  • assoc_legendre(1, 0, x) = x
  • assoc_legendre(1, 1, x) = (1-x2
    )1/2
  • assoc_legendre(2, 0, x) =
    1
    2
    (3x2
    -1)
  • assoc_legendre(2, 1, x) = 3x(1-x2
    )1/2
  • assoc_legendre(2, 2, x) = 3(1-x2
    )

[editar]Ejemplo

#include <cmath>#include <iostream>double P20(double x){return0.5*(3*x*x-1);}double P21(double x){return3.0*x*std::sqrt(1-x*x);}double P22(double x){return3*(1-x*x);}int main(){std::cout<< std::assoc_legendre(2, 0, 0.5)<<'='<< P20(0.5)<<'\n'<< std::assoc_legendre(2, 1, 0.5)<<'='<< P21(0.5)<<'\n'<< std::assoc_legendre(2, 2, 0.5)<<'='<< P22(0.5)<<'\n';}

Salida:

-0.125=-0.125 1.29904=1.29904 2.25=2.25

[editar]Véase también

(C++17)(C++17)(C++17)
Polinomios de Legendre.
(función)[editar]

[editar]Enlaces externos

Weisstein, Eric W. "Polinomio Asociado de Legendre ." De MathWorld – Un recurso web de Wolfram.

close