Geophysical modeling calculations
generally use linear operators that predict data from models.
Our usual task is to find the inverse of these calculations,
i.e., to find models (or make maps) from the data.
Logically, the adjoint is the first step
and a part of all subsequent steps in this **inversion** process.
Surprisingly, in practice the adjoint sometimes does a better job
than the inverse!
This is because the adjoint operator tolerates imperfections
in the data and does not demand that the data provide full information.

Using the methods of this chapter, you will find that once you grasp the relationship between operators in general and their adjoints, you can have the adjoint just as soon as you have learned how to code the modeling operator.

If you will permit me a poet's license with words,
I will offer you the following table
of **operator**s and their **adjoint**s:

matrix multiply conjugate-transpose matrix multiply convolution crosscorrelation stretching squeezing zero padding truncation causal integration anticausal integration add functions do integrals plane-wave superposition slant stack / beam forming superposing on a curve summing along a curve upward continuation downward continuation diffraction modeling imaging by migration hyperbola modeling CDP stacking ray tracingtomography

The left column above is often called ``**modeling**,"
and the adjoint operators on the right are often
used in ``data **processing**."

When the adjoint operator is
*not*
an adequate approximation to the inverse,
then you apply the techniques of fitting and optimization
which require iterative use of the
modeling operator and its adjoint.

The adjoint operator is sometimes called
the ``**back projection**" operator
because information propagated in one direction (earth to data) is projected
backward (data to earth model).
With complex-valued operators the transpose and complex conjugate
go together and in Fourier analysis, taking the complex conjugate
of reverses the sense of time.
Still assuming poetic license,
I will say that adjoint operators
*undo*
the time and phase shifts of modeling operators.
The inverse operator does this too,
but it also divides out the color.
For example, with linear interpolation high frequencies are smoothed out,
so inverse interpolation must restore them.
You can imagine the possibilities for noise amplification.
That is why adjoints are safer than inverses.
But nature determines in each application what is the best operator to use,
whether to stop after the adjoint,
to go the whole way to the inverse,
or to stop part-way.

We will see that computation of the **adjoint**
is a straightforward adjunct to the computation itself,
and the computed adjoint should be, and generally can be,
exact (within machine precision).
If the application's operator is computed in an approximate way,
we will see that it is natural and best to compute the adjoint
with adjoint approximations.

Much later in this chapter is a formal definition of adjoint operator. Throughout the chapter we handle an adjoint operator as a matrix transpose, but we hardly ever write down any matrices or their transposes. Instead, we always prepare two subroutines, one that performs and another that performs ,so we need a test that the two subroutines really embody the essential aspects of matrix transposition. Although the test is an elegant and useful test and is itself a fundamental definition, curiously, that definition helps us not one bit in constructing adjoint operators, so I postpone the formal definition of adjoint until after we have seen many examples.

- FAMILIAR OPERATORS
- ADJOINT DEFINED: DOT-PRODUCT TEST
- NORMAL MOVEOUT AND OTHER MAPPINGS
- DERIVATIVE AND INTEGRAL
- CAUSAL INTEGRATION RECURSION
- UNITARY OPERATORS
- VELOCITY SPECTRA
- INTRODUCTION TO TOMOGRAPHY
- STOLT MIGRATION
- References

10/21/1998