Boost C++ 库

世界上最受推崇和设计精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

受控求解器 - Boost C++ 函数库
PrevUpHomeNext

此概念指定了受控步进器在 积分函数 中使用时必须遵循的接口。

描述

遵循此受控步进器概念的受控步进器提供了使用步长 dt 对 ODE 的解 x(t) 进行一步计算,以获得给定步长 dtx(t+dt) 的可能性。根据解的误差估计,该步可能被拒绝,并建议使用更小的步长。

关联类型
  • state_type

    Stepper::state_type

    表征 ODE 状态的类型,因此是 x

  • deriv_type

    Stepper::deriv_type

    表征 ODE 导数的类型,因此是 d x/dt

  • time_type

    Stepper::time_type

    表征 ODE 的因变量的类型,因此是时间 t

  • value_type

    Stepper::value_type

    步进器中使用的数值数据类型,例如 floatdoublecomplex< double >

  • stepper_category

    Stepper::stepper_category

    表征步进器类别的标签类型。此类型必须可转换为 controlled_stepper_tag

表示法

ControlledStepper

Controlled Stepper 的一个模型类型

State

表示 ODE 状态 x 的类型

时间

表示 ODE 时间 t 的类型

stepper

ControlledStepper 类型的对象

x

类型为 State 的对象

tdt

Time 类型的对象

sys

定义 ODE 的对象,应为 SystemSymplectic SystemSimple Symplectic SystemImplicit System 的模型。

有效表达式

名称

表达式

类型

语义

执行步进

stepper.try_step( sys , x , t , dt )

controlled_step_result

尝试以步长 dt 执行一步。如果该步成功,则返回 success,将结果状态写入 x,新时间存储在 t 中,并且 dt 现在包含用于下一步的新(可能更大)步长。如果误差过大,则返回 rejected,并且结果将被忽略 - xt 保持不变,并且 dt 现在包含用于下次尝试的减小步长。

模型
  • controlled_error_stepper< runge_kutta_cash_karp54 >
  • controlled_error_stepper_fsal< runge_kutta_dopri5 >
  • controlled_error_stepper< runge_kutta_fehlberg78 >
  • rosenbrock4_controller
  • bulirsch_stoer

PrevUpHomeNext