2012-02-17 4 views
0

Я бы хотел, чтобы Mathematica упрощал выражение в соответствии с некоторыми ограничениями. Например:Манекены индексов и ограничений в Mathematica

M = p.k p.k 

дано ограничение:

p(mu) * p(nu) = \delta(mu,nu) 

должен дать

M = k^2 

Но я не знаю, как определить фиктивные показатели, и я тоже не совсем уверен, где Я должен установить ограничение. В аргументе Simplify?

+0

Многие встроенные функции (например, 'Упрощение') поддерживают опцию« Предположения »для указания ограничений. –

+0

Можете ли вы объяснить свои обозначения или использовать стандартную нотацию Mathematica? – Szabolcs

+0

Точка означает точечный продукт. p (mu) означает p при индексе mu (p и k - векторы), delta - дельта Кронекера. –

ответ

2
In[1]:= FilePrint["dummyindices.m"] 
<<HighEnergyPhysics`FeynCalc` 
Print[" "]; 
{$AL[1], $AL[2]} = {mu, nu}; (* $AL are predefined dummy indices *) 
M = SP[p,k] * SP[p,k];  (* this defines p.k * p.k *) 
SP[k, k] = k2;    (* abbreviate the scalar product k^2 by k2 *) 
constraint = FeynCalcInternal[ 
       FourVector[p,mu] FourVector[p,nu] -> MetricTensor[mu, nu] 
];  (* this is one way of specifying the constraint *) 
(* use the Uncontract function http://www.feyncalc.org/FeynCalcBook/Uncontract/*) 
Print["uncontracting : ", FCF[ tmp = Uncontract[M, k, Pair->All, Unique->False]]]; 
Print["contract and using the constraint : ", 
     FeynCalcExternal @ Contract[tmp /. constraint] 
] 

In[2]:= <<dummyindices.m 
Loading FeynCalc from /home/rolfm/HighEnergyPhysics 
FeynCalc 8.1.0 Type ?FeynCalc for help or visit http://www.feyncalc.org/ 
$PrePrint is set to FeynCalcForm. Use FI and FC to change the display format. 
Loading FeynArts, see www.feynarts.de for documentation 
FeynArts 3.4 patched for use with FeynCalc 

uncontracting : k[mu] k[nu] p[mu] p[nu] 
contract and using the constraint : k2 

 Смежные вопросы

  • Нет связанных вопросов^_^