我必须在 R 或者像 Maxima 这样的计算机代数系统中解决以下与卷积相关的数值积分问题。
Integral[({k(y)-l(y)}^2)dy]
其中
k(.) 是标准正态分布的 pdf
l(y)=integral[k(z)*k(z+y) dz](标准卷积)
z和y是标量y
的域是-inf到+inf。
函数 l(.) 中的积分是不定积分。我需要在 z 上添加任何额外的假设来获得这个吗?
谢谢你。
问问题
1354 次
4 回答
3
这是Mathematica的一个象征性解决方案:
于 2010-08-27T07:52:28.800 回答
2
R不做符号积分,只是数值积分。有与 Yacas 接口的 Ryacas 包,这是一个可能有帮助的符号数学程序。
有关卷积部分的可能帮助,请参阅 distr 包(它会进行卷积,我只是不知道结果是否可以符号积分)。
您可以使用积分函数对来自 distr 的卷积进行数值积分,但所有参数都需要指定为数字而不是变量。
于 2010-08-26T21:07:25.863 回答
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
这么晚才回复很抱歉。将其留在这里以防有人通过搜索找到它。
于 2012-05-31T05:23:57.170 回答
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
于 2021-01-06T16:21:57.537 回答