簡體   English   中英

scipy.integrate中的quad函數顯示積分的絕對錯誤,如何禁用該錯誤?

[英]The quad function in scipy.integrate displays the absolute error of the integration, how do I disable that?

    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.5237490400794864e-07,33929167.71015946,3.766894319818743e-07,45013959.614510655,4.997553439357666e-07,55986286.18601066,6.215726398696237e-07,66846147.42465983

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=()更改為mp = 0


實際上,如果您要保存所有單獨的quad結果,我建議使用類似

mp = []
for p_bar in pwf:
    m_p = quad(mofp, p_bar, pres, args=(mu, Z))[0]
    mp.append(m_p)

或更簡潔地說,具有列表理解:

mp = [quad(mofp, p_bar, pres, args=(mu, Z))[0] for p_bar in pwf]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM