Excelの行列演算の関数を使う | 池袋駅南口の天文計算

池袋駅南口の天文計算

小望遠鏡とデジタルカメラを使った天体観測とExcelでできる天文計算のブログでした (^^;;
新規の記事は書きませんがよろしくおねがいします m(._.)m

天文計算でよく出てくる座標の回転は行列と位置ベクトルの積として表すことができます。

もちろん行列演算(マトリックス計算)の定義にしたがって計算式を書いてもいいのですが、Excelには行列演算のための関数が用意されていますのでそれを使う手もあります。

サンプル
池袋駅南口の天文計算

z軸を中心とした角度θの回転を考えます。

これに対する回転の行列(A)があり、これを位置ベクトル(方向余弦)Pに掛けることによって回転後の位置ベクトルP'を求めることができます。

上のExcelのシートで計算式がどう設定してあるかというと....
池袋駅南口の天文計算

D9:D11のセルにある

  =MMULT($I$2:$K$4,C9:C11)

がベクトルP(C9:C11)に回転の行列(A)($I$2:$K$4)を掛けているところです。

自分で計算式をいちいち書き込んでいくよりずっと簡単ですがちょっとしたコツみたいなものがあります。

  まずD9:D11の三つのセルを選択した上でこの式を設定します。

  そして式を書き終わったら“Ctrl+Shift+Enter”で確定します。

ところでこの関数MMULT(A,B)を使う場合行列演算の規則が適用されます。

例えばAがL行M列の行列であればBはM行N列でなければなりません。そして結果はL行N列になります。

上の例ではAが3行3列、Bが3行1列ですからOKで結果は3行1列になります。

------

ところでC3のセルはC2の度の表示をラジアンの表示に変換したものです。
ですから

  =RADIANS(C2)

でいいんですが、こういう関数を使うとラジアンの定義を知らないみたいで恥ずかしいので

  =PI()*C2/180

としています (^^)