Butcher 表 Runge-Kutta 求解器
更多...
#include <rmvl/core/numcal.hpp>
|
| 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) |
| 常微分方程(组)数值解生成器 更多...
|
|
|
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()
创建一阶常微分方程(组)数值求解器对象,设置初值请参考 init 方法
- 参数
-
[in] | fs | 常微分方程(组) \(\pmb x'=\pmb F(t,\pmb x)\) 的函数对象 \(\pmb F(t,\pmb x)\) |
[in] | p | Butcher 表 \(\pmb p\) 向量 |
[in] | lambda | Butcher 表 \(\pmb\lambda\) 向量 |
[in] | r | Butcher 表 \(R\) 矩阵 |
◆ generate()
常微分方程(组)数值解生成器
- 参数
-
- 返回
- 从初始位置开始迭代计算的生成器,初值不会被
co_yield
,共生成 \(n\) 个数值解
◆ init() [1/2]
设置常微分方程(组)的初值
- 参数
-
[in] | t0 | 初始位置的自变量 \(t\) |
[in] | x0 | 初始位置的因变量 \(\pmb x(t_0)\) |
◆ init() [2/2]
设置常微分方程(组)的初值
- 参数
-
[in] | t0 | 初始位置的自变量 \(t\) |
[in] | x0 | 初始位置的因变量 \(\pmb x(t_0)\) |
◆ solve()
计算常微分方程(组)的数值解
- 参数
-
- 返回
- 从初始位置开始迭代 \(n\) 次后共 \(n+1\) 个数值解,自变量可通过 \(t_0+ih\) 计算得到
◆ _fs
一阶常微分方程组的函数对象 \(\dot{\pmb x}=\pmb F(t, \pmb x)\)
◆ _lambda
Butcher 表 \(\pmb\lambda\) 向量
◆ _p
◆ _r
◆ _t0
◆ _x0
该类的文档由以下文件生成: