GrabDuck

Системы компьютерной алгебры для работы с тензорами

:

Написать эту статью меня сподвигло отсутствие возможности оставлять комментарии, не имея инвайта. Хотел написать автору статьи, но не нашел e-mail. Вот, собственно, и сама статья, даже целый цикл статей, посвященный тензорному исчислению.

В комментарии к этой статье ZloAlien поинтересовался математическими пакетами для работы с тензорами, на что автор maisvendoo ему сообщил, что может быть Maple 18, и приложил картинку с выводом функций пакета tensor. Вот, собственно, мимо этого я и не смог пройти мимо.

Системы компьютерной алгебры СКА ( computer algebra system, CAS) используются для символьных вычислений. Их не мало, но мы здесь остановимся на тех с которыми мне пришлось столкнуться, как раз при поиске наиболее подходящей для себя.

Итак, по порядку:

Mathematica


Разработанная в конце 80-х Стивеном Вольфрамом содержит среди прочего пакет Tensors in Physics для работы с тензорами. Судя по описанию, может выполнять основные действия над тензорами. Однако при поиске подходящего для себя пакета СКА я отказался от Mathematica по простой причине — листинг, или как его правильно назвать, вообщем-то, что видно на экране, очень напоминает код, трудный для восприятия. Вот пример, тензор Леви-Чивиты, кстати названный в честь известного итальянского математика Ту́ллио Ле́ви-Чиви́та, можно сказать, стоявшего у истоков тензорного исчисления и много сделавшего для его развития. Как известно, при работе над Общей теорией относительности Альберту Энштейну пришлось освоить и широко использовать тензорное исчисление. Вот пара цитат:

В одном из писем, касающемся новой работы Леви-Чивиты, Эйнштейн писал: «Я восторгаюсь элегантностью Вашего метода вычислений; как, должно быть, приятно скакать через эти поля на жеребце чистой математики, в то время как остальные должны утомительно переставлять ноги».

и
По воспоминаниям Д.Я.Стройка, когда уже после смерти Леви-Чивиты Эйнштейну задали вопрос о том, что ему больше всего нравится в Италии, он ответил: «спагетти и Леви-Чивита»

Думаю, этим и объясняется, тот факт, что вначале тензорное исчисление широко использовалось только физиками-теоретиками, изучающими теорию относительности, теория поля и гравитации и т.п. Мне встречались записи, типа
О, это пакет tensor, но он вам не нужен, его понимают только физики-теоретики

Redberry


Redberry открытая система компьютерной алгебры, разрабатываемая и поддерживаемая нашими соотечественниками, что само по себе отрадно. Однако, Redberry предназначена для работы с абстрактными тензорами (с использованием стандартной эйнштейновской нотации). Такие задачи обычно возникают в физике высоких энергий. При этом можно задавать произвольные симметрии тензоров, брать производные, объявлять функции и т.п. Redberry не позволяет задать конкретные компоненты тензора. Например, в Redberry можно упростить выражение

d f_i(x) / d x_i + g^{ab} d f_a(x) / d x_b = 2 d f_i(x) / d x_i

где d f_i(x) / d x_i — дивергенция вектора f_i, а g^{ab} — метрический тензор; однако нельзя задать конкретные компоненты этого вектора (напр. f_0 = x_1*x_2, f_1 = … и т.п.). Поэтому довести расчет до «цифры» нельзя. Для меня этот момент является принципиальным. Поэтому, увы, идем дальше.

Maple


Программный пакет Maple разрабатывается компанией Waterloo Maple с начала 80-х. Maple ранее содержал пакет tensor для работы с тензорами, сейчас этот пакет вошел в состав пакета DifferentialGeometry Package, работа с ним в свое время меня, действительно, не особо впечатлила. Однако, многое изменилось с появлением пакета Physics разрабатываемого под руководством Dr. Edgardo Cheb-Terrab. Отмечу, как я считаю, основные преимущества:
1. Формат вывода расчетов, как если бы мы работали с карандашом и бумагой.
Например:

2. Внятный и удобный Help. Пример, тензор Леви-Чивиты, сравните с анлогичной ссылкой пакета Mathematica.
3. Площадка для общения, обмена мнениями, вопросов-ответов и т.д.

Другие СКА для работы с тензорами, заинтересованный читатель, может найти здесь.

Спасибо за внимание.