Соглашения, применяемые в пакете Physics
ОписаниеПакет Physics отображает на рабочем листе компьютерное представление таких математических объектов, которых нет в обычном Maple. Среди них некоммутирующие и коммутирующие переменные, связанные с некоммутативным произведением и дифференцированием, трехмерными абстрактными (непроектируемыми) векторами, метрикой пространства-времени, дифференциальными операторами d_ и dAlembertian, квантовомеханическими векторами состояний (в дираковских обозначениях), их скалярное произведение, а также квантовые операторы для представления квантовых полей и т. д.
Реализация компьютерного представления этих объектов математической физики содержит некоторые соглашения, причем все их можно изменять.
Запрос о настройках этих соглашений или об их изменении делается с помощью команды Setup или загрузкой апплета Setup путем ввода в командной строке Setup();. Информация о каждой настройке представлена отдельным разделом на странице справки команды Setup. Ниже представлены соглашения для команд пакета Physics. Cоглашения для команд Vectors приведены отдельно.
Во всем пакете действует неписаное соглашение, что различием между ковариантными и контравариантными индексами пренебрегается: если индекс свободен, то выражение не зависит от вида индекса, а если индекс связан с другим, то неважно, какой из них ковариантный, какой контравариантный. Поэтому свободные ковариантный и контравариантный индексы вводятся одинаково, как «компьютерная индексация» тензора, скажем, A как A[mu], и они изображаются одинаково как ковариантные.
При загрузке Physics автоматически загружаются только команды, которые являются пространственно-временными тензорами, такие как метрика g_[mu, nu] или дифференциальный оператор d_[mu]. Все другие символы, которые вы хотите назначить пространственно-временными тензорами, следует определять через применение команды Define. При вычислениях ничто другое не будет рассматриваться как пространственно-временной (пв) тензор. Вы можете непосредственно рассчитывать математические выражения с пв-тензорами, содержащими другие индексные величины, не определенные как тензоры, и при этом тензорные свойства будут применяться только к тензорам.
Свойства пв-тензоров:
- упрощение по правилу Эйнштейна о суммировании по повторяющимся индексам (требует применения команды Simplify пакета Physics или установки в Setup для автоматического выполнения);
- Check (автоматическая проверка) для выявления возможных ошибок при появлении свободных и повторяющихся индексов и использование правила суммирования при дифференцировании с помощью команды diff пакета Physics.
Свертка индексов между двумя тензорами происходит нормально, как при ручной работе. Например, пусть А определен как тензор с помощью Define, тогда можно ввести g_[mu,nu]*A[mu] и, применив к нему Simplify, упростить произведение до A[nu]. Из-за эйнштейновского правила суммирования для повторяющихся индексов нельзя ставить произведение тензоров внутрь конструкции Sum, чтобы представить сворачивание их индексов.
Главный упроститель пакета – команда Simplify – упрощает только то, что касается пакета Physics. Для всего остального используйте по умолчанию команду simplify. Таким образом, упрощение касается только тензорных индексов (суммирование по повторяющимся) и некоммутирующих произведений и алгебр. Упрощения пространственно-временных индексов включают правила произведений для метрики g_, символов Леви-Чивиты и Кронекера, симметричных и антисимметричных возмущений всех частей индексов пространственно-временных тензоров, которые определены через Define, и т. п.
При загрузке Physics автоматически устанавливается только соглашение о размерности пространства-времени = 3+1, обычно обозначаемого как пространство Минковского с тремя пространственными и одной временной координатами, метрика (–, –, –, +), следуя Ландау (см. «Теория поля»). Индекс пространственно-временного тензора, скажем, μ, изменяется от 0 до 3, причем 0 – время. В листе Maple можно применять номера 0 и 4 для времени, но если применить 0, то он автоматически заменится на 4.
Установки, задаваемые dimension и signature для пространства-времени, действуют только на операции с тензорами пространства-времени, определенными таковыми через Define, или на части пакета, такие как метрика g_, дифференциальный оператор d_[mu] и некоторые другие. Основное следствие установок пространства-времени в том, что использование в выражениях и при свертке индексов метрики g_ и полностью антисимметричного символа Леви-Чивиты возвратит результат согласно dimension и signature.
Настройки пространства-времени в dimension и signature действуют на возвращаемые дифференциальными операторами результаты d_[mu] и dAlembertian и изменяют представление матриц Дирака Diracmatrices и след Trace их произведения.
Распространенные ошибки при работе с индексированными тензорами: свободные индексы разных членов в сумме не являются одинаковыми или индекс повторно появлялся более чем один раз в произведении. Команда проверки на наличие этих ошибок называется Check. Если она применяется с опциональными аргументами, она возвращает повторяющиеся в нем индексы, а также свободные индексы выражения.
Другая частая ошибка – если тензор с n индексами, возможно, как функция m переменных, используется в расчете с другим числом индексов или переменных либо зависит от другого числа переменных. Чтобы предотвратить такую ситуацию, после задания тензора пространства-времени каждая следующая обработка этого тензора командами пакета Physics проверяется checks автоматически на правильность индексов и числа переменных тензора. Поэтому, если рабочий лист начат, например, с A[mu](x,t) и в некоторой точке надо работать с A[mu](x,y,t), то понадобится заново переопределить A[mu] с помощью команды Define.
Переменные делятся на три особых класса: коммутирующие, антикоммутирующие и некоммутирующие (commutative (C), anticommutative (AC) и noncommutative (NC)) – в соответствии со свойствами их произведения, которое может коммутировать (AB = BA), антикоммутировать (AB = – BA), не коммутировать (AB ≠ BA).
При загрузке пакета Physics произведение, возведение в степень и дифференциальный оператор, представляемые соответственно знаками *, ^ и diff, переопределяются, чтобы корректно работать с переменными классов C, AC и NC, включая дифференцирование по антикоммутирующим переменным.
По соглашению каждый символ на рабочем листе относится к классу С, если он не имеет префикса антикоммутации и некоммутации. Эти префиксы не загружаются автоматически при загрузке Physics, и их надо устанавливать командой Setup или при загрузке Physics:-Setup(advanced).
Функции и индексные переменные наследуют свойства коммутации, поэтому, чтобы ввести антикоммутативную функцию, достаточно ввести ее с антикоммутативным именем. То же касается индексных функций, например, Q[j](x) – антикоммутативная, если антикоммутативно Q. Символы, определяемые как квантовые операторы с помощью команды Setup, а также операторы, возвращаемые командами Annihilation и Creation, рассматриваются как некоммутативные.
Выражения, содержащие суммы, произведения, степени переменных и функций классов C, AC и NC, также принадлежат к одному из этих трех классов. По соглашению классификация составных объектов такова:
Произведения: | Суммы: | ||
C * AC = AC * C | тип AC | C + AC = AC + C | тип NC |
C * NC = NC * C | тип NC | C + NC = NC + C | тип NC |
AC * NC <> NC * AC | тип NC | AC + NC = NC + AC | тип NC |
Сведения о классе переменной, функции, выражения (C, AC или NC) дает команда type:
type(expression, kind), где kind – одно из: commutative, anticommutative или noncommutative.
При загрузке пакета Physics команда дифференцирования diff получает расширение, чтобы:
- выполнять дифференцирование по функциям (functions), как часто делается в Physics (т. е., например, по скорости, представленной как функция t);
- дифференцировать по антикоммутирующим переменным;
- применять соглашения о суммировании по повторяющимся индексам тензорного объекта, определенного таковым через Define или уже загруженного таковым с Physics, т. е. пространственной метрикой g_ или символом Леви-Чивиты.
Неявное дифференцирование по антикоммутирующим переменным см. diff, anticommutative.
Операция умножения также расширяется, как описано в `*`, чтобы поддерживать антикоммутирующие и некоммутирующие переменные, функции, выражения. Для разложения этих произведений по суммам используйте expand или, если хотите разложить только некоммутирующие произведения, примените Physics:-Expand.
При каждом вводе оператора `*` к некоммутирующим произведениям применяются базовые упрощения, включая Check, для проверки правильности свободных и повторяющихся индексов пространственно-временных тензоров, определенных Define. Также возможно автоматическое упрощение повторяющихся индексов, например, так: g_[mu,nu]*A[mu] автоматически возвращает A[nu] без вызова команды Simplify пакета Physics. Для этого используйте команду Setup.
Важным является соглашение о применении произведения как функции: для любых a и b (a * b)(x) → a(x) * b(x). Учтите, что это соглашение отличается от соглашения о применении скалярного произведения `.`, где к x применяется только a или только b, если они – квантовые операторы.
К некоммутирующим произведениям часто применяется команда Parameters, как если бы они были операторами, так что если а – параметр, то применение правила даст: (a * b)(x) → a * b(x).
Основные команды пакета Physics для представления квантовых состояний и соответствующих операций: Bra, Ket, Bracket, Annihilation, Creation, Dagger, оператор скалярного умножения `.`. Для представления векторов состояний применяются дираковские обозначения.
Представляемые Bra и Ket векторы состояний полагаются невырожденными, поэтому один к одному соответствуют квантовым состояниям.
Пространство квантовых состояний, к которому принадлежит вектор-состояние, имеет обозначение (любое name), являющееся первым аргументом в Bra и Ket. Базис соответствующих квантовых состояний предполагается дискретным, если иное не указано явно в команде Setup.
Квантовые числа, связанные с вектором состояния, следует указывать явным образом с помощью чисел или выражений, их представляющих, задаваемых как аргументы в Bra и Ket. Они записываются после знака, обозначающего пространство состояний, к которым принадлежит вектор состояния.
Важно: применение функции скалярного произведения. Правило: если вводится оператор (A.B)(x), то операнды скалярного произведения просматриваются справа налево в соответствии с правилом: если операнд – квантовый оператор, то он применяется к х и возвращает результат; если после сканирования всех операндов ни один из них не окажется квантовым, то скалярное произведение просто умножается на х.
Например: если B – квантовый оператор, то (A . B)(x) → A . B(x), а если нет (ни А ни В), то (A . B)(x) → (A . B) * x, где оператор произведения * либо коммутативен, либо некоммутативен в зависимости от типа (type) A, B и x. Это отличается от правила, применяемого для некоммутативных произведений, где (a * b)(x) → a * b(x). На рабочем листе можно представлять работу с операторами так же, как на листе бумаги при ручных выкладках. Для этого надо комбинировать конструкции произведений с помощью `*` и `.`, учитывать различия в правилах их применения и использовать, когда надо, команду Parameters.