Namespaces
Variants

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

From cppreference.net
Défini dans l'en-tête <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 ) ;
(depuis C++17)
(jusqu'à C++23)
/* floating-point-type */ assoc_laguerre ( unsigned int n, unsigned int m,
/* floating-point-type */ x ) ;
(depuis C++23)
float assoc_laguerref ( unsigned int n, unsigned int m, float x ) ;
(2) (depuis C++17)
long double assoc_laguerrel ( unsigned int n, unsigned int m, long double x ) ;
(3) (depuis C++17)
Défini dans l'en-tête <cmath>
template < class Integer >
double assoc_laguerre ( unsigned int n, unsigned int m, Integer x ) ;
(A) (depuis C++17)
1-3) Calcule les polynômes de Laguerre associés de degré n , d'ordre m , et d'argument x . La bibliothèque fournit des surcharges de std::assoc_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
m - l'ordre 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 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 ) ).

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 ou m 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 associés sont les solutions polynomiales de l'équation xy ,,
+(m+1-x)y ,
+ny = 0
.

Les premiers sont :

Fonction Polynôme
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)]

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 :: assoc_laguerre ( int_num1, int_num2, num ) ait le même effet que std :: assoc_laguerre ( int_num1, int_num2, static_cast < double > ( num ) ) .

Exemple

#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()
{
    // vérifications ponctuelles
    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';
}

Sortie :

10.5=10.5
60.125=60.125

Voir aussi

(C++17) (C++17) (C++17)
Polynômes de Laguerre
(fonction)

Liens externes

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