【发布时间】:2018-05-01 13:44:29
【问题描述】:
所以我想问是否有任何方法可以使用矩阵表示法定义和求解 R 中的微分方程组。
我知道你通常会做类似的事情
lotka-volterra <- function(t,a,b,c,d,x,y){
dx <- ax + bxy
dy <- dxy - cy
return(list(c(dx,dy)))
}
但我想做
lotka-volterra <- function(t,M,v,x){
dx <- x * M%*% x + v * x
return(list(dx))
}
其中 x 是长度为 2 的向量,M 是 2*2 矩阵,v 是长度为 2 的向量。即我想使用矩阵/向量表示法定义微分方程组。
这很重要,因为我的系统要复杂得多,我不想定义 11 个具有 100 多个参数的不同微分方程,而不是定义 1 个具有 1 个交互参数矩阵和 1 个增长参数向量的微分方程。
我可以像上面那样定义函数,但是当涉及到使用来自deSolve 的ode 函数时,期望parms 应该作为参数的命名向量传递,这当然不是接受非标量值。
在带有 deSolve 或其他软件包的 R 中这完全可能吗?如果不是,我会考虑使用 MATLAB 或 Python,尽管目前我也不知道这两种语言是如何完成的。
非常感谢,
H
【问题讨论】:
标签: r