问题标签 [ode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1667 浏览

matlab - 如何在不使用嵌套函数的情况下求解 ODE?

我有一些微分方程需要使用 MATLAB 的 ODE 求解器求解。虽然微分方程本身相当简单,但它们依赖于许多“常数”。这些常量不是通用的,需要由调用者提供。

这种类型的示例 ODE 将是:

其中 j、k 和 l 是常数,x 是变量。

到目前为止,我解决这些问题的方法是使用一个函数,该函数将所有初始值和所有常量值(大约有 10 个)作为参数,然后调用一个内部“step”函数,该函数采用MATLAB 对其 ODE 求解器所期望的形式的向量。所以...

然而,随着变量数量和代码大小的增加,这变得越来越不优雅,并导致代码混乱得几乎无法阅读。所以,我想做的是将每个系统的步进函数移动到它自己的文件中,而不必 a) 将常量传递给输入向量中的步进函数或 b) 使用全局变量。有什么合理的方法可以做到这一点,还是我应该把它吸起来并写出丑陋的代码?

0 投票
2 回答
629 浏览

wolfram-mathematica - Mathematica 中非线性 ODE 的初始条件

我正在尝试使用 Mathematica 的 NDSolve[] 使用耦合 ODE 计算沿球体的测地线:

问题是我只能输入 x(0) 和 x'(0) 的初始条件,求解器对 x" = 0 的解感到满意。问题是我在球体上的测地线具有 x “(0)= -x(0),我不知道如何告诉mathematica。如果我将此添加为条件,则表示我将 True 添加到条件列表中。

这是我的代码:

我想修改它,使初始加速度不为零,而是-x(0).

谢谢

0 投票
2 回答
3804 浏览

math - 在 Mathematica 中编写欧拉方法

我想编写一个函数,其中有一个循环,它执行欧拉方法所需的操作。下面是我糟糕的尝试。

0 投票
1 回答
16289 浏览

java - Java中的微分方程

我正在尝试在java中创建一个简单的SIR-epidemics模型模拟程序。

基本上,SIR 由三个微分方程组定义:
S'(t) = - l(t) * S(t)
I'(t) = l(t) * S(t) - g(t) * I(t)
R'(t) = g(t) * I(t)

S - 易感人群,I - 感染者,R - 康复者。

l(t) = [c * x * I(t)] / N(T)

c - 接触人数,x - 传染性(与病人接触后生病的概率),N(t) - 总人口(恒定)。

如何在 Java 中求解这样的微分方程?我不认为我知道任何有用的方法来做到这一点,所以我的实现产生了垃圾。

}

我将不胜感激任何帮助,非常感谢提前!

0 投票
1 回答
7327 浏览

java - 用于 Java 中的微分方程系统的 Runge-Kutta (RK4)

这个方程主要是这个线程的结果:Java 中的微分方程
基本上,我尝试遵循 Jason S. 的建议并通过 Runge-Kutta 方法 (RK4) 实现微分方程的数值解。

大家好,我正在尝试用java创建一个简单的SIR-epidemics模型模拟程序。基本上,SIR 由三个微分方程组定义:
S'(t) = - lamda(t) * S(t)
I'(t) = lamda(t) * S(t) - gamma(t) * I(t)
R'(t) = gamma(t) * I(t)
S - 易感人群,I - 感染者,R - 康复者。lamda(t) = [c * x * I(t)] / N(T) c - 接触人数,x - 传染性(与病人接触后生病的概率),N(t) - 总人口(其中是恒定的)。
gamma(t) = 1 / 病程(常数)

在第一次不是很成功的尝试之后,我尝试用 Runge-KUtta 解决这个方程,这个尝试产生了以下代码:

这似乎不起作用,因为生病的人数(I)应该先增加,然后减少到大约0,并且恢复的人数应该严格增加。生病 + 健康 + 康复的总数应该是 100,但我的代码产生了一些奇怪的结果:

找不到错误,请指教!提前谢谢了!

0 投票
3 回答
5935 浏览

c# - .net 中最好的免费常微分方程库

我正在为我的大学论文项目寻找一个解决 ODE 的库...我想找到的库必须具有以下功能:

  • 事件演算(类似于内部事件停止的连续演算,如达到约束和其他事件)

  • 我正在使用 C# 4.0,所以我认为任何库都可以

  • 有良好的表现

  • 没有$$^^"

0 投票
1 回答
577 浏览

matlab - 查找三阶 ODE 和一条线之间的交点?

如何找到三阶 ODE 的解与线 y=x 之间的交点?

我的 ODE 的代码是

0 投票
1 回答
144 浏览

ode - 如何解决颂歌

我有一个可以解决 dy/dt=t/y 和 y(0)=1 的 matlab 代码,对于任何给定的问题,我如何推广它来解决 dy/dt=f(t,y), y(o)=y_0 f(t,y)?

0 投票
1 回答
1423 浏览

r - 如何求解嵌套 ODE 方程

我们可以将deSolveR 中的包用于常微分方程 (ODE),但是,我找不到解决两个嵌套 ODE 方程的方法,假设`

其中'表示差异化。a那么我们该如何解决b呢?作为a'的函数b,我们必须同时求解ab

我收到一个错误:

lsoda(y, times, func, parms, ...) 中的错误:无法嵌套使用的求解器组合。

当我尝试b在 ode 解决方案中添加解决方案时a

0 投票
1 回答
632 浏览

python - odeint <-> interp1d 相互作用中可能存在的错误?

作为 MATLAB 的转换者,我对 python 和 scipy 比较陌生。我正在对 scipy.integrate 中的 odeint 函数进行快速测试,并遇到了这个潜在的错误。考虑以下代码段:

我制作了一个图表来说明两种结果的差异,请单击此处

至少对我来说,你如何看待这种毫无根据的结果差异?我在 Python 2.6.6 之上使用 NumPy 版本 1.5.0 和 SciPy 版本 0.8.0