我的问题有点像this 这个one结合但不完全。无论如何,我想要做的是使用sympy获取符号答案的函数的双重积分。问题是在导数元素和积分内部有2个其他函数,我不知道如何证明它们是函数而不仅仅是常量。这是我到目前为止所做的。
from sympy import *
import sympy as sp
sp.init_printing()
x=sp.Symbol('x') #a and k are constants
z=sp.Symbol('z')
k=sp.Symbol('k')
f=sp.Function('f')(x)
l=sp.Function('l')(x)
def dN(x,z):
return -N*f*z**(a-2)
def b(x,z):
return l*x*dN
def c(x,z):
return z*l*x*dN
res=integrate(b,(z,k,float('inf')),(x,0,float('inf')))
sp.pprint (res)
#print(b)
这就是我用于dN的内容:
这是我试图预先形成以获得方程12的整体:
非常感谢任何帮助。
答案 0 :(得分:1)
看起来在sympy函数和python函数之间可能存在一些混淆。定义b(x, z)
时,它是一个python函数。当您在集成行中引用b
时,您应该提供函数所需的变量,因此integrate(b(x, z)...)
。这同样适用于函数dN
中调用的b
和没有args的c
。 (它应该是...*dN(x, z)
。在您定义的dN功能中,您引用N
但不要定义它。我建议您在顶部定义N = sp.Function('N')(x, z)
。最后,您可以使用sp.oo
来引用无穷大,而不是创建相同的浮点表示。
抱歉,我无法在这里进行测试。希望这些建议能帮助您走上正轨! : - )