fix(samples): lower fishery natural-death rate to 0.01
Drops the Allee threshold to ~30 and lifts carrying capacity to ~1170, so the stock is hardier and only collapses once heavily overfished. The overshoot-and-collapse-to-extinction arc holds: Fish drift up, the fleet overshoots (Boats peak ~700), and the catch drives the stock past the threshold to a permanent zero by t=150.
This commit is contained in:
@@ -639,7 +639,7 @@ function overshootAndCollapse(): Model {
|
|||||||
const naturalDeaths = makeFlow({ x: -580, y: 180 }, "natural deaths", fish.id, deathSink.id)
|
const naturalDeaths = makeFlow({ x: -580, y: 180 }, "natural deaths", fish.id, deathSink.id)
|
||||||
// natural deaths = factor × Fish (linear): the Balancing drain that *wins* below the
|
// natural deaths = factor × Fish (linear): the Balancing drain that *wins* below the
|
||||||
// Allee threshold, where ~Fish² spawning can no longer keep up — and extinction follows.
|
// Allee threshold, where ~Fish² spawning can no longer keep up — and extinction follows.
|
||||||
naturalDeaths.rule = { kind: "proportional", factor: 0.06 }
|
naturalDeaths.rule = { kind: "proportional", factor: 0.01 }
|
||||||
const crowdSink = makeCloud({ x: -420, y: 320 })
|
const crowdSink = makeCloud({ x: -420, y: 320 })
|
||||||
const crowdingDeaths = makeFlow({ x: -420, y: 160 }, "crowding deaths", fish.id, crowdSink.id)
|
const crowdingDeaths = makeFlow({ x: -420, y: 160 }, "crowding deaths", fish.id, crowdSink.id)
|
||||||
// crowding deaths = factor × Fish × crowding (~Fish³): the steep Balancing ceiling
|
// crowding deaths = factor × Fish × crowding (~Fish³): the steep Balancing ceiling
|
||||||
@@ -696,9 +696,10 @@ function overshootAndCollapse(): Model {
|
|||||||
link(catching, fleetGrowth, "+"),
|
link(catching, fleetGrowth, "+"),
|
||||||
link(boats, scrapping, "+"),
|
link(boats, scrapping, "+"),
|
||||||
],
|
],
|
||||||
// Fish hold near carrying capacity (1000) while the fleet compounds, cross the Allee
|
// Fish drift up toward carrying capacity (~1170) while the fleet compounds, then the
|
||||||
// threshold (~200) around t≈40 as the catch overshoots, then go extinct and stay
|
// catch overshoots the renewal rate and pulls them past the Allee threshold (~30) at
|
||||||
// there; Boats overshoot to ~450 (t≈40) and collapse back near their start by t=150.
|
// t≈43, after which they go extinct and stay there; Boats overshoot to ~700 (t≈37)
|
||||||
|
// and collapse back near their start by t=150.
|
||||||
{ start: 0, stop: 150, dt: 1 },
|
{ start: 0, stop: 150, dt: 1 },
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user