Пакет Physics

 

Версия для печати

Соглашения, применяемые в пакете 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.