Итак, я хочу спросить, есть ли способ определить и решить систему дифференциальных уравнений в 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 вектором параметров роста.
Я могу определить функцию, как указано выше, но когда дело доходит до использования функции ode
из deSolve
, есть ожидание parms
, которое должно быть передано как именованный вектор параметров, что, конечно, не принимать нескалярные значения.
Это вообще возможно в R с deSolve или другим пакетом? Если нет, я, возможно, рассмотрю возможности использования MATLAB или Python, хотя в настоящее время я не знаю, как это делается ни на одном из этих языков.
Большое спасибо,
H