![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Class template runge_kutta4_classicBoost , Chapter 1. Boost.Numeric.Odeint , Header <boost/numeric/odeint/stepper/runge_kutta4_classic.hpp>
|
![]() | Home | Libraries | People | FAQ | More |
boost::numeric::odeint::runge_kutta4_classic — The classical Runge-Kutta stepper of fourth order.
// In header: <boost/numeric/odeint/stepper/runge_kutta4_classic.hpp> template<typename State, typename Value = double, typename Deriv = State, typename Time = Value, typename Algebra = typename algebra_dispatcher< State >::algebra_type, typename Operations = typename operations_dispatcher< State >::operations_type, typename Resizer = initially_resizer> class runge_kutta4_classic : public explicit_stepper_base { public: // types typedef explicit_stepper_base< runge_kutta4_classic< ... >,... > stepper_base_type; typedef stepper_base_type::state_type state_type; typedef stepper_base_type::value_type value_type; typedef stepper_base_type::deriv_type deriv_type; typedef stepper_base_type::time_type time_type; typedef stepper_base_type::algebra_type algebra_type; typedef stepper_base_type::operations_type operations_type; typedef stepper_base_type::resizer_type resizer_type; // construct/copy/destruct runge_kutta4_classic(const algebra_type & = algebra_type()); // public member functions template<typename System, typename StateIn, typename DerivIn, typename StateOut> void do_step_impl(System, const StateIn &, const DerivIn &, time_type, StateOut &, time_type); template<typename StateType> void adjust_size(const StateType &); // private member functions template<typename StateIn> bool resize_impl(const StateIn &); };
Метод Ранге-Кутта четвертого порядка является одним из стандартных методов решения обычных дифференциальных уравнений и широко используется, см. такжеen.wikipedia.org/wiki/Runge-Kutta_methodsМетод является явным и соответствует концепции Степпер. Контроль размера шага или непрерывный выход не предусмотрены. Этот класс реализует метод напрямую, поэтому общий алгоритм Рунге-Кутта не используется.
Этот класс происходит от explicit_stepper_base и наследует свой интерфейс через CRTP (текущий повторяющийся шаблон шаблона). Для более подробной информации см. явное_stepper_base.
Тип1.
[!-- [ORIG_BEGIN]typenameState
Тип состояния.
[ORIG_END] -->[ORIG_END] -->Тип.
[ORIG_END] -->Тип, добавляем к производному.
[ORIG_END] -->Временная независимая проверка.
typenameTime=ValueВремя, представляющее независимую переменную — время.
[ORIG_END] -->[ORIG_END] -->Тип хадисов.
[ORIG_END] -->Тип .
[ORIG_END] -->Тип - ретрансляции.
[ORIG_END] -->runge_kutta4_classic
public
construct/copy/destructПараметры |
runge_kutta4_classic класс. Этот конструктор можно использовать в качестве конструктора по умолчанию, если в алгебре есть конструктор по умолчанию.Параметры: Копия алгебры сделана и хранится внутри эксплицитной_степной_базы |
runge_kutta4_classic
public member functions
| [скрыто], [скрыто] |
template<typenameSystem,typenameStateIn,typenameDerivIn, typenameStateOut> voiddo_step_impl(Systemsystem,constStateIn&in,constDerivIn&dxdt, time_typet,StateOut&out,time_typedt);Этот метод выполняет один шаг. Производное
dxdt
изin
в моментt
переходит к способу. Результат обновляется неуместно, следовательно, вход вin
и выход вout
. Доступ к этой функциональности шага обеспечивается с помощью явного_stepper_base иdo_step_impl
не должен называться напрямую.Параметры:
Размер шага.
dxdt
Производная от x при t.
in
Состояние ОДЭ, которое должно быть решено. не изменяется в этом способе
out
Результат шага выписан.
system
Функция системы для решения, следовательно, r.h.s. ODE. Он должен соответствовать концепции простой системы.
t
Значение времени, в которое должен быть выполнен шаг.
Статья Class template runge_kutta4_classic раздела Chapter 1. Boost.Numeric.Odeint Header <boost/numeric/odeint/stepper/runge_kutta4_classic.hpp> может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Header <boost/numeric/odeint/stepper/runge_kutta4_classic.hpp> ::
реклама |