投稿者「tetro」のアーカイブ

OM-D E-M5

カメラとレンズを買いました.買ったのはOLYMPUSのOM-D E-M5とTOKINA Reflex 300mm F6.3 MFです.

IMAG1042

レンズは先端を見ればわかるようにミラーレンズという少し特殊なレンズで,絞りが固定だったりマニュアルフォーカスだったりちょっと扱いにくいものになっています.一方ですごくコンパクトなのにフルサイズ換算で600mmという超望遠での撮影ができることや,リング上のぼけなどの表現が楽しめます.一芸特化という感じ.

この間あった皆既月食を撮影したくてレンズを買ったのですが,これまで使っていたLUMIX-GMでは本体での手ぶれ補正がなくて,新しいレンズを使うには無謀すぎたのでカメラの方も新調しました.(月食は曇天でまったくみえませんでしたが)

カメラは少し前のモデルになるのですが,OM-D E-M5にしました.E-M5 MarkIIが出てからかなり値下がりしているのでお得感があります.まだ使い始めたばかりですが手ぶれ補正がおぞましいほど効いていて,望遠でも手持ちで綺麗にとれちゃいます.また,ファインダが付いているので構図決めやフォーカス合わせがやりやすくていいです.

P4250045

新しいレンズとカメラの組み合わせで試しに(普通の)月を撮ってみました.三脚がなくてフェンスにカメラを固定して撮ったのでフォーカス調整に苦労しました.少しフォーカスが甘い感じがしますが,トリミング無しでこれだけ月が大きく映るので感触はいいです.次は三脚を使ってじっくり撮るのと,他にもリングボケが活きるような写真を撮ってみたいです.

eps変換

latexを使ってると画像をepsに変換する必要がよくあると思うんですが,これまでinkscapeでいちいち画像を開いてepsで保存するというめんどくさい方法で変換していました.ただ,まとめて複数の画像を変換したりするにはあまりにめんどうなので簡単なbatファイルを作成してみました.
inkscapeがインストールしてあれば動くと思います.

[bat] rem cvt2eps.bat
set INKSCAPE=C:\Program Files\Inkscape\inkscape.exe

for %%f in (%*) do (
"%INKSCAPE%" –export-eps "%%~dpf%%~nf.eps" "%%f"
)
[/bat]

このbatファイルに変換したいファイルをドロップすればepsに変換してくれます.複数同時にドロップしても大丈夫です.inkscapeさんがいい感じに変換をしてくれるので,bmp,jpg,png,svgなんでも変換できます.かゆいところに手が届くinkscapeさんはさすがやで.

ときどきこういうバッチを作ったりするんですが,いまだにcmdの構文をしっかり覚えていなくて,毎回調べながら書いています.覚えたら便利な気もするんですが,使う頻度が少ないのとあまり好きな構文じゃないのでいまいち覚えられません.

3体問題

最近更新していないじゃないか,とsierraさんに怒られたので久しぶりの更新です.
もう少しまめに更新を行おうと思います.

toggerの3体問題のまとめをたどって見た3体問題の特殊解がおもしろかったので,プログラムを書いてみました.パラメータはInstitude of Physics Belgrade THREE-BODY GALLERYから拝借しました.いずれも周期性を持ったシミュレーションになっています.

0-9キー:異なる初期値でシミュレーション  スペース : 色替え
7, 8, 9ではかなり計算精度を上げているので,少し重いかも

はじめは単純なオイラー法でシミュレーションを実装していて,Brouckeのパラメータではそれでもうまく出来ていたのですが,計算精度が悪いせいかDRAGONFLY以降のパラメータではすぐに発散してしまいました.精度を上げるためにルンゲクッタに変えてみても発散してしまったため,しょうがないのでDRAGONFLY以降のパラメータでは計算ステップをかなり細かくしています.GOGGLESパラメータは特に計算がシビアなようで,ずっと動かしているとそのうち発散します.今回はprocessingで作ったのですが,processingはクラスインスタンスを生成すると極端に遅くなってしまうので,やっぱりプログラマよりはデザイナ向けの環境なんだなぁと思いました.

個人的には一番最初に表示している”Broucke A11″や2番目の”Broucke A7″あたりがかなり美しくデザインされている感じがして好きです.実際に宇宙には複数の恒星から成る系もあるそうなので,今回シミュレーションしたような軌跡を描いている星も実在するかもしれないと考えるとロマンがありますね.

小さなサイズのEigen::MatrixXfのinverse()が遅い

c++の線形代数ライブラリのEigenをよく使うのですが,前々から小さなサイズの動的行列の逆行列を求める処理が重いことが気になっていました.
以下のページを見て,てっきり動的行列でもサイズが小さければ公式を使って逆行列を求めるのかと思っていたのですが,よくよく見ると固定サイズでないと公式を使った計算は行わないと書いていて,実装を見てみると動的行列では必ず(1×1を除いて) partialPivLu を使って逆行列を求めているようでした.
http://eigen.tuxfamily.org/dox/group__TutorialLinearAlgebra.html

LinearSolverのsolve()を使えとか,サイズが小さい時は固定サイズを使えということなんでしょうが,やっぱりプログラム上どうしても動的行列の逆行列が欲しい場面はあるわけで,そのようなケースのために次のようなコードを書いてみました.

続きを読む