boost::numeric::odeint::adams_bashforth — The Adams-Bashforth multistep algorithm.
Synopsis
// In header: <boost/numeric/odeint/stepper/adams_bashforth.hpp>
template<size_t Steps,typename State,typename Value =double,typename Deriv =State,typename Time =Value,typename Algebra =typenamealgebra_dispatcher<State>::algebra_type,typename Operations =typenameoperations_dispatcher<State>::operations_type,typename Resizer =initially_resizer,typename InitializingStepper =extrapolation_stepper<order_helper<Steps>::value,State,Value,Deriv,Time,Algebra,Operations,Resizer>>classadams_bashforth:publicalgebra_stepper_base<Algebra,Operations>{public:// typestypedefStatestate_type;typedefstate_wrapper<state_type>wrapped_state_type;typedefValuevalue_type;typedefDerivderiv_type;typedefstate_wrapper<deriv_type>wrapped_deriv_type;typedefTimetime_type;typedefResizerresizer_type;typedefstepper_tagstepper_category;typedefInitializingStepperinitializing_stepper_type;typedefalgebra_stepper_base<Algebra,Operations>algebra_stepper_base_type;typedefalgebra_stepper_base_type::algebra_typealgebra_type;typedefalgebra_stepper_base_type::operations_typeoperations_type;typedefunsignedshortorder_type;typedefunspecifiedstep_storage_type;// construct/copy/destructadams_bashforth(constalgebra_type&=algebra_type());// public member functionsorder_typeorder(void)const;template<typename System,typename StateInOut>voiddo_step(System,StateInOut&,time_type,time_type);template<typename System,typename StateInOut>voiddo_step(System,constStateInOut&,time_type,time_type);template<typename System,typename StateIn,typename StateOut>voiddo_step(System,constStateIn&,time_type,StateOut&,time_type);template<typename System,typename StateIn,typename StateOut>voiddo_step(System,constStateIn&,time_type,constStateOut&,time_type);template<typename StateType>voidadjust_size(constStateType&);conststep_storage_type&step_storage(void)const;step_storage_type&step_storage(void);template<typename ExplicitStepper,typename System,typename StateIn>voidinitialize(ExplicitStepper,System,StateIn&,time_type&,time_type);template<typename System,typename StateIn>voidinitialize(System,StateIn&,time_type&,time_type);voidreset(void);boolis_initialized(void)const;constinitializing_stepper_type&initializing_stepper(void)const;initializing_stepper_type&initializing_stepper(void);// private member functionstemplate<typename System,typename StateIn,typename StateOut>voiddo_step_impl(System,constStateIn&,time_type,StateOut&,time_type);template<typename StateIn>boolresize_impl(constStateIn&);// public data membersstaticconstsize_tsteps;staticconstorder_typeorder_value;};
Description
Метод Адамса-Башфорта представляет собой многоступенчатый алгоритм с настраиваемым числом шагов. Номер шага указывается как параметр шаблона Steps, а затем он использует результат предыдущих шагов Steps. См. такжеen.wikipedia.org/wiki/Linear_multistep_methodВ настоящее время поддерживается максимум Шагов=8. Метод является явным и соответствует концепции Stepper. Контроль размера шага или непрерывный выход не предусмотрены.
Этот класс происходит от algebra_base и наследует свой интерфейс через CRTP (текущий повторяющийся шаблон шаблона). Подробнее см. в алгебре_stepper_base.
Template Parameters
<
size_tSteps
>
Количество шагов (максимум 8).
typenameState
Тип состояния.
<
typenameValue=double
>
Тип значения.
<
typenameDeriv=State
>
Тип, представляющий временную производную государства.
<
typenameTime=Value
>
Время, представляющее независимую переменную — время.
>Построение класса<adams_bashforth>. Этот конструктор можно использовать в качестве конструктора по умолчанию, если в алгебре есть конструктор по умолчанию.
Параметры:
<algebra>
<algebra>
Составляется и хранится копия алгебры.
adams_bashforth public member functions
order_typeorder(void)const;
Возвращает порядок алгоритма, который равен числу шагов.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.