def mofp(p,mu,Z):
return 2*p/(mu*Z)
mp=()
for p_bar in pwf:
m_p= quad(mofp,p_bar,pres,args=(mu,Z))
mp=mp+m_p
print(mp)
它显示集成值以及我不想要的集成错误
输出:
(0.0,0.0,11422187.902904231,1.268117600139921e-07, 22731910.472957242,2.537490400794864e-07,33392167.71015946,3.766894319818743e-07,45013959.614510655,4.997553439357666e-07,55986286.18601066,6.215726398696237e-07,66846147.42465983,.....)
答案 0 :(得分:1)
scipy.integrate.quad
返回包含两个值的元组。你不能禁用它,但你可以通过索引结果来忽略第二个值,只使用第一个值:
m_p = quad(mofp, p_bar, pres, args=(mu, Z))[0]
另一种方法是解压缩赋值中的值:
m_p, abserr = quad(mofp, p_bar, pres, args=(mu, Z))
如果您决定要检查错误估计值,那么可以使用abserr
。
我假设您要添加所有这些值,而不是将它们存储在元组中,因此您还需要将mp
的初始化从mp=()
更改为{{1} }。
如果您实际上想要保存所有单独的mp = 0
结果,我建议您使用类似
quad
或更简洁,列表理解:
mp = []
for p_bar in pwf:
m_p = quad(mofp, p_bar, pres, args=(mu, Z))[0]
mp.append(m_p)