作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试求解仅限于正解的 ODE,即:
dx/dt=f(x)
x>=0
。
在 MATLAB 中这很容易实现。 R 是否有任何变通方法或包来将解决方案空间限制为仅正值?
这对我来说非常重要,不幸的是没有其他选择。我搜索了一段时间但没有成功。 :-(
最佳答案
这里还不够。对于我熟悉的各种问题,修改系统以在对数转换状态变量的规模上运行效果很好(您始终可以反向转换结果,例如将它们与数据进行比较)。例如,我将其与 SIR model in epidemiology 一起使用.我将尝试使用@MauritsEver 的示例来说明如何将系统转换为在对数尺度上运行:
library(deSolve)
model <- function (time, y, parms) {
with(as.list(c(y, parms)), {
dlogN <- r * (1 - exp(logN) / K)
list(dlogN)
})
}
# Starting conditions
y <- c(logN = log(0.1))
parms <- c(r = 0.1, K = 10)
times <- seq(0, 100, 1)
out <- as.data.frame(ode(y, times, model, parms))
out_backtran <- transform(out,N=exp(logN))
plot(N~time,data=out_backtran)
这种方法有以下缺点:
关于r - 求解 ODE - 只有正解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47401678/
我是一名优秀的程序员,十分优秀!