我正在尝试使用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 ++中的想法。