13.3: Стохастичне моделювання
- Page ID
- 2918
Програма\(\PageIndex{1}\) імітує збирання врожаю при так званому максимальному сталому врожаї. Це вводить невеликі випадкові коливання населення - настільки малі, що їх неможливо розрізнити на графіку. Невелика стохастичність змушує програму приймати різну траєкторію кожного разу, коли вона працює, з широко різними часовими курсами. Однак неминуче населення дрейфує нижче точки Аллі і швидко руйнується, як у вибірковому запуску програми, показаної на малюнку\(\PageIndex{1}\).
У століття вітрильного спорту, на стрілці з позначкою «А», риболовля була високими зусиллями, але малоударним і рибальство залишалося приблизно на їх вантажопідйомності,\(K\). «Оптимальний збір врожаю» був введений після математичної екології в поєднанні з дизельною технологією, а рибальство допомагало годувати зростаючу популяцію людей та домашніх тварин, причому популяція риб наближалася до «максимального стійкого врожаю», як очікувалося. Але протягом 20-го століття, як показано по обидва боки стрілки з позначкою «B», популяція риб продовжувала скорочуватися, а до 2015 року - на стрілці з позначкою «С» - стає зрозуміло, що щось серйозно не так.
# SIMULATE ONE YEAR # # This routine simulates a differential equation for optimal harvesting # through one time unit, such as one year, taking very small time steps # along the way. # # The ’runif’ function applies random noise to the population. Therefore it # runs differently each time and the collapse can be rapid or delayed. # # ENTRY: ’N’ is the starting population for the species being simulated. # ’H’ is the harvesting intensity, 0 to 1. # ’K’ is the carrying capacity of the species in question. # ’r’ is the intrinsic growth rate. # ’dt’ is the duration of each small time step to be taken throughout # the year or other time unit. # # EXIT: ’N’ is the estimated population at the end of the time unit.
SimulateOneYear = function(dt)
{ for(v in 1:(1/dt)) # Advance the time step.
{ dN = (r+s*N)*N - H*r^2/(4*s)*dt; # Compute the change.
N=N+dN; } # Update the population value.
if(N<=0) stop("Extinction"); # Make sure it is not extinct.
assign("N",N, envir=.GlobalEnv); } # Export the results.
r=1.75; s=-0.00175; N=1000; H=0; # Establish parameters.
for(t in 1850:2100) # Advance to the next year.
{ if(t>=1900) H=1; # Harvesting lightly until 1990.
print(c(t,N)); # Display intermediate results.
N = (runif(1)*2-1)*10 + N; # Apply stochasticity.
SimulateOneYear(1/(365*24)); } # Advance the year and repeat.
Програма\(\PageIndex{1}\). Ця програма імітує максимальний збір врожаю з невеликими коливаннями популяції.
Що сталося? Обвал є частиною динаміки такого роду збирання врожаю. Неминуча стохастичність у врожаї несприятливо поєднується з нестабільною рівновагою в популяції видобутку. В одних пробігах він руйнується в 80 років, в інших може знадобитися 300. Терміни не передбачувані; основна передбачувана властивість моделювання полягає в тому, що в кінцевому підсумку система зруйнується.
Малюнок\(\PageIndex{1}\). Один зразок запуску програми 13.4, показуючи крах, характерний для таких запусків.
