読者です 読者をやめる 読者になる 読者になる

どせいたんさき。

ナスダヨー

Octave

天体カタログ間で等級を比較する

目的 異なる天体カタログの間で星の明るさを比較したい.より正確には異なるカタログの間での等級の変換式を求めたい. ここでは Tycho-2 カタログと USNO-B1.0 カタログの間での変換を求める.Tycho-2 カタログは Hipparcos 衛星による観測をベースに拡張し…

特異な値に影響されにくいフィッティング方法について

目的 単調なオフセット(定数や低次の多項式)の上に一部分だけ特異なフィーチャーが乗っかっているようなデータを考える.このときにオフセットの値を適切に(適当な関数で)フィッティングしたい.オフセットの値やフィチャーがどこに現れるのかといった情…

Metropolis-Hastings 法で乱数生成をやってみた

目的 任意の分布に従う乱数を Metropolis-Hastings 法で生成する. Metropolis-Hastings 法がどのようにして乱数列を生成するのかを視覚的に理解したい.

Octave の contourc で返される値の使い方がようやくわかった

目的 octave でコントアを書くためには contour という関数を使えばよい.また,contour で描かれるコントアを曲線として得たい場合には contourc という関数を使えばよい.しかしヘルプを一読しただけでは contourc によって返される値の使い方がよくわから…

テキトウノイズリダクション

目的 統計的なモデルを用いてノイズリダクションをする.

『Change of Variable』 - フーリエ変換編

目的 Practical Statistics for Astronomers という書籍に以下のような演習問題がある. Suppose that φ is uniformly distributed between zero and 2π. Find the distribution of sinφ. How could you find the distribution of a sum of sines of indepen…

『Change of Variable』 - シミュレーション編

目的 Practical Statistics for Astronomers という書籍に以下のような演習問題がある. Suppose that φ is uniformly distributed between zero and 2π. Find the distribution of sinφ. How could you find the distribution of a sum of sines of indepen…

Octave でライフゲームを作ってみた

ライフゲームの世界 - 人工知能に関する断創録 にて紹介されているライフゲーム動画を見ていたらなんだか自分も触ってみたくなったので作ってみることにした.まずは動くものが欲しかったので手っ取り早く作れそうな octave で実装した.

Octave でエラトステネスの篩

引数として与えられた数 n よりも小さな素数の列を返す関数を考える.Project Euler の問題を解くために何度も書いたのでさすがにソラで書けるようになった. エラトステネスの篩 function lst = eratosthenessieve(n) sqn = sqrt(n); idx = ones(1,n); idx(…

プロットで軸ラベルのフォーマットを変更したい場合

gnuplot なら軸ラベルのフォーマットを変更するには専用のコマンドを用いればよい. set format x "%3.1f" ## 必ず小数点一桁まで表示 set format y "10^{%L}" ## enhanced されていれば 10 の肩に指数が乗る octave の場合は若干面倒で一度軸の値を抜き出し…

Octave で普通に FITS ファイルが読めた件

天文学において"データ"と言えばいわゆる写真(画像)になるわけですが,様々な情報(観測日時,観測装置,方角,etc...)を保存する都合上ちょっと変わった形式の画像データで保存されます.それが FITS (Flexible Image Transport System) ファイル形式と呼ば…

Octave の計算速度比較テスト

とりあえず大学のマシンでテスト.とりあえず要素数 100,000 のベクトルに対して for ループを回した場合, arrayfun() を使った場合とそのまま計算した場合で比較.それぞれ以下のとおり. octave> arr = rand(1e5,1); octave> tic(); for k=1:1e5; sin(arr…

2 次元イメージの統計量を計算する

統計量を調べる Octave のコマンド(mean(), median(), std(), ...)は一方向にしか計算されない. 例 octave> median([1, 2, 3; 4, 5, 6; 7, 8, 9]) ans = 4 5 6 なので画像全体の値を計算したい時は, 2 回実行する 1 次元化してから計算する 2 回書くのは…

横ベクトルと縦ベクトルを強制的に変換する方法

自分で関数なんかを作っていると,引数として縦/横ベクトルどちらか一方であることを前提にして作ってしまいがち.で,たまに逆側を入れてしまってエラーになったりする.エラーを吐くくらいならいいんだけど,たまにとんでもない行列を出してきたりして困る…

Octaveの関数で引数の数をチェックする

忘れやすいのでメモしておく.Octave のファンクション(mファイル)で引数の数をチェックする nargchk() 関数の(ちょっぴり)クールなつかいかた.この関数は次のような使い方をされる. > msg = nargchk(n_min, n_max, nargs) ## n_min: 許される引数の最小…

銀河座標から赤道座標に変換するプログラムを書いてみた

精度はいらないけれど銀河座標 (l,b) から赤道座標 (RA.,Dec.) の値を計算する必要性が出てきたのでちょいちょいっと作ってみた.必要性がありそうだから変換ツールとかどこかに落ちていると思ったのだけどなぁ...全然見つからなかった.仕方ないので自作.…