Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将多个附加参数传递给numba cfunc,并将其作为低级别可调用传递给scipy.integrate.quad_Python_Scipy_Numba - Fatal编程技术网

Python 如何将多个附加参数传递给numba cfunc,并将其作为低级别可调用传递给scipy.integrate.quad

Python 如何将多个附加参数传递给numba cfunc,并将其作为低级别可调用传递给scipy.integrate.quad,python,scipy,numba,Python,Scipy,Numba,我试图复制第1段中描述的技术。另一个问题的选定答案的: 但是,我不知道如何修改实现,使xx[1]是一个浮点数组,而不是唯一的浮点。我通过将代码修改为: 将numpy导入为np 导入scipy.integrate作为si 进口麻木 来自numba进口cfunc 从numba.types导入intc、CPointer和float64 从scipy导入低级可调用 def jit_被积函数(被积函数): jitted_函数=numba.jit(被积函数,nopython=True) @cfunc(flo

我试图复制第1段中描述的技术。另一个问题的选定答案的:


但是,我不知道如何修改实现,使xx[1]是一个浮点数组,而不是唯一的浮点。

我通过将代码修改为:

将numpy导入为np
导入scipy.integrate作为si
进口麻木
来自numba进口cfunc
从numba.types导入intc、CPointer和float64
从scipy导入低级可调用
def jit_被积函数(被积函数):
jitted_函数=numba.jit(被积函数,nopython=True)
@cfunc(float64(intc,CPointer(float64)))
def包装(n,xx):
值=carray(xx,n)
返回jitted_函数(值)
返回低级别可调用(wrapped.ctypes)
@jit_被积函数
def被积函数(args):
t=args[0]
a=args[1]
返回np.exp(-t/a)/t**2
def do_集成(func,a):
"""
将给定函数从1.0集成到+inf,并使用附加参数a。
"""
返回si.quad(func,1,np.inf,args=(a,))

我将代码修改为:

将numpy导入为np
导入scipy.integrate作为si
进口麻木
来自numba进口cfunc
从numba.types导入intc、CPointer和float64
从scipy导入低级可调用
def jit_被积函数(被积函数):
jitted_函数=numba.jit(被积函数,nopython=True)
@cfunc(float64(intc,CPointer(float64)))
def包装(n,xx):
值=carray(xx,n)
返回jitted_函数(值)
返回低级别可调用(wrapped.ctypes)
@jit_被积函数
def被积函数(args):
t=args[0]
a=args[1]
返回np.exp(-t/a)/t**2
def do_集成(func,a):
"""
将给定函数从1.0集成到+inf,并使用附加参数a。
"""
返回si.quad(func,1,np.inf,args=(a,))

我将尝试了解一下这一点,但从本质上讲,xx[1]应该是一个唯一的浮点,然后是xx[2]、xx[3]、xx[4]等数组中的其余部分。我已经发布了实现这一点的方法。如果你不介意的话,你可以测试这个问题并将其添加到你的答案中,这样我们就可以关闭/删除我的问题。我会保留这个问题/答案的原样。在另一个答案中有相当多的内容需要理解,所以我宁愿将其单独保存。或者将这个答案作为一个概括添加到另一个问题中?我将尝试看看这个问题,但本质上,xx[1]应该是一个唯一的浮点,然后是xx[2]、xx[3]、xx[4]等中的数组的其余部分。我已经发布了我的工作方式。如果你不介意的话,你可以测试这个问题并将其添加到你的答案中,这样我们就可以关闭/删除我的问题。我会保留这个问题/答案的原样。另一个问题的答案有很多地方需要考虑,所以我宁愿把它分开。或者把这个答案作为一个概括添加到另一个问题中?这正是我想要建议的。不错,这正是我想建议的。不错。