Решение системы ОДУ в векторной / матричной форме в R (с deSolve?)

Поэтому я хочу спросить, есть ли способ определить и решить систему дифференциальных уравнений в 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 вектором параметров роста.

Я могу определить функцию, как указано выше, но когда дело доходит до использования функции ode из deSolve, ожидается, что parms должен быть передан как именованный вектор параметров, который, конечно, не принимает нескалярные значения.

Возможно ли это вообще в R с deSolve или другим пакетом? В противном случае я рассмотрю, возможно, использование MATLAB или Python, хотя я не знаю, как это делается на любом из этих языков в настоящее время.

Большое спасибо,

ЧАС

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
445
1

Ответы 1

С моей низкой репутацией (в баллах) я извиняюсь за то, что опубликовал это как ответ, который, предположительно, должен быть просто комментарием. Возвращаясь назад, вы пробовали этот ссылка на сайт? Вдобавок, пытаясь найти альтернативное решение вашей проблемы, пробовали ли вы МАНОПТ, набор инструментов MATLAB? На самом деле это открытый источник, как и R. Я столкнулся с MANOPT на бумага, проблема которого сводится к решение системы ОДУ, состоящей исключительно из матриц.

Другие вопросы по теме