# Reading — Information Geometry Under Threat

By the end of this lesson you should be able to:

1. **Build** the Fisher information matrix $\mathbf{J}$ from bearing rows.
2. **State and use** the Cramér–Rao lower bound (CRLB), and read the error ellipse from $\mathbf{J}$'s eigenvalues.
3. **Name** L14's PDOP tile and DOP map: $\text{DRMS} = \text{PDOP}\cdot\bar R\cdot\sigma_\theta$, and $\sqrt{2}/\sin\beta$ for a symmetric pair.
4. **Locate seams** in both directions — their passive network fixing you, and your receivers fixing them.

## A debt from Block 2

L14 ended its discussion of crossing geometry with a promise: the cut-angle picture was the *intuition* behind geometric dilution of precision, and "the formal information-theoretic treatment — Fisher information and the CRLB — waits for Block 4." Its demo, meanwhile, had already put two unexplained things on your screen: a **PDOP** tile that read small when the cut was good and $\infty$ on the seam, and a **DOP map** that shaded every point on the map by that same number. Then Project 2 handed you a formula,

$$
\mathbf{J} = \frac{1}{\sigma_\theta^2}\sum_{k=1}^{K}\mathbf{H}_k^\top\mathbf{H}_k,
\qquad
\mathbf{H}_k = \left[-\frac{\Delta E_k}{R_k^2},\ \frac{\Delta N_k}{R_k^2}\right],
\qquad
\mathbf{C} = \mathbf{J}^{-1},
$$

and told you to take the square roots of the eigenvalues of $\mathbf{C}$ as the semi-axes of your error ellipse — without saying where the formula came from or what $\mathbf{J}^{-1}$ actually promises.

This lesson pays both debts, and then turns the whole idea around. In Block 2, geometry was something *you* arranged in order to find a threat. In Block 4 the threat's own sensors are subject to exactly the same geometry — and where their geometry is poor, you can fly.

## One bearing is one row of information

Put a bearing-only sensor (an ES site, an IRST, an RWR) at a known position and let it measure the bearing to a target at $[N\ E]$. With the course convention — bearings clockwise from North — and $\Delta N = N - N_s$, $\Delta E = E - E_s$ measured from the sensor to the target,

$$
\theta = \mathrm{atan2}(\Delta E,\ \Delta N), \qquad R = \sqrt{\Delta N^2 + \Delta E^2}.
$$

Ask how the bearing changes when the target moves a little. The partial derivatives are $\partial\theta/\partial N = -\Delta E/R^2$ and $\partial\theta/\partial E = \Delta N/R^2$, so the row of the Jacobian for this one measurement is

$$
\mathbf{h} = \frac{[-\Delta E,\ \Delta N]}{R^2} = \frac{\mathbf{n}^\top}{R},
\qquad
\mathbf{n} = \frac{[-\Delta E,\ \Delta N]}{R},
$$

where $\mathbf{n}$ is the unit vector **perpendicular** to the line of sight — the cross-range direction. That one line says everything. A small displacement $\delta\mathbf{p}$ of the target changes the bearing by $\delta\theta = \mathbf{h}\,\delta\mathbf{p} = (\mathbf{n}\cdot\delta\mathbf{p})/R$: only the cross-range part of the displacement turns the bearing at all. Slide the target along the line of sight — nearer or farther — and $\theta$ does not change. This is L14's "one bearing is a line, not a place," written as a derivative.

Now add noise. A bearing good to $\sigma_\theta$ (in **radians**) pins the cross-range position to $R\sigma_\theta$ and says nothing about the along-range position. In the language of estimation, its **information** about the target position is

$$
\frac{\mathbf{h}^\top\mathbf{h}}{\sigma_\theta^2} = \frac{\mathbf{n}\,\mathbf{n}^\top}{R^2\sigma_\theta^2},
$$

a $2\times2$ matrix of **rank one**: it has a nonzero eigenvalue $1/(R\sigma_\theta)^2$ along $\mathbf{n}$ and a zero eigenvalue along the line of sight. Information is the reciprocal of variance: large information in a direction means a small error in that direction, and zero information means an unbounded one.

:::{admonition} Key Concept
:class: key-concept

One bearing contributes $\mathbf{n}\mathbf{n}^\top/(R^2\sigma_\theta^2)$ to what you know about a target's position: information **across** its line of sight, worth $1/(R\sigma_\theta)^2$, and **none along it**. Distance weakens it as $1/R^2$, because the same angular error is a larger cross-range miss at longer range.
:::

## Information adds: the Fisher information matrix

Independent measurements add their information. Stack $K$ bearings — from different sites, or from one moving receiver at different times — into a Jacobian $\mathbf{H}$ with rows $\mathbf{h}_k$ and a noise covariance $\mathbf{R} = \sigma_\theta^2\mathbf{I}$ (bold $\mathbf{R}$ here is the measurement-noise covariance, not a range). The **Fisher information matrix** is

$$
\mathbf{J} = \mathbf{H}^\top\mathbf{R}^{-1}\mathbf{H} = \sum_{k=1}^{K}\frac{\mathbf{n}_k\,\mathbf{n}_k^\top}{R_k^2\,\sigma_\theta^2}.
$$

This is exactly Project 2's $\mathbf{J}$: expand $\mathbf{H}_k^\top\mathbf{H}_k$ with $\mathbf{H}_k = \mathbf{n}_k^\top/R_k$ and the two expressions are identical term for term. A few properties are worth having in hand:

- $\mathbf{J}$ is $2\times2$, symmetric and positive semi-definite, with units of km⁻² when positions are in km and $\sigma_\theta$ is in radians.
- $\mathbf{J}$ is a **function of where the target is**: every $\mathbf{n}_k$ and $R_k$ depends on the target position. Change the point and you change $\mathbf{J}$.
- One site gives rank one. A second site whose line of sight is not parallel to the first gives rank two — a full fix. A second site whose line of sight *is* parallel to the first adds information in the same direction and none in the missing one.

## The Cramér–Rao lower bound

The reason $\mathbf{J}$ matters is a theorem. For any **unbiased** estimator $\hat{\mathbf{p}}$ of the target position — any algorithm at all, however clever, that is right on average — the error covariance satisfies

$$
\operatorname{Cov}(\hat{\mathbf{p}}) \;\succeq\; \mathbf{J}^{-1},
$$

the **Cramér–Rao lower bound** (CRLB). The symbol $\succeq$ means the difference $\operatorname{Cov}(\hat{\mathbf{p}}) - \mathbf{J}^{-1}$ is positive semi-definite: in *every* direction $\mathbf{v}$, the estimator's variance $\mathbf{v}^\top\operatorname{Cov}(\hat{\mathbf{p}})\,\mathbf{v}$ is at least $\mathbf{v}^\top\mathbf{J}^{-1}\mathbf{v}$. No solver, no processor and no amount of computing beats it; the bound is set by the geometry and the sensor noise alone.

Three consequences shape how the rest of this block uses it:

1. **It is achievable.** The least-squares fix of L14 and Project 2 reaches the bound when the noise is small compared with the geometry (so that the linearized rows are accurate). That is why Project 2's ellipse from $\mathbf{J}^{-1}$ matched your Monte Carlo scatter: for a good least-squares fix, the CRLB is not just a floor, it is the covariance you actually get.
2. **It is a planning tool.** $\mathbf{J}$ needs only the sensor positions, a hypothetical target position and $\sigma_\theta$ — no measurements. You can therefore evaluate it at every point of a map *before* anyone takes a bearing. That map is what the L14 DOP map and this lesson's demo draw.
3. **It has fine print.** The bound is for unbiased estimators and is local to the true position. A strong prior (Project 2's $\pm5$ km intel box) or a deliberately biased estimator can post a smaller covariance; the CRLB describes what the *measurements* can support, which is the question survivability asks.

:::{admonition} Key Concept
:class: key-concept

The CRLB $\operatorname{Cov}(\hat{\mathbf{p}}) \succeq \mathbf{J}^{-1}$ says that **geometry and sensor noise alone** set the best fix anyone can make. Because $\mathbf{J}$ can be computed for any hypothetical target position, a bound on *their* estimator is a statement about *your* route.
:::

## Reading the ellipse from the eigenvalues

A symmetric $2\times2$ matrix has two real eigenvalues $\lambda_{\max} \ge \lambda_{\min} \ge 0$ with perpendicular unit eigenvectors, so

$$
\mathbf{J} = \lambda_{\max}\,\mathbf{e}_{\max}\mathbf{e}_{\max}^\top + \lambda_{\min}\,\mathbf{e}_{\min}\mathbf{e}_{\min}^\top .
$$

Inverting keeps the eigenvectors and inverts the eigenvalues. The $1\sigma$ CRLB ellipse therefore has

- a **long** semi-axis $a = 1/\sqrt{\lambda_{\min}}$ pointing along $\mathbf{e}_{\min}$ — the direction the network measures worst;
- a **short** semi-axis $b = 1/\sqrt{\lambda_{\max}}$ along $\mathbf{e}_{\max}$;
- a **DRMS** (the 1σ distance root-mean-square, L14's "Predicted RMS" tile) of $\sqrt{a^2 + b^2} = \sqrt{\operatorname{tr}\mathbf{J}^{-1}}$, because the trace of a matrix is the sum of its eigenvalues;
- a **condition number** $\kappa = \lambda_{\max}/\lambda_{\min} = (a/b)^2$ — 1 for a circle, growing without bound as the ellipse stretches toward a line.

Note the flip that catches everyone once: the **small** eigenvalue of $\mathbf{J}$ makes the **long** axis of the ellipse. Little information in a direction means a large error in it. When a single number is wanted, Project 2's circular error probable still applies, $\text{CEP} \approx 0.59\,(a+b)$ — good to a few percent up to about a 10:1 axis ratio.

### Worked example: eigenvalues by hand

Suppose a network's information at your position works out to

$$
\mathbf{J} = \begin{bmatrix} 0.05 & 0.02 \\ 0.02 & 0.02 \end{bmatrix}\ \text{km}^{-2} \qquad \text{in } [N\ E].
$$

A $2\times2$ eigenproblem needs only the trace and the determinant: $\operatorname{tr}\mathbf{J} = 0.07$ and $\det\mathbf{J} = 0.05\cdot0.02 - 0.02^2 = 0.0006$. The eigenvalues are

$$
\lambda = \frac{\operatorname{tr}}{2} \pm \sqrt{\left(\frac{\operatorname{tr}}{2}\right)^2 - \det}
= 0.035 \pm \sqrt{0.001225 - 0.0006} = 0.035 \pm 0.025 = 0.06,\ 0.01\ \text{km}^{-2}.
$$

So $a = 1/\sqrt{0.01} = 10$ km, $b = 1/\sqrt{0.06} = 4.08$ km, $\kappa = 6$, $\text{DRMS} = \sqrt{100 + 16.7} = 10.8$ km and $\text{CEP} \approx 0.59(14.08) = 8.3$ km. For the direction of the long axis, solve $(\mathbf{J} - 0.01\,\mathbf{I})\,\mathbf{e} = \mathbf{0}$: the first row reads $0.04\,e_N + 0.02\,e_E = 0$, so $\mathbf{e}_{\min} \propto [1,\ -2]$ — one step North for two steps West, a bearing of $\mathrm{atan2}(-2, 1) = -63.4^\circ$. The long axis runs **117°–297°**, roughly ESE–WNW.

## PDOP, named

Here is the tile from L14's screen. The demo's `pdopAt()` builds one row per receiver, but scales each by the ratio of the **mean range** $\bar R$ to that receiver's own range:

$$
\tilde{\mathbf{h}}_k = \frac{\bar R}{R_k}\,\mathbf{n}_k^\top,
\qquad
\text{PDOP} = \sqrt{\operatorname{tr}\big((\tilde{\mathbf{H}}^\top\tilde{\mathbf{H}})^{-1}\big)} .
$$

Compare those rows with the information rows. Since $\tilde{\mathbf{h}}_k = \bar R\,\sigma_\theta\,(\mathbf{n}_k^\top/(R_k\sigma_\theta))$, stacking them gives the *same* matrix as $\mathbf{J}$ up to a constant,

$$
\tilde{\mathbf{H}}^\top\tilde{\mathbf{H}} = \sum_k \frac{\bar R^2}{R_k^2}\,\mathbf{n}_k\mathbf{n}_k^\top = \bar R^2\sigma_\theta^2\,\mathbf{J},
\qquad\text{so}\qquad
\text{PDOP} = \frac{\sqrt{\operatorname{tr}\mathbf{J}^{-1}}}{\bar R\,\sigma_\theta},
$$

and therefore

$$
\boxed{\ \text{DRMS} = \text{PDOP}\cdot\bar R\cdot\sigma_\theta\ }
$$

exactly — not approximately. The two tiles L14 put side by side, "Predicted RMS" and "PDOP," obeyed this identity to every digit, with $\bar R$ on the "Mean range" tile and $\sigma_\theta = 0.5^\circ$. Scaling each row by $\bar R/R_k$ strips the overall range out of the problem and leaves a dimensionless **geometry factor**: PDOP answers "how much does the arrangement of the sensors magnify one bearing's cross-range error at the mean range, $\bar R\sigma_\theta$?" It is the same idea as GPS dilution of precision, where the position error is PDOP times the range error because every row has the same noise. The DOP map is simply PDOP evaluated at every possible target position for the receivers where they sit — the CRLB map, in units of $\bar R\sigma_\theta$.

### The symmetric pair: $\sqrt{2}/\sin\beta$

Take two sites at the same range $R$ from the target, their lines of sight crossing at the cut angle $\beta$. Put one axis along the bisector of the two lines of sight and the other across it; the lines of sight sit at $\pm\beta/2$, and the off-diagonal terms of the two $\mathbf{n}\mathbf{n}^\top$ cancel:

$$
\mathbf{J} = \frac{2}{R^2\sigma_\theta^2}\begin{bmatrix}\sin^2\frac{\beta}{2} & 0\\[2pt] 0 & \cos^2\frac{\beta}{2}\end{bmatrix}
\quad(\text{along the bisector, across it}).
$$

The matrix is diagonal, so the eigenvalues can be read straight off — and L14's ellipse falls out:

$$
a = \frac{R\sigma_\theta}{\sqrt{2}\,\sin(\beta/2)} \ \ (\text{along the bisector}),
\qquad
b = \frac{R\sigma_\theta}{\sqrt{2}\,\cos(\beta/2)} \ \ (\text{across it}).
$$

Adding the squares, $a^2 + b^2 = \frac{R^2\sigma_\theta^2}{2}\cdot\frac{1}{\sin^2(\beta/2)\cos^2(\beta/2)} = \frac{2R^2\sigma_\theta^2}{\sin^2\beta}$, so

$$
\text{DRMS} = \frac{\sqrt{2}\,R\,\sigma_\theta}{\sin\beta}
\qquad\Longrightarrow\qquad
\text{PDOP} = \frac{\sqrt{2}}{\sin\beta}.
$$

| Cut $\beta$ | PDOP | Reading |
|---|---|---|
| 90° | 1.41 | the best a pair can do — a circle |
| 60° | 1.63 | |
| 30° | 2.83 | |
| 10° | 8.14 | |
| 0° or 180° | $\infty$ | a seam |

Two details repay attention. First, the long axis lies along the bisector only while $\beta < 90^\circ$; past 90° the roles swap and the ellipse stretches *across* the bisector. Second, $\sin\beta$ cannot tell $\beta$ from $180^\circ - \beta$: a 180° cut — a target sitting on the segment *between* the two sites, seen in opposite directions — is exactly as blind as a 0° cut.

::::{admonition} Type-along
:class: type-along

Two of their ES sites, 60 km apart on an east–west line, take bearings on one of our stand-off jammers 80 km north of the eastern site. Build their $\mathbf{J}$ at the jammer, take its eigenvalues, and check the answer both ways. Type this and run it.

```matlab
sig = deg2rad(2);                % ES bearing 1-sigma, rad
S   = [0 0; 0 60];               % their two ES sites [N E], km
p   = [80 60];                   % our stand-off jammer [N E], km
d   = p - S;                     % [dN dE] from each site, km
R   = hypot(d(:,1), d(:,2));     % range from each site, km
n   = [-d(:,2) d(:,1)] ./ R;     % cross-range unit vectors
J   = (n./R)' * (n./R) / sig^2;  % Fisher information, 1/km^2
[V, L] = eig(J);                 % eigenvalues ascending: min first
ab  = 1 ./ sqrt(diag(L));        % 1-sigma semi-axes [a; b], km
Ht  = mean(R) * n ./ R;          % L14's rows (Rbar/R_k) n_k'
PDOP = sqrt(trace(inv(Ht'*Ht)));
fprintf('lambda %.4f %.4f /km^2   a %.2f  b %.2f km\n', diag(L), ab);
fprintf('DRMS %.2f km   PDOP*Rbar*sig %.2f km   PDOP %.2f\n', ...
        sqrt(trace(inv(J))), PDOP*mean(R)*sig, PDOP);
```

Then answer these two:

1. $a$ comes out three times $b$. **Which eigenvalue made $a$ — and which way does the long axis point?**
2. **Park the jammer at `p = [0 120]`. What does MATLAB say — and what does it mean for the jammer?**

:::{admonition} Solution
:class: dropdown

```text
lambda 0.0199 0.1904 /km^2   a 7.09  b 2.29 km
DRMS 7.45 km   PDOP*Rbar*sig 7.45 km   PDOP 2.37
```

1. **The small one.** $\lambda_{\min} = 0.0199$ km⁻² gives $a = 1/\sqrt{0.0199} = 7.09$ km. Type `V(:,1)` for its eigenvector: about $\pm[0.971,\ 0.238]$ in $[N\ E]$, a bearing near $14^\circ$ — almost due north. The jammer is north of both sites (bearings $37^\circ$ from the west site and $0^\circ$ from the east site), so north is roughly *along* both lines of sight, the one direction bearings cannot measure; the cut is only $37^\circ$. The last line checks the identity both ways — $\sqrt{a^2+b^2} = 7.45$ km and $\text{PDOP}\cdot\bar R\cdot\sigma_\theta = 2.37 \times 90\ \text{km} \times 0.0349 = 7.45$ km — and they agree to every digit because it is algebra, not approximation.
2. At `p = [0 120]` the jammer sits on the line through both sites, 60 km east of the east site. MATLAB warns `Matrix is singular to working precision` at each `inv` and prints:

   ```text
   lambda 0.0000 0.2850 /km^2   a Inf  b 1.87 km
   DRMS Inf km   PDOP*Rbar*sig Inf km   PDOP Inf
   ```

   Both lines of sight now point due east, so both $\mathbf{n}_k$ point north–south: $\mathbf{J}$ is rank one. Their bearings still pin the jammer north–south to $b = 1.87$ km, but east–west — along their own baseline — they have no information at all. That is a **seam**, and for a jammer it is a place to orbit: two ES sites can bear on it there but cannot range it, as long as no third site or radar looks from another direction.
:::

::::

::::{admonition} Quick problem — Open the Cut
:class: example-problem

Two aircraft fix an emitter from equal range — a symmetric pair.

- Both aircraft at $\bar R = 120$ km from the emitter
- Their bearings cross at $\beta = 30^\circ$
- Each RWR bearing good to $\sigma_\theta = 1.5^\circ$ (1σ)

**(a)** The PDOP of the pair.\
**(b)** The DRMS of the fix, in km.\
**(c)** The cut $\beta$ that brings DRMS down to 5 km at the same $\bar R$ and $\sigma_\theta$.

:::{admonition} Solution
:class: dropdown

**(a)** $\text{PDOP} = \sqrt{2}/\sin 30^\circ = 1.414/0.5 =$ **2.83**.

**(b)** Convert the bearing noise first: $\sigma_\theta = 1.5^\circ = 0.02618$ rad, so $\bar R\sigma_\theta = 120 \times 0.02618 = 3.14$ km (the numbers happen to make it $\pi$). Then $\text{DRMS} = \text{PDOP}\cdot\bar R\cdot\sigma_\theta = 2.83 \times 3.14 =$ **8.89 km**.

**(c)** DRMS of 5 km needs $\text{PDOP} = 5/3.14 = 1.59$, so $\sin\beta = \sqrt{2}/1.59 = 0.889$ and $\beta =$ **62.7°** — or its supplement, **117.3°**, since $\sin\beta$ cannot tell the two apart.

So what: PDOP can never go below $\sqrt{2}$, so at this range and bearing noise the pair can never beat $\sqrt{2}\times3.14 = 4.44$ km at any cut. Five kilometers is reachable by opening the cut; four is not — only a shorter range or a better $\sigma_\theta$ gets there.
:::

::::

## Seams: where $\mathbf{J}$ goes blind

A **seam** is a place where $\mathbf{J}$ is singular, $\lambda_{\min} = 0$ — or nearly so, with $\kappa \gg 1$. There the CRLB in the direction $\mathbf{e}_{\min}$ is infinite or enormous: no estimator, however good, can fix the target along that direction from these measurements.

For two bearing-only sites the seam has a simple shape. $\mathbf{J}$ is the sum of two rank-one pieces, and it is singular exactly when $\mathbf{n}_1$ and $\mathbf{n}_2$ are parallel — that is, when the two lines of sight are parallel or opposite. That happens everywhere on the **whole line through the two sites**: on the extensions beyond either end, where both sites look the same way (a $0^\circ$ cut), *and* on the segment between them, where they look in opposite directions (a $180^\circ$ cut). The unobservable direction is along that line. Near it, the ellipse is long and thin and stretched along the baseline; step away and it fattens again.

With three or more sites, $\mathbf{J}$ is singular only if every line of sight is parallel — only if all the sites and the target lie on one line. Otherwise there is no exact seam, but there are **ridges** of high $\kappa$: places where two sites line up with the target and the third is far away, or looks from nearly the same direction, so it adds little information in the missing direction. And far from every site, all the cuts close together ($\beta \approx$ baseline/range), so DRMS grows like $R/\sin\beta$ — roughly as $R^2$ for a fixed baseline. Distance is its own kind of seam.

:::{admonition} Key Concept
:class: key-concept

A **seam** is where $\lambda_{\min}(\mathbf{J}) \to 0$. For a bearing-only pair it is the entire line through the two sites — beyond both ends and between them — and the unobservable direction runs along that line. Better bearings ($\sigma_\theta$) shrink every ellipse but cannot close a seam; only a sensor that looks from another direction, or one that measures range, can.
:::

### Range fills the gap

A radar measures range as well as bearing. The range row is the line-of-sight unit vector $\mathbf{u} = [\Delta N,\ \Delta E]/R$, and with range noise $\sigma_R$ a radar contributes

$$
\mathbf{J}_{\text{radar}} = \frac{\mathbf{n}\,\mathbf{n}^\top}{R^2\sigma_\theta^2} + \frac{\mathbf{u}\,\mathbf{u}^\top}{\sigma_R^2}.
$$

The range term lies **along** the line of sight — precisely the direction bearings leave empty. Because $\mathbf{n}$ and $\mathbf{u}$ are perpendicular, a single range-plus-bearing radar has a full-rank $\mathbf{J}$ by itself: no seam anywhere (it is why one radar can track you without help). Put that radar on the seam line of a bearing-only pair and its range row fills the missing direction exactly.

The converse is the EW lesson. A noise jammer (L17) denies a radar its range and leaves it a **strobe** — a bearing to the jammer and nothing more. A network that crosses jam strobes from several radars to locate a jammer is therefore a *bearing-only* network, with bearing-only seams. The prior course's version of this lesson put it bluntly: jamming widens the seams.

## Both directions

The same matrix answers opposite questions depending on whose sensors it describes.

**Our receivers fixing their emitters.** This is Project 2. The bearings are yours, $\mathbf{J}$ is yours, and you want $\lambda_{\min}$ **large**: fly the collection leg that opens the cut and shortens the range. L14's type-along already showed that range usually beats baseline — and that the shorter range is the one inside the threat rings. The CRLB turns that trade into a number you can plan with, and Final Project task T6 asks for exactly this against a pop-up threat.

**Their passive network fixing us — or our jammer.** An ES network hears our emissions; an IRST network (L23) sees our heat. Both are bearing-only by nature, so everything above applies to *their* $\mathbf{J}$, evaluated at points along *our* route. Now we want their $\lambda_{\min}$ **small** and their DRMS large: route through their seams, keep the range long, and prefer legs that stay near the lines joining their sites. A stand-off jammer is the extreme case — it radiates continuously, so it is always a bearing target for every ES site and every radar it jams — and its orbit is best placed where their strobes cross at a shallow angle. Final Project task T4 asks you to compute the CRLB DRMS of the adversary's passive network along your chosen route, and to say whether that route uses a seam.

Seams are not permanent. The defender can move a site, add a third one off the line, or bring a radar's range to bear, and the seam you planned on closes. Treat a seam the way you treat a gap between SAM rings in L32: real, useful, and something to re-check against every change in the laydown.

## The demo and the companion script

The **Information Map** demo draws the CRLB DRMS of a small bearing-only network over a 200 × 150 km map as a log-coloured field, with a probe you can click anywhere for its ellipse, eigenvalues, condition number, DRMS and PDOP, and a straight leg whose DRMS is charted beneath the map. Switch one site to a radar and watch the seam close; switch the field to PDOP and it becomes L14's DOP map, number for number. The companion script `L33_InformationMap.m` computes the same things for the demo's default network: $\mathbf{J}$ at a probe point with its ellipse, a DRMS map on the demo's 2 km grid, the seam, and the DRMS along the leg with and without a third site.

## Wrap-Up

Each bearing contributes $\mathbf{n}\mathbf{n}^\top/(R^2\sigma_\theta^2)$: information across its line of sight and none along it. Stacking them gives the Fisher information $\mathbf{J} = \mathbf{H}^\top\mathbf{R}^{-1}\mathbf{H}$ — the matrix Project 2 had you build — and the Cramér–Rao bound says no unbiased estimator can beat $\mathbf{J}^{-1}$. The eigenvalues of $\mathbf{J}$ are the ellipse: the small one makes the long axis, $\sqrt{\operatorname{tr}\mathbf{J}^{-1}}$ is the DRMS, and $\kappa$ measures how close the geometry is to failing. L14's PDOP tile was this bound with the range scaled out, $\text{DRMS} = \text{PDOP}\cdot\bar R\cdot\sigma_\theta$, and for a symmetric pair $\text{PDOP} = \sqrt2/\sin\beta$. Where $\lambda_{\min} \to 0$ there is a **seam** — the whole line through a bearing-only pair — which range fills and jamming reopens. Read from their side, the thesis of the lesson is simple: geometry is information, and where their sensors cannot see you well is a place you can fly. Next, **L34 — Optimal Path Planning** turns the threat map into a graph and lets Dijkstra find the lowest-risk route through it.
