Comments 11
Я как-то писал решение простейшего ОДУ, но при этом в уравнение еще входило показание одного датчика. Естественно, датчик шумит.
Я сравнивал метод Эйлера, методы Рунге-Кутты и Адамса — Башфорта (из Википедии) разных порядков.
Так вот метод Эйлера оказался лучше всех. Точнее, и, самое главное, использованные методы высокого порядка иногда расходились. Как раз из-за того, что в уравнении присутствует шумный сигнал датчика. Метод Эйлера отклонялся от решения, но всегда к нему возвращался.

Есть ли какие-то простые численные методы, учитывающие неидеальность реальных сигналов?
Здесь лучше смотреть в сторону фильтров. Классика — фильтр Калмана.
Но если датчик инерциальный, то по высоте (направлению g) ничего толкового не получится практически никогда.
Когда уже сделают формулы в комментах…

Явный метод Эйлера выглядит так

y(i+1) = y(i) + f[y(i), t(i)] * dt

то есть производную мы вычисляем, опираясь на текущее значение фазовой координаты. В неявном методе делают так

y(i+1) = y(i) + f[y(i+1), t(i+1)] * dt

теперь неизвестное значение фазовой координаты достать намного тяжелее, так как оно входит как аргумент правой часть оду. Приходится решать методом Ньютона нелинейное уравнение

y(i+1) — y(i) — f[y(i+1), t(i+1)] * dt = 0

относительно y(i+1). Для систем оду это приводит к необходимости вычислять матрицу Якоби. Но устойчивость метода для жестких систем коллосальна
Аааа, вспомнил.
Я неявные методы сразу отбросил, из-за того, что в решение входит метод Ньютона с неопределенным количеством итераций, а решение надо выдавать в реальном времени.
Может, я в чем-то не прав.
Очень познавательно
хех
для студентов 1 курса
Надеюсь, в последующих выпусках будут фигурировать стохастические методы, а не хеллоуворлд от мира численного моделирования:D
Про методы повышения точности без уменьшения шага будет статья?
Еще не читал, но после прочтения первой части добавил вторую в закладки. Спасибо.
Only those users with full accounts are able to leave comments. Log in, please.