Commit 6c511da
Add Maximum Sustainable Yield and Fishery Collapse lecture (#763)
* Add Maximum Sustainable Yield and Fishery Collapse lecture (#755)
New lecture lectures/msy_fishery.md, slotted under Nonlinear Dynamics
after solow. Builds the deterministic Schaefer MSY model (logistic
growth, 45-degree diagrams, sustainable yield, MSY via grid search and
optional calculus), then adds environmental randomness to show why a
constant MSY quota sits on a knife-edge and collapses, versus a
self-correcting constant-effort policy. Includes the Peruvian anchovy
and Atlantic cod collapses, plus exercises on precautionary quotas and
large-r logistic chaos.
Adds schaefer1954, gordon1954, may1976, clark1990 to quant-econ.bib.
Closes #755
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Revise MSY lecture: rename effort to e, yield to y*(e), add early graphic
- Rename effort symbol E -> e and sustainable yield Y(E) -> y*(e)
throughout prose, math, and code, matching the x*(e) notation.
- Introduce y*(e) graphically with a growth-vs-harvest figure right
where it is defined, marking x*(e) and y*(e) at effort e=20.
- Shrink the two 45-degree diagrams by 10% (figsize 5.5 -> 4.95).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Implement TODOs in revised first half of MSY lecture
- Add a figure showing the shape of the logistic growth curve G(x);
move the G definition above it.
- Refactor plot_45 to take the one-year map as a function argument, so
the no-fishing 45-degree diagram works before fishing/effort and the
update() function are introduced; update both call sites to pass
lambdas.
- Add the two-effort 45-degree diagram (staircases omitted) showing
x*(e) falling with effort.
- Fix the multi-effort growth-vs-harvest figure: use explicit efforts
[12.5, 25, 37.5] and G(K/2) for the y-limit (e_msy/MSY are not yet
defined there), and fix the label typo.
- Restore the grid-search computation of e_msy, MSY, x_msy in the MSY
section.
- Drop the under/over-fishing framing from the yield-effort curve per
review note, since under randomness no constant policy is fully safe.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Align MSY lecture with QuantEcon style guide; fix two typos
Following manual/styleguide (figures.md, math.md, references.md):
- Remove all embedded matplotlib titles (ax.set_title / fig.suptitle)
and add mystnb figure captions + names to every figure cell.
- Keep the figure box: drop all ax.spines[...].set_visible(False).
- Standardize data-line widths to lw=2; drop figsize from standard
single-panel charts (keep square figsize on the cobweb diagrams and
the stacked stochastic panel as justified exceptions).
- Label the two policy panels with in-axes text rather than titles.
- Use {cite:t} for in-sentence citations (Schaefer/Gordon/Clark,
Following Schaefer, analyzed by May); keep {cite} for parenthetical.
- Fix typos: "according the" -> "according to the"; "called
intrinsic" -> "called the intrinsic".
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Reflow msy-policies figure caption
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Fix LaTeX PDF build: drop figure floats inside solution blocks
The mystnb figure captions on the two code-cells inside the
{solution-start}/{solution-end} dropdowns produced LaTeX figure floats
nested in a directive, triggering "! LaTeX Error: Not in outer par
mode." Per the admonitions style guide (use image, not figure floats,
inside exercise/solution directives for PDF builds), remove the caption
metadata from those two solution cells; the top-level captioned figures
are unaffected. Verified with a local pdflatex build (24-page PDF, no
error).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Restructure MSY lecture around quotas; fix yield-effort build break
Reframe as "Fishery Management: Quotas and MSY": compute the MSY after
introducing the yield-effort dome, add Dynamics and Adding randomness
subsections, list x/r/K under the growth equation, and credit the
"Maths from the past" discussion.
Fix the reorder regression: the yield-effort figure referenced MSY in
set_ylim before MSY is computed (NameError); use y_grid.max() instead.
Also fix two typos ("sevaral" -> "several"; missing question mark).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Add MSY success story: Pacific Coast lingcod recovery
Insert a new section before "Randomness, risk and collapse" so the
lecture shows MSY-based management working before discussing its
failures. Uses RAM Legacy Stock Assessment Database series for U.S.
Pacific Coast lingcod (B/B_MSY and F/F_MSY, 1928-2009): sustained
overfishing drives biomass to ~0.27 B_MSY, then an MSY-anchored
rebuilding plan (overfished 1999, rebuilt 2005) pulls F below F_MSY and
biomass recovers and overshoots -- the model's negative feedback in real
data. Includes honest caveats that tee up the randomness section.
Vendor the small series as datasets/lingcod_msy_recovery.csv (read
locally, no build-time download); add pandas import and the ricard2012
bib entry.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Use default color cycle for data series; minor prose/tense fixes
Per QuantEcon convention, let matplotlib pick data-series colors (C0/C1
standard pair) instead of hard-coding C0/C3; reserve explicit color for
reference elements only (black 45-degree line/cobweb/markers/guides,
grey milestone lines). Markers now follow their line via get_color().
Lingcod overfishing band switched from red to neutral grey.
Also fold in the user's prose edits (overview rewording, G(x)
definition, hide-input on plot_45, simplified update equation, tightened
lingcod narrative) and fix a past/present tense slip in that narrative.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 3c4a5e8 commit 6c511da
4 files changed
Lines changed: 1162 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2917 | 2917 | | |
2918 | 2918 | | |
2919 | 2919 | | |
| 2920 | + | |
| 2921 | + | |
| 2922 | + | |
| 2923 | + | |
| 2924 | + | |
| 2925 | + | |
| 2926 | + | |
| 2927 | + | |
| 2928 | + | |
| 2929 | + | |
| 2930 | + | |
| 2931 | + | |
| 2932 | + | |
| 2933 | + | |
| 2934 | + | |
| 2935 | + | |
| 2936 | + | |
| 2937 | + | |
| 2938 | + | |
| 2939 | + | |
| 2940 | + | |
| 2941 | + | |
| 2942 | + | |
| 2943 | + | |
| 2944 | + | |
| 2945 | + | |
| 2946 | + | |
| 2947 | + | |
| 2948 | + | |
| 2949 | + | |
| 2950 | + | |
| 2951 | + | |
| 2952 | + | |
| 2953 | + | |
| 2954 | + | |
| 2955 | + | |
| 2956 | + | |
| 2957 | + | |
| 2958 | + | |
| 2959 | + | |
| 2960 | + | |
| 2961 | + | |
| 2962 | + | |
| 2963 | + | |
| 2964 | + | |
| 2965 | + | |
| 2966 | + | |
| 2967 | + | |
| 2968 | + | |
| 2969 | + | |
| 2970 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| 50 | + | |
50 | 51 | | |
51 | 52 | | |
52 | 53 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
0 commit comments