【问题标题】:integrating an array using np trapz使用 np trapz 集成数组
【发布时间】:2020-11-27 01:40:35
【问题描述】:

我一直在使用 np.trapz 在数组上进行集成,直到现在还没有遇到任何问题。我得到了一个面积明显小于 1 的分布,因为它的最大值为 0.16,分布的宽度大约为 6,但似乎返回分布下方的面积大于 60。

这是我的代码:

import numpy as np
import matplotlib.pyplot as plt
data = np.load('dist.npy')
thetavals=np.linspace(0,2*np.pi,1000)
plt.xlabel(r'$\theta$')
plt.ylabel(r'$P(\theta)$')
plt.plot(thetavals,data[0:1000])
plt.show()

integralvalue=np.trapz(data)
print('The integral of this distribution results in: ',integralvalue)

【问题讨论】:

    标签: python numpy integration simpsons-rule


    【解决方案1】:

    使用 numpy trapz,在不选择 x 参数的情况下,假设我们的分布间距是均匀分布的,但是这些应该与最初形成分布的 theta 值相关,使用以下代码:

    import numpy as np
    import matplotlib.pyplot as plt
    data = np.load('dist.npy')
    thetavals=np.linspace(0,2*np.pi,1001)
    plt.xlabel(r'$\theta$')
    plt.ylabel(r'$P(\theta)$')
    plt.plot(thetavals,data)
    plt.show()
    
    integralvalue=np.trapz(data,thetavals)
    print('The integral of this distribution results in: ',integralvalue)
    

    如预期的那样,得到一个小于 1 的数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-12
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      • 1970-01-01
      • 2021-03-02
      • 2022-06-11
      相关资源
      最近更新 更多