Next:
A. C++とつきあう
Up:
2.3 プログラムの解説
Previous:
2.3.1 微分方程式と初期条件
2
.
3
.
2
プログラムの解読
11行目 これは C++ のプログラムにはいつでも書く。
12行目 C の
#include <math.h>
に相当する。 代わりに
#include <math.h>
としても OK.
13行目 これで Eigen の密行列関係の機能が使えるようになる。
14行目
Eigen::
を省略するため。同様に
using namespace std;
とすることも考えられるが、 このプログラムでは、55行目に
std::cout
,
std::endl
としているだけなので、しなかった。
18行目
VectorXd
は成分が double で、サイズが動的に選べるベクトル
18〜26行 関数定義。
f()
は、 常微分方程式
の右辺の
を計算するための関数である。
43行目。これは
x(0) = 0; x(1) = 0; x(2) = 50 * cos(pi*50/180); x(3) = 50 * sin(pi*50/180);
としても良い。
46〜50行はいわゆる Runge-Kutta法である。 時間刻みを
としたとき、
というのが Runge-Kutta法の公式であるが、 それをほぼそのまま書けるところが、ベクトルを使える利点である。
Next:
A. C++とつきあう
Up:
2.3 プログラムの解説
Previous:
2.3.1 微分方程式と初期条件
桂田 祐史
2018-07-25