Verimli evrişim (R cinsinden)


9

Evrişimi hesaplamak / değerlendirmek istiyorum

g(x)=∫Df(x−t)ϕ(t)dt,

burada bir yoğunluktur ve , kompakt destek ile düzgün bir fonksiyondur . Evrişim kapalı formda mevcut değildir ve bunu sayısal olarak entegre etmem gerekiyor. Sorum şu: Bunu yapmanın etkili bir yolu var mı? R'de uygulamak istiyorum, bu yüzden komutu kullanmaktan daha iyi bir yol olup olmadığını görmek istiyorum .fϕD integrate()


2
Koşullara bağlı olarak, genellikle 2 bölmenin büyük bir gücüne bağlı kalıyorum ve hızlı fourier dönüşümünü ( ?fft) kullanıyorum veya kullanıyorum convolve. Fft yaklaşımı kurmak biraz daha fazla iş gerektirir, ancak birkaç kez bir şeylerle kıvrılmanız gerekiyorsa daha iyidir. Bazen doğru argüman ayarlarını konvolve etmek biraz zaman alabilir.
— Glen_b-Monica

@Glen_b Teşekkürler. Tek değişkenli fonksiyon içinf, Doğrudan entegrasyonun daha hızlı olabileceğini düşünüyorum.
— Cook

2
Etkili bir yol istediniz - fft gerçekten hızlı ; sadece biraz kurulum gerektirir (binning, sıfırlarla doldurma).
— Glen_b-Monica

@Glen_b Evet, fft'nin gerçekten hızlı olduğuna katılıyorum, ancak bir önceki adım süreci yavaşlatabilir. Zaten her iki yöntemi de karşılaştıracağım. Teşekkür ederim.
— Cook

convolveBu amaçla birkaç kez kullandığımı hatırlıyorum . Basit çalışma örnekleri stats.stackexchange.com/a/41263 , stats.stackexchange.com/a/41255 ve stats.stackexchange.com/a/49444 adreslerinde görünür .
— whuber

Yanıtlar:


9

Bunun için özel R paketlerine baktınız mı? Gibi convolve, https://stat.ethz.ch/R-manual/R-devel/library/stats/html/convolve.html


Teşekkürler. Düzgün anlıyorsam, bu paket iki işlev yerine sayısal dizileri döndürmek içindir. Bir şey mi kaçırıyorum?
— Cook

2
Peki, bu paketi kullanmadım, ama R'de evrişim yapmaya çalışıyorsanız, temel olarak işlevlerinizdeki değerler olacak iki sayısal diziye sahip olacaksınız, değil mi? R'nin fonksiyon tanımı ile çalışmanıza izin verdiğini sanmıyorum.
— jmnavarro
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.