Namespaces
Variants

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

From cppreference.net
ヘッダーで定義 <cmath>
(1)
double hermite ( unsigned int n, double x ) ;

float hermite ( unsigned int n, float x ) ;

long double hermite ( unsigned int n, long double x ) ;
(C++17以降)
(C++23まで)
/* floating-point-type */ hermite ( unsigned int n,
/* floating-point-type */ x ) ;
(C++23以降)
float hermitef ( unsigned int n, float x ) ;
(2) (C++17以降)
long double hermitel ( unsigned int n, long double x ) ;
(3) (C++17以降)
ヘッダーで定義 <cmath>
template < class Integer >
double hermite ( unsigned int n, Integer x ) ;
(A) (C++17以降)
1-3) 次数 n と引数 x の(物理学者の) Hermite多項式 を計算する。 このライブラリは、パラメータ x の型として、すべてのcv修飾されていない浮動小数点型に対する std::hermite のオーバーロードを提供する。 (C++23以降)
A) すべての整数型に対して追加のオーバーロードが提供されており、これらは double として扱われます。

目次

パラメータ

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以上の場合、動作は実装定義となります。

注記

C++17をサポートしていないが、 ISO 29124:2010 をサポートする実装では、 __STDCPP_MATH_SPEC_FUNCS__ が実装によって少なくとも201003L以上の値に定義されており、かつユーザーが標準ライブラリヘッダーをインクルードする前に __STDCPP_WANT_MATH_SPEC_FUNCS__ を定義している場合、この関数を提供します。

ISO 29124:2010をサポートしていないが、TR 19768:2007 (TR1)をサポートしている実装では、この関数はヘッダー 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

追加のオーバーロードは (A) と完全に同一である必要はありません。それらは、整数型の引数 num に対して、 std :: hermite ( int_num, num ) std :: hermite ( int_num, static_cast < double > ( num ) ) と同じ効果を持つことを保証するのに十分であればよいのです。

#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()
{
    // スポットチェック
    std::cout << std::hermite(3, 10) << '=' << H3(10) << '\n'
              << std::hermite(4, 10) << '=' << H4(10) << '\n';
}

出力:

7880=7880
155212=155212

関連項目

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

外部リンク

Weisstein, Eric W. "Hermite Polynomial." From MathWorld — A Wolfram Web Resource.
Weisstein, Eric W. "エルミート多項式。" MathWorld — Wolfram Webリソースより。