先日、散逸のあるような系でもLagrangianを書けることがあると言われて、そんなバカな!とか思いつつ暫く悩んだ。その時、念頭にあったのは、粘性摩擦の働く一次元系

さて、この系のLagrangianは書けるのか


答え(の一つ)。

これで、普通にEuler-Lagrange方程式を導けば、元の方程式が出る。さて、Lagrangianが作れれば、対応するHamilton力学系が作れるはず。普通に、正準運動量を

とすると、


というPoisson構造とHamiltonianに対して、同じ方程式が再現される。物理量fに対して、

なので、fが時間に陽に依存する項がなければ(普通物理量と言う時は、そんな項はないと思うけど)、HとPoisson可換なfは保存量となる。hamiltonian自身は、時間に依存する項を陽に含んでいるので、もはや保存量ではない。どうもhamiltonian=エネルギーと思いこみすぎてて、非自励Hamiltonianを使えば、散逸のある系を記述できることもあるのに気付かなかった。そもそも、こんなhamiltonianを物理で見たことがない。唯一知っている例として、Painleve方程式のHamiltonianは、非自励的だけども、、ずっとキモイだけと思い続けてたので、宗旨変えすべきかもしれない。あと、そうすると、エネルギー保存しない系でもSymplectic数値積分が使えることになる(それに意味があることかは分からないけど


ところで、Poisson構造が分かったので、上の系は正準量子化できる。全く曖昧さなく量子化できて、シュレディンガー方程式を導くと

となる。この方程式は、V=0の時でも、確率保存する解がないので、何かが間違っているはずなのだけど、何が間違ってるんでしょうか?

プログラミングの魔導書


いただきました。
http://longgate.co.jp/products.html
販促につながるようなレビューを!と言われて魂を売ってしまったのでレビュー。

これは、不定期刊行の雑誌と言う体裁を取っており、今回が創刊号らしい。創刊号の内容は、C++ということですが、自分自身のC++に対するスタンスは、普段仕事でC++を書くことはあるけども、Boostなんて宗教上の理由で使わないし、C++0xもまだ主要なコンパイラが実装途上なのをいいことに全然追っかけてないし、仕事以外だとC++使わないし、本音を言えばC++避けれるものなら避けたいけど、ほんとはもうちょっと真面目に勉強しないとな〜という程度のもので、C++エキスパートが書いた個別の記事を評価するなんてことはできないですが、まあ以下はそういうスタンスの人間が書いた感想文。C++に対して、わたしと似たスタンスの人が一番多いんじゃないかと勝手に思ってるんですが、どうでしょう。あと個人的には、ロングゲートという会社が一番気になる。HPの会社概要すら見れないし

内容。

あたりは、コードも殆ど乃至全く出てこないので、C++に少しでも興味ある人なら、楽しめる内容でしょう。

残りの記事は、多くがライブラリ紹介記事となっている。これまた宗教上の理由で、これらのライブラリの殆どは自分で使うことはないだろうと思うものの、読み物的に読んでいくのは楽しい。一つ一つの記事は独立していて10ページほどで、一つのライブラリに対する解説としてはそこそこ長いものの、途中で挫けない程度には短い。どの記事も丁寧に解説されているので、C++に疎い人でも、理解に困ることはないように思う。個人的に、一番面白かったのは、Ovenの説明。Ovenは、ドキュメントに"Oven is an advanced implementation of Range Library Proposal"とあり、rangeとは、いわば"v.begin()とv.end()のペアのようなもの"(と思う)。それだけなんだけど、色々と便利なことができるようになっている。

その他。「Hello, C++ World!」という記事は、Hello Worldプログラムを題材にC++の機能の多くを説明するという変わった視点からの解説。普段何気なく書いているstd::endlが何者なのかという話が書いてあったりします。自分が如何にC++を知らないか特に強く実感させられる記事でもありました。

総括。C++をheavyに使うわけではないけど、C++に興味ある人にとっては、全ての記事が"読み物"として面白いのではないかと思います。

回転を信じろッ! 回転は無限の力だ それを信じろッ

SBRもいよいよ終わりが近いですが、何故コマや転がるコインは倒れないのかという話。これは、普通ジャイロ効果という言葉で片付けられる。


ジャイロ効果という用語は、色々なものを指していて日本語版Wikipediaには3つの効果が記載されている。一番よくあるのは、「外部から自転軸を回すようにモーメントが加えられるとき、加えられているモーメントの軸及び自転軸と直交する軸について振れ回り運動をする性質」(Wikipedia)という類の説明で、コマが歳差運動することが説明される。けれど、歳差運動することとコマやコインが倒れないことの間に何か因果関係があるのか?


ジャイロ効果の定義は、曖昧だけども、ジャイロモーメントというものが何を指すかは明確に定義されている。よくある

という式の右辺第二項をジャイロモーメントと呼ぶらしい。これ自体は、角速度の定義そのものから成り立つ関係。ジャイロ効果は、角運動量保存則の帰結という説明も見かけたが、ジャイロモーメントは、角運動量保存則とは、関係ない。


さて、コマの運動方程式(いわゆるLagrangeのコマ)を

について書くと、



となる。Mがコマの質量で、aは支点から重心までの距離。座標系はθは傾きで、他はEuler角(良い絵が見つからなかったので、絵は割愛)。慣性モーメントは(A,A,C)。コマの傾きについては、第一式で決まるけども、右辺を見ると、第二項と第三項はコマを倒す方向にのみ働くことが分かる。従って、コマが倒れないとすれば、右辺第一項によるものであるけども、これは式の形を見れば分かるようにジャイロモーメント由来の項。従って、ジャイロモーメントがコマを倒れるのを防ぐ(こともある)というのは間違ってない。ちなみに、式の形からはちょっと分かりづらいけども、右辺第二項も実はジャイロモーメント由来の項。



更に第二式を見ると、以下のように書きかえられる

これは歳差運動を記述する方程式となっている。右辺を見ると、やはりこれはジャイロモーメント由来の項になってる。そして、これ以外に働く「力」はないので、ジャイロモーメントが歳差運動を起こすというのも合っている。


次に、以前書いた、転がるコインの運動方程式を見てみる。
http://d.hatena.ne.jp/m-a-o/20100720#p2


コインの傾きに関連する式だけ書くと、

で、コマの場合と殆ど同じ方程式が出てくる。右辺を見ると、第二項と第三項は、コインを倒す方向に働く「力」であり、コインが倒れないのは、右辺第一項による。(1+2k)というのは、正規化してあるけど、これは元は、(MR^2+C)という項であった。まあ、式の形からも想像がつく通り、省略した式の導出過程を追うと、のみがジャイロモーメントに由来する項で、残りは別の要因によるもの。わたしの日本語力では、残りの項が何に由来しているかを分かりやすく説明できないけど、摩擦力と抗力によって発生するトルクに由来している。これを、ちゃんと計算すると、残りの項が出てくる。というわけで、転がるコインを立ち上がらせる作用は、ジャイロモーメント以外の作用もあるということになる。k=1/4なので、1/3だけがジャイロモーメントによると言ってもいいかもしれない。


結局、コマが倒れないのも歳差運動するのも、ジャイロモーメントが原因ではあるけれども、この2つの効果は、独立なものであって直接の因果関係があるわけではない。このことは、何故ジャイロモーメントがコマが立ち上がる方向に作用するかを考えてみると、よりはっきりする。方程式をそのまま解釈しようとすると、方程式には地面に関する項はないので、重力が働いているにも関わらず、支点が空中で固定されている謎のコマを考える必要があり、単なる思考実験となる。


そういうコマがあったとして、ジャイロモーメントは重力とは無関係だし、コマはどっちが上か下か知ってるわけではない。にも関わらず、立ち上がろうとさせるのは、コマが、まっすぐ立っている状態とまっすぐ逆立ちしている状態の2つの平衡解を持ち、近い方の「平衡状態」に"吸い寄せられる"から(注:この説明はインチキなので末尾の追記参照)。この吸引力は回転が速いほど強くなる。そして、重力に打ち勝つほどになると、倒れなくなる。逆に、まっすぐ逆立ちしている状態の方が近ければ、高速に回転するコマにジャイロモーメントが及ぼす作用は、重力と同じ方向になる。このことは方程式でも確認できる。すなわち、逆立ち状態から、傾きθ(90度以下としておく)だけ離れてる状態を考えると、

となって、他の条件が同じならば、まっすぐ立ってる状態からθだけ傾いている場合と同じ大きさの"力"が逆向きに働くことになる。勿論、この場合でも歳差運動は起きる。


というわけで、通常ジャイロモーメントによってコマが立ち上がるのは、初期状態との合わせ技によって偶然そうなってるだけ。以上から、コマが倒れないことと歳差運動するのは別のお話であると分かる。そんなわけで、「コマに重力が働くと回転軸は重力方向ではなく、重力と直交する方向に動くから、コマは倒れない」という通俗的な説明は、本質的に間違っていると言える。回転の有無に関わらず重力は依然としてコマを倒す方向に作用している。ジャイロ効果をどのように定義するかは言葉の問題でしかないので、ジャイロ効果によって歳差運動が起こるというのも、ジャイロ効果によってコマが倒れないというのも間違いではないだろう。けれど、この二つの作用は完全に別のもの。


「こまはなぜ倒れないのか」という直球な本があるけれども、立ち読みした限りでは、この本に書いてある説明も通俗的説明と同じもので、この本では、上と同じ方程式を書いているが、その解釈は間違っている。数式を正しく解釈するのも楽じゃないってことで、物理現象の直感的な説明なんて当てにならない。


最後に。コインの場合はジャイロモーメントだけではないということを見た。コマの場合、支点を固定して考えていたので、全てがジャイロモーメントで説明できたけども、現実のコマは動きまわるので、ジャイロモーメント以外の項も寄与してくる可能性がある。そんな中で、ジャイロモーメントが支配的に効いてくるのかは、ちゃんと考えてみないとよく分からない。


(追記)「平衡状態に吸い寄せられる」という説明は、インチキだなぁ。そもそも、回転が遅い場合は、ジャイロモーメントは高速で回転している場合と逆方向に働くかもしれないので。まず、トルクは、歳差運動=θに関する回転の軸方向と同じ方向に働く。これはよくある巷の説明「回転軸を倒す方向ではなく回す方向に重力が作用する」という誤解の元らしいけど、実際には、このトルクはコマが倒れたり立ち上がったりするような働きをする(つまり、角度θに関する回転)。これは方程式からも分かる。

で、スピンが超高速な時は、角運動量はスピンの回転軸とほぼ平行になる。コマが普通に立っている時、スピンの回転軸(支点から重心へのベクトル)は上向きで重力とは逆方向(回転軸は傾いてるけど、鉛直方向への射影を見たら真逆という意味)。一方、コマが高速に回転している時は、歳差運動の回転方向とスピンの回転方向は一致しなければならない。これを言うのは少し面倒だけども、直感的にはそうなりそうな気がする。で、歳差運動の回転方向とスピンの回転方向が一致してて、スピンの回転軸が重力と逆方向だと、ジャイロモーメントの向きが決定できて、重力によるトルクと逆向きになる。これが十分強ければ、コマは倒れない。

同様の論法で、コマが逆立ちしてる時は、スピンの回転軸の向きと重力の向きが同じなので、高速回転している時のジャイロモーメントの向きは、重力によるトルクと同じ向きになる。

っていうのがより正確な説明だと思うが複雑。要点だけ抜き出すと「高速で回転するには、スピンの回転方向と歳差運動の回転方向が一致している必要があり、それによってジャイロモーメントが重力によるトルクを打ち消すため、コマが倒れるのを防ぐ」。回転は難しい。。。


(追記2)更によく考えると、「高速で回転するには、スピンの回転方向と歳差運動の回転方向が一致している必要があり」というのは、スピンと歳差運動が高速に真逆の方向に回転している初期状態を与えたらどうなんのか?という問題が発生するので、間違い。

スピンと歳差運動が高速に真逆の方向に回転すると、ジャイロモーメントは重力によるトルクと同じ方向に働くはずで、そういう初期状態を与えるとすぐに倒れることになると思われる。ついでに、式を見る限り歳差運動が超高速であるような場合もコマは倒れるはず。「(コマが上向きに立っているとして)スピンの回転方向と歳差運動の回転方向が一致していて、かつスピンの回転速度が歳差運動の回転速度より十分速い時(のみ?)、コマは倒れずに安定して立っていることができる」というのが言えることかなぁ。ジャイロモーメントが重力に逆らうためには、結構厳しい制約条件を満たす必要があるけれども、コマの設計が絶妙で、それに反する初期状態を与えるのが難しいという感じ