Я хочу рассчитать / оценить свертку
где является плотностью и гладкая функция с компактным носителем . Свертка недоступна в закрытом виде, и мне нужно интегрировать ее численно. Мой вопрос: есть ли эффективный способ сделать это? Я хочу реализовать это в R, поэтому я хотел бы посмотреть, есть ли лучший способ, чем использовать команду . integrate()
@Glen_b Спасибо. Я думаю, что для одномерной функции прямая интеграция может быть быстрее.
—
Кук
Вы попросили эффективный способ - FFT действительно быстро ; это просто требует немного настройки (биннинг, заполнение нулями).
—
Glen_b
@Glen_b Да, я согласен, что fft действительно быстр, но предыдущий шаг может замедлить процесс. В любом случае я буду сравнивать оба метода. Спасибо.
—
Кук
Я помню, как использовал
—
whuber
convolve
для этой цели несколько раз. Простые рабочие примеры приведены по адресу stats.stackexchange.com/a/41263 , stats.stackexchange.com/a/41255 и stats.stackexchange.com/a/49444 .
?fft
), либо используюconvolve
. Подход fft требует немного больше работы для настройки, но лучше, если вам нужно что-то свернуть несколько раз. Иногда требуется определенное время, чтобы определить правильные параметры аргумента с помощью команды convolve.