【问题标题】:Numerical integration for unevenly spaced intervals, Python不均匀间隔的数值积分,Python
【发布时间】:2015-07-08 14:38:18
【问题描述】:

我想对给定的一组样本进行数值积分。

假设我有 x 不均匀间隔的区域y = f(x) 是我想要集成的功能。

    x       y=f(x)
   0.1      10.5
   1.2      2.0
   3.7      11.0
   7.0      4.0

现在我可以这样使用Simpon's rule from scipy.integrate 吗?

from scipy.integrate import simps

I = simps(y,x)

即使我的 x 值间隔不均匀?

【问题讨论】:

  • 我认为您只是将yx 参数颠倒了,它应该是simps(y, x),否则它应该可以工作。不是吗?
  • @tom10: 抱歉,打错了!是这样的吗?
  • Tom 上面所说的,y 应该在 x 之前。但是使用辛普森规则,你必须有均匀的间隔才能让它起作用,而且它们必须均匀分布。因为它使用抛物线计算积分。
  • @SeanStinehour:对于不均匀的间隔,我应该使用哪种方法?
  • 你可以做的是使用梯形规则的变体(我不知道 Python 是否有它)AT = ½ (y0 + y1)Δx1 + ½ (y1 + y2)Δx2 + ...... + ½ (yn -1 + yn)Δxn。例如,½ (10.5 + 2.0)1.1 +...

标签: python scipy numerical-integration simpsons-rule


【解决方案1】:

对于数值积分,一旦我们拥有x 和函数y=f(x) 的值,就可以遵循上述过程。

也可以使用numpy 中的梯形规则,例如:

result = np.trapz(y,x)

【讨论】:

    猜你喜欢
    • 2013-09-08
    • 1970-01-01
    • 2014-08-22
    • 2014-09-17
    • 2015-09-22
    • 1970-01-01
    • 2018-04-26
    • 2013-08-24
    • 1970-01-01
    相关资源
    最近更新 更多