Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

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

      From cppreference.com
      <cpp‎ |numeric‎ |special functions
       
       
       
       
      Defined in header<cmath>
      (1)
      float       laguerre(unsignedint n,float x);

      double      laguerre(unsignedint n,double x);

      longdouble laguerre(unsignedint n,longdouble x);
      (since C++17)
      (until C++23)
      /* floating-point-type */ laguerre(unsignedint n,
                                         /* floating-point-type */ x);
      (since C++23)
      float       laguerref(unsignedint n,float x);
      (2)(since C++17)
      longdouble laguerrel(unsignedint n,longdouble x);
      (3)(since C++17)
      Defined in header<cmath>
      template<class Integer>
      double      laguerre(unsignedint n, Integer x);
      (A)(since C++17)
      1-3) Computes the non-associatedLaguerre polynomials of the degreen and argumentx. The library provides overloads ofstd::laguerre for all cv-unqualified floating-point types as the type of the parameterx.(since C++23)
      A) Additional overloads are provided for all integer types, which are treated asdouble.

      Contents

      [edit]Parameters

      n - the degree of the polynomial, an unsigned integer value
      x - the argument, a floating-point or integer value

      [edit]Return value

      If no errors occur, value of the nonassociated Laguerre polynomial ofx, that is
      ex
      n!
      dn
      dxn
      (xn
      e-x)
      , is returned.

      [edit]Error handling

      Errors may be reported as specified inmath_errhandling

      • If the argument is NaN, NaN is returned and domain error is not reported
      • Ifx is negative, a domain error may occur
      • Ifn is greater or equal than 128, the behavior is implementation-defined

      [edit]Notes

      Implementations that do not support C++17, but supportISO 29124:2010, provide this function if__STDCPP_MATH_SPEC_FUNCS__ is defined by the implementation to a value at least 201003L and if the user defines__STDCPP_WANT_MATH_SPEC_FUNCS__ before including any standard library headers.

      Implementations that do not support ISO 29124:2010 but support TR 19768:2007 (TR1), provide this function in the headertr1/cmath and namespacestd::tr1.

      An implementation of this function is alsoavailable in boost.math.

      The Laguerre polynomials are the polynomial solutions of the equation.

      The first few are:

      Function Polynomial
          laguerre(0, x)     1
      laguerre(1, x)-x + 1
      laguerre(2, x)
      1
      2
      (x2
      - 4x + 2)
      laguerre(3, x)     
      1
      6
      (-x3
      - 9x2
      - 18x + 6)
          

      The additional overloads are not required to be provided exactly as(A). They only need to be sufficient to ensure that for their argumentnum of integer type,std::laguerre(int_num, num) has the same effect asstd::laguerre(int_num,static_cast<double>(num)).

      [edit]Example

      Run this code
      #include <cmath>#include <iostream> double L1(double x){return-x+1;} double L2(double x){return0.5*(x* x-4* x+2);} int main(){// spot-checksstd::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';}

      Output:

      0.5=0.50.125=0.1251=1

      [edit]See also

      associated Laguerre polynomials
      (function)[edit]

      [edit]External links

      Weisstein, Eric W. "Laguerre Polynomial." From MathWorld — A Wolfram Web Resource.
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/special_functions/laguerre&oldid=149660"

      [8]ページ先頭

      ©2009-2025 Movatter.jp