Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在特定时间找到ODE系统的值

如何在特定时间找到ODE系统的值
EN

Stack Overflow用户
提问于 2020-03-27 02:13:06
回答 1查看 63关注 0票数 1

我正在学习如何在python上编写代码,并且我正在试图弄清楚如何在特定时间从ODE系统中找到解决方案的总和。

例如,这是来自SciPy Cookbook的例子被称为“为僵尸启示录建模”https://scipy-cookbook.readthedocs.io/items/Zombie_Apocalypse_ODEINT.html

以下是该网站的部分代码:

代码语言:javascript
运行
AI代码解释
复制
# zombie apocalypse modeling
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
plt.ion()
plt.rcParams['figure.figsize'] = 10, 8

P = 0      # birth rate
d = 0.0001  # natural death percent (per day)
B = 0.0095  # transmission percent  (per day)
G = 0.0001  # resurect percent (per day)
A = 0.0001  # destroy percent  (per day)

# solve the system dy/dt = f(y, t)
def f(y, t):
     Si = y[0]
     Zi = y[1]
     Ri = y[2]
     # the model equations (see Munz et al. 2009)
     f0 = P - B*Si*Zi - d*Si
     f1 = B*Si*Zi + G*Ri - A*Si*Zi
     f2 = d*Si + A*Si*Zi - G*Ri
     return [f0, f1, f2]

# initial conditions
S0 = 500.              # initial population
Z0 = 0                 # initial zombie population
R0 = 0                 # initial death population
y0 = [S0, Z0, R0]     # initial condition vector
t  = np.linspace(0, 5., 1000)         # time grid

# solve the DEs
soln = odeint(f, y0, t)
S = soln[:, 0]
Z = soln[:, 1]
R = soln[:, 2]

# plot results
plt.figure()
plt.plot(t, S, label='Living')
plt.plot(t, Z, label='Zombies')
plt.xlabel('Days from outbreak')
plt.ylabel('Population')
plt.title('Zombie Apocalypse - No Init. Dead Pop.; No New Births.')
plt.legend(loc=0)

从这个模型中,假设我想要找出在4天的时间内有多少僵尸和人活着(即:4天的活着的人口和僵尸人口的总和)。有什么办法可以做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-27 02:58:17

你只需要为活体群体做S[4],为僵尸群体做Z[4]SZ是求解每个时刻t的常微分方程组后这些变量的近似值。

请记住,值可能不是int,因此解决方案可能对物理问题没有意义:

代码语言:javascript
运行
AI代码解释
复制
print(S[4])
499.99899899996575
print(Z[4])
1.036906736082604e-09

你可能会想到,在第4天,有一个人变成了僵尸,但还没有完全变成僵尸。

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60879019

复制
相关文章
如何根据特定值找到IDOC
IDOC的官方名称叫Intermediate Document,用于两个模块,或者两个系统间交换信息。
用户5495712
2020/10/22
1.9K0
如何根据特定值找到IDOC
漫画:如何在数组中找到和为 “特定值” 的两个数?
什么意思呢?我们来举个例子,给定下面这样一个整型数组(题目假定数组不存在重复元素):
小灰
2020/10/09
3.2K0
漫画:如何在数组中找到和为 “特定值” 的两个数?
漫画:如何在数组中找到和为 “特定值” 的三个数?
前一段时间,我们介绍了LeetCode上面的一个经典算法题【两数之和问题】。 这一次,我们把问题做一下扩展,尝试在数组中找到和为“特定值”的三个数。 题目的具体要求是什么呢?给定下面这样一个整型数组: 我们随意选择一个特定值,比如13,要求找出三数之和等于13的全部组合。 由于5+6+2=13, 5+1+7=13,3+9+1=13,所以最终的输出结果如下: 【5, 6,2】 【5, 1,7】 【3, 9,1】 小灰的思路,是把原本的“三数之和问题”,转化成求n次“两数之和问题”。 我们以上
腾讯NEXT学位
2020/10/14
2.4K0
01:查找特定的值
01:查找特定的值 查看 提交 统计 1 #include<iostream> 2 using namespace std; 3 int a[10001]; 4 int main() 5 { 6 int n; 7 int ans; 8 cin>>n; 9 for(int i=1;i<=n;i++) 10 { 11 cin>>a[i]; 12 } 13 cin>>ans; 14 for(int j=1;j<
attack
2018/04/03
1.9K0
js获取当前时间(特定的时间格式)[通俗易懂]
在一个程序中需要对用户的操作进行记录,记录其操作信息,需要对操作进行归类, 有时候用户的操作是重复性的操作,那对于重复的操作,也是要区分的,方便查找, 可以通过设置类似GUID的唯一值,也可以获取当前的操作时间来区分,因为时间也是唯一的, 在任何时候时间都不会出现重复,当然可以获取就可以设置,所以您也可以人为的去设置/修改操作时间。 但是这样不好。
全栈程序员站长
2022/09/29
15.4K0
js获取当前时间(特定的时间格式)[通俗易懂]
如何在O(1)内找到实时序列的最小值?
最小栈,能在O(1)内找到栈内序列的最小值,因此此特性经常用于提升算法性能。下面看看它的一种实现。
double
2021/05/07
6860
练习4—寻求特定值
题目 编写程序,从键盘上输入N个学生的考试成绩存入一维数组中,求该数组中成绩的最高分、最低分及平均分并输出到屏幕。 解题步骤 (1)定义常量N值; (2)建立用于存放数据的一维数组; (3)接收用户输入; (4)查询 / 计算特定值; (5)输出结果; Java import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner input = ne
攻城狮杰森
2022/06/03
3750
如何在linux系统上找到占用硬盘空间最大的文件
在Linux系统上,有多种方法可以找到占用硬盘空间最大的文件。以下是三种常用的方法:
用户8418197
2023/05/29
2.5K0
使用 Python 删除大于特定值的列表元素
Lambda 函数,通常称为“匿名函数”,与普通的 Python 函数相同,只是它可以在没有名称的情况下定义。def 关键字用于定义普通函数,而 lambda 关键字用于定义匿名函数。但是,它们仅限于单一的表达方式。与常规函数一样,它们可以接受多个参数。
很酷的站长
2023/02/23
10.9K0
使用 Python 删除大于特定值的列表元素
PHP 获取 特定时间范围 类
目录 前序   用途   功能及事项   使用方法   代码及注释 前序:   总体来说,我更应该是一个 android 移动开发者,而不是一个 phper,如果说只做移动端的 APP ,我也不会学
林冠宏-指尖下的幽灵
2018/01/03
2.2K0
MySQL设置字段的默认值为当前系统时间
问题产生: 当我们在对某个字段进行设置时间默认值,该默认值必须是的当前记录的插入时间,那么就将当前系统时间作为该记录创建的时间。 应用场景: 1、在数据表中,要记录每条数据是什么时候创建的,应该由数据库获取当前时间自动记录创建时间。 2、在数据库中,要记录每条数据是什么时候修改的,应该而由数据数据库获取当前时间自动记录修改时间。 实际开发: 记录用户的注册时间、记录用户最后登录时间、记录用户的注销时间等。 实现步骤:(如果使用数据库远程工具则直接设置,更简单!!!) 首先将数据表中字段的数据类型设置为TIM
赵小忠
2018/01/24
9.4K0
如何在 GitHub 上找到你要的代码?
你在 GitHub 上搜索代码时,是怎么样操作的呢?是不是就像这样,直接在搜索框里输入要检索的内容,然后不断在列表里翻页找自己需要的内容?
Crossin先生
2019/10/24
2K0
如何在Ubuntu上找到Redis日志
日志对于Redis安装的故障排除至关重要。你可能会问自己“我的Redis在哪里登录?” 或者“Redis在Ubuntu 14.04上存储日志文件的位置是什么?”
编程男孩
2018/09/27
5K0
LeetCode 5993. 将找到的值乘以 2
给你一个整数数组 nums ,另给你一个整数 original ,这是需要在 nums 中搜索的第一个数字。
Michael阿明
2022/03/10
4260
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
30.4K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
如何在 GitHub 上找到免费且实用的软件?
今天稍微调整一下,分享 GitHub 上几个比较不错的项目合集,让你们可以在上面找到一些实用的软件。
GitHubDaily
2019/06/28
1.3K0
如何在 GitHub 上找到免费且实用的软件?
如何在特定的渗透测试中使用正确的Burp扩展插件
写在前面的话 Burp Suite是很多渗透测试人员会优先选择使用的一款强大的平台,而且安全社区中也有很多研究人员开发出了大量的功能扩展插件并将它们免费提供给大家使用。这些插件不仅能够简化渗透测试的过
FB客服
2018/03/01
2.6K0
如何在特定的渗透测试中使用正确的Burp扩展插件
点击加载更多

相似问题

scipy.integrate.ode求解ODE系统时使用自适应时间步长

11

如何求解R中随时间变化的ODE系统?

24

python中具有特定时间点的ODE

17

ode数值求解系统

12

如何在Ode45中传递随时间变化的值

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档