1

伙计们!对此提前表示歉意。

假设我想对两个函数(f 和 g)进行卷积,一个带有 breit-wigner 的高斯函数:

f[x_] := 1/(Sqrt[2 \[Pi]] \[Sigma])Exp[-(1/2) ((x - \[Mu])/\[Sigma])^2];
g[x_] := 1/\[Pi] (\[Gamma]/((x - \[Mu])^2 + \[Gamma]^2));

一种方法是使用 Convolve,如:

Convolve[f[x],g[x],x,y];

但这给出了:

(\[Gamma] Convolve[E^(-((x - \[Mu])^2/(2 \[Sigma]^2))),1/(\[Gamma]^2 + (x - \[Mu])^2), x, y])/(Sqrt[2] \[Pi]^(3/2) \[Sigma])

,这意味着它无法进行卷积。

然后我尝试了积分(卷积的定义):

Integrate[f[x]*g[y - x], {x, 0, y}, Assuptions->{x > 0, y > 0}]

但同样,它无法集成。我知道有些函数无法解析积分,但在我看来,每当我进入卷积时,我都会发现另一个无法积分的函数。

数值积分是在 Mathematica 中进行卷积的唯一方法(除了示例中的那些简单函数),还是我做错了什么?

我的目标是将水晶球与 breit-weigner 进行卷积。CB类似于:

Piecewise[{{norm*Exp[-(1/2) ((x - \[Mu])/\[Sigma])^2], (
x - \[Mu])/\[Sigma] > -\[Alpha]},
{norm*(n/Abs[\[Alpha]])^n*
 Exp[-(1/2) \[Alpha]^2]*((n/Abs[\[Alpha]] - Abs[\[Alpha]]) - (
   x - \[Mu])/\[Sigma])^-n, (x - \[Mu])/\[Sigma] <= -\[Alpha]}}]

我已经在 C++ 中完成了这项工作,但我想我在 Mathematica 中尝试过它并用它来拟合一些数据。所以请告诉我是否必须在 Mathematica 中进行数值积分例程,或者分析积分还有更多内容。

谢谢你,阿德里安

4

1 回答 1

0

我稍微简化了你的功能(它可能看起来很小,但它的精神很大)。在这种情况下,我将 [Mu] 设置为零。

\[Mu] = 0;

现在我们有:

f[x_] := 1/(Sqrt[2 \[Pi]] \[Sigma]) Exp[-(1/2) ((x)/\[Sigma])^2];
g[x_] := 1/\[Pi] (\[Gamma]/((x)^2 + \[Gamma]^2));

要求 Mathematica 进行卷积:

Convolve[f[x], g[x], x, y]
-((I E^(-((y + I \[Gamma])^2/(2 \[Sigma]^2))) (E^((2 I y \[Gamma])/\[Sigma]^2) \[Pi] Erfi[((y - I \[Gamma]) Sqrt[1/\[Sigma]^2])/Sqrt[2]] - \[Pi] Erfi[((y + I \[Gamma]) Sqrt[1/\[Sigma]^2])/Sqrt[2]] - Log[-y - I \[Gamma]] - E^((2 I y \[Gamma])/\[Sigma]^2) Log[y - I \[Gamma]] + E^((2 I y \[Gamma])/\[Sigma]^2) Log[-y + I \[Gamma]] + Log[y + I \[Gamma]]))/(2 Sqrt[2] \[Pi]^(3/2) \[Sigma]))

虽然这不是您所要求的,但它表明如果您的函数稍微简单一点,Mathematica 将能够进行集成。就您的问题而言,除非我们知道有关 [Mu] 的更多信息,否则我认为 Convolve 的结果不具有封闭形式。您可能可以向 math.stackexchange.com 的人询问您的积分,看看是否有人提出了一个封闭的表格。

于 2013-05-28T06:25:10.017 回答