SNEG パッケージを使用しているときに Mathematica でループを実行する際に問題が発生しました(フェルミオン演算子を使用した微積分用です)。
これが私のコードのほんの一部です:
natord = {{cjdckd, 1, 2}, {cjdckd, 1, 3}, {cjdckd, 1, 4}, {cjdck, 1,
1}, {cjdck, 1, 2}, {cjdck, 1, 3}, {cjdck, 1, 4},
{cjdckd, 2, 3}, {cjdckd, 2, 4}, {cjdck, 2, 1}, {cjdck, 2,
2}, {cjdck, 2, 3}, {cjdck, 2, 4}, {cjdckd, 3, 4}, {cjdck, 3,
1}, {cjdck, 3, 2}, {cjdck, 3, 3}, {cjdck, 3, 4}, {cjdck, 4,
1}, {cjdck, 4, 2}, {cjdck, 4, 3}, {cjdck, 4, 4}, {cjck, 1,
2}, {cjck, 1, 3}, {cjck, 1, 4}, {cjck, 2, 3}, {cjck, 2, 4}, {cjck,
3, 4}};
Do[
j = natord[[ind, 2]] // ToString;
k = natord[[ind, 3]] // ToString;
cjd = c[0, j];
cj = c[1, j];
ckd = c[0, k];
ck = c[1, k];
cjck = nc[cj, ck];
cjdck = nc[cjd, ck];
cjdckd = nc[cjd, ckd];
korr = natord[[ind, 1]];
この後、次のコードは係数のリストと 1 つの値を生成します。リストはリスト M に追加する必要があるため、最後に行列があり、単一の値がリストに含まれるため、ベクトルを取得します。Do-Loop を実行していないときは、
j="1";
k="2";
と
korr=cjck;
これでなんとかなる。natord リストでわかるように、28 のケースがあり、それぞれを明示的に入力したくありませんが、これを実行するループを作成しています。
あなたが私を助けてくれることを願っています。さらにコードが必要な場合は教えてください。
乾杯