我有一个类型的卷积积分:
为了数值求解这个积分,我想使用numpy.convolve()
. 现在,正如您在在线帮助中看到的那样,卷积是从 -infinity 到 +infinity 正式完成的,这意味着数组完全相互移动以进行评估 - 这不是我所需要的。我显然需要确保选择正确的卷积部分——你能否确认这是正确的方法,或者告诉我如何正确地做,(也许更重要)为什么?
res = np.convolve(J_t, dF, mode="full")[:len(dF)]
J_t 是一个分析函数,我可以根据需要评估尽可能多的点,dF 是测量数据的导数。对于这次尝试,我选择了len(J_t) = len(dF)
,因为根据我的理解,我不需要更多。
感谢您的想法,一如既往,感谢您的帮助!
背景信息(对于那些可能感兴趣的人)
这些类型的积分可用于评估物体的粘弹性行为(或电压变化期间电路的响应,如果您对此主题更熟悉的话)。对于粘弹性,J(t) 是蠕变柔量函数,F(t) 可以是随时间变化的偏应变,那么这个积分将产生偏应力。如果你现在有一个 J(t) 的形式:
J_t = lambda p, t: p[0] + p[1]*N.exp(-t/p[2])
p = [J_elastic, J_viscous, tau]
这将是“著名的”标准线性固体。积分限制是测量的开始 t_0 = 0 和感兴趣的时刻 t。