Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class template runge_kutta4

Boost , Chapter 1. Boost.Numeric.Odeint , Header <boost/numeric/odeint/stepper/runge_kutta4.hpp>

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Boost C++ LibrariesHomeLibrariesPeopleFAQMore

PrevUpHomeNext

Class template runge_kutta4

boost::numeric::odeint::runge_kutta4 — The classical Runge-Kutta stepper of fourth order.

Synopsis

// In header: <boost/numeric/odeint/stepper/runge_kutta4.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 : public boost::numeric::odeint::explicit_generic_rk< StageCount, Order, State, Value, Deriv, Time, Algebra, Operations, Resizer >
{
public:
  // types
  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(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 StateIn> void adjust_size(const StateIn &);
};

Description

Метод Рунге-Кутта четвертого порядка является одним из стандартных методов решения обычных дифференциальных уравнений и широко используется, см. такжеen.wikipedia.org/wiki/Runge-Kutta_methodsМетод является явным и соответствует концепции Степпер. Контроль размера шага или непрерывный выход не предусмотрены.

Этот класс происходит от explicit_stepper_base и наследует свой интерфейс через CRTP (текущий повторяющийся шаблон шаблона). Кроме того, это происходит отexplicit_generic_rkЭто общий алгоритм Рунге-Кутта. Для более подробной информации см. explicit_stepper_base иexplicit_generic_rk.

Template Parameters

  1. <
    typenameState
    >

    Тип государства.

  2. <
    typenameValue=double
    >

    Тип значения.

  3. <
    typenameDeriv=State
    >

    Тип, представляющий временную производную государства.

  4. <
    typenameTime=Value
    >

    Время, представляющее независимую переменную — время.

  5. <
    typenameAlgebra=typenamealgebra_dispatcher<State>::algebra_type
    >

    Тип алгебры.

  6. <
    typenameOperations=typenameoperations_dispatcher<State>::operations_type
    >

    Тип операции.

  7. <
    typenameResizer=initially_resizer
    >

    Тип политики резистора.

runge_kutta4 public construct/copy/destruct

  1. <
    runge_kutta4(constalgebra_type&algebra=algebra_type());
    >Создает<runge_kutta4>класс. Этот конструктор можно использовать в качестве конструктора по умолчанию, если в алгебре есть конструктор по умолчанию.

    Параметры:

    Копия алгебры сделана и хранится внутри эксплицитной_степной_базы.

runge_kutta4 public member functions

  1. <
    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>не должен называться напрямую.

    Параметры:

    <dt>

    <dt>

    Размер шага.

    <dxdt>

    Производная от x при t.

    <in>

    Состояние ОДЭ, которое должно быть решено. не изменяется в этом способе

    <out>

    Результат шага записывается.

    <system>

    Функция системы для решения, следовательно, r.h.s. ODE. Он должен соответствовать концепции простой системы.

    <t>

    Значение времени, в которое должен быть выполнен шаг.

  2. <
    template<typenameStateIn>voidadjust_size(constStateIn&x);
    >Установите размер всех временных интервалов в степпере вручную.

    Параметры:

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


PrevUpHomeNext

Статья Class template runge_kutta4 раздела Chapter 1. Boost.Numeric.Odeint Header <boost/numeric/odeint/stepper/runge_kutta4.hpp> может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Header <boost/numeric/odeint/stepper/runge_kutta4.hpp> ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:15:12/0.0071859359741211/0