在C ++中使用Boost正交进行三重集成

时间:2019-05-28 11:12:11

标签: python c++ boost numerical-integration

我正在尝试使用Boost Gauss-Kronrod正交函数在C ++中编写一个三重积分例程,以使函数返回复杂的结果。 我没有设置Boost库,如果还有另一个库可以满足我的要求,欢迎提出更好的建议。我正在寻找scipy的替代方法,因为它不支持返回复杂值的被整数,这意味着我必须进行两次积分(复杂部分和实数部分),并且正在寻找一种更快的方法。

Scipy.integrate提供了一个tplquad函数,该函数集成了f(x,y,z)。甚至可以将积分间隔指定为lambda函数,因此可以在球形域上进行积分。 Scipy还具有nquad,可以集成n个维度。 到目前为止,由于boost集成没有args参数来允许我将其他参数传递给函数,因此我未能在C ++中编写类似的东西。在具有scipy的Quad 1D集成例程的Python中,我可以将当​​前的y,z值传递给x集成。

This answer的代码使用1D集成例程进行3D集成,显示了我在C ++中的想法。

0 个答案:

没有答案