** Next:** The L-BFGS-B algorithm
** Up:** Method
** Previous:** Method

We can reduce the computation time significantly by preconditioning by substituting , where is the inverse of the 3D helical derivative Claerbout (1999). Preconditioning with the helical derivative is a logical choice because its inverse is very close to the inverse of a gradient. However, recall that our 3D gradient operator is actually a chain of two matrices and . Instead of approximating the inverse of , we wish to approximate the inverse of . Therefore, we factor the finite difference approximation to the Laplacian with an parameter. In 2D, we factor the Laplacian with an epsilon parameter as:
| |
(16) |

To extend to 3D, we add another 2 to the center and another set of -1's in the 3rd dimension. Once factored it becomes a 3D helical derivative with a scalar weight, , applied to the time(or depth) axis. When used as a regularization operator, this has the desirable property of having only one output. We choose not to include the mask in the preconditioner because it is non-stationary.
With preconditioning, equation (13) becomes this:

| |
(17) |

We pay a significant price in memory cost for this computational time saving. To precondition this equation requires chaining together several operators thus several temporary arrays are allocated. Also, the computational expense is tied to the number of coefficients used in the filter which in 3D is typically 20.

** Next:** The L-BFGS-B algorithm
** Up:** Method
** Previous:** Method
Stanford Exploration Project

4/6/2006