Cumulative Integration Options With Julia
我有两个一维数组,我想在其中计算 1 个数组相对于第二个数组指定的标量间距的近似累积积分。 MATLAB 有一个名为 cumtrapz 的函数来处理这种情况。有没有类似的东西我可以在 Julia 中尝试完成同样的事情?
预期的结果是另一个一维数组,每个元素都计算了积分。
有一个用于 Julia 的数值积分包(见链接),它定义了
但是,如果这个包不存在,您可以轻松地自己编写函数,并且开箱即用地实现非常有效的实现,因为循环不会带来性能损失。
编辑:添加了一个@assert 来检查匹配的向量尺寸并修复了一个错字。
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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 |