Вычисление числового интеграла с использованием свертки - PullRequest
1 голос
/ 27 августа 2010

Мне нужно решить следующую проблему числового интегрирования, связанную со сверткой, в R или, возможно, системе компьютерной алгебры, такой как Maxima.
Интеграл [({к (у) -l (у)} ^ 2) ду]
где
k (.) - это pdf стандартного нормального распределения
l (y) = интеграл [k (z) * k (z + y) dz] (стандартная свертка)
z и y - скаляры
Домен y - от -inf до + inf.
Интеграл по функции l (.) Является неопределенным интегралом. Нужно ли добавлять какие-либо дополнительные предположения для z, чтобы получить это?
Спасибо.

Ответы [ 3 ]

3 голосов
/ 27 августа 2010

Вот символическое решение от Mathematica :

mathematica output

2 голосов
/ 27 августа 2010

R не делает символьную интеграцию, только числовую интеграцию. Существует пакет Ryacas, который взаимодействует с Yacas, символической математической программой, которая может помочь.

См. Пакет distr для возможной помощи с частями свертки (это сделает свертки, я просто не знаю, будет ли результат символически интегрируемым).

Вы можете численно интегрировать свертки из distr, используя функцию интегрирования, но все параметры необходимо указывать в виде чисел, а не переменных.

1 голос
/ 31 мая 2012

Для справки, та же проблема решена с 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

Извините за поздний ответ. Оставьте это здесь на случай, если кто-то найдет его в поиске.

...