Namespaces
Variants

std:: hermite, std:: hermitef, std:: hermitel

From cppreference.net
double hermite ( unsigned int n, double x ) ;

double hermite ( unsigned int n, float x ) ;
double hermite ( unsigned int n, long double x ) ;
float hermitef ( unsigned int n, float x ) ;

long double hermitel ( unsigned int n, long double x ) ;
(1)
double hermite ( unsigned int n, IntegralType x ) ;
(2)
1) 次数 n と引数 x の(物理学者版) Hermite多項式 を計算します。
2) 任意の integral type の引数を受け入れるオーバーロードのセットまたは関数テンプレート。引数を double にキャストした後、 (1) と等価です。

すべての特殊関数と同様に、 hermite は、 __STDCPP_MATH_SPEC_FUNCS__ が実装によって少なくとも201003L以上の値として定義されており、かつユーザーが標準ライブラリのヘッダーをインクルードする前に __STDCPP_WANT_MATH_SPEC_FUNCS__ を定義している場合にのみ、 <cmath> で利用可能であることが保証されています。

目次

パラメータ

n - 多項式の次数
x - 引数、浮動小数点型または整数型の値

戻り値

If no errors occur, value of the order- n Hermite polynomial of x , that is (-1) n
e x 2
d n
dx n
e -x 2
, is returned.

エラーハンドリング

エラーは math_errhandling で指定される方法で報告される場合があります。

  • 引数がNaNの場合、NaNが返され、定義域エラーは報告されません。
  • n が128以上の場合、動作は実装定義となります。

注記

TR 29124をサポートしていないがTR 19768をサポートしている実装では、この関数はヘッダ tr1/cmath および名前空間 std::tr1 で提供されます。

この関数の実装は boost.math でも利用可能です。

エルミート多項式は、方程式 u ,,
- 2xu ,
= -2nu
の多項式解です。

最初のいくつかは以下の通りです:

  • hermite(0, x) = 1 .
  • hermite(1, x) = 2x .
  • hermite(2, x) = 4x 2
    - 2
    .
  • hermite(3, x) = 8x 3
    - 12x
    .
  • hermite(4, x) = 16x 4
    - 48x 2
    + 12
    .
(注:元のテキストが既に数式表現であり、翻訳対象となる自然言語部分が存在しないため、HTMLタグと数式内容はそのまま保持されています)

(gcc 6.0で示された通り動作します)

#define __STDCPP_WANT_MATH_SPEC_FUNCS__ 1
#include <cmath>
#include <iostream>
double H3(double x)
{
    return 8 * std::pow(x, 3) - 12 * x;
}
double H4(double x)
{
    return 16 * std::pow(x, 4) - 48 * x * x + 12;
}
int main()
{
    // spot-checks
    std::cout << std::hermite(3, 10) << '=' << H3(10) << '\n'
              << std::hermite(4, 10) << '=' << H4(10) << '\n';
}

出力:

7880=7880
155212=155212

関連項目

ラゲール多項式
(関数)
ルジャンドル多項式
(関数)

外部リンク

Weisstein, Eric W. "Hermite Polynomial." MathWorld(Wolfram Webリソース)より。