|
|
空間と一般相対性のテンソル
|
|
| (1) |
>
|
Setup(mathematicalnotation = true);
|
| (2) |
•
|
Physics を読み込むと、時空は Minkowski タイプに設定されます。現在の時空計量を表示するには、インデックスなしでそれを入力します。
|
| (3) |
•
|
テンソルで代数計算するには、Maple 16 では、簡単な方法で反変インデックスが導入されました。インデックスが反変ということを示すには接頭辞として ~ (チルダ) をつけます。
|
>
|
g_[mu, nu], g_[mu, ~nu], g_[~mu, ~nu];
|
| (4) |
| (5) |
•
|
すべてのテンソルを定義すると、インデックスを操作 (簡約化、微分など) する際に Physics コマンドは反復されるインデックスにアインシュタインの縮約記法を使用します。どの縮約インデックスのペア (共変および反変) でも入力することができます。どれがどの種類であるかは関係がないため、両方の共変あるいは両方の反変を入力することもできます。その際、システムはそれらを一方は共変、もう一方は反変として、自動的に書き換えます。
|
| (6) |
>
|
g_[alpha, mu] * A[mu] * g_[alpha, nu] * B[nu, sigma, sigma];
|
| (7) |
|
このような方法で式を入力する場合、反復されるインデックスの共変/反変の特性に注意する必要はありません。繰り返しやフリーのインデックスをチェックおよび判断するには、Check を使用します。
|
| (8) |
>
|
SumOverRepeatedIndices((7));
|
| (9) |
•
|
テンソル式の簡約化と微分には、自動的にアインシュタインの縮約記法が使用されます。
|
| (10) |
| (11) |
|
さらに、量子力学で使用される場合、Physics `.` 演算子は、1 つのステップで縮約インデックスの "積と簡約" を行える便利なショートカットにもなります。式の縮約をすぐに簡単化したり、特定の位置だけ処理するときに便利です。乗算は結合のままにし、求めたい結合に丸括弧をおく必要があります。たとえば、三番目の `*` が `.` の場合のみ (8) に置き換えます。
|
>
|
g_[alpha, mu] * A[mu] * (g_[alpha, nu] . B[nu, sigma, sigma]);
|
| (12) |
•
|
時空計量を球面座標でシュワルツシルトになるよう設定し、様々な方法で行うことができます (Setup および g_ を参照)。計量テンソル g_ に確認のキーワードの一部を直接渡すのが簡単です。
|
| (13) |
|
対応する線要素がキーワード line_element を渡すのを表示するには、微分は d_ を使用して表します。
|
| (14) |
|
座標変換は計量 g_ を等角ユークリッド形式にとります。つまり、線要素が に比例します。
|
>
|
TR := r = (1+2*m/(4*rho))^2*rho;
|
| (15) |
>
|
TransformCoordinates(TR, g_[mu, nu], [rho, theta, phi, t]);
|
| (16) |
|
テンソル式が変換される場合は時空計量、オプションで対応する線要素の出力を要求できます。座標の微分は d_ を使用して表します。
|
>
|
TransformCoordinates(TR, g_[mu, nu], [rho, theta, phi, t], output = line_element);
|
| (17) |
•
|
一般相対性テンソルは、計量を設定する場合、自動的に値を更新します。シュワルツシルト計量の Riemann テンソル のすべてのインデックスの縮約
|
>
|
Riemann[alpha,beta,mu,nu] . Riemann[alpha,beta,mu,nu];
|
| (18) |
|
これらのテンソルのインデックスは、対称性プロパティに応じて自動的にソートされます。代数計算を使って計算する場合、0 の認識を簡単にします。
|
>
|
Riemann[mu, mu, beta, alpha];
|
| (19) |
>
|
Riemann[nu, mu, beta, alpha] - Riemann[alpha, beta, nu, mu];
|
| (20) |
|
さらに、代数計算は、視覚的にすべての値または、テンソル成分のサブセットを確認することができます。たとえば、 および
|
| (21) |
| (22) |
|
キーワードの matrix を追加のインデックスとして渡す場合、 に対応する 2 x 2 行列が表示されます。
|
>
|
Christoffel[~1, alpha, mu, matrix];
|
| (23) |
|
の行列と比べます (最初のインデックスは共変です。接頭辞として ~ はつけません)。
|
>
|
Christoffel[1, alpha, mu, matrix];
|
| (24) |
|
の nonzero 成分
|
>
|
Christoffel[~mu, alpha, beta, nonzero];
|
| (25) |
|
すべての共変 については、すべてのインデックス共変を渡すことができます。または、単純にキーワード nonzero を単独で渡します。
|
| (26) |
|
シュワルツシルト時空で、Ricci テンソルのすべての成分は 0 と等価です。行列形式を表示するには、キーワードの matrix を渡すか、単にインデックスを渡さないかです。
|
| (27) |
|
Ricci テンソルは、 として Riemann テンソルが定義されます。4 つの Riemann 行列を追加して、Ricci 行列を整列させる方法を表示します。この目的のため、値を 1 番目と 3 番目のインデックスに与え、追加のキーワードの matrix を渡します。これが最初の行列です
|
>
|
Riemann[~1, beta, 1, nu, matrix];
|
| (28) |
>
|
Riemann[~1, beta, 1, nu, matrix] + Riemann[~2, beta, 2, nu, matrix] + Riemann[~3, beta, 3, nu, matrix] + Riemann[~4, beta, 4, nu, matrix];
|
| (29) |
| (30) |
>
|
SumOverRepeatedIndices('Riemann[~alpha, beta, alpha, nu, matrix]', simplifier = simplify);
|
| (31) |
| (32) |
•
|
すべてのインデックスが共変のリーマンテンソルを Christoffel 記号とその微分を使用して書き直し、さらに、三角関数の存在を考慮し simplifier オプションを使用し、テンソル式となるテンソル配列を作成します。
|
>
|
Riemann[mu,nu,alpha,beta];
|
| (33) |
>
|
convert((33), Christoffel);
|
| (34) |
>
|
R := TensorArray((34), simplifier = simplify);
|
| (35) |
| (36) |
| (37) |
|
2 つの配列の非 0 の値すべてを比較します。Riemann ではオプション nonzero を渡し、 では ArrayElems を使用します。非 0 成分は同じになります。
|
| (38) |
| (39) |
>
|
evalb(simplify(rhs((38)) = (39)));
|
| (40) |
•
|
の共変微分
|
| (41) |
| (42) |
|
の発散
|
| (43) |
| (44) |
>
|
simplify((44)) assuming positive;
|
| (45) |
>
|
PDEtools:-declare(B(X));
|
| (46) |
>
|
D_[mu](B[~alpha, beta, ~nu](X));
|
| (47) |
| (48) |
•
|
この数式を異なる書式で書き換えることができます。たとえば、Christoffel を g_ による表現とその微分で書き換え、展開し、変換を元に戻します。
|
>
|
expand(convert((48), g_));
|
| (49) |
>
|
convert((49), Christoffel);
|
| (50) |
| (51) |
|
|
反可換変数と関数を処理する新しいコマンド
|
|
>
|
Setup(anticommutativepre = {theta, Q});
|
| (52) |
>
|
a*theta[1]*theta[2] + b;
|
| (53) |
|
次数 1 の における多項式の の Taylor 級数は多項式自体であり、新しい Gtaylor コマンドを使用して計算できます。
|
>
|
Gtaylor((53), theta[1]);
|
| (54) |
>
|
Coefficients((53), theta[1]);
|
| (55) |
| (56) |
| (57) |
>
|
F(x, y, theta[1], theta[2]);
|
| (58) |
>
|
Gtaylor((58), theta[1]);
|
| (59) |
>
|
ToFieldComponents((58), useonly);
|
| (60) |
>
|
Coefficients((59) = (60), theta[1], 0);
|
| (61) |
>
|
Coefficients((59) = (60), theta[1], 1);
|
| (62) |
| (63) |
|
可換および非可換変数 の非可換関数 の偏微分方程式を考えます。
|
>
|
diff(Q(x, y, theta), x, theta) = 0;
|
| (64) |
>
|
PerformOnAnticommutativeSystem(pdsolve, [(64)]);
|
| (65) |
|
中間的な常微分方程式を解く際に、dsolve によって使用される anticommutative の任意定数 があることに注意してください。Maple 16 の dsolve および pdsolve では、いずれもこれらにコード化されている PerformOnAnticommutativeSystem を呼び出す手法によって問題に直接的に対処できます。
|
| (66) |
|
|