5
$\begingroup$

I have to generate a homogeneous Gaussian Field with given correlation function of each points on a three dimension grid (500 x 500 x 500). A Cholesky decomposition method fails because of huge number of points so I need to find another method. Could you suggest me the best way to generation this Gaussian Field?

Thanks,

$\endgroup$
1
  • $\begingroup$ You can look into spectral methods. Since your field is stationary, you can apply a Fourier transform on the autocorrelation to get the spectrum. Then, you scale complex white noise by the square root of the the spectrum (which is real) and voila. Equations: $S(f)=\mathcal F R(s)$, $H(f)=\sqrt{S(f)}$, $X = \mathcal F ^{-1} (N\cdot H ) = n * \mathcal F ^{-1} H$, $R_X(s)=\mathcal F ^{-1} S_X(f) = \mathcal F ^{-1} |H(f)|^2 = R(s)$, where $R$, $S$ denote autocorrelation and spectrum, $n$ and $N$ are white noise and its Fourier transform. You would need to figure out extending to more dimensions. $\endgroup$
    – yoki
    Jun 10 '16 at 22:55
1
$\begingroup$

Yes this is too big for Cholesky! If you generate on a regular grid, then the spectral methods are the best. They are kind of hard to set up. Fortunately, there are several R packages, for example, RandomFields.

$\endgroup$
1
  • $\begingroup$ Thanks for your answer. Any packages for Python? $\endgroup$ May 20 '14 at 5:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.