2012年2月28日火曜日

航路図 と 光路図

「速度合成 と MAXIMAへの式の貼付け」では、玉の航路図を用いましたがこの際なので光路図との関係をまとめておきます。
シナリオは速度Uで飛行する宇宙船の中を速度V=C/3で飛行する玉と光の様子を観るものです。
光は船の中で反射して往復しています。
光が逆行する場合は図中の左にある場合の座標変換関係を流用して表しています。
したがって、本来は玉の飛行中に黄色の矢印で示す宇宙船の図を置くことは適切ではありません。
本来の意味内容を考えると宇宙船の図を置くということは、その場所で座標変換の様子を観たい・・・・・ということであり、単に位置関係を知りたいならそれは斜交座標中のピンクの矢印で示す宇宙船の距離軸(上の方の)への射影でわかります。
また座標関係が反転しており、黄色とピンクで示す関係が繋ぎ目のところで突然入れ替わるという物理的にオカルトチックなものになっています。 地図でいえばメルカトル図法のように角度を保存するために面積が犠牲になっているという感じでしょうか。(この図では事象の一致と座標変換の保存)


2012年2月25日土曜日

速度合成 と MAXIMAへの式の貼付け

「(物理)運動量保存はエネルギー保存則? その12  」で特殊相対性理論での速度合成を逆行列で求めましたが、式に冗長というか不要なものがくっついていたので、結果には影響は出ないのですが、まああまりにひどいので整理して再掲しました。
くっついていた不要なものとは逆変換で求める際に付加していたγで、下図でベクトルA,B を C,Dから求めるのに使っていたものですがまったく必要ないものでした。
Tsuを変換行列とすると
[C*t, t*V]=[A , B]=Tsu*[α , β]  したがって         INVERT(Tsu)*[A,B]=[α,β] で 合成速度は  C*β/α となる。 [C*t, t*V]は更に時間 t  が共通なので γ と同じくこれも省略できますがあまり省略しすぎると物理的意味がわからなくなります。

更に玉にも座標系を与えると [C*t, 0]=[A , B]=Tsv*Tsu*[α , β]  したがって  
INVERT(Tsu)* INVERT(Tsv)*[A,B]=[α,β] で 合成速度は  C*β/α となる。(図はありません)
この C*t も片側が 0 なので実際は0以外の何でもよいです。



ところでいままでMAXIMAの式を添付していたのだけど、MAXIMAへのペーストのテストをウインドウズのメモ帳で確認して問題ないと思っていたのだけど、不思議なことに少しでもメモ帳を編集すると例えば

/* [wxMaxima: input   start ] */
beu:u/c;
/* [wxMaxima: input   end   ] */

のようなブロック単位ではではペーストできなくなってしまうことがわかった。 「/* [wxMaxima: input   start ] */」の部分を除いて 式「beu:u/c;」だけコピーは可能だがこれだと大変だ。どうも文字コードか何かの関係のような気もする。これは掲載した式でも同じ。

仕方ないので下記のように式だけにすると全てひとつのセルに入ってしまう。
動作はちゃんとします、がコメントも入れられなくなってしまうので  簡単なものならいいけど長いものだと使いにくくてどうしようも無い。
要所要所分割して入れると少しは見やすいかもと試してみたのだけどこれだと動作がどうもおかしい。
一行毎に徹底的に分けるか1セルに全て入れるしかないようです。
もうね、ガッカリです、お手上げ。

速度合成の式(MAXIMA)  
     ・全てひとつのセルに入れるようにしてください。(全行一括でコピーしてペースト)
---------------------------------------------
kill(all);
beu:u/c;
gmu:1/sqrt(1-beu^2);
tsu:gmu*matrix([1,-beu],[-beu,1]);
bev:v/c;
gmv:1/sqrt(1-bev^2);
tsv:gmv*matrix([1,-bev],[-bev,1]);
outvct:matrix([c*t],[0]);
invert(tsv).invert(tsu).outvct;
%[2]/(%[1]/c);
ratsimp(%);
outvct2:matrix([c*t],[t*u]);
invert(tsv).outvct2;
%[2]/(%[1]/c);
ratsimp(%);
---------------------------------------------

2012年2月10日金曜日

(物理)運動量保存はエネルギー保存則? その17

弾性衝突に関係するエネルギーを区別し以下に列挙していきますと、
静止質量のエネルギー(mC^2)、運動質量のエネルギーがある。
運動質量のエネルギーはγmc^2のこと(特殊相対性理論では質量はγmとなることからも導出できるので。)
 運動質量のエネルギーは観察する立場により異なる相対性(並進対称性?)のエネルギーで偽?エネルギー。
弾性衝突ではこれらのエネルギーは衝突前後(というよりその時点つまり瞬間で)で保存する。エネルギー以外でも運動量、運動質量、静止質量も保存する。特殊相対性理論での近似域でも同じ。
保存量はこの三つしかない、なぜなら特殊相対性理論のエネルギーを微積分していくとエネルギー γmc^2->運動量_γmv->質量γm->運動量->エネルギーと巡回するだけだから。相対速度のBで微分してあとB->0として良い訳はこれが速度であることから例えば0の時点でも加速度は持っているからその変化は有る。
特殊相対性理論ではエネルギー、質量はc^2が有る無しだけなので等価らしい。
近似域ではエネルギーは2次式(スカラ)なのでプロットすると円、運動量は1次式(ベクトル)でプロットすると線、この交点で衝突した場合と、しなかった場合の衝突後の速度が決まる。
従って衝突前後で保存するのは当然。 もし保存しなかったらこの世界はないのだから問うこと自身意味がない。

ということで特殊相対性理論でのうエネルギーと運動量のプロットするとどうなるかみていきます。

特殊相対性理論ではエネルギーと運動量の方程式で弾性衝突後の速度は解けないので数値的に求める。
数式処理ソフトのMAXIMAで方程式の0点を飛び出させるように絶対値の逆数をとり、それを3Dグラフでプロットすれば様子がわかるだろうということです。


その様子が上の図でエネルギーの線が円で、運動量が斜め線。
結構微妙ですが、MAXIMAはそれなりに描いてくれているようです。
これをみると弾性衝突でのエネルギーと運動量の役目がよくわかります。

交わるところが解のところで、右下は衝突しなかった場合、左側が衝突した場合です。 従ってこの左を目安に数値解を求めて行きます。
MAXIMAのグラフはグリグリ動かすことができるので真上からみるとよりはっきりします。
詳しくは下に式を載せてあるのでみてください。
それで、あれやこれやを試しながら、解のあるところをある程度解の範囲に絞り込んで、それを簡易ソルバーでさらに締め上げていきます。
この簡易ソルバーは2方向から締め上げる方式で、精度は10^-4 程度が限界のようです。
四方八方から締め上げていけば精度をあげることができると思います。

下の式は順次実行しないといけないので、ctl + R で再実行するようにしてください。
maximaがおもちゃのようにヒョヒョコ再計算して行くのはみていて面白いですよ。

注意:3Dグラフをプロットするところは頭にxを付けて xplot3D( …としてMAXIMAが反応しないようにしてあるので表示したい場合はxをとってください。
----------------------------------------------------------------------------------
/* [wxMaxima: input   start ] */
kill(all);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: comment start ]
% set initial value
   [wxMaxima: comment end   ] */
/* [wxMaxima: input   start ] */
C:30;
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
B:20;
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
vi1:10;
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
vi2:-20;
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
m1:1;
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
m2:2;
/* [wxMaxima: input   end   ] */
/* [wxMaxima: comment start ]
% cov
   [wxMaxima: comment end   ] */
/* [wxMaxima: input   start ] */
vo1:(B+vi1)/(1+B*vi1/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
vo2:(B+vi2)/(1+B*vi2/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
uo1:(B+ui1)/(1+B*ui1/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
uo2:(B+ui2)/(1+B*ui2/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: comment start ]
% gamma
   [wxMaxima: comment end   ] */
/* [wxMaxima: input   start ] */
Gvi1:1/sqrt(1-vi1^2/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
Gvi2:1/sqrt(1-vi2^2/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
Gui1:1/sqrt(1-ui1^2/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
Gui2:1/sqrt(1-ui2^2/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
Gvo1:1/sqrt(1-vo1^2/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
Gvo2:1/sqrt(1-vo2^2/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
Guo1:1/sqrt(1-uo1^2/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
Guo2:1/sqrt(1-uo2^2/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: comment start ]
% energy,momentum
   [wxMaxima: comment end   ] */
/* [wxMaxima: input   start ] */
Ei:Gvi1*m1*C^2+Gvi2*m2*C^2-Gui1*m1*C^2-Gui2*m2*C^2;
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
Qi:Gvi1*m1*vi1*C+Gvi2*m2*vi2*C-Gui1*m1*ui1*C-Gui2*m2*ui2*C;
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
Eo:Gvo1*m1*C^2+Gvo2*m2*C^2-Guo1*m1*C^2-Guo2*m2*C^2;
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
Qo:Gvo1*m1*vo1*C+Gvo2*m2*vo2*C-Guo1*m1*uo1*C-Guo2*m2*uo2*C;
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
define(plotEi(ui1,ui2), abs(Ei));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
define(plotQi(ui1,ui2),abs(Qi));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
define(plotEo(ui1,ui2), abs(Eo));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
define(plotQo(ui1,ui2), abs(Qo));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
define(plotEQi(ui1,ui2), (abs(Ei)*abs(Qi)));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
define(plotEQo(ui1,ui2), (abs(Eo)*abs(Qo)));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
define(plotEio(ui1,ui2), (abs(Ei)*abs(Eo)));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
define(plotQio(ui1,ui2), (abs(Qi)*abs(Qo)));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
define(plotEQ(ui1,ui2),  (abs(Ei)*abs(Eo)*abs(Qi)*abs(Qo)));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: comment start ]
% plot
   [wxMaxima: comment end   ] */
/* [wxMaxima: input   start ] */
xplot3d([1/plotEQi(ui1,ui2), 0,
[ui1,-29,29], [ui2,-29,29]],[plot_format,gnuplot],[grid,50,50])$
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
xplot3d([1/plotEo(ui1,ui2), 0,
[ui1,-29,29], [ui2,-29,29]],[plot_format,gnuplot],[grid,52,52])$
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
xplot3d([1/plotEQ(ui1,ui2), 0,
[ui1,-29,29], [ui2,-29,29]],[plot_format,gnuplot],[grid,52,52])$
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
xplot3d([1/plotEQ(ui1,ui2), 500,
[ui1,-24.8,-24.4], [ui2,-0.5,0.5]],[plot_format,gnuplot],[grid,52,52])$
/* [wxMaxima: input   end   ] */
/* [wxMaxima: comment start ]
% slover
   [wxMaxima: comment end   ] */
/* [wxMaxima: input   start ] */
mysolver(slicenum,clp,cheklevel,xa,xb,ya,yb):=block(
[jj:0,kk:0,nextcheklevel,nextxa,nextya,nextxb,nextyb,dx,dy,value1,value2],
dx:(xb-xa)/slicenum, dy:(yb-ya)/slicenum,
for k:0 thru slicenum-1 do (kk:k,
    for j:0 thru slicenum-1 do (jj:j,
        nextxa:xa+jj*dx,nextya:ya+kk*dy,
        value1:float(1/plotEQ(nextxa,nextya)),
        if value1 >= cheklevel then
        (print("done left  ",jj," ",kk," ",value1," "),
        j:slicenum-1,k:slicenum-1)
  )),
for k:0 thru slicenum-1 do (kk:k,
    for j:0 thru slicenum-1 do (jj:j,
        nextxb:xb-jj*dx,nextyb:yb-kk*dy,
        value2:float(1/plotEQ(nextxb,nextyb)),
        if value2 >= cheklevel then
        (print("done right ",jj," ",kk," ",value2," "),
        j:slicenum-1,k:slicenum-1)
        )),
if value1 <= value2 then (value1:value2), nextcheklevel:value1*clp,
return([clp,value1,nextcheklevel,float(nextxa),float(nextxb),float(nextya),float(nextyb)])
)$
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
result:mysolver(100,40,1000,-24.6,-24.55,-0.2,0);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
result:mysolver(100,%[1],%[3],%[4],%[5],%[6],%[7]);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
result:mysolver(100,%[1],%[3],%[4],%[5],%[6],%[7]);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
result:mysolver(100,%[1],%[3],%[4],%[5],%[6],%[7]);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
result:mysolver(100,%[1],%[3],%[4],%[5],%[6],%[7]);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
result:mysolver(100,%[1],%[3],%[4],%[5],%[6],%[7]);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
result:mysolver(100,%[1],%[3],%[4],%[5],%[6],%[7]);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
result:mysolver(100,%[1],%[3],%[4],%[5],%[6],%[7]);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
result:mysolver(100,%[1],%[3],%[4],%[5],%[6],%[7]);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: comment start ]
check Left
   [wxMaxima: comment end   ] */
/* [wxMaxima: input   start ] */
float(plotEi(result[4],result[6]));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
float(plotQi(result[4],result[6]));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
float(plotEo(result[4],result[6]));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
float(plotQo(result[4],result[6]));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: comment start ]
check right
   [wxMaxima: comment end   ] */
/* [wxMaxima: input   start ] */
float(plotEi(result[5],result[7]));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
float(plotQi(result[5],result[7]));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
float(plotEo(result[5],result[7]));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
float(plotQo(result[5],result[7]));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: comment start ]
   [wxMaxima: comment end   ] */
/* [wxMaxima: input   start ] */
float(Gvi1*m1+Gvi2*m2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
float(Gui1*m1+Gui2*m2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
define(mi(ui1,ui2), float(Gui1*m1+Gui2*m2));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
mi(result[4],result[6]);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: comment start ]
   [wxMaxima: comment end   ] */
/* [wxMaxima: input   start ] */
float(Gvo1*m1+Gvo2*m2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
float(Guo1*m1+Guo2*m2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
define(mo(ui1,ui2), float(Guo1*m1+Guo2*m2));
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
mo(result[4],result[6]);
/* [wxMaxima: input   end   ] */
----------------------------------------------------------------------------------

2012年2月9日木曜日

(物理)運動量保存はエネルギー保存則? その16

ちょっと思いついたこと。

エネルギーの等式を微分して運動量が出る。それをさらに微分していくと質量の等式になる。
どうやら保存量は保存量から創ることができるみたいだ。

(物理)運動量保存はエネルギー保存則? その10、   http://akimpotos.blogspot.com/2012/01/10.html
(物理)運動量保存はエネルギー保存則? その11、  http://akimpotos.blogspot.com/2012/01/11.html

つまり最後には古典的なものでは(特殊相対性理論で V<<C の近似域では).

m1 + m2 = m1 + m2

 質量は保存して当然と思っていたけど特殊相対性理論理論では質量もまた速度により変わります。
そこで、特殊相対性理論のエネルギーを微分して運動量をだしたのと同じ要領で運動量を更に微分してみると(相対速度で微分なので等式の関係が保たれているはず)

結果は γv1*m1  + γv2*m2  = γu1*m1  + γu2*m2   となりました。

逆回しでいけば積分で      質量-> 運動量 -> エネルギーとだしていけます。 (d(B+v)=dBで積分)

いままで  m1 + m2 = m1 + m2  はあまりにも自然で当然と思い込んでいたのですが、特殊相対性理論の速度を含んだ等式をみるとひょっとして質量の保存も法則であるかもしれない、そんな気さえしてきました。 とにかくエネルギー関係というのはトリビアてんこ盛りという感じ。
はじめ差分でだした時は面白い トリビアもあったもんだと思っていましたがこの頃はなんだかキミガワルクナッテきたそんな気さえします。趣味で楽しむのは気楽だけど本職の物理屋さんになるのはこりゃあ大変だな〜。

----------------------------------------------
/* [wxMaxima: input   start ] */
kill(all);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
cov:(B+v)/(1+B*v/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
gamma:1/sqrt(1-cov^2/C^2);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
moument:diff(gamma,B,1)*m*C^2;
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
ev(moument,B:0);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
ratsimp(%);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
ev(%,v:cov);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
diff(%,B);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
ev(%,B:0);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
ratsimp(%);
/* [wxMaxima: input   end   ] */
----------------------------------------------

2012年2月5日日曜日

(物理)運動量保存はエネルギー保存則? その15

久しぶりに2chの質問したスレを見に行ったら188さんよりレスあり。
ニュートンは運動量保存を定義としていたとのこと、意外だ!!
ひょっとして、うーーーーんどうなんだろう。作用反作用の法則があるからやはり法則を表すものとしていたはずだと思っていたんだけど。

2012年2月4日土曜日

(物理)運動量保存はエネルギー保存則? その14

エネルギー保存法則の本当の意味というか真髄がやっと理解できた。
前回エネルギーの計算で宇宙船が加速したとしようが外の観測者が加速したとしようが区別がつかないという事に気がついたが、つまりエネルギー保存の法則の真髄(のうちの一つ?)はこういう事なのではないでしょうか?

「エネルギー保存の法則は観測者が静止して観ていようが、つまり宇宙船の中で静止して観ているいる観測者でも、 また相対速度が定速度で観ている観測者であろうが、つまり宇宙船の外で静止して観ている観測者であろうが、
はたまた、上の場合で観測者が加速度運動して観ていようが、とにかくすべての場合で保存する。…という法則である」

もちろんそれぞれの観測者が観測するエネルギーは当然違います。特に加速度運動している観測者は刻一刻と観測するエネルギーが増減しているはずです。しかし共通しているのは全ての観測者でまた全ての時点でエネルギーは保存するという事です。

つまり、これは  「エネルギー保存の相対性原理」とでもいうようなものではないでしょうか?
そうであれば今までの運動量導出のメカニズムが全て納得できます。

まず、差分で導出できる場合ですが
http://akimpotos.blogspot.com/2012/01/blog-post_19.html
ーーーーーーーーーーーーーーーーーーーーーーーーー
B 地球の速度、 v1,v2 球の衝突前の速度、 u1,U2 球の衝突後の速度、 m1,m2 球の質量
式1 地上で m1v1^2 + m2v^2 = m1u1^2 + m2u2^2
式2 宇宙から m1(B + v1)^2 + m2(B + v2)^2 = m1(B + u1)^2 + m2(B + u2)^2
式3 = 式2 - 式1 m1(B^2 + 2Bv1) + m2(B^2 + 2Bv2) = m1(B^2 + 2Bu1) + m2(B^2 + 2Bu2)
で、式3を整理すると運動量は m1v1 + m2v2 = m1u1 + m2u2
ーーーーーーーーーーーーーーーーーーーーーーーーーー
これは観測者が静止して観ている場合です。

一方微分で導出した場合、これは観測者が加速度運動している場合です。
相対速度Bで微分するという事の意味はBの微小変化、つまり加速度運動でのエネルギーの変化を示しています。
エネルギー保存はこの微小変化でも成立しなければならないという事です。
そしてエネルギー保存が成立するためには差分や微分の結果である運動量も保存しなければならないという事が導き出せます。

(物理)運動量保存はエネルギー保存則? その10、   http://akimpotos.blogspot.com/2012/01/10.html
(物理)運動量保存はエネルギー保存則? その11、  http://akimpotos.blogspot.com/2012/01/11.html

あと、どうしてエネルギー保存の等式からベクトルである運動量がでてくるのかという問題は
(物理)運動量保存はエネルギー保存則? その2 、 http://akimpotos.blogspot.com/2012/01/2.html
にあるように一次元の座標系ではベクトルは代数や微分で扱えるという事でいけそうです。
なので差分でだしたエネルギー差の

B(m1v1 + m2v2 ) =  B(m1u1 + m2u2) の項は本来三次元座標系ではベクトル演算のはずです。
それは内積でないといけないはずです。とりあえず二次元で想像するとわかりやすいですが、ベクトルBが一次元の軸上にあるv1等のベクトルに作用するのはそのcos成分だからです。参考 http://en.wikipedia.org/wiki/Elastic_collision  の Two- and three-dimensional


で、運動量保存は法則か定理とか? という問題ですが、差分でだした場合も微分でだした場合も結局観ているのはエネルギー差です。これがエネルギー保存の法則に従っているということです。  どうやら法則の手のひらからは飛び出してはいないようです。

なので、今は私個人の感想ですが、どうやら運動量保存も法則のようだ…という事に落ち着きそうな気がしてます。
それにしても、はじめはちょっと面白いなという程度で、早々に切り上げるつもりだったのですが相談した2chの方々の指摘が気になり調べて行くうちにここまできてしまいました。2chで相談に乗ってくれた方々ありがとう。並進対称性とベクトルであるとの指摘はエネルギー保存の法則の真髄の一つに気づかせてくれたものでした。それにしてもエネルギー保存の法則に相対性原理があったとは気がつきませんでした。  世に運動量保存は法則であると言われているのもそれがあるからでしょうか?
あとはせっかくここまできたのだからMAXIMAの勉強がてら特殊相対性理論での弾性衝突を仕上げて見るつもりです。
ところで、MAXIMAで何乗までの式が解けるのか試してみました。三乗が限度のようです。連立させるのは運動量でないと解けませんでした。 解はやはり三つでてます。
弾性衝突では衝突した場合としなかった場合の二つ解が無いといけないのでやはりエネルギーは二乗で無いといけないようです。

/* [wxMaxima: input   start ] */
solve([m1*v1+m2*v2=m1*u1+m2*u2,
m1*(v1)^3+m2*(v2)^3=m1*(u1)^3+m2*(u2)^3],[u1,u2]);
/* [wxMaxima: input   end   ] */


2012年2月3日金曜日

(物理)運動量保存はエネルギー保存則? その13

MAXIMAが面白くなってきたので、特殊相対性理論の弾性衝突をしている途中。
どうやら、解はない模様、なので数値解を求める方法はないか模索中。
3Dグラフで表示してもみたい。
ところで、MAXIMAでもエネルギー保存だけで弾性衝突後の速度をだす方程式を解くことができるかやってみた。一発で解けた、瞬殺だね。MAXIMAのなかってほんとどうなってんのだろう。

しかし、エネルギー保存の式はほんとうに不思議だ。 よくある例えで巨大な宇宙船の中での弾性衝突と宇宙船の外からみたものとは宇宙船の速度Bとすると明らかに大きな差があるとすると、
宇宙船がそこまで加速したという前提でいるのだけど、宇宙船の外の観測者(例えば1mmのちっちゃい宇宙船に乗った宇宙人とか)が加速してもいいわけで、その場合巨大宇宙船が加速に要するエネルギーと観測者のみが加速するエネルギーとは明らかに大きな違いがあるのに観測者からみて「巨大宇宙船の持っているエネルギー」を計算する時は現在の速度で計算するしか仕方ない。(あくまでも持っていると計算できるエネルギーのことで何か他の対象物と衝突する時に影響するエネルギーのことではない) 
つまり、宇宙船が加速したとしようが観測者が加速したとしようが区別がつかない。
してみると、Bで微分するということは観測者が加速したという影響をみているわけだ。
巨大宇宙船の中で球を発射した後宇宙船が加速しても球と外の観測者の関係は変わらないよね。あと、エネルギー保存の式、

m1*v1^2+m2*v2^2=m1*u1^2+m2*u2^2

これはただの4変数の数式…と物理から離れて冷静にみるとこれの解は無限にあるよね。
v1が速度だという思い込みで何の疑いもなく(B+v1)としているけど、これってかなりの条件を等式に与えているような気がする。 四つの変数に共通に足してもなお等式であれというのはなるほど並進対称性。?とかいうものの典型例なのかもという気もします。

/* [wxMaxima: input   start ] */
kill(all);
/* [wxMaxima: input   end   ] */
/* [wxMaxima: input   start ] */
solve([m1*v1^2+m2*v2^2=m1*u1^2+m2*u2^2,
m1*(B+v1)^2+m2*(B+v2)^2=m1*(B+u1)^2+m2*(B+u2)^2],[u1,u2]);
/* [wxMaxima: input   end   ] */