问题标签 [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.
matlab - 如何在不使用嵌套函数的情况下求解 ODE?
我有一些微分方程需要使用 MATLAB 的 ODE 求解器求解。虽然微分方程本身相当简单,但它们依赖于许多“常数”。这些常量不是通用的,需要由调用者提供。
这种类型的示例 ODE 将是:
其中 j、k 和 l 是常数,x 是变量。
到目前为止,我解决这些问题的方法是使用一个函数,该函数将所有初始值和所有常量值(大约有 10 个)作为参数,然后调用一个内部“step”函数,该函数采用MATLAB 对其 ODE 求解器所期望的形式的向量。所以...
然而,随着变量数量和代码大小的增加,这变得越来越不优雅,并导致代码混乱得几乎无法阅读。所以,我想做的是将每个系统的步进函数移动到它自己的文件中,而不必 a) 将常量传递给输入向量中的步进函数或 b) 使用全局变量。有什么合理的方法可以做到这一点,还是我应该把它吸起来并写出丑陋的代码?
wolfram-mathematica - Mathematica 中非线性 ODE 的初始条件
我正在尝试使用 Mathematica 的 NDSolve[] 使用耦合 ODE 计算沿球体的测地线:
问题是我只能输入 x(0) 和 x'(0) 的初始条件,求解器对 x" = 0 的解感到满意。问题是我在球体上的测地线具有 x “(0)= -x(0),我不知道如何告诉mathematica。如果我将此添加为条件,则表示我将 True 添加到条件列表中。
这是我的代码:
我想修改它,使初始加速度不为零,而是-x(0)
.
谢谢
math - 在 Mathematica 中编写欧拉方法
我想编写一个函数,其中有一个循环,它执行欧拉方法所需的操作。下面是我糟糕的尝试。
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 中求解这样的微分方程?我不认为我知道任何有用的方法来做到这一点,所以我的实现产生了垃圾。
}
我将不胜感激任何帮助,非常感谢提前!
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,但我的代码产生了一些奇怪的结果:
找不到错误,请指教!提前谢谢了!
c# - .net 中最好的免费常微分方程库
我正在为我的大学论文项目寻找一个解决 ODE 的库...我想找到的库必须具有以下功能:
事件演算(类似于内部事件停止的连续演算,如达到约束和其他事件)
我正在使用 C# 4.0,所以我认为任何库都可以
有良好的表现
没有$$^^"
matlab - 查找三阶 ODE 和一条线之间的交点?
如何找到三阶 ODE 的解与线 y=x 之间的交点?
我的 ODE 的代码是
ode - 如何解决颂歌
我有一个可以解决 dy/dt=t/y 和 y(0)=1 的 matlab 代码,对于任何给定的问题,我如何推广它来解决 dy/dt=f(t,y), y(o)=y_0 f(t,y)?
r - 如何求解嵌套 ODE 方程
我们可以将deSolve
R 中的包用于常微分方程 (ODE),但是,我找不到解决两个嵌套 ODE 方程的方法,假设`
其中'
表示差异化。a
那么我们该如何解决b
呢?作为a'
的函数b
,我们必须同时求解a
和b
。
我收到一个错误:
lsoda(y, times, func, parms, ...) 中的错误:无法嵌套使用的求解器组合。
当我尝试b
在 ode 解决方案中添加解决方案时a
。
python - odeint <-> interp1d 相互作用中可能存在的错误?
作为 MATLAB 的转换者,我对 python 和 scipy 比较陌生。我正在对 scipy.integrate 中的 odeint 函数进行快速测试,并遇到了这个潜在的错误。考虑以下代码段:
我制作了一个图表来说明两种结果的差异,请单击此处。
至少对我来说,你如何看待这种毫无根据的结果差异?我在 Python 2.6.6 之上使用 NumPy 版本 1.5.0 和 SciPy 版本 0.8.0