我必须解决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上添加任何额外的假设来获得这个吗?
谢谢。
答案 0 :(得分:3)
以下是来自 Mathematica 的符号解决方案:
答案 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