Хм, странно, у меня выводит 0 без всяких сообщений. Версия 8.0.1.0, но разницы с седьмой здесь быть не должно.
Может быть, влияют определения, которые вы сделали между делом и потом стёрли (они остаются в памяти) — пробовали ли вы перезапустить программу (или лучше — перезапустить только ядро: в меню Evaluation → Quit Kernel → Local) и потом просто перевычислить всё введённое. Если сообщения уже не будут появляться, то дело было в этом, и в следующий раз можно просто перед определениями написать
ClearAll[все определяемые имена, а также все имена несвязанных переменных, попадающиеся в определениях, через запятую]
(в вашем случае что-то типа
ClearAll[coord, t, r, phi, metric, g, J, inversemetric, christ]) — и тогда влияние среды аннулируется практически в любом случае кроме некоторых экзотических, которые если вам и попадутся, вы уже наверняка будете знать что делать.
А если вам нужно будет определить имена временно, то подойдёт
Block или
Module, но опять же наверно вам пока такое не нужно.
-- Чт июл 04, 2019 19:01:55 --Кстати вот вам для проверки на будущее (если ответ будет выдаваться, он и должен выдаваться в точности такой же, привожу его тут просто для спокойствия и уверенности, что считать он считается) все компоненты символа Кристоффеля:
Код:
In[...]:= Table[christ[a, b, c], {a, 3}, {b, 3}, {c, 3}]
Out[...]= {{{0, (J^2 + 2 r^3 g'[r])/(4 r^3 g[r]), 0},
{(J^2 + 2 r^3 g'[r])/(4 r^3 g[r]), 0, -(J/(2 r g[r]))},
{0, -(J/(2 r g[r])), 0}},
{{1/2 g[r] (J^2/(2 r^3) + g'[r]), 0, 0},
{0, -(g'[r]/(2 g[r])), 0},
{0, 0, -r g[r]}},
{{0, (J^3 + 2 J r^3 g'[r])/(8 r^5 g[r]), 0},
{(J^3 + 2 J r^3 g'[r])/(8 r^5 g[r]), 0, 1/r - J^2/(4 r^3 g[r])},
{0, 1/r - J^2/(4 r^3 g[r]), 0}}}
Если будете сравнивать со своим, просто скопируйте и напишите между ними
==, оно сравнит покомпонентно.
Почему-то правда
g'[r] из ответа у меня скопировалось изначально как
Derivative[1][g][r], и тут я для наглядности поправил (первая форма записи нормально понимается программой и эквивалентна второй в точности), но это к вашей теме конечно не относится.