2014-02-05 2 views
0

У меня есть вопрос по той же теме в math.stackexchange.com: https://math.stackexchange.com/questions/664422/how-does-matlab-simulink-get-such-accurate-ode-solution-results, и он остается открытым.Как Simulink реализует решение Runge-Kutta?

Я ищу, чтобы понять, как точность решения Simulink для решения ODE с предположительно решателем Runge-Kutta четвертого порядка (ODE4) намного превосходит любую реализацию, которую я разработал до сих пор. Либо я неправильно реализовал алгоритм, либо Simulink делает дополнительную работу за кадром, чтобы повысить точность. Я спросил на сайте обмена математическим стеком о возможных математических методах, я спрашиваю здесь об компьютерных методах достижения большей точности.

Мои интересы связаны с необходимостью понимания стабильности модели с использованием различных методов решения, и не зная, что делает Simulink для получения точности, означает иметь меньше представления о ее потенциальной стабильности в определенных ситуациях.

+6

Разница была вызвана ошибкой реализации, как описано в дубликате вопроса: http://math.stackexchange.com/a/664511/104019 – Daniel

ответ

1

Я думаю, что это имеет некоторую связь с энергосбережением метода интегрирования.

Возможно, они используют модифицированный метод RK без такого дрейфа энергии.

http://en.wikipedia.org/wiki/Symplectic_integrator

0

Простой метод Рунге-Кутта, как оказалось, так же точно, как и определение Simulink при правильной реализации. Несколько ошибок реализации способствовали относительно небольшой, но определенной ошибке из правильно реализованного решения.

Ответ на этот вопрос заключается в том, что Simulink реализует решатель RK, как это было согласовано в литературе, без каких-либо проприетарных улучшений.

Смежные вопросы