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

Class template euler

Boost , Chapter 1. Boost.Numeric.Odeint , Header <boost/numeric/odeint/stepper/euler.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 euler

boost::numeric::odeint::euler — An implementation of the Euler method.

Synopsis

// In header: <boost/numeric/odeint/stepper/euler.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 euler : public explicit_stepper_base {
public:
  // types
  typedef explicit_stepper_base< euler< ... >,... > 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
  euler(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 StateOut, typename StateIn1, typename StateIn2>
    void calc_state(StateOut &, time_type, const StateIn1 &, time_type,
                    const StateIn2 &, time_type) const;
  template<typename StateType> void adjust_size(const StateType &);
};

Description

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

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

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
    >

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

euler public construct/copy/destruct

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

    Параметры:

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

euler public member functions

  1. <
    template<typenameSystem,typenameStateIn,typenameDerivIn,
            typenameStateOut>
     voiddo_step_impl(System,constStateIn&in,constDerivIn&dxdt,
                       time_type,StateOut&out,time_typedt);
    >Этот метод выполняет один шаг.<dxdt>из<in>в момент<t>переходит к способу. Результат обновляется неуместно, следовательно, вход в<in>и выход в<out>. Доступ к этой функциональности шага обеспечивается по явному_stepper_base и<do_step_impl>не должен называться напрямую.

    Параметры:

    <dt>

    Размер шага.

    <dxdt>

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

    <in>

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

    <out>

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

  2. <
    template<typenameStateOut,typenameStateIn1,typenameStateIn2>
     voidcalc_state(StateOut&x,time_typet,constStateIn1&old_state,
                     time_typet_old,constStateIn2&,time_type)const;
    >Этот метод используется для непрерывного вывода и вычисляет состояние<x>за раз<t>из знания двух состояний<old_state>и<current_state>в точках времени<t_old>и<t_new>.
  3. <
    template<typenameStateType>voidadjust_size(constStateType&x);
    >Установите размер всех временных ступеней вручную.

    Параметры:

    <x>

    Выводится размер временной величины.


PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 03:22:23/0.0043179988861084/0