三浦ノート

自分の経験したことを検索可能にしていくブログ.誰かの役に立ってくれれば嬉しいです.

numpy.gradientで配列の微分をするとき,両端の微分の精度を上げるには

numpy.gradientで配列を微分するとき,配列の境界部分(始端終端)の値だけ目的の正しい微分値が出ないことがあった.

すぐに解決したのでメモです.

境界部分での微分はedge_orderというオプションで精度を選べる.

numpy.gradient — NumPy v1.16 Manual

何も指定していない場合ではedge_order=1になっていて,境界部分の微分は1次の前方/後方差分を計算する.

オプションでedge_order=2を明記すると,境界部分の微分は2次の前方/後方差分を計算する.