連番のファイル名を変換する
連番画像のファイル名を一気に変えるコマンド.
lsで表示したものに番号を振り,それを入力としてawkでコマンドを形成,shで実行する.
ls *ppm | cat -n | awk '{printf "cp %s img_%04d.ppm\n", $2, $1}' | sh
shをevalにすると上手くいかない.
(shだと毎行実行してくれる)
UNIXコマンドメモ
ls ./c_img/ | grep _c_| sed 's,img,c_img/img,g' | xargs ./main
左から順に
- c_img下にあるファイルを表示
- _c_がつくものを表示
- ファイルの先頭にc_img/を付加
- これらを./mainの引数に渡す
統計的手法
最小二乗法
n個の観測値の組が与えられているとき,2つの変量間の関係を説明するモデルとして
平均2乗誤差(Least Mean Squared Error)を最小とするようなパラメータを求める推定方法は,最小2乗法と呼ばれている.つまり,
M-estimator
当てはめるモデルと観測値との誤差が平均で0の正規分布に従う場合,最小2乗法で推定したモデルは最適となる.しかし,観測値に外れ値(例外値)が含まれている場合,推定結果に大きな影響を与えてしまう.
そこでロバストな推定方法を用いることで,外れ値を多く含む観測値に対しても比較的良い推定結果を得ることができる.代表的な手法としてM-estimatorとLeas Median of Squaresなどがある.
最小2乗法で用いられる最小2乗基準
とした場合が最小2乗法である.つまり,M-estimatorは最小2乗法の拡張と言える.
はinfluence functionと呼ばれ,観測値がモデルから離れた場合の重みを表す.図1にその一例を示す.関数のとりかたによっては,観測値がモデルからある程度離れるとその影響はほぼ0となることがわかる.
M-estimatorによる推定のためのアルゴリズムはMを最小化する最適化問題として定式化することができ,重み付き最小2乗問題となる.ただし,このアルゴリズムは,関数によっては必ずしも最適解に収束するとは限らないため,良い初期値から出発する必要がある.
convertで一括変換
for f in *.png; do convert -trim $f `echo $f | sed s/png/eps/g` ; done
abc.pngをabc.epsに変換するコマンド.
シンボリック変数
matlabを用いて,解析的に積分をする上で必要となったのでメモ.
シンボリック変数を用いて数式を定義しておけば,matlabを使って解析的な処理が可能となる.(曖昧)
まず,xの関数yを定義するために,以下のコマンドを入力.
syms x y y = sin(x)^2
例として,関数yをxで微積分してみる.
diff(y,x) ans = 2*cos(x)*sin(x)
int(y,x) ans = x/2 - sin(2*x)/4
int(y,x,0,pi) ans = pi/2
上から順に微分,不定積分(原始関数),定積分となっていることを確認.
これらをグラフ上にプロットする場合は
ezplot(y) ezplot(diff(y,x)) ezplot(int(x,y))
などとすれば良い.
積分結果が初等関数で表せない積分
定積分
"expの微分は,指数部分の微分が係数になる"という記憶しかない.
ここで,すべての数式が初等関数で表現できるとは限らないということを思い出す.定積分は存在するが,初等関数で積分した後の関数を表せない積分も存在する.
初等関数(しょとうかんすう)とは,複素数を変数とする多項式関数・指数関数・対数関数主値の四則演算・合成によって表示できる関数である.(Wikipedia 初等関数)
初等関数の導関数は必ず初等関数になるが、初等関数の原始関数、及び初等関数を用いた微分方程式の解は必ずしも初等関数になるとは限らない。 (Wikipedia 初等関数)
積分結果が初等関数で表せない場合,
という方法がある.
先に上げた数式の不定積分を後者の方法で表現すると以下のようになる.