Skip to content

Commit 6c511da

Browse files
jstacclaude
andauthored
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

File tree

lectures/_static/quant-econ.bib

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2917,3 +2917,54 @@ @incollection{sargent1989least
29172917
year={1989},
29182918
publisher={Cambridge University Press}
29192919
}
2920+
2921+
@article{schaefer1954,
2922+
title={Some aspects of the dynamics of populations important to the management of the commercial marine fisheries},
2923+
author={Schaefer, Milner B.},
2924+
journal={Bulletin of the Inter-American Tropical Tuna Commission},
2925+
volume={1},
2926+
number={2},
2927+
pages={23--56},
2928+
year={1954}
2929+
}
2930+
2931+
@article{gordon1954,
2932+
title={The economic theory of a common-property resource: the fishery},
2933+
author={Gordon, H. Scott},
2934+
journal={Journal of Political Economy},
2935+
volume={62},
2936+
number={2},
2937+
pages={124--142},
2938+
year={1954},
2939+
publisher={University of Chicago Press}
2940+
}
2941+
2942+
@article{may1976,
2943+
title={Simple mathematical models with very complicated dynamics},
2944+
author={May, Robert M.},
2945+
journal={Nature},
2946+
volume={261},
2947+
number={5560},
2948+
pages={459--467},
2949+
year={1976},
2950+
publisher={Nature Publishing Group}
2951+
}
2952+
2953+
@book{clark1990,
2954+
title={Mathematical Bioeconomics: The Optimal Management of Renewable Resources},
2955+
author={Clark, Colin W.},
2956+
edition={2nd},
2957+
year={1990},
2958+
publisher={Wiley}
2959+
}
2960+
2961+
@article{ricard2012,
2962+
title={Evaluating the knowledge base and status of commercially exploited marine species with the {RAM} Legacy Stock Assessment Database},
2963+
author={Ricard, Daniel and Minto, Coilin and Jensen, Olaf P. and Baum, Julia K.},
2964+
journal={Fish and Fisheries},
2965+
volume={13},
2966+
number={4},
2967+
pages={380--398},
2968+
year={2012},
2969+
publisher={Wiley}
2970+
}

lectures/_toc.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ parts:
4747
chapters:
4848
- file: scalar_dynam
4949
- file: solow
50+
- file: msy_fishery
5051
- file: cobweb
5152
- file: olg
5253
- file: commod_price
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
year,B_over_Bmsy,F_over_Fmsy
2+
1928,3.859289617,0.12815534
3+
1929,3.842213115,0.177669903
4+
1930,3.825136612,0.198058252
5+
1931,3.790983607,0.19223301
6+
1932,3.756830601,0.142718447
7+
1933,3.756830601,0.224271845
8+
1934,3.705601093,0.14368932
9+
1935,3.705601093,0.170873786
10+
1936,3.671448087,0.133009709
11+
1937,3.671448087,0.173786408
12+
1938,3.654371585,0.146601942
13+
1939,3.637295082,0.127184466
14+
1940,3.637295082,0.145631068
15+
1941,3.637295082,0.117475728
16+
1942,3.637295082,0.067961165
17+
1943,3.654371585,0.131067961
18+
1944,3.654371585,0.132038835
19+
1945,3.654371585,0.130097087
20+
1946,3.637295082,0.216504854
21+
1947,3.603142077,0.430097087
22+
1948,3.50068306,0.462135922
23+
1949,3.398224044,0.413592233
24+
1950,3.31284153,0.45631068
25+
1951,3.227459016,0.453398058
26+
1952,3.142076503,0.350485437
27+
1953,3.090846995,0.246601942
28+
1954,3.073770492,0.290291262
29+
1955,3.056693989,0.308737864
30+
1956,3.039617486,0.355339806
31+
1957,3.005464481,0.526213592
32+
1958,2.920081967,0.539805825
33+
1959,2.851775956,0.466990291
34+
1960,2.800546448,0.417475728
35+
1961,2.74931694,0.449514563
36+
1962,2.698087432,0.386407767
37+
1963,2.663934426,0.391262136
38+
1964,2.629781421,0.340776699
39+
1965,2.612704918,0.413592233
40+
1966,2.578551913,0.518446602
41+
1967,2.527322404,0.57961165
42+
1968,2.476092896,0.612621359
43+
1969,2.407786885,0.575728155
44+
1970,2.339480874,0.850485437
45+
1971,2.237021858,1.077669903
46+
1972,2.117486339,1.563106796
47+
1973,1.929644809,1.766990291
48+
1974,1.741803279,1.951456311
49+
1975,1.572745902,1.951456311
50+
1976,1.449795082,2.077669903
51+
1977,1.321721311,1.485436893
52+
1978,1.270491803,1.941747573
53+
1979,1.166325137,2.718446602
54+
1980,1.00068306,3.378640777
55+
1981,0.840163934,3.378640777
56+
1982,0.712090164,3.504854369
57+
1983,0.594262295,2.67961165
58+
1984,0.544740437,2.805825243
59+
1985,0.488387978,3.951456311
60+
1986,0.403005464,3.854368932
61+
1987,0.37568306,4.019417476
62+
1988,0.37397541,4.310679612
63+
1989,0.358606557,4.834951456
64+
1990,0.3125,4.553398058
65+
1991,0.285177596,4.32038835
66+
1992,0.268101093,4.174757282
67+
1993,0.256147541,3.485436893
68+
1994,0.266393443,2.27184466
69+
1995,0.315915301,2.019417476
70+
1996,0.365437158,2.038834951
71+
1997,0.396174863,1.815533981
72+
1998,0.425204918,1.300970874
73+
1999,0.479849727,1.398058252
74+
2000,0.539617486,0.63592233
75+
2001,0.650614754,0.49223301
76+
2002,0.800887978,1.029126214
77+
2003,0.988729508,1.291262136
78+
2004,1.243169399,0.195145631
79+
2005,1.656420765,0.261165049
80+
2006,2.083333333,0.249514563
81+
2007,2.510245902,0.144660194
82+
2008,2.885928962,0.093203883
83+
2009,3.193306011,

0 commit comments

Comments
 (0)