目次

数値計算

コンピュータで問題を解く.
C++、Visual Studio Codeを使う場合には拡張機能入れたり環境の設定をする必要がある.
MacはXCodeのCommand Line Toolsを入れる(Homebrew入れる時に入ってるはず).WinwosはMinGWとかを入れる.

数値計算でのC言語の有名な書籍はNumerical Recipe in C
日本語の訳本がある.
どうやらC++版が原著だとあるらしい.
Financial Numerical Recipes in C ++
勉強用写経リポジトリ

section1-2でvectorを使おとしたらエラーった。

non-aggregate type ‘vector<int>’ cannot be initialized with an initializer list

指定するコンパイラが古いらしい、C++11とか新しめのやつを使うようにしていすばよい.
HomebrewでCommand Line Tools入れただけなのでデフォルトでC++11を使うように設定をいじりたいところ。

メモとか

Financial Numerical recipes ( Bernt Arne Ødegaard 2007): output not matching example output Ask Question

アルゴリズム

https://space-denpa.jp/2018/03/07/neumerical_analysis/
↑を自分でも写経してみること

オイラー法

ルンゲクッタ法

フェールベルグ法

Tips

SIGN

引数の符号を返す関数。いい感じの書き方を見つけたのでメモ

template <typename T> int sgn(T val) {
    return (T(0) < val) - (val < T(0));
}

A>0A<0でそれぞれ真偽の戻り値を返す

となる。 T(0)となっている個所はそのTの型に応じて変換される。

atan2

sin,cosの信号から角度を割り出すタイプのエンコーダには必須の関数.
通常のatan関数と異なり,象限の場合分けが考慮される.

ODriveで使ってるatan2の近似関数 Atan2 Faster Approximation

参考文献

Is there a standard sign function (signum, sgn) in C/C++?
数値の符号を返す関数のエレガントな書