0

我尝试使用 boost 库中的 zeta 函数:

double dz1 = boost::math::zeta<double> (1.0);

当我运行程序时,我得到:

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::domain_error> >'
what():  Error in function boost::math::zeta<e>: Evaluation of zeta function at pole 1
Aborted (core dumped)'

有人知道发生了什么吗?

4

1 回答 1

3

黎曼 zeta 函数是一个无限和:

在此处输入图像描述

只有当参数的实部大于 1 时,它才会收敛。如果它等于 1,则级数发散并且总和为无穷大。

因此,当您使用 1.0.0 调用该函数时,该库引发了错误。

有用的链接:

http://en.wikipedia.org/wiki/Riemann_zeta_function

http://www.boost.org/doc/libs/1_38_0/libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html

于 2013-07-21T11:16:02.293 回答