Namespaces
Variants

std:: assoc_laguerre, std:: assoc_laguerref, std:: assoc_laguerrel

From cppreference.net
Definido en el encabezado <cmath>
(1)
float assoc_laguerre ( unsigned int n, unsigned int m, float x ) ;

double assoc_laguerre ( unsigned int n, unsigned int m, double x ) ;

long double assoc_laguerre ( unsigned int n, unsigned int m, long double x ) ;
(desde C++17)
(hasta C++23)
/* floating-point-type */ assoc_laguerre ( unsigned int n, unsigned int m,
/* floating-point-type */ x ) ;
(desde C++23)
float assoc_laguerref ( unsigned int n, unsigned int m, float x ) ;
(2) (desde C++17)
long double assoc_laguerrel ( unsigned int n, unsigned int m, long double x ) ;
(3) (desde C++17)
Definido en el encabezado <cmath>
template < class Integer >
double assoc_laguerre ( unsigned int n, unsigned int m, Integer x ) ;
(A) (desde C++17)
1-3) Calcula los polinomios asociados de Laguerre de grado n , orden m y argumento x . La biblioteca proporciona sobrecargas de std::assoc_laguerre para todos los tipos de punto flotante sin calificación cv como el tipo del parámetro x . (desde C++23)
A) Se proporcionan sobrecargas adicionales para todos los tipos enteros, los cuales son tratados como double .

Contenidos

Parámetros

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

Valor de retorno

If no errors occur, value of the associated Laguerre polynomial of x , that is (-1) m
d m
dx m
L n+m (x)
, is returned (where L n+m (x) is the unassociated Laguerre polynomial, std:: laguerre ( n + m, x ) ).

Manejo de errores

Los errores pueden ser reportados como se especifica en math_errhandling

  • Si el argumento es NaN, se devuelve NaN y no se reporta un error de dominio
  • Si x es negativo, puede ocurrir un error de dominio
  • Si n o m es mayor o igual a 128, el comportamiento está definido por la implementación

Notas

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

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

Una implementación de esta función también está disponible en boost.math .

Los polinomios asociados de Laguerre son las soluciones polinómicas de la ecuación xy ,,
+(m+1-x)y ,
+ny = 0
.

Los primeros son:

Función Polinomio
assoc_laguerre ( 0 , m, x ) 1
assoc_laguerre ( 1 , m, x ) -x + m + 1
assoc_laguerre ( 2 , m, x )
1
2
[x 2
- 2(m + 2)x + (m + 1)(m + 2)]
assoc_laguerre ( 3 , m, x )
1
6
[-x 3
- 3(m + 3)x 2
- 3(m + 2)(m + 3)x + (m + 1)(m + 2)(m + 3)]

Las sobrecargas adicionales no requieren ser proporcionadas exactamente como (A) . Solo necesitan ser suficientes para garantizar que para su argumento num de tipo entero, std :: assoc_laguerre ( int_num1, int_num2, num ) tenga el mismo efecto que std :: assoc_laguerre ( int_num1, int_num2, static_cast < double > ( num ) ) .

Ejemplo

#include <cmath>
#include <iostream>
double L1(unsigned m, double x)
{
    return -x + m + 1;
}
double L2(unsigned m, double x)
{
    return 0.5 * (x * x - 2 * (m + 2) * x + (m + 1) * (m + 2));
}
int main()
{
    // verificaciones puntuales
    std::cout << std::assoc_laguerre(1, 10, 0.5) << '=' << L1(10, 0.5) << '\n'
              << std::assoc_laguerre(2, 10, 0.5) << '=' << L2(10, 0.5) << '\n';
}

Salida:

10.5=10.5
60.125=60.125

Véase también

(C++17) (C++17) (C++17)
Polinomios de Laguerre
(función)

Enlaces externos

Weisstein, Eric W. "Polinomio de Laguerre Asociado." De MathWorld — Un recurso web de Wolfram.