Python 在C+中使用Boost求积的三重积分+; 我试图用C++的三重积分例程使用高斯的KROROBD求积函数来返回一个复杂的结果。strong>我没有设置Boost库,如果有另一个库符合我的要求,欢迎提供更好的建议。我正在寻找scipy的替代品,因为它不支持返回复数值的被积函数,这意味着我必须集成两次(复数和实部),我正在寻找一种更快的方法
Scipy.integrate提供了一个集成f(x,y,z)的Python 在C+中使用Boost求积的三重积分+; 我试图用C++的三重积分例程使用高斯的KROROBD求积函数来返回一个复杂的结果。strong>我没有设置Boost库,如果有另一个库符合我的要求,欢迎提供更好的建议。我正在寻找scipy的替代品,因为它不支持返回复数值的被积函数,这意味着我必须集成两次(复数和实部),我正在寻找一种更快的方法,python,c++,boost,numerical-integration,Python,C++,Boost,Numerical Integration,Scipy.integrate提供了一个集成f(x,y,z)的tplquad函数。积分区间甚至可以指定为lambda函数,因此可以在球面域上进行积分。Scipy还有nqad,可以集成n个维度。 到目前为止,我还没有编写类似C++的东西,因为Boost集成没有一个ARG参数,允许我将额外的参数传递给函数。在Python中,使用scipy的quad1d集成例程,我可以将当前的y,z值传递给x集成 代码显示了我在C++中想做的事情,使用了一个3D集成的1D集成例程。我不认为你需要一个代码> ARGs参
tplquad
函数。积分区间甚至可以指定为lambda函数,因此可以在球面域上进行积分。Scipy还有nqad
,可以集成n个维度。
到目前为止,我还没有编写类似C++的东西,因为Boost集成没有一个ARG参数,允许我将额外的参数传递给函数。在Python中,使用scipy的quad1d集成例程,我可以将当前的y,z值传递给x集成
代码显示了我在C++中想做的事情,使用了一个3D集成的1D集成例程。
我不认为你需要一个代码> ARGs<代码>参数。只需使用lambda就可以使用您需要的任何额外状态。如果您使用Python,请查看(我的一个项目)。它支持复数被积函数,是完全矢量化的。@Nico Schlömer我刚刚用quadpy实现了积分,我对它的速度非常满意。我认为boost不需要args
参数。只需使用lambda就可以使用您需要的任何额外状态。如果您使用Python,请查看(我的一个项目)。它支持复数被积函数,是完全矢量化的。@Nico Schlömer我刚刚用quadpy实现了积分,我对它的速度非常满意。