Я использую boost::numeric::odeint
Решения ODE и задаются вопросом о них. В инструкциях указано, что bulirsch_stoer
- это Stepper с шагом и размером порядка. Кроме того, заказ является переменной, которую пользователь может изменить. Я смотрю на header file, но не понял? У кого-нибудь есть решение?Как управлять порядком метода bulirsch_stoer в boost :: odeint?
3
A
ответ
2
как порядок, так и порядок, скорректированы с помощью метода bulirsch-stoer внутренне с помощью довольно сложного алгоритма. Пользователь не может влиять на заказ вручную.
Если вам нужен степпер с определенным порядком, вы должны рассмотреть многоэтапный метод, например Adams-Bashforth, где вы указываете порядок вверх. Тем не менее, порядок не может быть изменен во время интеграции.
Смежные вопросы
- 1. Установка odeint и boost
- 2. boost :: sandbox :: odeint install
- 3. Тип типа boost: fusion in boost: odeint
- 4. как интерполировать решение в boost odeint bulirsch_stoer_dense_out
- 5. boost :: odeint deduction/failure failure
- 6. DDE с использованием boost odeint
- 7. Ошибка сегментации в boost :: odeint my_vector.cpp example
- 8. boost :: odeint, вызванный в классе-члене
- 9. Как управлять порядком генерации элементов в xsl
- 10. Как управлять порядком распространения обновлений в блестящем
- 11. Как управлять порядком инициализации модуля в Prism
- 12. Как управлять порядком событий в ajaxified pagination?
- 13. Есть ли аналог lsode в Boost OdeInt?
- 14. Использование boost :: numeric :: odeint внутри класса
- 15. Boost odeint класс с производными и jacobian
- 16. Как управлять порядком выполнения наблюдателя компонента ember?
- 17. Нужно ли устанавливать Boost для создания odeint?
- 18. Временной шаг управления с использованием odeint (Boost)
- 19. boost odeint слишком много аргументов для функции
- 20. Как управлять порядком запуска модуля стекловолокна
- 21. управлять порядком, в котором происходят переходы свойств?
- 22. Как я могу управлять переменным порядком на совместимости Com?
- 23. , используя несколько собственных матриц в качестве statetypes в boost/odeint
- 24. Как я могу управлять порядком, в котором вызываются компоненты ApplicationListener?
- 25. Как я могу управлять порядком z нескольких строк в ggplot2?
- 26. R Программирование: Как управлять порядком в группированной гистограмме?
- 27. Как управлять порядком функций, вызываемых в jQuery $ (document) .ready
- 28. Как управлять порядком оценки в вызове по стоимости?
- 29. Как управлять порядком слоев на карте в d3js
- 30. Как управлять порядком выполнения двух точечных ссылок в одном пакете
спасибо! И, как вы сказали, пользователь может изменить 4 параметра в конструкторе. Я понимаю, что первые два параметра - это абсолютно и относительные ошибки. Что означают последние два? В инструкции говорится, что они «Фактор веса производной/состояния», я не совсем понимаю это. Как эти два значения повлияют на точность? Что мы должны учитывать, когда мы устанавливаем эти два значения? Наконец, не сообразительный вопрос, какой решатель в odeint имеет самую высокую точность? Еще раз спасибо мариомуланскому! – XYZ
Это также параметры контроля ошибок, а именно a_x и a_dxdt. формула для максимально допустимой ошибки, которая используется в odeint: eps_abs + eps_rel * (a_x * | x | + a_dxdt * dt * | dxdt |) - эта формула может быть найдена в документах odeint, но довольно скрыта. Я допускаю (http://headmyshoulder.github.io/odeint-v2/doc/boost_numeric_odeint/tutorial/harmonic_oscillator.html). Для большинства проблем значения по умолчанию a_x = a_dxdt = 1 являются точными. – mariomulansky
Что касается вашего последнего вопроса: если вы используете шагомер с контролем ошибок, то точность обеспечивается с помощью эпсилонов, которые вы предоставляете, независимо от выбранного вами шага. Однако - разные степперы будут иметь разную численную эффективность, но это зависит от вашей проблемы. Как правило: чем выше точность, которую вы запрашиваете, тем выше порядок вашего метода. – mariomulansky