问题标签 [desolve]

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 回答
861 浏览

r - ODE,多根和事件,R

我喜欢解决一个涉及多个阈值的耦合微分方程系统。浏览 R 信息,这使我将 ODE 与根函数和事件函数结合使用。

通过各种示例,即温度模型,第 14 页http://cran.r-project.org/web/packages/diffEq/vignettes/ODEinR.pdf - 粘贴在下面的代码 - 我可以让我的模型行动在一个阈值上,即找到一个变量的根/达到阈值会触发一个事件。

该示例还表明,不同的根可以触发相同的事件函数(y[1] – 18 和 y[1]-20 都触发 eventfunc)。但是,我的问题是,是否也可以让不同的根触发不同的事件函数?换句话说,根据找到哪个root,触发不同的eventfunc?或者,在同一个 eventfunct 中,它是否可以根据找到的根执行不同的操作。

为了简单起见,我首先想看看这是否可以使用相同的示例,例如通过命名根和使用 if 语句?目前这行不通。这个事情谁有经验?如果您查看 attributes(out),ODE 似乎确实记录了遇到 $indroot 的根(但这是在评估之后。)提前谢谢您。

0 投票
1 回答
332 浏览

r - eval 中的错误(expr、envir、enclos):找不到对象“B”

我被这段代码困住了将近两个月,任何帮助都将不胜感激。

我想将三个微分方程与 R 中的 deSolve 包集成。这是我的代码

这些是我想探索的数学方程式

但是,自从我收到此错误以来,我还没有成功:

eval 中的错误(expr、envir、enclos):找不到对象“B”

你知道我做错了什么吗?

更新


经过一段时间的尝试,我找到了问题的答案。我将发布一个带有解决方案和图表的 github 链接

0 投票
1 回答
40 浏览

r - 导数数 =/= R 中的初始参数数误差

我正在尝试做一个 ODE 求解器,但我在函数中的方程与我在lotka()函数中设置的初始参数之间的向量存在问题TLfit()。我不明白为什么当我列出 3 个参数时它说我有一个长度为 1 的向量。谁能提供一些见解?

我得到错误:

0 投票
1 回答
159 浏览

r - deSolve & 循环求解 R 中的二阶微分方程?

你好亲爱的社区,

我试图解决一个二阶微分方程已经有一段时间了。方程式如下:

∂P/∂t = D * ∂^2P/∂x^2

我应该运行它几个 P;数据框的 P1= df$col1, P2=df$col2, P3=df$col3 和 D 将是 df$col4 并且 x 将是 df$col5

我正在尝试为此使用“deSolve”,但目前我没有太大的成功。我将不胜感激您对如何用 R 求解二阶微分方程的意见。

0 投票
1 回答
47 浏览

r - 在 ODE 系统中添加 if then 语句来条件初始值;解解

我正在尝试添加一个 if then 语句来调节我的一个状态变量的初始值,并且正在使用 deSolve。本质上,我想在模拟开始后引入第 3 个 ODE(在本例中为第 3 个物种)。

这是没有条件的代码的样子:

这是我到目前为止所拥有的,在尝试添加 if then 语句之后,说在 time = 50 之前,第三个状态变量的初始值为 0,并且在 time = 50 或以上时,初始值第三个状态变量将为 1。

有什么建议么?

如果我应该添加任何其他信息,请告诉我,非常感谢您的阅读!:)

0 投票
0 回答
10 浏览

ode - 使用 deSolve 时,如何将初始条件强制到离散化 PDE 上?

我正在尝试用一个 ODE 和一个二阶 PDE 求解一个微分方程组。我已经离散化了 PDE,以便我可以使用 deSolve ode.1D 来解决它,但现在我无法弄清楚如何将我的边界条件包含在空间 dE/dx 导数中。在 x = 0 和 x = 1 处,dE/dx 的边界值对于获得正确解很重要。如何将它们包含在模型中?

我的代码:

0 投票
1 回答
47 浏览

r - 如何以固定步骤获得输出?

我有一个微分方程系统,有点复杂,但我能得出的最接近的类比是催化化学反应,其中催化剂随着时间的推移而分解,例如

所以我们有dAdt(A,B) = -k1*A*B并且dBbt(a,B) = -k2*B

我可以用rk4一组固定的时间点对此进行建模......但我想运行它直到说 B < 1e-8

我认为这可以通过使用通用ode包中的根函数来完成,但这也只需要一个times参数,它迫使我提前选择我想要“A 和 B 的浓度”的时间。

注意:我的真实方程更复杂,实际上计算起来也很复杂——它们与化学无关,除了值都是正数,一旦一个接近零且没有任何可能性,系统的状态就会停止变化.

我有一个手动的 RK4 实现,可以满足我的要求,但是我编写的代码是我需要测试的代码,我知道这个deSolve包已经过很好的测试,所以我只是在寻找一种方法来获得固定步长的输出,直到“根”函数返回 true

更新

这是一个解决我的问题的例子,我知道我想要答案的时间:

我想要的是“将代码的最后两行更改为此”

__name_of_function__希望包中的某些功能deSolve或相关的帮助程序包在哪里

0 投票
2 回答
49 浏览

r - deSolve ODE 积分错误,我是否使用了错误的函数?

我正在尝试解决一组与生物过程相关的方程。一个方程(约 5)用于形式的药代动力学(PK)曲线C = Co(exp(k1*t)-exp(k2*t)。需要同时求解该方程的导数以及一些酶结合方程和不符合预期的初始结果。故障排除后,如果 k 为负,则使用 desolve ode 函数意识到 PK 导数本身不会进行数值积分。我尝试了 ode 函数中的所有方法(lsode、lsoda 等),但均未成功。我试过调整rtol,它没有解决。

是否有我应该研究的 deSolve ode 函数的替代方法?或者另一种解决这个问题的方法?

下面是带有简化方程的代码来演示该问题。当 k 为负时,积分解与解析结果不匹配。当 k 为正时,结果与预期一致。

第一张图像,k=0.2 的结果:当 k 为正时,分析和综合结果匹配 当 k 为正时,分析和综合结果匹配

第二张图像,k=-0.2 的结果:当 k 为负时,积分结果与解析结果不匹配 当 k 为负时,积分结果与解析结果不匹配

有人指出,初始条件很容易解决上面的例子,这很有帮助。这是我无法准确积分的方程式,我尝试了几种不同的初始条件,但没有真正成功。

目标曲线和 ode 解线。

0 投票
0 回答
44 浏览

events - R包deSolve:使用函数和数据框的组合触发不同的事件

我正在使用 deSolve 包中的 ODE 函数。我知道我可以使用“事件”参数在给定时间使用数据框或函数触发事件(https://tpetzoldt.github.io/deSolve-forcing/deSolve-forcing.html#events)。是否可以使用数据框和函数的组合在给定时间触发不同的事件?

0 投票
1 回答
62 浏览

python - Rs deSolve 和 Pythons odeint 的区别

我目前正在探索 Lorenz 系统,PythonR注意到ode包中的细微差别。odeintfromPythonode都说他们lsoda用来计算他们的导数。但是,lsoda对两者使用该命令似乎会给出截然不同的结果。我已经尝试ode45ode函数 inR得到更相似的东西,Python但我想知道为什么我不能得到完全相同的结果:

我不得不打电话out[1:nrow(out), , drop = FALSE]来获得完全提供的小数位,似乎head四舍五入到最接近的五分之一。我知道这是非常微妙的,但希望得到完全相同的结果。有谁知道这是否不仅仅是和之间的舍入R问题Python

提前致谢。