The general location problem
Setting up the problem
The model parameters
The earthquake location can be defined by its hypocenter (latitude,
longitude, and depth). The earthquake's origin time is also unknown. We therefore need
to solve for four different model parameters.
Define the vector x as the estimate of the source parameters, where
T0 is the event origin time (s), h is the depth (km),
Q is latitude (°N), and
F is longitude (°E):
x = [T0, h, Q, F]T
Now define a small perturbation to these source parameters:
dx =
[dT0, dh, dQ, dF]T
The data
Tiobs = arrival time observed at the i-th
station.
How to relate the data to the model parameters
Ticalc = predicted arrival time = T0
+ travel time calculated from source to the i-th station.
For this lab, the theoretical travel times are obtained by interpolations of travel
time tables that represent the 1D Earth model ak135.
Tiobs = Ticalc + dTi/dT0
dT0 +
dTi/dh
dh +
dTi/dQ
dQ +
dTi/dF
dF + higher order terms
We can thus relate the vector with arrival time residuals to the vector with
model perturbations:
dTi = Tiobs - Ticalc = Aijdxj + higher order terms
where Aij = dTi/dxj, i = 1, ...N; j = 1,...4
Ai1 = 1
Ai2 = -cos(ii)/v
Ai3 = -dT/dDcos(zi) = -picos(zi)
Ai4 = --dT/dDsin(zi)cos(Qi)
= -pisin(zi)cos(Qi)
where ii is the take-off angle at the source for the i-th station
(angle between vertical and ray), and zi is the azimuth (angle measured clockwise
from North to the source-to-receiver ray direction).
Solving the problem
If the initial event location estimate is good enough, we can discard the higher order terms and linearize the problem. We solve this set of linear equations by performing a 'least-squares inversion'. We'll be finding the vector dx that minimizes the difference between observed and calculated arrival time residuals. Because the location problem is nonlinear, we have to do this iteratively. For every new location we find, we have to recalculate the partial derivatives (the take-off angle and azimuth will change slightly when the location is different).
dT = Adx
ATdT = AT A dx
ATA is a symmetric matrix and it thus has an inverse. Its inverse
can be evaluated using scilab command 'inv()'. Premultiply both sides of the
previous equation by (ATA)-1 to obtain dx:
dx = (ATA)-1 AT dT
This is the least squares solution to the linear system of equations.
Now, add this perturbation to the previous estimate of the model parameters
to obtain a new solution:
xnew = x + dx
You can iterate this procedure until you find an acceptable solution. One can use several
criteria for this. We use the criterium that the variance of the arrival time
residuals has to be minimized.
e = Si (Tiobs - Ticalc)2 /
(ndata - nmodel)
ndata = number of data points (observations)
nmodel = number of model parameters (3 or 4, depending on whether you keep the depth
fixed)
In fact, we minimize a quantity called Root Mean Square residual, the square root of
the variance. It gives a direct indication of how well we match the observed arrival times.