std::hermite, std::hermitef, std::hermitel
来自cppreference.com
                    
                                        
                    < cpp | numeric | special functions
                    
                                                            
                    |   定义于头文件  <cmath>
  | 
||
|   double      hermite( unsigned int n, double x ); float       hermite( unsigned int n, float x );  | 
(1) | (C++17 起) | 
|   double      hermite( unsigned int n, IntegralType x );  | 
(2) | (C++17 起) | 
参数
| n | - | 多项式的次数 | 
| x | - | 参数,浮点或整数类型的值 | 
返回值
若无错误发生,则返回x 的 n 阶埃尔米特多项式的值,即 (-1)nex2
| dn | 
| dxn | 
。
错误处理
可能报告 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) = 4x2
-2 -  hermite(3, x) = 8x3
-12x -  hermite(4, x) = 16x4
-48x2
+12 
示例
运行此代码
#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. “埃尔米特多项式”来自 MathWorld--A Wolfram Web Resource 。