前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python分析捕食者和被捕食者模型 | 拟合求解a,b,c,d

Python分析捕食者和被捕食者模型 | 拟合求解a,b,c,d

作者头像
叶庭云
发布2022-05-12 14:09:46
1.3K1
发布2022-05-12 14:09:46
举报
文章被收录于专栏:Python进阶之路Python进阶之路

文章目录

一、问题来源

二、引言

三、Python分析

一、问题来源

问题来自帮朋友做的一个题,如下所示:

我主要做了:

  • 可视化捕食者和被捕食者数量随时间变换情况;
  • 利用 numpy 的 polyfit、poly1d 拟合数据点分别得到两个多项式方程;
  • scipy求导并代入值计算;
  • 等式两边的输入都有了,用多元线性回归(fit_intercept=False,不要截距)拟合数据,分别估计方程两个参数;
  • 最终得到拟合的 a,b,c,d 的值;

二、引言

捕食者和被捕食者模型(Predator-Prey Model),这是生态学中非常经典的一个模型。

假设一个生态系统中有两个物种,其中一个为食草动物,两者分别构成了捕食者和被捕食者。以兔子和狐狸为例:

x(t): 狐狸的数量随时间变换的函数

y(t):兔子的数量随时间变换的函数

如果没有兔子,狐狸的数量会因为缺少食物而减少:

事实上,生态系统中的兔子和狐狸存在一种互动关系,兔子的数量会因为狐狸数量的增加而减少,狐狸的数量也会因为兔子数量的减少而减少,两者之始至终都相互影响。我们用正比于两者数量的积来表示这种互动关系, 所以更精确的模型可以这样写:

现在考虑兔子的数量,如果没有狐狸,并且假设自然资源、空间充足,那么兔子会呈现指数式增长:

事实上,兔子的数量会随着狐狸数量的增加而减少,这种减少体现在两种生物的互动过程中。

结合之前的分析,我们可以得到一个综合的微分方程组:

捕食者和被捕食者模型,这个著名的方程组也叫做 Lotka-Volterra predator-prey model。

三、Python分析

可视化捕食者和被捕食者模型随时间变换情况:

利用 numpy 的 polyfit、poly1d 拟合数据点,分别得到两个多项式方程。

scipy求导并代入值计算,等式两边的输入都有了,用多元线性回归(fit_intercept=False,不要截距)拟合数据,可以分别估计方程两个参数;最终得到拟合的 a,b,c,d 的值。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、问题来源
  • 二、引言
  • 三、Python分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档