Last updated: 2017-11-07
Code version: 2c05d59
Theoretically, the Dirac delta function \(\delta_z\) can be approximated by infinite orders of Gaussian derivatives as follows,
\[
\delta_z = \sum\limits_{l = 0}^\infty \frac{1}{\sqrt{l!}}h_l\left(z\right)
\left(\frac{1}{\sqrt{l!}}h_l\left(x\right)\varphi(x)\right) \ .
\] Previously with the EQL::hermite
function, it takes a very long time to evaluate an Hermite polynomial of a high degree, yet the PolynomF
package provides a computationally efficient way to check if higher order Gaussian derivatives indeed approximate \(\delta_z\) at any \(z\).
With finite \(L\), we are looking at
\[ f_L\left(x\right) := \sum\limits_{l = 0}^L \frac{1}{\sqrt{l!}}h_l\left(z\right) \left( \frac{1}{\sqrt{l!}}h_l\left(x\right) \varphi\left(x\right) \right) \] and
\[ F_L\left(x\right) := \Phi\left(x\right) - \sum\limits_{l = 1}^L \frac{1}{\sqrt{l}} \frac{1}{\sqrt{l!}}h_l\left(z\right) \left( \frac{1}{\sqrt{\left(l - 1\right)!}}h_{l - 1}\left(x\right)\varphi\left(x\right)\right) \ . \] Given any \(z\), \(f_L\) should get closer to \(\delta_z\) and \(F_L\) to the \(0\)-\(1\) step function, as \(L\to\infty\).
Numerical instability.
sessionInfo()
R version 3.4.2 (2017-09-28)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Sierra 10.12.6
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.4.2 backports_1.1.1 magrittr_1.5 rprojroot_1.2
[5] tools_3.4.2 htmltools_0.3.6 yaml_2.1.14 Rcpp_0.12.13
[9] stringi_1.1.5 rmarkdown_1.6 knitr_1.17 git2r_0.19.0
[13] stringr_1.2.0 digest_0.6.12 evaluate_0.10.1
This R Markdown site was created with workflowr