Fourier Transform input data Loop over frequency { Initialize wave at z=0 Factor wave equation for this w/v Recursively divide input data by factor Fourier Transform back to time-domain Sum into output }Incorporating this code into the Wavemovie program () provides a laboratory for testing the new algorithm.
Figure compares the results of the new extrapolation procedure with the conventional Crank-Nicolson solution to the 45 equation. The new approach has little dispersion since we are using a rational approximation (the `one-sixth trick') to the Laplacian on the vertical and horizontal axes. In addition, the new factorization retains accuracy up to 90. The high dip, evanescent energy in the 45 movie, propagates correctly in the new approach.
vs45
Figure 3 Comparison of the 45 wave equation (left) with the helical factorization of the Helmholtz equation (right). |
Figure compares different value of the `one-sixth' parameter, . For this application, the optimal value seems to be .
Figure compares different finite-difference filters. corresponds to the conventional 5-point filter, while corresponds to a rotated 5-point filter. Values in the range correspond to 9-point filters that are linear combinations of the above. Best results are obtained with . The impulse response with only contains energy on every second grid point, since the rotated filter only propagates energy diagonally: as in the game of a chess, if a bishop starts on a white square, it always stays on white.