时间序列微分方程可以通过取dt =小数,并使用几个numerical integration techniques中的一个来数值模拟。 Euler's method或Runge-Kutta。欧拉的方法可能是原始的,但它适用于某些方程式,并且它很简单,你可以尝试一下。例如。:

S'(t) = - l(t) * S(t)

I'(t) = l(t) * S(t) - g(t) * I(t)

R'(t) = g(t) * I(t)

int N = 100;

double[] S = new double[N+1];

double[] I = new double[N+1];

double[] R = new double[N+1];

S[0] = /* initial value */

I[0] = /* initial value */

R[0] = /* initial value */

double dt = total_time / N;

for (int i = 0; i < 100; ++i)

{

double t = i*dt;

double l = /* compute l here */

double g = /* compute g here */

/* calculate derivatives */

double dSdt = - I[i] * S[i];

double dIdt = I[i] * S[i] - g * I[i];

double dRdt = g * I[i];

/* now integrate using Euler */

S[i+1] = S[i] + dSdt * dt;

I[i+1] = I[i] + dIdt * dt;

R[i+1] = R[i] + dRdt * dt;

}困难的部分是弄清楚要使用多少步骤。您应该阅读我链接到的其中一篇文章。更复杂的微分方程求解器使用可变步长,以适应每个步骤的精度/稳定性。

我实际上建议使用像R或Mathematica或MATLAB或Octave这样的数字软件,因为它们包括ODE求解器,你不需要自己解决所有问题。但是如果你需要在大型Java应用程序中执行此操作,至少首先使用数学软件进行尝试,然后了解步长是什么以及解算器的工作原理。

祝你好运!

java 微分方程求解_Java中的微分方程相关推荐

  1. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  2. java show过时_Java中show() 方法被那个方法代替了? java编程 显示类中信

    你说的show是swing里的吧,在老版本中Component这个超类确实有show这个方法,而且这个方法也相当有用,使一个窗口可见,并放到最前面.在jdk5.0中阻止了这个方法,普遍用setVisi ...

  3. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  4. java 序列化实例_Java中的序列化与反序列化实例

    创建的字节流与平台无关.因此,在一个平台上序列化的对象可以在另一个平台上反序列化. 为了使Java对象可序列化,我们实现java.io.Serializable可序列化接口. ObjectOutput ...

  5. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

  6. java 代码锁_Java中的Lock锁

    Lock锁介绍: 在java中可以使用 synchronized 来实现多线程下对象的同步访问,为了获得更加灵活使用场景.高效的性能,java还提供了Lock接口及其实现类ReentrantLock和 ...

  7. java wait 参数_java中wait()和join()方法的区别是什么

    java中wait()和join()方法的区别是:存在不同的java包中:wait()方法用于线程间通信,它所施加的等待状态的线程可以被启动:join()方法用于在多个线程之间添加排序,它所施加的等待 ...

  8. java thread join()_Java中Thread.join()的使用方法

    概要 本文分三个部分对thread.join()进行分析: 1. join() 的示例和作用 2. join() 源码分析 3. 对网上其他分析 join() 的文章提出疑问 1. join() 的示 ...

  9. java 锁定界面_Java中的锁

    java中的锁遵循不同的分类方法,太多了,乐观锁/悲观锁,可重入锁/不可重入锁,有些第一遇到的话,可能还有点懵.刚好周末有时间学习下,总结和梳理下. 一总述 总的来说对java的锁有以下七种分类方法: ...

最新文章

  1. 寒冰linux视频教程笔记8 系统监控
  2. JDK, JRE 和JVM的区别
  3. 数据中心的供配电与空调
  4. rand()函数100000随机数_利用随机函数Rand、Randbetween制作抽奖器应用技巧解读
  5. 详解get与post请求方式、content-type与responseType、@Requestbody与@Requestparam的使用场景
  6. html 图片展示 3d,CSS3 3D图像显示
  7. 数据结构-图-邻接矩阵-试在邻接矩阵存储结构上实现图的基本操作 matrix_insert_vertex 和matrix_insert_arc-icoding
  8. 获取zabbix监控数据
  9. 仿小说蓝色小说网站导航引流网站源码 带手机版
  10. Java中使用JNA实现全局监听Linux键盘事件
  11. OpenCV-怀旧色滤镜
  12. 西交大计算机系分数线,西安交通大学专业排名及分数线
  13. android qq音乐 本地歌曲,如何将手机qq音乐本地歌曲导入到电脑
  14. 微信支付参数正确返回验签失败,建行微信服务商
  15. 测试场景设计-登录设计
  16. c++:简单的运算符重载
  17. 台式计算机怎样能搜无线连接,电脑如何连无线网_台式电脑怎么连接wifi步骤-win7之家...
  18. OPC是什么意思?OPC Server 和OPC Client又有什么区别呢?
  19. 【微信小程序】uniapp开发小程序如何使用微信云托管或云函数进行云开发
  20. ssm基于微信小程序的游泳馆管理系统+uinapp+java+计算机毕业设计

热门文章

  1. Linux下运行Jmeter脚本
  2. navicat中文版安装
  3. sitecore系统教程之架构概述
  4. Cross-site Scripting (XSS) 阅读笔记
  5. MySQL内核:InnoDB存储引擎 卷1
  6. 微信二次开发SDK使用教程--手机检测到有人点赞/取消点赞通知服务端
  7. graph 关系图 设置
  8. Visual Studio 2017更新内容记录
  9. Oracle12c安装出错
  10. jquery实现点击改变背景色,点击其他恢复原来背景色,被点击的改变背景色