行列式むきーーー

つーことでこれからコーディングを開始します。辞書的配列が扱えるのか、行列のかけ算を正しくできるのかから始めます。なんつーか前進差分しかやったこと無い人なので。
なんつーか色々と考えた結果、検算をする段階では実際にかけ算なんてしなくていいし、足し算もしなくても良いことが分かりました。俺頭良いな。数値的に行列式出すのにわざわざSalus*1の公式を実装するのは果てしなく阿呆臭いんだが、Numerical Recipes見ても、既往のプログラム呼び出せば終了としか書いてない。でもって、既往のプログラムはLU分解*2なんだなこれが。やったことねーっつーの。っつーかそこに行き着くには50ページ程あるんですがって感じですよ。しょうがないからSalusの公式ですよ。因にこれってば例の「たすきがけの計算」ってやつです。4次元以上の行列の行列式出すときはCramerの公式だか使って余因子展開して、行列ぶっこ抜きながら計算してくのだよな、確か。院試以来やってねーから全然覚えてねーや。
何つーか、Salusの公式を書き出してみて、ある一例について、帰納する。その一例を更に一般化する。こうして出来ていくのですね、俺の組んだクソなプログラムは。そして何も考えずに取り敢えずemacs上で、for(i=0;iεijk掛ければ良いって感じなんだが、これもまた違うな。ちと足りん。
何か線形の教科書見たらあっさり公式が載ってたよ。あーあ俺のこの数時間は無駄だったのですね。つーかたすきがけを実装するのに無理があったか。公式をそのまま書き下した方が簡単に決まってるだろと。アフォかと、馬鹿かと。でもね、その公式sgnとか出てんの。香ばしすぎてよだれが出ましたよ。まあ-1を奇数乗するか偶数乗するか位なもんなんですけどー。
何だかんだ気に食わねー所も多々あるものの、行列式を求めるプログラムは完成したのでよしとする。と、そしたら次はそれをlexicographicに並べるのに入るのですね。こういうのもMathematicaだったらチャラっと出来ちゃうんだろうなあ。何で俺はこう非効率的な方向に物事を進める傾向があるのだろうか?単純に馬鹿なだけか。

*1:サリューとよんだり、サラスとよんだりします。フランス語式に読むとサリューです。Salutになるとさよならだっけか。

*2:Left Unitary分解だっけか?良くしらね。