C++:使用升压计算简单的定积分

C++: Using boost to calculate simple definite integrals

本文关键字:简单 计算 C++      更新时间:2023-10-16

有人知道如何使用 Boost 求解简单的定积分吗?

例如 -x^2 + 1 从 -1 到 1?

我尝试阅读提升文档,但我似乎无法弄清楚如何正确传递该函数。

谢谢

编辑:到目前为止我的尝试

using namespace boost::math;
typename function_type; // this is probably wrong
function_type f     // and this
{
    return -x*x+1;
};
int main(int, char**)
{
    const double val  =
    integral(0.0,
    1,  
    0.001,
    f);        // my question is, what do I put in here? How do I format f.
}

首先要观察的是,您展示的 Boost 库实际上没有计算积分的函数。这可能会让你走上错误的轨道。

该库用于多精度浮点运算,其中一个示例恰好是积分的简单近似,每个黎曼。这个例子的要点是黎曼积分非常简单,你可以用它们来演示一个花哨的库。

在您的情况下,您甚至不需要费心传递函数。你可以直接写出黎曼方法替换-x^2 + 1

也就是说,将其作为参数传递的典型C++方法是 [](double x) { return -x*x+1.0;} .这是一个未命名的函数或 lambda。它不需要自己的名称,因为参数已经有一个名称。