A plane wave in a wave field *u*(*t*,*x*)=*u*(*t*-*px*) with stepout *p*
can be extinguished with a partial differential operator,
which we write as a matrix , where

(25) | ||

(26) |

We need a method of discretization
that allows the mesh for *du*/*dt* to overlay exactly *du*/*dx*.
To this end
I chose to represent
the *t*-derivative by

(27) |

The program `wavekill1()` applies the operator
,which can be specialized to the operators
,
,.

# vv = (aa Dx + pp Dt) uu # subroutine wavekill1( aa, pp, n1,n2,uu, vv ) integer i1,i2, n1,n2 real aa, pp, s11, s12, s21, s22, uu(n1,n2), vv( n1-1, n2-1) s11 = -aa-pp; s12 = aa-pp s21 = -aa+pp; s22 = aa+pp call null( vv,(n1-1)*(n2-1)) do i1= 1, n1-1 { # vv is one point shorter than uu on both axes. do i2= 1, n2-1 { vv(i1,i2) = vv(i1,i2) + uu(i1 ,i2) * s11 + uu(i1 ,i2+1) * s12 + uu(i1+1,i2) * s21 + uu(i1+1,i2+1) * s22 }} return; endI carefully arranged the side boundaries so that the filter never runs off the sides of the data. Thus the output is shorter than the input by one point on both the

When only one wave is present and the data is adequately sampled,
then finding the best value of *p* is a single-parameter,
linear least-squares problem.
Let be an abstract vector whose components are values of
taken on a mesh in (*t*,*x*).
Likewise, let contain .Since we want ,we minimize the quadratic function of *p*,

(28) |

(29) |

(30) |

(31) |

# measure coherency and dip, and compute residual res = (Dx + p Dt) uu # subroutine puck ( n1, n2, uu, coh, pp, res ) integer i1, i2, n1, n2 real uu(n1,n2), res(n1,n2), xx, xt, tt, coh, pp temporary real dx(n1,n2-1), dt(n1-1,n2-1) call wavekill1( 1., 0., n1,n2 , uu, dx) call wavekill1( 0., 1., n1,n2 , uu, dt) xx = 1.e-30; tt = 1.e-30; xt = 0. do i1= 1, n1-1 { do i2= 1, n2-1 { xt = xt + dt(i1,i2) * dx(i1,i2) tt = tt + dt(i1,i2) * dt(i1,i2) xx = xx + dx(i1,i2) * dx(i1,i2) }} coh = sqrt((xt/tt)*(xt/xx)) pp = - xt/tt call wavekill1( 1., pp, n1,n2 , uu, res) return; end

Finally and parenthetically,
an undesirable feature of the
plane-wave destructor method
is that the residual has no particular relation to the data ,unlike in time-series analysis--see chapter .
Another disadvantage, well known to people who routinely work
with finite-difference solutions to partial differential equations,
is that for short wavelengths
a difference operator is not the same as a differential operator;
thereby the numerical value of *p* is biased.

10/21/1998