Matlab - функция ODE - интеграция себя с функцией ode45 - PullRequest
0 голосов
/ 16 февраля 2020

Я не совсем понимаю, что делает функция ODE в Matlab. Если у меня есть динамика системы, почему я не могу просто интегрировать ее вручную и получить результат. Какова цель функции ode45?

Ответы [ 2 ]

2 голосов
/ 16 февраля 2020

Вы спрашиваете о предпочтении между аналитическим (ручным) и числовым интегрированием. Если вы можете вручную определить ODE, то да, вам не нужно использовать команду ODE для численной интеграции. Вы можете просто вставить начальное / конечное время, начальные условия и параметры модели системы в аналитическое решение, чтобы вычислить числовое значение решения.

Однако, как это часто бывает, найти аналитическое решение ОДУ очень сложно или отнимает много времени. Особенно, если у вас есть система нелинейных дифференциальных уравнений, вычисление решения вручную практически невозможно. В этом случае единственным практическим решением является использование числовой интеграции, такой как возможность, предоставляемая командой ODE45.

Кроме того, как вы, вероятно, знаете, решение ODE может быть довольно сложным в зависимости от входных данных. в систему (ie, функция форсирования). Таким образом, если ваша цель состоит в том, чтобы проанализировать реакцию системы на различные типы входных данных (синусоидальный, шаговый, импульсный и т. Д. c), вручную получить аналитическое решение для каждого типа входных данных будет очень сложно. Принимая во внимание, что изменение типа ввода и повторный запуск команды ODE45 практически тривиальны.

0 голосов
/ 16 февраля 2020

Цитирование официальных документов:

Все решатели MATLAB® ODE могут решать системы уравнений вида y ′ = f (t, y) или задачи, связанные с матрицей масс, M ( т, у) у '= F (т, у). Все решатели используют похожие синтаксисы.

Решатель ode23s может решать проблемы с матрицей масс, только если матрица масс постоянна.

ode15s и ode23t могут решать проблемы с единственной матрицей масс, известной как дифференциально-алгебраические уравнения c (DAE). Укажите матрицу масс с помощью параметра Масса odeset.

ode45 - это универсальный решатель ODE, который является первым решателем, который вам следует решить для большинства задач. Однако, если проблема жесткая или требует высокой точности, то есть другие решатели ODE, которые могут лучше подходить для этой проблемы. См. Выбор ODE Solver для получения дополнительной информации.

https://www.mathworks.com/help/matlab/ref/ode45.html

...