Объясните вывод Matlab ode45. Является ли ode45 итеративным алгоритмом? - PullRequest
0 голосов
/ 07 января 2019

Я попытался использовать ode45 для решения уравнения и получить вывод, подобный следующему. Я понял, что он пытается оценить, используя близлежащие точки (как объяснено здесь https://www.mathworks.com/videos/solving-odes-in-matlab-6-ode45-117537.html).. Насколько я понимаю, это должно решить уравнение за один раунд вычислений? Но результат выглядит так, как будто ode45 является итеративным алгоритмом (так что он генерирует выходные данные, которые повторяют «... шаги ... неудачная попытка ... оценка функции» снова и снова)? Если это итеративно, не могли бы вы дать некоторые детали или ссылки? Спасибо!

enter image description here

1 Ответ

0 голосов
/ 07 января 2019

ode45 является итеративным адаптивным ODE-решателем. То есть он использует метод 5-го порядка (FSAL), чтобы предложить обновление с использованием шага h. Затем он делает то же самое снова, но теперь с помощью метода 4-го порядка, затем сравнивает эти два обновления друг с другом, если разница меньше некоторого локального допуска, он принимает предложенное обновление. Если разница больше некоторого локального допуска, обновление отклоняется, а размер шага уменьшается (каким-то разумным способом).

Чтобы снизить стоимость использования метода 4-го и 5-го порядка, эти два метода используют (приблизительно) одинаковые оценки функций.

Что касается вашего вывода, то, как отмечает @LutzL, это не стандартный вывод, который может указывать на ошибку в вашем коде.

...