计算涉及卷积的数值积分

时间:2010-08-26 20:04:17

标签: r statistics maxima

我必须解决R中的以下卷积相关的数值积分问题,或者像Maxima这样的计算机代数系统 的积分[({K(Y)-l(Y)} ^ 2)DY
其中
 k(。)是标准正态分布的pdf
l(y)=积分[k(z)* k(z + y)dz](标准卷积)
z和y是标量
y的域是-inf到+ inf 函数l(。)中的积分是一个不定积分。我需要在z上添加任何额外的假设来获得这个吗? 谢谢。

4 个答案:

答案 0 :(得分:3)

以下是来自 Mathematica 的符号解决方案:

mathematica output

答案 1 :(得分:2)

R不进行符号集成,只进行数值积分。有一个Ryacas包与Yacas接触,Yacas是一个可能有帮助的象征性数学程序。

请参阅distr包以获得卷积部分的可能帮助(它将进行卷积,我只是不知道结果是否可以象征性地积累)。

您可以使用积分函数对来自distr的卷积进行数值积分,但所有参数都需要指定为数字而不是变量。

答案 2 :(得分:1)

对于记录,这是与Maxima 5.26.0解决的相同问题。

(%i2) k(u):=exp(-(1/2)*u^2)/sqrt(2*%pi) $
(%i3) integrate (k(x) * k(y + x), x, minf, inf);
(%o3) %e^-(y^2/4)/(2*sqrt(%pi))
(%i4) l(y) := ''%;
(%o4) l(y):=%e^-(y^2/4)/(2*sqrt(%pi))
(%i5) integrate ((k(y) - l(y))^2, y, minf, inf);
(%o5) ((sqrt(2)+2)*sqrt(3)-2^(5/2))/(4*sqrt(3)*sqrt(%pi))
(%i6) float (%);
(%o6) .02090706601281356

很抱歉迟到的回复。将此留在这里以防有人通过搜索找到它。

答案 3 :(得分:0)

我尝试在 matlab 中做类似的事情,在那里我对两个随机(瑞利分布)变量进行卷积。 fz_fun的结果等于fy_fun,不知道为什么。也许这里有些人知道吗?

sigma1 = 0.45;
sigma2 = 0.29;

fx_fun =@(x) [0*x(x<0) , (x(x>=0)./sigma1^2).*exp(-0.5*(x(x>=0)./sigma1).^2)];
fy_fun =@(y) [0*y(y<0) , (y(y>=0)./sigma2^2).*exp(-0.5*(y(y>=0)./sigma2).^2)];

% Rayleigh distribution of random var X,Y:
step = 0.1;
x= -2:step:3;
y= -2:step:3;

%% Convolution:
z= y;
fz = zeros(size(y));
for i = 1:length(y)
    fz_fun(i) = integral(@(z) fy_fun(y(i)).*fx_fun(z-y(i)),0,Inf); % probability density of random variable z= x+y   
end