0

我的目标是使用 MuPAD 计算函数 rho(eta) 的 n 倍自卷积,其中 eta > 0。(背景是由许多相同子系统组成的系统的能量密度。)我试图从一个简单的案例开始,但我已经陷入困境:

对于 eta > 0,我将 rho(eta) 定义为恒定为 1,因此它是一个 Heaviside 函数:

rho := eta -> heaviside(eta)

我使用双积分和 Dirac delta 函数实现了 2 倍自卷积:

int(int(rho(etaA) * rho(etaB) * dirac(etaA + etaB - energy), etaB = 0..infinity), etaA=0..infinity)

结果

因此 MuPAD 甚至无法简化对 delta 函数的积分并获得正常的卷积表达式;不知道这里的限制是怎么回事。

如果我直接用自身输入函数的正常卷积表达式

int(rho(etaA) *  rho(energy - etaA), etaA = 0..infinity)

我明白了

再次有一个限制(可以简化为 0,或者不能吗?)。第二项实际上接近正确答案,heaviside只是解释了energy可能是否定的可能性。好的,所以我告诉 MuPAD 这energy是肯定的:

int(rho(etaA) *  rho(energy - etaA), etaA = 0..infinity) assuming energy > 0

现在 MuPAD 只是给了我原来不变的积分:

好吧,也许使用heaviside是问题所在,而且无论如何都不是绝对必要的,因为我通过积分限制实现了 eta > 0 的约束。所以我重新定义

rho := eta -> 1

并将公式与 delta 函数一起使用,再加上energy积极的信息:

int(int(rho(etaA) * rho(etaB) * dirac(etaA + etaB - energy), etaB = 0..infinity), etaA=0..infinity) assuming energy > 0

你猜怎么着?现在 MuPAD自己返回一个重载:

这是正确的——但它为什么不评估这个积分呢?这并不难,不是吗?

所以请任何人告诉我:为什么会发生这一切?我怎样才能让它发挥作用?

4

0 回答 0