四元函数整合显示集成的绝对误差,如何禁用它?

2024-06-26 00:14:16 发布

您现在位置:Python中文网/ 问答频道 /正文

    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,.....)


Tags: inforreturndefbarargsmp误差
1条回答
网友
1楼 · 发布于 2024-06-26 00:14:16

^{}返回包含两个值的元组。您不能禁用它,但可以通过索引结果以仅使用第一个值来忽略第二个值:

        m_p = quad(mofp, p_bar, pres, args=(mu, Z))[0]

另一种方法是解压赋值中的值:

^{pr2}$

如果您决定检查错误估计值,那么abserr可用。在

我假设您希望将所有这些值相加,而不是将它们存储在元组中,因此还需要将mp的初始化从mp=()更改为{}。在


实际上,如果您想保存所有单独的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]

相关问题 更多 >