2010年8月16日月曜日

カルマンフィルタによるトレンド推定プログラム in C++


北川の『時系列解析入門』は昔の『時系列解析プログラミング』にモンテカルロ・フィルタの章を加えて、そのかわりにFortranのサンプル・コードのページを除いたもの(ちなみにサンプル・コードは今でも統計数理研究所の著者のウェブに公開されているはず)。俺が持っている『時系列解析プログラミング』は使いすぎてもうボロボロになっている。このFortranのコードをPascal(Delphi)に移植しながら、時系列分析に目覚めていったのだった。随分昔にPascalに移植したのでもう忘れていて、今回C++に移植しなおすことにした。
後ろに準ニュートン法の最適化プログラムも載っているのだが、めんどうくさいのでそこは『Numerical Recipes』の準ニュートン法dfpminを使うことにする。ついでにLU分解などのコードも『Numerical Recipes』のものを使う。『Numerical Recipes』はFunctorを使っているので、最初は使い方がさっぱり分からなかったのだが、Functorの使い方も勉強したので今は分かる。
ちなみに『Numerical Recipes』は少し高くてもCD-ROM付きのものを買うべき。1版のC,2版のC++のレシピーのコードとその使い方のexampleコードが付いている(残念ながら第3版のexampleコードは付いていないが1版、2版のexampleを見れば使い方は分かる)し、Fortran版、Pascal版のレシピー・コードも付いている。第3版のコードは随分と洗練されている。
最適化に関しては茨木、他の『最適化プログラミング』もお奨めだが、こちらも絶版で中古も高い値が付いている。

0 件のコメント: