プロが教える店舗&オフィスのセキュリティ対策術

こんにちは、下記はmathematicaで、ランダウの「相対論的量子力学」P404の式f(s、u)を計算したものです。プログラムの概要は、残念ながら800文字以上になるので書かれません。、、、、その後、下記を作用させて、式を整理しました。
k0^2-k1^2-k2^2-k3^2->0;j0^2-j1^2-j2^2-j3^2->0;
p0^2-p1^2-p2^2-p3^2->m^2;q0^2-q1^2-q2^2-q3^2->m^2;
k0*p0-k1*p1-k2*p2-k3*p3->1/2*(s-m^2)/.-k0*p0+k1*p1+k2*p2+
k3*p3->-1/2*(s-m^2);
k0*q0-k1*q1-k2*q2-k3*q3->1/2*(m^2-u)/.-k0*q0+k1*q1+k2*q2+
k3*q3->-(1/2*(m^2-u));
p0*q0-p1*q1-p2*q2-p3*q3->(m^2-t/2)/.-p0*q0+p1*q1+p2*q2+
p3*q3->-(1/2*(m^2-u));
j0*p0-j1*p1-j2*p2-j3*p3->1/2*(m^2-u)/.-j0*p0+j1*p1+j2*p2+
j3*p3->-1/2*(m^2-u);
j0*q0-j1*q1-j2*q2-j3*q3->1/2*(s-m^2)/.-j0*q0+j1*q1+j2*q2+
j3*q3->-(1/2*(s-m^2));
k0*j0-k1*j1-k2*j2-k3*j3->(-t/2)
/.-k0*j0+k1*j1+k2*j2+k3*j3->(t/2);
更に最後にm=0としました。すると、計算結果は、
(1/s^2)*(4*(2*k2^2*p0*q0 + 2*k3^2*p0*q0 + 2*k1^2*(p0*q0 - p1*q1) - 2*k2^2*p2*q2 - 2*k2*k3*p3*q2 - 2*k2*k3*p2*q3 - 2*k3^2*p3*q3 -
k2*q2*s - k3*q3*s + k2*p2*u + k3*p3*u - k1*(2*k2*(p2*q1 + p1*q2) + 2*k3*(p3*q1 + p1*q3) + q1*s - p1*u)))となりました。この結果に、どのような法則を使用すれば答えを纏めf(s、u)が得られるのでしょうか?

A 回答 (10件)

これまで計算してきたものは通常最低次(lowest order)の摂動論と言われています。

より高次の摂動がこれに補正を与えます。例えば
Kimball A. Milton, Wu-yang Tsai, and Lester L. DeRaad, Jr.
Compton Scattering. I. Spectral Forms for the Invariant Amplitudes to Order e4
Phys. Rev. D 6, 1411-1427 (1972)

など。電子-陽電子衝突でジェットが作られる時代なので高次のコンプトン散乱を計算する意味もあるでしょう。
    • good
    • 0
この回答へのお礼

毎々、お返事ありがとうございます。
わかりました。昨年の7月20日に初めてコンプトン散乱の質問をして約5ヶ月で、目標にしていた計算ができました。これも、grothendieckさんのお陰です。ありがとうございました。
未だに、式の深い意味等はわかりませんが、大学院で味わう楽しみのひとコマだけでも、わかったような気がしました。今後ともよろしくお願いいたします。

お礼日時:2006/01/03 21:18

(86-6)式は


8*dt*Pi*re^2*(m^2/(s-m^2)^2)*(m^2/(-m^2 + s) + m^2/(-m^2 + u) + (m^2/(-m^2 + s) + m^2/(-m^2 + u))^2 +
(-(-m^2 + s)/(-m^2 + u) - (-m^2 + u)/(-m^2 + s))/4)

です。/. s - m^2 -> 2*m*w /. u - m^2 -> -2*m*w1 /. dt -> (1/Pi)*w1^2*do1
と(86.8)を使うと(86.9)式が得られます。この本には誤植がかなりあり、なるべく後に発行されたものを見ることをお勧めします。

この回答への補足

お返事ありがとうございます。


(86.8)は、全く眼中になかったです。これを使用しないとsin?が出て来ない訳ですね。再度、試してみます。

(86.8)は、私の記載ミスかもしれませんので併せて確認します。

追伸
光子の散乱角のsin?の?は、Iのようなθのような初めて見る記号です。これは何と読むのでしょうか?また、doのoは、オーなのでしょうか?記号が読めないと余分に難しく感じてしまいます。まさかロシア語じゃないでしょうね?(笑)

補足日時:2006/01/03 01:02
    • good
    • 0
この回答へのお礼

お世話になります。
ご教示頂きました通り計算しますと、(86.9)式が得られました。
同式が、ハイトラーの「輻射の量子論」(上)P224の式(39)にあります。
この式のκに式(4)を代入して式(40)を求め、γと角度を代入すると、第10図が得られる訳ですね。試しにmathematicaで計算値をプロットしてみたいと思います。
追伸
1.実は、図書館でハイトラーの「輻射の量子論」(上)P224からP229まで複写したのですが、それより前のページを複写しておりません。従いまして、式(4)がわかりませんので、式(39)から式(40)がどのように導かれるのかわかりません。後日図書館でコピーして確認したいと思います。
2.見慣れないギリシャ文字を調べましたところ、シータの別の表現であることがわかりました。また”o”はオミクロンと読むこともわかりました。失礼しました。
3.ハイトラーの「輻射の量子論」(上)P224のタイトルが、第一近似の輻射過程とあるのですが、式(39)以上に正確に電子と光子のコンプトン散乱断面積を計算した式は他にあるのでしょうか?(偏光を考慮した計算は別とします。)

お礼日時:2006/01/03 12:10

断面積を求める所が最も詳しく書いてあるのはたぶん、ランダウ=リフシッツ「相対論的量子力学1」だと思います。

この本は最近の理論は含みませんが、量子電気力学のいろいろな過程への適用が豊富にあります。

この回答への補足

お返事ありがとうございます。

わかりました。読んで更に計算を進めたいと思います。

補足日時:2005/12/31 08:40
    • good
    • 0
この回答へのお礼

明けましておめでとうございます。
本年もよろしくお願いいたします。
さて、ランダウ-リフシッツの「相対論的量子力学」P405の実験室系の
散乱断面積の計算ですが、
(86-6)の式
8*dt*Pi*re^2*(m^2/(-m^2 + s) + m^2/(-m^2 + u) + (m^2/(-m^2 + s) + m^2/(-m^2 + u))^2 +
(-((-m^2 + s)/(-m^2 + u)) - (-m^2 + u)/(-m^2 + s))/4)

に、/. s - m^2 -> 2*m*w /. u - m^2 -> -2*m*w1 /. dt -> (1/Pi)*w1^2*do1
(但し、w1はω’、do1は、do’)
を作用させると、
(2*do1*re^2*(m^2*(w - w1)^2 + 2*m*w*w1*(-w + w1) + w*w1*(w^2 + w1^2)))/w^2

となり、式(86.9)になりません。どうしてでしょうか?ご教示頂きましたら幸いです。

お礼日時:2006/01/02 22:26

私なら次の様にしたいと思います。



y=Tr[(sl[q] + m) . gu[x] . (sl[p] + sl[k] + m) . gu[y] . (sl[p] + m) . gd[y] . (sl[p] + sl[k] + m) . gd[x]]

変数が少ない方が組み合わせの数が少ないので最初に j = p+k-q
を代入する。
j -> p+k-q

k^2=0 を代入する。
Coefficient(%, k0^2 - k1^2 - k2^2 - k3^2, 0)

p^2=m^2 を代入する。

Coefficient(%, p0^2 - p1^2 - p2^2 - p3^2, 2)*m^4 +
Coefficient(%, p0^2 - p1^2 - p2^2 - p3^2, 1)*m^2 +
Coefficient(%, p0^2 - p1^2 - p2^2 - p3^2, 0)

q^2=m^2 も同様。次にマンデルスタム変数を代入する

Coefficient(%, p0*k0 - p1*k1 - p2*k2 - p3*k3, 2)*((s-m^2)/2)^2 + Coefficient(%, p0*k0 - p1*k1 - p2*k2 - p3*k3, 1)*((s-m^2)/2) + Coefficient(%, p0*k0 - p1*k1 - p2*k2 - p3*k3, 0)

など。最後にs+t+u=2m^2 を使ってtを消去する。

t -> 2m^2 - s -u

これでうまくいくかどうかの確認は私はMathematicaを持っていないので行うことができません。

この回答への補足

毎々、お返事ありがとうございます。

いろいろとご教示頂きお蔭様で何とか計算できました。計算結果は以下の通りです。(ご教示頂いた方法とは少し異なります。不具合個所にパッチを当てて元々のやり方で計算しました。)


(12*m^8 - 2*s*u*(s^2 + u^2) + 2*m^2*(s + u)*(s^2 + 6*s*u + u^2) -
2*m^4*(3*s^2 + 14*s*u + 3*u^2))/((m^2 - s)^2*(m^2 - u)^2)


後は、この計算結果を元に、断面積を求めたいのですが、どの教科書のものがすっきりと判り易いでしょうか?人によって異なるとは思いますが、如何でしょうか?

プログラム
m =. ;
Clear[f, g]
gu[0] = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, -1}};
gu[1] = {{0, 0, 0, 1}, {0, 0, 1, 0}, {0, -1, 0, 0}, {-1, 0, 0, 0}};
gu[2] = {{0, 0, 0, -I}, {0, 0, I, 0}, {0, I, 0, 0}, {-I, 0, 0, 0}};
gu[3] = {{0, 0, 1, 0}, {0, 0, 0, -1}, {-1, 0, 0, 0}, {0, 1, 0, 0}};
e4 = IdentityMatrix[4];
gd[0] = 1*gu[0];
gd[1] = -gu[1];
gd[2] = -gu[2];
gd[3] = -gu[3];
sl[q] = gu[0]*q0 + gu[1]*(-q1) + gu[2]*(-q2) + gu[3]*(-q3);
sl[p] = gu[0]*p0 + gu[1]*(-p1) + gu[2]*(-p2) + gu[3]*(-p3);
sl[k] = gu[0]*k0 + gu[1]*(-k1) + gu[2]*(-k2) + gu[3]*(-k3);
sl[j] = gu[0]*j0 + gu[1]*(-j1) + gu[2]*(-j2) + gu[3]*(-j3);
ms = m*e4;

s1=0;y1=0;
s2=0;y2=0;
s3=0;y3=0;

For[x = 0, x <= 3, x++,
For[y = 0, y <= 3, y++,
s1 = Tr[(sl[q] + ms) . gu[x] . (sl[p] + sl[k] + ms) . gu[y] . (sl[p] + ms) . gd[y] . (sl[p] + sl[k] + ms) . gd[x]];
y1 = y1 + s1;
]];

For[x=0,x<=3,x++,
For[y=0,y<=3,y++,
s2=Tr[(sl[q]+ms).gu[x].(sl[p]-sl[j]+ms).gu[y].(sl[p]+ms).gd[y].(sl[p]-sl[j]+ms).gd[x]];
y2=y2+s2;
]];

For[x=0,x<=3,x++,
For[y=0,y<=3,y++,
s3=Tr[(sl[q]+ms).gu[x].(sl[p]+sl[k]+ms).gu[y].(sl[p]+ms).gd[x].(sl[p]-sl[j]+ms).gd[y]];
y3=y3+s3;
]];

For[gat=1,gat<=3,gat++,

If[gat==1,v={3,4,1,2,9,10,5,6,7,8}];
If[gat==1,f=y1];

If[gat==2,v={4,3,1,2,6,7,8,9,10,5}];
If[gat==2,f=y2];

If[gat==3,v={5,6,7,8,9,10,1,2,3,4,3}];
If[gat==3,f=y3];


g[1] = p0^2 - p1^2 - p2^2 - p3^2;
g[2] = q0^2 - q1^2 - q2^2 - q3^2;
g[3] = k0^2-k1^2-k2^2-k3^2;
g[4] = j0^2 - j1^2 - j2^2 - j3^2;
g[5] = p0*q0 - p1*q1 - p2*q2 - p3*q3;
g[6] = j0*p0 - j1*p1 - j2*p2 - j3*p3;
g[7] = j0*q0 - j1*q1 - j2*q2 - j3*q3;
g[8] = k0*j0 - k1*j1 - k2*j2 - k3*j3;
g[9] = k0*p0 - k1*p1 - k2*p2 - k3*p3;
g[10] = k0*q0 - k1*q1 - k2*q2 - k3*q3;

For[ray=1,ray<=2,ray++,
For[ret=1,ret<=10,ret++,
x1=v[[ret]];
(*Print[x1];*)
If[x1==1 || x1==2,hf=m^2];
If[x1==3 || x1==4,hf=0];
If[x1==5,hf=(m^2 - t/2)];
If[x1==6,hf=(1/2)*(m^2 - u)];
If[x1==7,hf=(1/2)*(s - m^2)];
If[x1==8,hf=(-(t/2))];
If[x1==9,hf=(1/2)*(s - m^2)];
If[x1==10,hf=(1/2)*(m^2 - u)];

If[x1=!=3 && x1=!=4,f = Simplify[(f - PolynomialMod[f, g[x1]])/g[x1]]*hf + PolynomialMod[f, g[x1]]];
If[x1==3,f = Simplify[(f - PolynomialMod[f, g[x1]])/g[x1]]*hf + PolynomialRemainder[f,g[x1],k1]];
If[x1==4,f = Simplify[(f - PolynomialMod[f, g[x1]])/g[x1]]*hf + PolynomialRemainder[f,g[x1],j1]];

(*If[x1==4,Print[Simplify[y2-f]]];*)
];

];
t=2*m^2-s-u;
If[gat==1,T11=f];
If[gat==2,T22=f];
If[gat==3,T33=f];


];


T100=1/4*(T11*(1/((s-m^2)^2))+T33*2*(1/((s-m^2)*(u-m^2)))+T22*(1/((u-m^2)^2)));
FullSimplify[T100]

T200=8*((m^2/(s-m^2)+m^2/(u-m^2))^2+m^2/(s-m^2)+
m^2/(u-m^2)-(1/4)*((s-m^2)/(u-m^2)+(u-m^2)/(s-m^2)));
FullSimplify[T200]

FullSimplify[T100-T200]

下記のパッチあてが気になります。何とか考えます。
If[x1=!=3 && x1=!=4,f = Simplify[(f - PolynomialMod[f, g[x1]])/g[x1]]*hf + PolynomialMod[f, g[x1]]];
If[x1==3,f = Simplify[(f - PolynomialMod[f, g[x1]])/g[x1]]*hf + PolynomialRemainder[f,g[x1],k1]];
If[x1==4,f = Simplify[(f - PolynomialMod[f, g[x1]])/g[x1]]*hf + PolynomialRemainder[f,g[x1],j1]];

補足日時:2005/12/30 23:38
    • good
    • 0

f[x] = FullSimplify[(1/4)*y0];


g[x] = k0^2 - k1^2 - k2^2 - k3^2;
とすると、右辺はxを変数とする多項式で、p0,p1,…k0,k1…等は全て定数と見なされてしまうのではないでしょうか。xの多項式ではなく、p0,p1,…k0,k1…等を変数とする多変数多項式とする必要があると思います。コンプトン散乱の計算の前に
Tr[sl[q] . sl[p] . sl[k] . sl[j]]
= 4*(p . k*q . j - p . j*q . k + k . j*q . p)
の確認からした方が良いでしょう。私なら次の様にしたいと思います。

y=Tr[sl[q] . sl[p] . sl[k] . sl[j]]
Coefficient(y, k0*q0 - k1*q1 - k2*q2 - k3*q3, 1)*kq +
Coefficient(y, k0*q0 - k1*q1 - k2*q2 - k3*q3, 0)
Coefficient(%, p0*q0 - p1*q1 - p2*q2 - p3*q3, 1)*pq +
Coefficient(%, p0*q0 - p1*q1 - p2*q2 - p3*q3, 0)
Coefficient(%, j0*q0 - j1*q1 - j2*q2 - j3*q3, 1)*jq +
Coefficient(y, j0*q0 - j1*q1 - j2*q2 - j3*q3, 0)
Coefficient(%, k0*p0 - k1*p1 - k2*p2 - k3*p3, 1)*kp +
Coefficient(y, k0*p0 - k1*p1 - k2*p2 - k3*p3, 0)
Coefficient(%, p0*j0 - p1*j1 - p2*j2 - p3*j3, 1)*pj +
Coefficient(%, p0*j0 - p1*j1 - p2*j2 - p3*j3, 0)
Coefficient(%, j0*k0 - j1*k1 - j2*k2 - j3*k3, 1)*jk +
Coefficient(y, j0*k0 - j1*k1 - j2*k2 - j3*k3, 0)
これでうまくいくかどうかの確認は私はMathematicaを持っていないので行うことができません。

この回答への補足

毎々、お返事ありがとうございます。
Tr[sl[q] . sl[p] . sl[k] . sl[j]]の計算ですが、

FullSimplify[Tr[sl[q] . sl[p] . sl[k] . sl[j]] ― 4*((k0*p0 - k1*p1 - k2*p2 - k3*p3)*(j0*q0 - j1*q1 - j2*q2 - j3*q3) -
(p0*j0 - p1*j1 - p2*j2 - p3*j3)*(k0*q0 - k1*q1 - k2*q2 - k3*q3) + (j0*k0 - j1*k1 - j2*k2 - j3*k3)*
(p0*q0 - p1*q1 - p2*q2 - p3*q3))]

が、“0”になり正しいことがわかりました。
また、同様にご教示頂きました
Coefficient(y, k0*q0 - k1*q1 - k2*q2 - k3*q3, 1)*kq + Coefficient(y, k0*q0 - k1*q1 - k2*q2 - k3*q3, 0)
の計算もOKでした。

次のfは、Tr[(sl[q] + ms) . gu[x] . (sl[p] + sl[k] + ms) . gu[y] . (sl[p] + ms) . gd[y] . (sl[p] + sl[k] + ms) . gd[x]]
に、γ行列やsl[q]等を代入して算出されたものですが、

f = 4*(-4*k2^2*m^2 - 4*k3^2*m^2 + 4*m^4 - 4*k2*m^2*p2 - 4*k3*m^2*p3 + k2^2*p0*q0 + k3^2*p0*q0 - 3*m^2*p0*q0 + p0^3*q0 -
p0*p1^2*q0 - p0*p2^2*q0 - p0*p3^2*q0 - k2^2*p1*q1 - k3^2*p1*q1 + 3*m^2*p1*q1 - p0^2*p1*q1 + p1^3*q1 + p1*p2^2*q1 +
p1*p3^2*q1 + 4*k2*m^2*q2 - 2*k2*p0^2*q2 + 2*k2*p1^2*q2 + k2^2*p2*q2 - k3^2*p2*q2 + 3*m^2*p2*q2 - p0^2*p2*q2 + p1^2*p2*q2 +
2*k2*p2^2*q2 + p2^3*q2 + 2*k2*k3*p3*q2 + 2*k2*p3^2*q2 + p2*p3^2*q2 +
(k3^2*p3 + p3*(-k2^2 + 3*m^2 - p0^2 + p1^2 + p2^2 + p3^2) + 2*k3*(2*m^2 - p0^2 + p1^2 + p2*(k2 + p2) + p3^2))*q3 +
2*k1*(-2*m^2*(p1 - q1) - p0^2*q1 + p1^2*q1 + k2*p2*q1 + p2^2*q1 + k3*p3*q1 + p3^2*q1 + k2*p1*q2 + k3*p1*q3) +
k1^2*(-4*m^2 + p0*q0 + p1*q1 - p2*q2 - p3*q3) + k0^2*(4*m^2 + p0*q0 + p1*q1 + p2*q2 + p3*q3) +
2*k0*(2*m^2*(p0 - q0) + p0^2*q0 - (p1*(k1 + p1) + p2*(k2 + p2) + p3*(k3 + p3))*q0 - p0*(k1*q1 + k2*q2 + k3*q3)));


これに対して、
g = k0^2 - k1^2 - k2^2 - k3^2;
f1 = Simplify[PolynomialMod[f, g]];
Print[FullSimplify[f1 - f]];
を、計算すると、
mathematica ver5の場合は、
-4*(k0^2 - k1^2 - k2^2 - k3^2)*(4*m^2 + p0*q0 + p1*q1 + p2*q2 + p3*q3)
となり、
mathematica ver4場合は、
-4*(k0^2-k1^2-k2^2-k3^2)*(4*m^2-p0*q0+p1*q1-p2*q2+p3*q3)
となり答えが異なります。
mathematica ver4で、更に別の計算(p0^2 - p1^2 - p2^2 - p3^2等)を行うと、
最終的に、正しい答え(-((2*u)/s))を導出できる場合もあるのですが、mathematica ver5の場合は導出できません。どうしてこのように計算が不安定なのでしょうか?また、解決策はないでしょうか?

補足日時:2005/12/30 09:21
    • good
    • 0
この回答へのお礼

毎々、お世話になります。
上記のfに、
g=(k0^2-k1^2-k2^2-k3^2)→0
g=j0^2-j1^2-j2^2-j3^2→0
p0^2-p1^2-p2^2-p3^2→m^2
を作用させて、答え(-((2*u)/s))を導出させたいのですが、



g = k0^2 - k1^2 - k2^2 - k3^2;
PolynomialQuotient[f, g, k0]
PolynomialQuotient[f, g, k1]
PolynomialQuotient[f, g, k2]
PolynomialQuotient[f, g, k3]

Print[FullSimplify[PolynomialRemainder[f, g, k0] - PolynomialRemainder[f, g, k1]]]


としますと計算結果は、

4*(4*m^2 + p0*q0 + p1*q1 + p2*q2 + p3*q3)
-4*(-4*m^2 + p0*q0 + p1*q1 - p2*q2 - p3*q3)
16*m^2 - 4*p0*q0 + 4*p1*q1 - 4*p2*q2 + 4*p3*q3
16*m^2 - 4*p0*q0 + 4*p1*q1 + 4*p2*q2 - 4*p3*q3



-8*(k0 - k1 - k2 - k3)*(p0*q0 + p1*q1)

となりました。
PolynomialQuotientの意味は、fをgで割ったときの商で、
PolynomialRemainderの意味は、fをgで割ったときの余りです。

割り算の引数をk0^2 - k1^2 - k2^2 - k3^2のk0かk1かk2かk3によって計算結果が異なるので、このような結果となります。どうしたらよいか?わからなくなりました。下記のfをどのようにしたら、答え(-((2*u)/s))が導出できるのでしょうか?
全く別の方法を考えないと駄目のような気がしています。

お礼日時:2005/12/30 12:04

Tr[sl[q] . sl[p]] = 4*p0*q0 - 4*(p1*q1 + p2*q2 + p3*q3)



は正しい結果です。(pq=p0*q0 - p1*q1 - p2*q2 - p3*q3 です)
結局トレースの中で行列の通常の積ではないものが指定されていたことが原因でした。
Tr[sl[q] . sl[p]*sl[k]*sl[j]]

の方も
Tr[sl[q] . sl[p] . sl[k] . sl[j]]
にする必要があります。sl[p]が正しい行列になっているのでpとqを行列の形にする必要はありません。

この回答への補足

お返事ありがとうございます。

>結局トレースの中で行列の通常の積ではないものが指定されていたことが原因でした。
わかりました。


>Tr[sl[q] . sl[p] . sl[k] . sl[j]]
>にする必要があります。
その通りにして計算しました。すると、下記結果になりました。
多分これは、4*(p . k*q . j - p . j*q . k + k . j*q . p)に等しいと思います。


4*((-j2)*k2*p0*q0 - j3*k3*p0*q0 + j2*k0*p2*q0 + j3*k0*p3*q0 + j2*k2*p1*q1 + j3*k3*p1*q1 - j2*k1*p2*q1 - j3*k1*p3*q1 - j2*k0*p0*q2 +
j2*k1*p1*q2 + j2*k2*p2*q2 + j3*k3*p2*q2 - j3*k2*p3*q2 + j2*k3*p3*q2 - j3*k0*p0*q3 + j3*k1*p1*q3 + j3*k2*p2*q3 - j2*k3*p2*q3 +
j2*k2*p3*q3 + j3*k3*p3*q3 + j0*((-k1)*p1*q0 - k2*p2*q0 - k3*p3*q0 + k1*p0*q1 + k2*p0*q2 + k3*p0*q3 -
k0*((-p0)*q0 + p1*q1 + p2*q2 + p3*q3)) + j1*(k0*p1*q0 - k0*p0*q1 + k2*p2*q1 + k3*p3*q1 - k2*p1*q2 - k3*p1*q3 +
k1*((-p0)*q0 + p1*q1 + p2*q2 + p3*q3)))

γ行列も正しく、Tr{sl(a)sl(b)} = 4(ab)、 Tr{sl(a)sl(b)sl(c)sl(d)} = 4(ab)(cd) -4(ac)(bd) + 4(ad)(bc)の計算も正しいとしますと、やはり、
>y1 をp0^2-p1^2-p2^2-p3^3で割った商をy2、余りをy3としたとき、
> y4 = y2*m^2 + y3
>とすると良いでしょう(p0^2-p1^2-p2^2-p3^2 -> m^2 は使わない)。トレースは運動量
>(質量)の次元について4なのでy2にもp0^2-p1^2-p2^2-p3^3が因子として含まれる可能
>性があるのでy2についても同様の置き換えをします。

なのでしょうね。現在、検討中ですが、なかなか計算は難しいです。また結果が出ましたら、記載させて頂きます。

ありがとうございました。

補足日時:2005/12/25 23:42
    • good
    • 0
この回答へのお礼

毎々、お世話になります。

下記は、後半のプログラムを示しております。
トレースの計算結果をp0^2-p1^2-p2^2-p3^2 で割ったときの商を q(p,q,k,j)、余りを r(p,q,k,j) としたとき計算結果を q(p,q,k,j)*m^2 + r(p,q,k,j)で置き換えるようにしました。

結果は、
(8*k0^2*p2*q2 - 8*(k1^2 + k2^2 + k3^2)*p2*q2 - 2*s*u)/s^2
です。結果は、正しいと思うのですが、なぜか、最初の計算のk0^2 - k1^2 - k2^2 - k3^2=0、が効いておりません。もう一歩だと思うのですが、行き詰まってしまいました。どうすれば、よいでしょうか?


f[x] = FullSimplify[(1/4)*y0];
g[x] = k0^2 - k1^2 - k2^2 - k3^2;
f[x] = Simplify[(f[x] - PolynomialMod[f[x], g[x]])/g[x]]*0 + PolynomialMod[f[x], g[x]];
g[x] = j0^2 - j1^2 - j2^2 - j3^2;
f[x] = Simplify[(f[x] - PolynomialMod[f[x], g[x]])/g[x]]*0 + PolynomialMod[f[x], g[x]];
g[x] = p0^2 - p1^2 - p2^2 - p3^2;
f[x] = Simplify[(f[x] - PolynomialMod[f[x], g[x]])/g[x]]*m^2 + PolynomialMod[f[x], g[x]];
g[x] = q0^2 - q1^2 - q2^2 - q3^2;
f[x] = Simplify[(f[x] - PolynomialMod[f[x], g[x]])/g[x]]*m^2 + PolynomialMod[f[x], g[x]];
g[x] = k0*p0 - k1*p1 - k2*p2 - k3*p3;
f[x] = Simplify[(f[x] - PolynomialMod[f[x], g[x]])/g[x]]*(1/2)*(s - m^2) + PolynomialMod[f[x], g[x]];
g[x] = k0*q0 - k1*q1 - k2*q2 - k3*q3;
f[x] = Simplify[(f[x] - PolynomialMod[f[x], g[x]])/g[x]]*(1/2)*(m^2 - u) + PolynomialMod[f[x], g[x]];
g[x] = p0*q0 - p1*q1 - p2*q2 - p3*q3;
f[x] = Simplify[(f[x] - PolynomialMod[f[x], g[x]])/g[x]]*(m^2 - t/2) + PolynomialMod[f[x], g[x]];
g[x] = j0*p0 - j1*p1 - j2*p2 - j3*p3;
f[x] = Simplify[(f[x] - PolynomialMod[f[x], g[x]])/g[x]]*(1/2)*(m^2 - u) + PolynomialMod[f[x], g[x]];
g[x] = j0*q0 - j1*q1 - j2*q2 - j3*q3;
f[x] = Simplify[(f[x] - PolynomialMod[f[x], g[x]])/g[x]]*(1/2)*(s - m^2) + PolynomialMod[f[x], g[x]];
g[x] = k0*j0 - k1*j1 - k2*j2 - k3*j3;
f[x] = Simplify[(f[x] - PolynomialMod[f[x], g[x]])/g[x]]*(-(t/2)) + PolynomialMod[f[x], g[x]];
y11 = f[x]*(1/(s - m^2)^2);
m = 0;
Print[FullSimplify[y11]];

お礼日時:2005/12/28 01:22

第0成分の所だけは正しく計算されているようです。

もしかしたら(-p1)は”全ての要素がp1”という行列と見なされているのかもしれません。トレースの計算をする前に、sl[p] を表示させてみて、
sl[p] =
┌ p0,  0,  -p3,  -p1+p2*I ┐
│0,  p0,  -p1-p2*I,   p3 │
│p3,  p1-p2*I,  -p0,   0 │
└ -p1+p2*I,  -p3,  0,   -p0 ┘
になることを確かめてみて下さい。
 sl[p] = p0*gu[0] - p1*gu[1]* - p2*gu[2] - p3*gu[3] ;
としてみたらどうでしょうか。

この回答への補足

毎々、お返事ありがとうございます。

下記の通り計算しました。
sl[p] =
┌ p0,  0,  -p3,  -p1+p2*I ┐
│0,  p0,  -p1-p2*I,   p3 │
│p3,  p1-p2*I,  -p0,   0 │
└ -p1+p2*I,  -p3,  0,   -p0 ┘
になることを確かめてみて下さい。
→その通りになりました。

 sl[p] = p0*gu[0] - p1*gu[1]* - p2*gu[2] - p3*gu[3] ;
としてみたらどうでしょうか。
→結果は同じです。

ん、、何が悪いんでしょうかね~?

gu[0] = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, -1}};
gu[1] = {{0, 0, 0, 1}, {0, 0, 1, 0}, {0, -1, 0, 0}, {-1, 0, 0, 0}};
gu[2] = {{0, 0, 0, -I}, {0, 0, I, 0}, {0, I, 0, 0}, {-I, 0, 0, 0}};
gu[3] = {{0, 0, 1, 0}, {0, 0, 0, -1}, {-1, 0, 0, 0}, {0, 1, 0, 0}};
gd[0] = gu[0];
gd[1] = -gu[1];
gd[2] = -gu[2];
gd[3] = -gu[3];
sl[p] = gu[0]*p0 + gu[1]*(-p1) + gu[2]*(-p2) + gu[3]*(-p3);
Print[sl[p]];
sl[p] = gu[0]*p0 - p1*gu[1] - p2*gu[2] - p3*gu[3];
Print[sl[p]];

結果
{{p0, 0, -p3, -p1 + I*p2}, {0, p0, -p1 - I*p2, p3}, {p3, p1 - I*p2, -p0, 0}, {p1 + I*p2, -p3, 0, -p0}}

{{p0, 0, -p3, -p1 + I*p2}, {0, p0, -p1 - I*p2, p3}, {p3, p1 - I*p2, -p0, 0}, {p1 + I*p2, -p3, 0, -p0}}

補足日時:2005/12/25 21:57
    • good
    • 0
この回答へのお礼

お世話になります。間違って、No.3に書き込んでしまいました。同じことを、ここに書き込みます。

下記の計算は、トレース内の計算を、外積→内積にしました。
Tr[sl[q] * sl[p]] → Tr[sl[q] . sl[p]]
更に、q と p を、何らかの行列に置き換えれば、正しい答えが導かれるような気がします。如何でございましょうか?

もしこの考えが正しい場合は、q と pはどのような行列になるのでしょうか?



gu[0] = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, -1}};
gu[1] = {{0, 0, 0, 1}, {0, 0, 1, 0}, {0, -1, 0, 0}, {-1, 0, 0, 0}};
gu[2] = {{0, 0, 0, -I}, {0, 0, I, 0}, {0, I, 0, 0}, {-I, 0, 0, 0}};
gu[3] = {{0, 0, 1, 0}, {0, 0, 0, -1}, {-1, 0, 0, 0}, {0, 1, 0, 0}};
gd[0] = gu[0];
gd[1] = -gu[1];
gd[2] = -gu[2];
gd[3] = -gu[3];
sl[q] = gu[0]*q0 + gu[1]*(-q1) + gu[2]*(-q2) + gu[3]*(-q3);
sl[p] = gu[0]*p0 + gu[1]*(-p1) + gu[2]*(-p2) + gu[3]*(-p3);
sl[k] = gu[0]*k0 + gu[1]*(-k1) + gu[2]*(-k2) + gu[3]*(-k3);
sl[j] = gu[0]*j0 + gu[1]*(-j1) + gu[2]*(-j2) + gu[3]*(-j3);
Print[FullSimplify[Tr[sl[q] . sl[p]] - 4*q . p]];
Print[FullSimplify[Tr[sl[q] . sl[p]*sl[k]*sl[j]] - 4*q . p*k . j - q . k*p . j + q . j*p . k]];

計算結果
4*p0*q0 - 4*(p1*q1 + p2*q2 + p3*q3) - 4*q . p

4*j0*k0*(p0*q0 - p1*q1 - p2*q2 - p3*q3) + p . k*q . j - p . j*q . k - 4*k . j*q . p

お礼日時:2005/12/25 22:10

ガンマ行列は間違ってないと思います。


gu[0] = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, -1}};
gu[1] = {{0, 0, 0, 1}, {0, 0, 1, 0}, {0, -1, 0, 0}, {-1, 0, 0, 0}};
gu[2] = {{0, 0, 0, -I}, {0, 0, I, 0}, {0, I, 0, 0}, {-I, 0, 0, 0}};
gu[3] = {{0, 0, 1, 0}, {0, 0, 0, -1}, {-1, 0, 0, 0}, {0, 1, 0, 0}};

 γμ γν + γν γμ = 2gμν
を満たしているようです。私はMathematicaのことは知らないのですが、"1" という行列は何を表わしているのでしょう。もしかして”全ての要素が1”という行列ではありませんか。実際そうやって計算すると
 Tr{sl(a)sl(b)} = 4 * a0 * b0
になってしまうようです。sl[p] などの定義は
sl[p] = gu[0]*p0 + gu[1]*-1*p1 + gu[2]*-1*p2 + gu[3]*-1*p3;
ではなく、
sl[p] = gu[0]*p0 + gu[1]*-p1 + gu[2]*-p2 + gu[3]*-p3;
にしなければならないのではないでしょうか。

この回答への補足

お返事ありがとうございます。
>"1" という行列は何を表わしているのでしょう。
"1"は、行列ではなく、只の1です。従いまして、"1"を消しても、結果は下記の通り同じです。まぎらわしい表現をしてすいません。
下記の”p”,”q”も、行列ではなく、只の数です。これは問題ないでしょうか?

gu[0] = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, -1}};
gu[1] = {{0, 0, 0, 1}, {0, 0, 1, 0}, {0, -1, 0, 0}, {-1, 0, 0, 0}};
gu[2] = {{0, 0, 0, -I}, {0, 0, I, 0}, {0, I, 0, 0}, {-I, 0, 0, 0}};
gu[3] = {{0, 0, 1, 0}, {0, 0, 0, -1}, {-1, 0, 0, 0}, {0, 1, 0, 0}};
e4 = IdentityMatrix[4];
gd[0] = gu[0];
gd[1] = -gu[1];
gd[2] = -gu[2];
gd[3] = -gu[3];
sl[q] = gu[0]*q0 + gu[1]*(-q1) + gu[2]*(-q2) + gu[3]*(-q3);
sl[p] = gu[0]*p0 + gu[1]*(-p1) + gu[2]*(-p2) + gu[3]*(-p3);
sl[k] = gu[0]*k0 + gu[1]*(-k1) + gu[2]*(-k2) + gu[3]*(-k3);
sl[j] = gu[0]*j0 + gu[1]*(-j1) + gu[2]*(-j2) + gu[3]*(-j3);
Print[FullSimplify[Tr[sl[q]*sl[p]] - 4*q . p]];
Print[FullSimplify[Tr[sl[q]*sl[p]*sl[k]*sl[j]] - 4*q . p*k . j - q . k*p . j + q . j*p . k]];


計算結果です。

4*p0*q0 - 4*q . p

4*j0*k0*p0*q0 + p . k*q . j - p . j*q . k - 4*k . j*q . p

補足日時:2005/12/25 20:31
    • good
    • 0
この回答へのお礼

お世話になります。

下記の計算は、トレース内の計算を、外積→内積にしました。
Tr[sl[q] * sl[p]] → Tr[sl[q] . sl[p]]
更に、q と p を、何らかの行列に置き換えれば、正しい答えが
導かれるような気がします。如何でございましょうか?



gu[0] = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, -1}};
gu[1] = {{0, 0, 0, 1}, {0, 0, 1, 0}, {0, -1, 0, 0}, {-1, 0, 0, 0}};
gu[2] = {{0, 0, 0, -I}, {0, 0, I, 0}, {0, I, 0, 0}, {-I, 0, 0, 0}};
gu[3] = {{0, 0, 1, 0}, {0, 0, 0, -1}, {-1, 0, 0, 0}, {0, 1, 0, 0}};
gd[0] = gu[0];
gd[1] = -gu[1];
gd[2] = -gu[2];
gd[3] = -gu[3];
sl[q] = gu[0]*q0 + gu[1]*(-q1) + gu[2]*(-q2) + gu[3]*(-q3);
sl[p] = gu[0]*p0 + gu[1]*(-p1) + gu[2]*(-p2) + gu[3]*(-p3);
sl[k] = gu[0]*k0 + gu[1]*(-k1) + gu[2]*(-k2) + gu[3]*(-k3);
sl[j] = gu[0]*j0 + gu[1]*(-j1) + gu[2]*(-j2) + gu[3]*(-j3);
Print[FullSimplify[Tr[sl[q] . sl[p]] - 4*q . p]];
Print[FullSimplify[Tr[sl[q] . sl[p]*sl[k]*sl[j]] - 4*q . p*k . j - q . k*p . j + q . j*p . k]];

計算結果
4*p0*q0 - 4*(p1*q1 + p2*q2 + p3*q3) - 4*q . p

4*j0*k0*(p0*q0 - p1*q1 - p2*q2 - p3*q3) + p . k*q . j - p . j*q . k - 4*k . j*q . p

お礼日時:2005/12/25 22:07

前にも書いた様にγ行列の具体的な表現を用いるのではなく、


 γμ γν + γν γμ = 2gμν
を用いて代数的な計算をするやり方をお勧めしたいと思います。しかし具体的な表現を用いてもできないことはないはずなので今のやり方を続けるとして、なぜローレンツ不変性が見えにくくなってしまうのかを考えてみました。Marhematica で
 p0^2-p1^2-p2^2-p3^2 -> m^2
とするとどのような処理が行われるのかよく分かりません。もしかしたら p0^2 が p1^2+p2^2+p3^2 + m^2 で置き換えられるのかもしれません。するとp0^2 が出てくるのは p^2 の所だけではありません。例えば
 (pk)(pj) = p0^2 k0 j0 + …
このp0^2をp1^2+p2^2+p3^2 + m^2 で置き換えるとローレンツ不変性が明らかでない形になってしまいます。p0^2 が p^2 の一部としてある所のみこの置き換えを行うべきでしょう。例えば y1(p,q,k,j) からp0^2-p1^2-p2^2-p3^2 をくくり出すためには、y1 をp0^2-p1^2-p2^2-p3^3で割った商をy2、余りをy3としたとき、
 y4 = y2*m^2 + y3
とすると良いでしょう(p0^2-p1^2-p2^2-p3^2 -> m^2 は使わない)。トレースは運動量(質量)の次元について4なのでy2にもp0^2-p1^2-p2^2-p3^3が因子として含まれる可能性があるのでy2についても同様の置き換えをします。以下q^2, pk などについても同様のことをし、結果がローレンツ不変量s, t, u. m だけで表わされなければγ行列かトレースの計算をチェックすべきです。

この回答への補足

>コンプトン散乱の計算をする前に
> Tr{sl(a)sl(b)} = 4(ab)
>Tr{sl(a)sl(b)sl(c)sl(d)}
>  = 4(ab)(cd) -4(ac)(bd) + 4(ad)(bc)
>やエイチスン=ヘイにあるm=0 とした場合のトレースが正しく計算されることを確認さ>れてはいかがでしょうか。

エイチスン=ヘイにあるm=0 とした場合の計算をしましたが、答えが一致しません。
ガンマ行列が悪いような気がします。
下記の通りとなりましたが、これで正しいのでしょうか?

gu[0] = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, -1}};
gu[1] = {{0, 0, 0, 1}, {0, 0, 1, 0}, {0, -1, 0, 0}, {-1, 0, 0, 0}};
gu[2] = {{0, 0, 0, -I}, {0, 0, I, 0}, {0, I, 0, 0}, {-I, 0, 0, 0}};
gu[3] = {{0, 0, 1, 0}, {0, 0, 0, -1}, {-1, 0, 0, 0}, {0, 1, 0, 0}};
e4 = IdentityMatrix[4];
gd[0] = 1*gu[0];
gd[1] = -gu[1];
gd[2] = -gu[2];
gd[3] = -gu[3];
sl[q] = gu[0]*q0 + gu[1]*-1*q1 + gu[2]*-1*q2 + gu[3]*-1*q3;
sl[p] = gu[0]*p0 + gu[1]*-1*p1 + gu[2]*-1*p2 + gu[3]*-1*p3;
sl[k] = gu[0]*k0 + gu[1]*-1*k1 + gu[2]*-1*k2 + gu[3]*-1*k3;
sl[j] = gu[0]*j0 + gu[1]*-1*j1 + gu[2]*-1*j2 + gu[3]*-1*j3;

Print[FullSimplify[Tr[sl[q]*sl[p]]-4*q.p]];
Print[FullSimplify[Tr[sl[q]*sl[p]*sl[k]*sl[j]]-4*(q.p)*(k.j)-(q.k)*(p.j)+(q.j)*(p.k)]];
For[x = 0, x <= 3, x++,
For[y = 0, y <= 3, y++,
Print["x=", x, ",y=", y];
Print[gu[x] . gu[y] + gu[y] . gu[x]];
]];

結果
4*p0*q0 - 4*q . p
4*j0*k0*p0*q0 + p . k*q . j - p . j*q . k - 4*k . j*q . p

"x="0",y="0
{{2, 0, 0, 0}, {0, 2, 0, 0}, {0, 0, 2, 0}, {0, 0, 0, 2}}
"x="0",y="1
{{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}
"x="0",y="2
{{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}
"x="0",y="3
{{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}
"x="1",y="0
{{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}
"x="1",y="1
{{-2, 0, 0, 0}, {0, -2, 0, 0}, {0, 0, -2, 0}, {0, 0, 0, -2}}
"x="1",y="2
{{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}
以下x="1"と同パターン

補足日時:2005/12/25 13:42
    • good
    • 0
この回答へのお礼

毎々ご親切な回答ありがとうございます。
>y1 をp0^2-p1^2-p2^2-p3^3で割った商をy2、余りをy3としたとき、
> y4 = y2*m^2 + y3
>とすると良いでしょう

そうですね。やってみたいと思います。
Mathematicaで、どのようなコマンドを使用したら、スマートに計算できるのか?検討中です。また、見つけましたら、ご報告させて頂きます。

>結果がローレンツ不変量s, t, u. m だけで表わされなければγ行列かトレースの計算をチェックすべきです。

了解しました。γ行列かトレースの計算は、まず間違いないと思います。
問題は、やはり式をどのように纏めるかだと思います。ご教示頂きました上記事項を、試してみたいと思います。


追伸
ただいま、風邪で39度の熱を出しております。ふらふらなので、少し計算が遅れますことを、お詫び申し上げます。

お礼日時:2005/12/19 23:57

 -p0*q0+p1*q1+p2*q2+p3*q3->-(1/2*(m^2-u));


という文は
 -p0*q0+p1*q1+p2*q2+p3*q3->-(1/2*(m^2-t));
に修正する必要があります。さらにs,t,u の間には
 s + t + u = 2*m^2
という関係があるので、
 t -> 2*m^2 - s - u
として、独立変数はsとuの二つになります。
 p0^2-p1^2-p2^2-p3^2 = m^2
という関係式の取込み方としては
 p0^2-p1^2-p2^2-p3^2->m^2
とするよりは、トレースの計算結果をp0^2-p1^2-p2^2-p3^2 で割ったときの商を q(p,q,k,j)、余りを r(p,q,k,j) としたとき計算結果を
 q(p,q,k,j)*m^2 + r(p,q,k,j)
で置き換えるようにした方が良いかもしれません。
コンプトン散乱の計算をする前に
 Tr{sl(a)sl(b)} = 4(ab)
 Tr{sl(a)sl(b)sl(c)sl(d)}
  = 4(ab)(cd) -4(ac)(bd) + 4(ad)(bc)
やエイチスン=ヘイにあるm=0 とした場合のトレースが正しく計算されることを確認されてはいかがでしょうか。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。

このサイトの管理者に質問に問題があると削除され、また、計算が進展せず、悩んでおりました。
あー、もー、本当に有り難いです。毎度、毎度、深謝致します。取り急ぎ、お礼申し上げます。

お礼日時:2005/12/17 10:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!