如何使用具有其他功能的python解决第一顺序deferential?

时间:2017-07-04 21:00:50

标签: python python-3.x double integration sympy

我的问题有点像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的内容:

enter image description here

这是我试图预先形成以获得方程12的整体:

enter image description here

非常感谢任何帮助。

1 个答案:

答案 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来引用无穷大,而不是创建相同的浮点表示。

抱歉,我无法在这里进行测试。希望这些建议能帮助您走上正轨! : - )