2015年5月31日日曜日

arctan(x)のテーブル化

今回は組み込み用途にarctanを使うためにテーブルを利用した実装を考えてみます.
ただ単に定義域を等分割してテーブルを作るのではおもしろくないのでもう少し工夫
をしてみます.

 =====================基本===========================
 ある関数 f(x)を区間[a,b]で考えテーブル化したい ====================================================

1. 区間[a,b]を等分割



 ====================もうちょっと工夫================
ある関数 f(x)を区間[a,b]で考えテーブル化するときに, 
テーブルの幅をf(x)の2階微分の値に応じて変えてみる.

2階微分は関数の傾きの変化率なのでこれが小さいほど
線形近似の精度をあげるのに必要な分割数が減る.



====================================================

===================
arctan(x)でやってみた
===================






あとは16区間毎に普通に線形近似する.  ただし, arctan(x)のxが大きくなったときの値はPI/2に収束するので適当なところで打ち切る.