天文計算でよく出てくる座標の回転は行列と位置ベクトルの積として表すことができます。
もちろん行列演算(マトリックス計算)の定義にしたがって計算式を書いてもいいのですが、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
としています (^^)
もちろん行列演算(マトリックス計算)の定義にしたがって計算式を書いてもいいのですが、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
としています (^^)