2016/12/30(金)kv-0.4.39
今回は特にバグフィックスは無く、主に使い勝手に関する機能追加です
- 大域最適化用のoptimize.hppにminimize/minimize_value/maximize/maximize_valueを追加。1変数用の関数も追加。
- dka.hppのdka関数の収束条件を見直し。
- 高階微分用のhighderiv.hppに、 高階微分の関数オブジェクトを生成するHighDerivと、 偏高階微分の関数オブジェクトを生成するPartialDerivを追加した。
- allsol.hppに1変数関数用のallsol関数を追加した。
dka関数の修正は、ルジャンドル多項式のゼロ点を求めようとすると収束条件が厳しすぎてループから出てこない問題点が見つかったのがきっかけです。高次のルジャンドル多項式は係数が非常に大きく、そのため残差に入る丸め誤差が大きくなるので収束しづらくなっていたようなので、係数の大きさを見て収束条件を加減するように変更してみました。
HighDerivおよびPartialDerivは、高階(偏)微分の関数オブジェクトを生成するもので、数値積分の誤差評価に出てくる高階微分の区間評価において、optimizeと組み合わせて過大評価を抑えることを意図して作ったものです。
いずれも誰かが使っているのを見て必要性を感じて作ったもので、ユーザのありがたさを感じています。皆様、もっともっと使って下さい!