Causal integration is defined as
![]() |
(17) |
![]() |
(18) |
Sampling the time axis gives a matrix equation that
we should call causal summation,
but we often call it causal integration.
Equation (19) represents causal integration for and leaky integration for
.
![]() |
(19) |
The coding is trickier than
that for the operators we considered earlier.
Notice when you compute y5 that it is the sum of 6 terms,
but that this sum is more quickly computed as .Thus equation (19) is more efficiently thought of as
the recursion
![]() |
(20) |
When it comes time to think about the adjoint, however,
it is easier to think of equation (19) than of (20).
Let the matrix of equation (19) be called .Transposing to get
and applying it to
gives us something back in the space of
,namely
.From it we see that the adjoint calculation,
if done recursively,
needs to be done backwards, as in
![]() |
(21) |
A module to do these jobs is leakint.
The code for anticausal integration is not obvious
from the code for integration and the adjoint coding tricks we
learned earlier.
To understand the adjoint, you need to inspect
the detailed form of the expression and take care to get the ends correct.
Figure 5 illustrates the program for
.
module leakint { # leaky integration
real :: rho
#% _init( rho)
#% _lop ( xx, yy)
integer i, n
real tt
n = size (xx); tt = 0.
if( adj)
do i= n, 1, -1 {
tt = rho*tt + yy(i)
xx(i) = xx(i) + tt
}
else
do i= 1, n {
tt = rho*tt + xx(i)
yy(i) = yy(i) + tt
}
}
causint90
Figure 5 in1 is an input pulse. C in1 is its causal integral. C' in1 is the anticausal integral of the pulse. in2 is a separated doublet. Its causal integration is a box and its anticausal integration is a negative box. CC in2 is the double causal integral of in2. How can an equilateral triangle be built? | ![]() |
Later we will consider equations to march wavefields up towards the earth's surface, a layer at a time, an operator for each layer. Then the adjoint will start from the earth's surface and march down, a layer at a time, into the earth.
![]() |
(22) |