An adjoint operator is not the same as an inverse operator.
Most people think of migration as the *inverse* of modeling,
but mathematically it is the *adjoint* of modeling.
In many wave-propagation problems,
and are nearly the same.
A formula for (from (14)) is
.So the difference between and is
in the factor .Theoreticians that work in the continuum
find something like in the form of
a weighting function in the physical domain or
a weighting function in the spectral domain or both.
Since it is merely a weighting function, it
is not very exciting to practitioners who are accustomed
to weighting functions in both domains for other purposes,
principally for enhancing data display.
Indeed, it could be a pitfall to introduce
the weighting function of inversion, because
it could interfere with the data display.
The opportunity that I see for inversion lies
in practice where
is quite far from an identity matrix
for another reason--that data is not a continuum
and has aliasing, truncation, and noise.

A curious aspect of migration arises from the
reflection **amplitude versus offset** (**AVO**) along the hyperbola.
The effect of changing AVO is to change the dip filtering.
Notice that effort expended to get the correct AVO
in the modeling operator affects the migration operator
(the adjoint)
without necessarily making it closer to the inverse.
It is a **pitfall** to imagine that carefully constructing the correct
amplitude versus offset in a diffraction operator will make
the corresponding migration operator more effective.
The question of whether an inverse operator
is better than an adjoint has no simple answer; its answer
depends on circumstances.
So the phrase ``true amplitude migration''
has questionable meaning.

You might look at the Kirchhoff migration code above and ask,
what is the modelling matrix that is transposed?
We don't see it.
We started by defining ``adjoint operator'' as the transpose of a matrix,
but now we seem to be defining it by a certain programming style.
The abstract vector for Kirchhoff migration
is packed with data values from a two-dimensional (*t*,*x*)-plane.
The abstract matrix is hard to visualize.
How can we know whether we have defined the adjoint operator correctly?
The answer is given next by the dot-product test.

10/21/1998