MarkDown
会社でMarkDownの話題が出ていたので、 Emacsに入れてみました。 「.md」ファイルに下記のように入力すると、
# 見出し1 # 見出し2 # 見出し3
以下のようになります。
見出し1
見出し2
見出し3
所詮テキストファイルなので、軽いですし、 .mdファイルの結果は、HTMLのブラウザで見れます。 このはてなも、マークダウン形式で書けます。
マークダウンのファイルはテキストファイルですが、 HTMLブラウザで見るには変換する必要があります。
Emacs、Vim、SublimeTextでは変換ツールが備わっています。
EmacsやVimを使ったことがない人はSublimeTextが良いかと思います。 パッケージのインストールとか楽ですし、キーバインドも他のテキストエディタと比較して、 大きな違いがないかと思います。下記のページが非常に参考になります。
http://webmem.hatenablog.com/entry/sublime-text-markdown
EmacsやVimの利用者は、説明する必要はないと思います。 (こだわりを持って利用されていると思います)
MarkDown記法はググればたくさん出てきます。、
自己相関係数のプログラム
自己相関係数を求めるためのプログラムです。
#include <iostream> #include <fstream> #include <cstdlib> #include <cmath> using namespace std; void self_corr (double* x, int imax,double* r){ // 平均値の算定 double x_ave = 0.0; for(int i = 0; i < imax; i++){ x_ave+=x[i]; } x_ave/=(double)imax; // 平均値を差し引く double *y = new double[imax]; for(int i = 0; i < imax; i++){ y[i] = x[i]-x_ave; } // 自己相関係数のうち、分母denomの算定 double denom=0.0; // 分母denom for(int i = 0; i< imax; i++){ denom=denom+y[i]*y[i]; } // 自己相関係数のうち、分子numerおよび自己相関係数rの算定 for(int h = 0; h <imax; h++){ double numer = 0.0; // 分子 for(int i = 0; i < imax-h; i++){ numer=numer+y[i]*y[i+h]; } r[h] = numer/denom; // 自己相関係数 } } // int main(void) { // 入力ファイル fstream ifs("in.txt"); // 時系列の個数 int imax = 7306; // 時系列データxと自己相関係数rの配列確保 double* x = new double[imax]; double* r = new double[imax]; // 入力ファイルからのデータ入力 for(int i = 0; i < imax; i++) { ifs >> x[i]; } // 自己相関係数の算定 self_corr ( x, imax, r); // 自己相関係数の出力 for(int i = 0; i < imax; i++) { cout << r[i] << endl; } }
気象庁のホームページから、日平均気温を引っ張ってきて、
自己相関係数を求めてみました。
日平均気温であれば、365日周期で、相関係数が1に近づきます。
(当たり前ですね。一年前との気温は概ね同じはず。)
ただし、ラグが大きくなればなるほど、周期はそのままに、相関係数は小さくなります。
このように当たり前のことであれば、自己相関を取るまでもなく、その特徴がわかるかと思います。
さらに踏み込むと、二変数に対して相関係数をとる方法に相互相関係数があります。
たとえば、雨と河川流量とかです。なんとなく、雨が降ると流量は増えそうだなと、直感でわかりますが、その時間差は?と聞かれると、不明です。
次回はぜひそれについて。
フィルタ
カルマンフィルタの基礎
- 作者: 足立修一,丸田一郎
- 出版社/メーカー: 東京電機大学出版局
- 発売日: 2012/10/10
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 3回
- この商品を含むブログ (3件) を見る
特に仕事で必要だった訳ではなく、気になっていたので、買ってみました。
ソースも書いてありますが、Matlabです。
「Octave」「Scilab」であればあまり変更せずに使えると思います。
時系列解析入門
- 作者: 北川源四郎
- 出版社/メーカー: 岩波書店
- 発売日: 2005/02/24
- メディア: 単行本
- 購入: 6人 クリック: 94回
- この商品を含むブログ (9件) を見る
カルマンフィルタもそうですが、パーティクルフィルタ(or モンテカルロフィルタ)について記述されています。
ソースコードはWebに公開されています。
Perlの勉強
Perl入学式の資料を引用しています。
https://github.com/perl-entrance-org/workshop-2013-04/blob/master/slide.md
文字列の検索です。
マッチするかどうかは「=~//」でいけるようです。
my $str = 'python,perl,ruby,php,awk,sed'; if ($str =~ /perl/) { print "'$str'は'perl'を含みます."; }