2

我想在python中计算修改后的贝塞尔函数的积分或导数。我想计算无限积分(无限制)。最近我找到了一种方法来做到这一点。您可以在下面看到一个简单函数 (x**2) 的示例:

from sympy import *
x = Symbol('x')
print integrate(x**2, x)

结果是: x^3/3 。但是当我放置一个修改过的贝塞尔函数而不是 x**2 时:

import scipy.integrate as integrate
import scipy.special as special
from scipy import integrate
from sympy import *

x = Symbol('x')
print integrate(special.iv(1,x), x)

在这种情况下,我收到此错误:

AttributeError:“模块”对象没有属性“iv”

需要说明的是,第一类贝塞尔函数的积分是零类贝塞尔函数。我希望得到:iv(0,x)

我怎么能在python中做到这一点?

4

1 回答 1

1

它可以很容易地以数字方式积分,例如从限制 1 到 10

from scipy import integrate
import scipy.special as sp
def f(x):
    return sp.iv(1,x)
I,err=integrate.quad(f,1,10)
print(I,err)

积分的结果是 2814.4505625885026,错误是 3.124667816254981e-11

于 2021-09-28T23:10:23.577 回答