📜  C++ STL-math.lgamma()函数(1)

📅  最后修改于: 2023-12-03 14:39:51.223000             🧑  作者: Mango

C++ STL-math.lgamma()函数介绍

1. 简介

lgamma(double x)是C++ STL库math.h头文件中的一个函数,作用是求x的伽玛函数值。

伽玛函数的定义为:

$$ \Gamma (x) = \int_0^{\infty} t^{x-1} e^{-t} \mathrm{d}t, \quad x > 0 $$

对于x大于0的情况,摩尔定理给出:

$$ \Gamma\left(\frac{1}{2}\right)=\sqrt{\pi} $$

因此,当x为1/2时,输出值为$10^6$,可以作为判断某些特殊情况的依据。

2.函数的使用方法

使用方法如下:

double lgamma(double x); 

lgamma()函数接受一个double型的参数x,并返回x的伽玛函数值。当x是负整数时结果是无限大。

3. 例子

以下代码演示了如何使用lgamma()函数:

#include <iostream>
#include <cmath>      

int main ()
{
  std::cout << "lgamma(0.5) = " << std::lgamma(0.5) << '\n';   //输出lgamma(1/2),结果为9.189385332046727e-01
  std::cout << "lgamma(1) = " << std::lgamma(1) << '\n';       //输出lgamma(1),结果为0
  std::cout << "lgamma(5) = " << std::lgamma(5) << '\n';       //输出lgamma(5),结果为3.178053830347945
  std::cout << "lgamma(-0.5) = " << std::lgamma(-0.5) << '\n'; //输出lgamma(-1/2),结果为1.265512123484645e+00
  std::cout << "lgamma(-5) = " << std::lgamma(-5) << '\n';     //输出lgamma(-5),结果为-inf
  return 0;
}
4.注意事项

当x是正整数或一半的整数时,可以通过计算得到准确值,否则必须使用数值方法计算伽玛函数的值。

5.结论

lgamma()函数是C++ STL库math.h头文件中的一个函数,用来求解x的伽玛函数值。使用时需要注意一些特殊情况,如当参数为负整数时,函数的返回值为无限大。