Namespaces
Variants

std:: laguerre, std:: laguerref, std:: laguerrel

From cppreference.net
Défini dans l'en-tête <cmath>
(1)
float laguerre ( unsigned int n, float x ) ;

double laguerre ( unsigned int n, double x ) ;

long double laguerre ( unsigned int n, long double x ) ;
(depuis C++17)
(jusqu'à C++23)
/* floating-point-type */ laguerre ( unsigned int n,
/* floating-point-type */ x ) ;
(depuis C++23)
float laguerref ( unsigned int n, float x ) ;
(2) (depuis C++17)
long double laguerrel ( unsigned int n, long double x ) ;
(3) (depuis C++17)
Défini dans l'en-tête <cmath>
template < class Integer >
double laguerre ( unsigned int n, Integer x ) ;
(A) (depuis C++17)
1-3) Calcule les polynômes de Laguerre non associés de degré n et d'argument x . La bibliothèque fournit des surcharges de std::laguerre pour tous les types à virgule flottante non qualifiés cv comme type du paramètre x . (depuis C++23)
A) Des surcharges supplémentaires sont fournies pour tous les types entiers, qui sont traités comme double .

Table des matières

Paramètres

n - le degré du polynôme, une valeur entière non signée
x - l'argument, une valeur à virgule flottante ou entière

Valeur de retour

If no errors occur, value of the nonassociated Laguerre polynomial of x , that is
e x
n!
d n
dx n
(x n
e -x )
, is returned.

Gestion des erreurs

Les erreurs peuvent être signalées comme spécifié dans math_errhandling

  • Si l'argument est NaN, NaN est retourné et aucune erreur de domaine n'est signalée
  • Si x est négatif, une erreur de domaine peut survenir
  • Si n est supérieur ou égal à 128, le comportement est défini par l'implémentation

Notes

Les implémentations qui ne prennent pas en charge C++17, mais qui prennent en charge ISO 29124:2010 , fournissent cette fonction si __STDCPP_MATH_SPEC_FUNCS__ est défini par l'implémentation à une valeur d'au moins 201003L et si l'utilisateur définit __STDCPP_WANT_MATH_SPEC_FUNCS__ avant d'inclure tout en-tête de la bibliothèque standard.

Les implémentations qui ne prennent pas en charge ISO 29124:2010 mais supportent TR 19768:2007 (TR1), fournissent cette fonction dans l'en-tête tr1/cmath et l'espace de noms std::tr1 .

Une implémentation de cette fonction est également disponible dans boost.math .

Les polynômes de Laguerre sont les solutions polynomiales de l'équation .

Les premiers sont :

Fonction Polynôme
laguerre ( 0 , x ) 1
laguerre ( 1 , x ) -x + 1
laguerre ( 2 , x )
1
2
(x 2
- 4x + 2)
laguerre ( 3 , x )
1
6
(-x 3
- 9x 2
- 18x + 6)

Les surcharges supplémentaires ne sont pas requises d'être fournies exactement comme (A) . Elles doivent seulement être suffisantes pour garantir que pour leur argument num de type entier, std :: laguerre ( int_num, num ) ait le même effet que std :: laguerre ( int_num, static_cast < double > ( num ) ) .

Exemple

#include <cmath>
#include <iostream>
double L1(double x)
{
    return -x + 1;
}
double L2(double x)
{
    return 0.5 * (x * x - 4 * x + 2);
}
int main()
{
    // vérifications ponctuelles
    std::cout << std::laguerre(1, 0.5) << '=' << L1(0.5) << '\n'
              << std::laguerre(2, 0.5) << '=' << L2(0.5) << '\n'
              << std::laguerre(3, 0.0) << '=' << 1.0 << '\n';
}

Sortie :

0.5=0.5
0.125=0.125
1=1

Voir aussi

polynômes de Laguerre associés
(fonction)

Liens externes

Weisstein, Eric W. "Polynôme de Laguerre." De MathWorld — Une ressource web Wolfram.