【问题标题】:Solving system of ODEs in vector/matrix form in R (with deSolve?)在 R 中求解向量/矩阵形式的 ODE 系统(使用 deSolve?)
【发布时间】: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 个增长参数向量的微分方程。

我可以像上面那样定义函数,但是当涉及到使用来自deSolveode 函数时,期望parms 应该作为参数的命名向量传递,这当然不是接受非标量值。

在带有 deSolve 或其他软件包的 R 中这完全可能吗?如果不是,我会考虑使用 MATLAB 或 Python,尽管目前我也不知道这两种语言是如何完成的。

非常感谢,

H

【问题讨论】:

    标签: r


    【解决方案1】:

    由于我的声誉很低(积分),我很抱歉将其发布为一个应该只是评论的答案。回去,你试过这个link吗?此外,为了尝试找到解决问题的替代方案,您是否尝试过 MANOPT,MATLAB 的工具箱?它实际上是 open source,就像 R。我在 paper 上遇到 MANOPT,其问题归结为 solving a system of ODEs involving purely matrices

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-17
      • 2022-10-25
      相关资源
      最近更新 更多