我正在尝试绘制一个特殊(例如贝塞尔)函数的集成,我的最小代码如下。
#!/usr/bin/env python
import matplotlib.pyplot as plt
import numpy as np
import scipy.integrate as integrate
import scipy.special as sp
from scipy.special import jn
#x = np.arange(0.0, 10.0, 0.1)
U = np.linspace(0,10,1000)
#Delta = U**2
#Delta = U-4+8*integrate.quad(lambda x: sp.jv(1,x)/(x*(1.0+np.exp(U*x*0.5))), 0, 100)
Delta = U-4+8*integrate.quad(lambda x: jn(1,x)/(x*(1.0+np.exp(U*x*0.5))), 0.1, 1000)
plt.plot(U,Delta)
plt.xlabel('U')
plt.ylabel('$\Delta$')
plt.show()
但是,这给了我几条错误消息,说明该函数很容易在Mathematicaquadpack.error: Supplied function does not return a valid float
中绘制。Python的贝塞尔函数有限制吗?
我已使用此文档进行绘图。