100723-26

  • 論文読み
    • 複素多様体の計量の使い方がなー、どっかで俺は根本的な勘違いをしてるような気がする。外微分の使い方とかほんと怪しいからなー。

 まあそんなわけで、ひたすら行列式を求めたり、よくわかんない代数計算ばっかりしてますよ。これがまあびっくりするくらい面白くないわけ。論文読みながら「こうなる」って書いてあったら「へー」って思えるくらいの簡単な結果なのに、実際に手を動かしてみようとすると、なんだかアホみたいな計算量になって、で最後までやってみると合わない。そんなのどうしようもないですよ。自分の尻穴に針金ハンガーを引っかけてぐいぐい引っ張りながら「月に代わってお仕置きよ! お仕置きよ!」って叫ぶくらいのことしか出来ません。出来ないのです。定義の見間違いとか(今日のハイライト:det(g)=g^1/2とするってのをずっと見間違えてて「そも次数が合わない……計量から直じゃなくてヤコビアン風味に出すの……?」などと2時間ほど。)途中の書き間違いなら数時間で気付けるからまだましな方、そもそも合ってるかどうかがわかるような計算結果が出るまで数時間とか平気でかかりますから、もう試行錯誤もクソもないですもの。「じゃあ、これで計算してみる?」って言って計算始めるときの緊張感たるや、新規メーカーのエロゲをマスターアップ前に予約する時もかくやというほどですよ。一応発売して地雷踏んで\10,000吹っ飛ぶだけなら失敗とは言わず、バグでPCがあれなことになったり潰れたメーカーから個人情報が漏れたりしますからね、エロゲ。ほんとエロゲオタとか頭おかしい。まあ俺の計算はそんな、失敗したからと言ってCドライブ丸ごと消されたりすることはないわけですが、それでも気が付いたら数時間が吹っ飛んだりしてるのはあんまり気分がよろしくないですよ。他にやりたいことは幾らでもあるわけだし。エロゲとか。頭おかしい。
 で、結局、PCで計算することにしました。その、数値的にじゃなくて、aやらxやらの文字式のままで代数的に計算するソフトってのがあって、まあみんなそういうの使ってるらしいですよ。頭おかしい。そん中で有名なのはmathematicaMAPLEですか。まあ前者はちゃんとライセンスを研究室で買ってるはずなので、学校行けば使えるんですが、ちょっとしばらく学校行きたくないのでそれは却下です。またなんかあったの? いや、今回に関しては本当に何もなくただ行きたくない。で、MAPLEの方はたしか無料のはずですけど、去年の院試の面接ですげえ簡単なシミュレーションをC言語で組んでその話をしたら、質疑応答の際に教授に「そんなのMAPLEでやれば一瞬ですよ」って言われて以来、「じゃ、俺は一生金輪際MAPLEを使うのをやめよう」ということになったので(俺はほんと厄介な人だな)、まあ適当に探して見つけたフリーソフトにしました。
 まあ俺の思いつきと厄介さんっぷりが高じて偶然出会ったこのフリーソフト、本来ならチュートリアル片手に「diff( x^3+5*x+2, x, 2 );、と。あ、ほんとだ、ちゃんと出るね」なんて簡単なのから試しにぽちぽち打ってみたりしながらこのソフトとの親交を暖めて、でだんだん仲良くなっていって、一緒にカラオケ行くときには「今日は俺DAMって感じなんだよね」なんてカラオケの機種でわがままが言えるくらいの間柄でフリーソフトさんとも仲良くなれたかな、って頃に「で、ものは相談なんだけど、これちょっと計算してみてくれたりなんかしちゃったり、しない?」なんて最初に計算して欲しかったやつを差し出すのが、なんていうか、礼儀ってもんじゃないですか。それを今回の俺に関しては、ダウンロードしてインストールして、いくつかコマンド調べて、最初に計算させたのが

expand(determinant(matrix([(1+(((abs(a))^2)/((abs(d))^2)))*F+(2*(abs(a))^2+realpart((realpart(d)-imagpart(d)*%i)/d*a^2)*2)*G,
(a*(realpart(b)-imagpart(b)*%i)*F+(2*realpart((a*(realpart(b)-imagpart(b)*%i)*(abs(d))^2*G)+(realpart(d)-imagpart(d)*%i)^2*a*b*G)))/(abs(d))^2,
(a*(realpart(c)-imagpart(c)*%i)*F+(2*realpart((a*(realpart(c)-imagpart(c)*%i)*(abs(d))^2*G)+(realpart(d)-imagpart(d)*%i)^2*a*c*G)))/(abs(d))^2],
[(b*(realpart(a)-imagpart(a)*%i)*F+(2*realpart((b*(realpart(a)-imagpart(a)*%i)*(abs(d))^2*G)+(realpart(d)-imagpart(d)*%i)^2*a*b*G)))/(abs(d))^2,
(1+(((abs(b))^2)/((abs(d))^2)))*F+(2*(abs(b))^2+realpart((realpart(d)-imagpart(d)*%i)/d*b^2)*2)*G,
(b*(realpart(c)-imagpart(c)*%i)*F+(2*realpart((b*(realpart(c)-imagpart(c)*%i)*(abs(d))^2*G)+(realpart(d)-imagpart(d)*%i)^2*c*b*G)))/(abs(d))^2],
[(c*(realpart(a)-imagpart(a)*%i)*F+(2*realpart((c*(realpart(a)-imagpart(a)*%i)*(abs(d))^2*G)+(realpart(d)-imagpart(d)*%i)^2*a*c*G)))/(abs(d))^2,
(c*(realpart(b)-imagpart(b)*%i)*F+(2*realpart((c*(realpart(b)-imagpart(b)*%i)*(abs(d))^2*G)+(realpart(d)-imagpart(d)*%i)^2*b*c*G)))/(abs(d))^2,
(1+(((abs(c))^2)/((abs(d))^2)))*F+(2*(abs(c))^2+realpart((realpart(d)-imagpart(d)*%i)/d*c^2)*2)*G])));

とかですからね。改めて見るとよくわかんないね。というか手で計算しようとしてたやつ馬鹿だろ。あとconjugate使え。まあしかしこれ入力して、カチコンってenter叩くと、まあびっくりするくらいのスピードで答えが返ってくるわけ。まあ間違えてたけどね。しかも自分で計算してないからどこが怪しかったのかとかもまるでわからない体たらく。その後もいくつかの計算やらせてみてるんだけど、わりとそれっぽいのは出てきてるんだけど、物凄い数の項が出てきて「なんか係数集めて三角関数変形したら、どうにかなってるかもな」って感じの、なんかもう1段階くらい上手いこと計算できそうな感じ、ってところまでしかやってくれないですね。というか各項を何で纏めるかを指定したいんだけどなー、というわけで、そんなに嬉しい結果にはならなかったよという話です。というか俺は大人しくmathematicaを使った方がいいんですよ。たぶん。いっぱいの物理学者が使ってるってことはそれなりの理由があるはずですし、あと微妙な使ってる人間にしかわかんないようなノウハウとかも、きっと最前線で使ってる人間の間で培われ流通してるようなのがあるはずなんですよ。なんかただ展開するにも使うアルゴリズム、関数が場合によって違ったり、「ピンク色のぱんつを履いてる日はmathemaricaが多項式を綺麗に変形してくれる」みたいな話があったりだとか。というわけで、このブログを読んでいるmathematica使いの皆様にあらせられましては何色のぱんつ履いてますか?