Duhamel积分的数值评估

计算科学 matlab 一体化 时间积分 卷积
2021-11-30 13:49:28

我正在尝试对以下 Duhamel 积分进行数值评估:

x=1ωd0tx¨g(τ)eζωn(tτ)sin(ωd(tτ))dτ
在哪里ωd,ζωn是常数。

根据我们的数据,x¨g(ti)在每个离散时间增量上给出ti,但我很难计算x(ti),或者 Duhamel 的积分,对吗?

在我的 MATLAB 脚本中,我尝试存储eζωn(ti)sin(ωd(ti))到一个数组H,然后是的数值x¨(ti)为了i=1,N存储在另一个数组中xdd(与 相同的维度H)。然后我尝试在 MATLAB 中使用卷积函数,即:

X = conv(xdd, H)

但是,看起来我的尝试并没有奏效。我的问题以及我尝试过的问题是:

  1. 文档中,得到的长度为Xlength(xdd) + length(H) - 1但不应该Xxdd(用于存储x¨)? 我希望在每个值x¨, 会有一个对应的值x. 因此,Xxdd应该具有相同的维度。但这里似乎不是这样......
  2. 我还尝试了'same'上面 MATLAB 文档中的形状选项,但这似乎也没有给我正确的答案。我得到的结果X的频率比我们在分析上所期望的要高得多。
  3. 这是得出数值解的正确策略吗x?
0个回答
没有发现任何回复~