⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

purrr::accumulate实现递归状态机:模拟生态种群动态

使用purrr的accumulate函数创建状态机,模拟具有时间滞后的洛特卡-沃尔泰拉捕食者-猎物模型。 · 难度:入门 · +10XP

purrr::accumulate实现递归状态机:模拟生态种群动态

purrr::accumulate()是函数式编程的隐藏宝石——它像reduce但保留中间结果。本教程用accumulate实现离散时间状态机:每一步根据当前状态(猎物、捕食者数量)计算下一状态。你将定义一个状态转移函数,包含出生率、捕食率、死亡率参数。accumulate(.init = c(10,1), .f = update, .x = 1:100)生成100步的时间序列。最后用ggplot2动态可视化种群振荡,并比较不同初值条件的轨迹。

library(purrr)
update <- function(state, t) {
  prey <- state[1]; pred <- state[2]
  new_prey <- prey + 0.1*prey - 0.02*prey*pred
  new_pred <- pred + 0.0001*prey*pred - 0.1*pred
  c(max(new_prey,0), max(new_pred,0))
}
traj <- accumulate(1:100, .init=c(100,10), update)
df <- data.frame(t=0:100, prey=sapply(traj,[,1), pred=sapply(traj,[,2))
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 71 篇
0 完成
🔥 0