我已定义此功能:
def xintegral(x,k,z,xdot):
f=np.exp((x-xdot)**2*k/(2*z)*1j)
return f
我想在这个过程的func位置插入这个函数:
def simpson(func,mini,maxi,N):
sum=0
h=(maxi-mini)/N
even=mini+2*h
odd=mini+h
for i in range(N//2-1):
sum+=func(even)*2
even+=2*h
for i in range(N//2):
sum+=func(odd)*4
odd+=2*h
sum=(sum+(func(mini)+func(maxi)))*h/3
return sum
我想将xdot变量用作函数xintegral。所以我试着这样写:simpson(xintegral(x,k,z,xdot),mini,maxi,N) 但我希望变量是xdot。变量odd,mini,maxi可以代替xdot吗?我怎么能这样做?
答案 0 :(得分:2)
您可以使用部分应用程序执行此操作。这将创建一个函数p_xintegral
,它将采用一个参数。该单个参数将分配给xdot
xintegral
x
,y
,z
和from functools import partial
p_xintegral = partial(xintegral, x, y, z)
在您执行部分申请时确定:< / p>
simpson(p_xintegral, mini, maxi, N)
因此,您应该可以致电package.json
。
答案 1 :(得分:0)
我认为这就是你想要的。否则你的f不是函数
def xintegral(x,k,z,xdot):
f=lambda j:np.exp((x-xdot)**2*k/(2*z)*1j)
return f