与Julia的累积集成选项

与Julia的累积集成选项,julia,numerical-integration,Julia,Numerical Integration,我有两个一维数组,其中我想计算1个数组相对于第2个数组指定的标量间距的近似累积积分。MATLAB有一个名为cumtrapz的函数来处理此场景。有没有类似的东西,我可以尝试在朱莉娅内部完成同样的事情 预期结果是另一个1-D数组,每个元素的积分都会计算出来。Julia有一个数值积分包(参见),它定义了cumul_积分(X,Y),默认情况下使用梯形规则 但是,如果这个包不存在,您可以轻松地自己编写函数,并拥有一个非常高效的开箱即用的实现,因为循环不会带来性能损失 编辑:添加了一个@assert来检查匹

我有两个一维数组,其中我想计算1个数组相对于第2个数组指定的标量间距的近似累积积分。MATLAB有一个名为cumtrapz的函数来处理此场景。有没有类似的东西,我可以尝试在朱莉娅内部完成同样的事情


预期结果是另一个1-D数组,每个元素的积分都会计算出来。

Julia有一个数值积分包(参见),它定义了
cumul_积分(X,Y)
,默认情况下使用梯形规则

但是,如果这个包不存在,您可以轻松地自己编写函数,并拥有一个非常高效的开箱即用的实现,因为循环不会带来性能损失

编辑:添加了一个@assert来检查匹配的向量维度,并修复了一个打字错误

function cumtrapz(X::T, Y::T) where {T <: AbstractVector}
  # Check matching vector length
  @assert length(X) == length(Y)
  # Initialize Output
  out = similar(X)
  out[1] = 0
  # Iterate over arrays
  for i in 2:length(X)
    out[i] = out[i-1] + 0.5*(X[i] - X[i-1])*(Y[i] + Y[i-1])
  end
  # Return output
  out
end
函数cumtrapz(X::T,Y::T),其中{T