RMVL  1.2.0
Robotic Manipulation and Vision Library
Public 成员函数 | Protected 属性 | 所有成员列表
rm::RungeKutta< RkType::Butcher >类 参考

Butcher 表 Runge-Kutta 求解器 更多...

#include <rmvl/core/numcal.hpp>

类 rm::RungeKutta< RkType::Butcher > 继承关系图:
rm::RungeKutta< RkType::Butcher > 的协作图:

Public 成员函数

 RungeKutta (const Odes &fs, const std::vector< double > &p, const std::vector< double > &lambda, const std::vector< std::vector< double >> &r)
 创建一阶常微分方程(组)数值求解器对象,设置初值请参考 init 方法 更多...
 
void init (double t0, const std::vector< double > &x0)
 设置常微分方程(组)的初值 更多...
 
void init (double t0, std::vector< double > &&x0)
 设置常微分方程(组)的初值 更多...
 
std::vector< std::vector< double > > solve (double h, std::size_t n)
 计算常微分方程(组)的数值解 更多...
 
std::generator< std::vector< double > > generate (double h, std::size_t n)
 常微分方程(组)数值解生成器 更多...
 

Protected 属性

Odes _fs
 一阶常微分方程组的函数对象 \(\dot{\pmb x}=\pmb F(t, \pmb x)\) 更多...
 
double _t0
 初值的自变量 \(t\) 更多...
 
std::vector< double > _x0
 初值的因变量 \(\pmb x(t)\) 更多...
 
std::vector< double > _p
 Butcher 表 \(\pmb p\) 向量 更多...
 
std::vector< double > _lambda
 Butcher 表 \(\pmb\lambda\) 向量 更多...
 
std::vector< std::vector< double > > _r
 Butcher 表 \(R\) 矩阵 更多...
 

详细描述

Butcher 表 Runge-Kutta 求解器

构造及析构函数说明

◆ RungeKutta()

rm::RungeKutta< RkType::Butcher >::RungeKutta ( const Odes fs,
const std::vector< double > &  p,
const std::vector< double > &  lambda,
const std::vector< std::vector< double >> &  r 
)

创建一阶常微分方程(组)数值求解器对象,设置初值请参考 init 方法

参数
[in]fs常微分方程(组) \(\pmb x'=\pmb F(t,\pmb x)\) 的函数对象 \(\pmb F(t,\pmb x)\)
[in]pButcher 表 \(\pmb p\) 向量
[in]lambdaButcher 表 \(\pmb\lambda\) 向量
[in]rButcher 表 \(R\) 矩阵

成员函数说明

◆ generate()

std::generator<std::vector<double> > rm::RungeKutta< RkType::Butcher >::generate ( double  h,
std::size_t  n 
)

常微分方程(组)数值解生成器

参数
[in]h步长
[in]n迭代次数
返回
从初始位置开始迭代计算的生成器,初值不会被 co_yield,共生成 \(n\) 个数值解

◆ init() [1/2]

void rm::RungeKutta< RkType::Butcher >::init ( double  t0,
const std::vector< double > &  x0 
)
inline

设置常微分方程(组)的初值

参数
[in]t0初始位置的自变量 \(t\)
[in]x0初始位置的因变量 \(\pmb x(t_0)\)

◆ init() [2/2]

void rm::RungeKutta< RkType::Butcher >::init ( double  t0,
std::vector< double > &&  x0 
)
inline

设置常微分方程(组)的初值

参数
[in]t0初始位置的自变量 \(t\)
[in]x0初始位置的因变量 \(\pmb x(t_0)\)

◆ solve()

std::vector<std::vector<double> > rm::RungeKutta< RkType::Butcher >::solve ( double  h,
std::size_t  n 
)

计算常微分方程(组)的数值解

参数
[in]h步长
[in]n迭代次数
返回
从初始位置开始迭代 \(n\) 次后共 \(n+1\) 个数值解,自变量可通过 \(t_0+ih\) 计算得到

类成员变量说明

◆ _fs

Odes rm::RungeKutta< RkType::Butcher >::_fs
protected

一阶常微分方程组的函数对象 \(\dot{\pmb x}=\pmb F(t, \pmb x)\)

◆ _lambda

std::vector<double> rm::RungeKutta< RkType::Butcher >::_lambda
protected

Butcher 表 \(\pmb\lambda\) 向量

◆ _p

std::vector<double> rm::RungeKutta< RkType::Butcher >::_p
protected

Butcher 表 \(\pmb p\) 向量

◆ _r

std::vector<std::vector<double> > rm::RungeKutta< RkType::Butcher >::_r
protected

Butcher 表 \(R\) 矩阵

◆ _t0

double rm::RungeKutta< RkType::Butcher >::_t0
protected

初值的自变量 \(t\)

◆ _x0

std::vector<double> rm::RungeKutta< RkType::Butcher >::_x0
protected

初值的因变量 \(\pmb x(t)\)


该类的文档由以下文件生成: