下面是我的Python代码:
import numpy as np
from scipy.integrate import quad
a = 0.15
def A(z):
return -a * z**2
def integrand(x, z, B):
return np.sqrt(-(2/x)*(3*x*A(x).derivative(n=2) - 3*x*(A(x).derivative(n=1))**2 + 6*A(x).derivative(n=1) + 2*B**4*x**3 + 2*B**2*x))
def Phi(z, B):
result, _ = quad(integrand, 0, z, args=(z, B))
return result
phi_values = [Phi(z, 0) for z in range(101)]
我收到“ZeroDivisionError:浮点除零”
如何解决这个问题?
我试着使用sympy,但无济于事。
1条答案
按热度按时间ijxebb2r1#
用一些疯狂的猜测来修正你的其他断裂re.导数,并添加一个ε作为你的积分下限,
但更明智的做法是分析性地划分
x
:这产生相同的结果。