Главная | Обратная связь
МегаЛекции

Пакет работы с тензорами tensor

Пакет для работы с тензорами tensor

Этот пакет впервые появился в реализации Maple V R5. Он дает средства для работы с тензорами и вычислениями, используемыми в общей теории относительности. В нем использован специальный тип данных tensor_type в виде таблиц с двумя полями: компонентов и характеристик индексов. Поле компонентов — массив с размерностью, эквивалентной рангу объекта. Поле характеристик индексов задается списком чисел 1 и -1. При этом 1 на i-й позиции Означает, что соответствующий индекс контрвариантный, а -1 — что он ковариантный.

Процедура tensor_type возвращает логическое значение true, если ее первый аргумент удовлетворяет свойствам тензора, и false, если он этому свойству не удовлетворяет.

Каждому тензору соответствуют еще две таблицы. Таблица коэффициентов вращения задает коэффициенты вращения Ньюмена—Пенроуза, которые вычисляются функцией tensor[npspin] и индексируются именами греческих букв alpha, beta, gamma, epsilon и т. д. Другая таблица (компонент кривизны) содержит компоненты кривизны Ньюмена—Пенроуза. Они представлены тремя полями: полем Phi в виде массива размерности (0..2.0..2) с компонентами Риччи, поле Psi с массивом размерности (0. .4) с компонентами Вейля и полем R со скаляром Риччи.

Объявление:

> with(tensor);

[Christoffell, Christoffel2, Einstein, Jacobian, Killing_eqns, LevijCivita, Lie_diff, Ricci, Ricciscalar, Riemann, RiemannF, Weyl, act, antisymmetrize, change_basis, commutator,

compare, conj, connexF, contract, convertNP, cov_diff,

create,dlmetric, d2metric, directional_diff, displayGR, display_allGR, dual, entermetric, exteriorjiiff, exterior_prod, frame,geodesic_eqns, get_char, get_compts,get_rank, init, invars, invert, lin_com, lower, npcurve, npspin, partial_diff, permute_indices, petrov, prod, raise, symmetrize, tensorsGR, transform}

дает доступ к следующим функциям пакета:

  • Christoffell — вычисление символов Кристоффеля первого рода;
  • Christoffel2 — вычисление символов Кристоффеля второго рода;
  • Einstein — возвращение тензора Эйнштейна;
  • display_alJGR — описывает ненулевые компоненты всех тензоров и параметров, вычисленных командой tensorsGR (общая теория относительности);
  • displayGR — описывает ненулевые компоненты конкретного тензора (общая теория относительности);
  • Jacobian — Якобиан преобразования координат;
  • Killng_eqns — вычисление компонентов для уравнений Киллинга (имеет отношение к симметриям пространства);
  • LeviCivita — вычисление ковариантных и контрвариантных псевдотензоров Леви—Чивита;
  • Lie_diff — вычисляет производную Ли тензора по отношению к контравариантному векторному полю;
  • Ricci — тензор Риччи;
  • Ricciscalar — скаляр Риччи;
  • Riemann — тензор Римана;
  • RiemannF — тензор кривизны Римана в жесткой системе отсчета;
  • tensorsGR — вычисляет тензор кривизны в данной системе координат (общая теория относительности);
  • Weyl — тензор Вейля;
  • act — применяет операции к элементам тензора, таблицам вращений или кривизны;
  • antisymmetrize — антисимметризация тензора по любым индексам;
  • change_basis — преобразование системы координат;
  • commutator — коммутатор двух контравариантных векторных полей;
  • compare — сравнивает два тензора, таблицы вращений или кривизны;
  • conj — комплексное сопряжение;
  • connexF — вычисляет связующие коэффициенты для жесткой системы координат;
  • contract — свертка тензора по парам индексов;
  • convertNP — преобразует связующие коэффициенты или тензор Римана к формализму Ньюмена—Пенроуза;
  • cov_diff — ковариантное дифференцирование;
  • create — создает тензорный объект;
  • dlmetric — первая частная производная метрики;
  • d2metric — вторая частная производная метрики;
  • directional_diff — производная по направлению;
  • dual — осуществляет дуальную операцию над индексами тензора;
  • entermetric — обеспечивает ввод пользователем координатных переменных и ковариантных компонент метрического тензора;
  • externor_diff— внешнее дифференцирование полностью антисимметричного ковариантного тензора;
  • exterior_prod — внешнее произведение двух ковариантных антисимметричных тензоров;
  • frame — задает систему координат, которая приводит метрические компоненты к диагональной сигнатурной матрице (с положительными или отрицательными единицами);
  • geodesic_eqns — уравнение Эйлера—Лагранжа для геодезических кривых;
  • get_char — возвращает признак (ковариантный/контравариантный) объекта;
  • getcompts — возвращает компоненты объекта;
  • get_rank — возвращает ранг объекта;
  • invars — инварианты тензора кривизны Римана (общая теория относительности);
  • invert — обращение тензора второго ранга;
  • lincom — линейная комбинация тензорных объектов;
  • lower — опускает индексы;
  • npcurve — компонента кривизны Ньюмена—Пенроуза в формализме Дебевера (общая теория относительности);
  • npspin — компонент вращения Ньюмена—Пенроуза в формализме Дебевера (общая теория относительности);
  • partial_diff — частная производная тензора;
  • permute_indices — перестановка индексов;
  • petrov — классификация Петрова тензора Вейля;
  • prod — внутреннее и внешнее тензорные произведения;
  • raise — поднятие индекса;
  • symmetrize — симметризация тензора по любым индексам;
  • transform — преобразование системы координат.

Примеры применения этого пакета можно найти в справочной базе данных системы. Пакет представляет интерес для физиков-теоретиков, работающих в области общей теории относительности и ее приложений/Для них (но не для большинства пользователей) приведенные данные полезны и понятны.

Пакет Domains.

Пакет Domains

Этот небольшой пакет служит для создания доменов — таблиц операций для вычислений. При его загрузке появляется сообщение о переопределениях объектов и список из всего лишь шести функций:

>restart;with(Domains):

Domains version 1.0

Initially defined domains are Z and Q the integers and rationale Abbreviations, e.g. DUP for DenseUnivariatePolynomial, also made Warning, the protected names Array, Matrix and Vector have been redefined and unprotected [Array, Matrix, Matrixlnverse, Vector, init, show]

Пакет допускает применение следующих конструкций:

Domains[domain] Doma1ns[evaldomains]

Domains[example] Domains[coding]

Приведенный ниже пример поясняет создание и использование доменов Q (для рациональных

данных) и Z (для целочисленных данных):

> Q['+'](l/2,2/5,3/8);

51/40

> Z[Gcd](660,130);

Следующая операция показывает, что домен Z является таблицей:

> type(Z,table);

true

А функция show позволяет вывести полный перечень всех операций, доступных для домена Z:

> show(Z,operations);

Signatures for constructor Z'

note: operations prefixed by -- are not available

*: (Integers,Z) ->Z

* :(Z,Z*) ->Z

+ :(Z,Z*) ->Z

-: (Z,Z) -> Z'

- :Z ->Z

0:Z

1:Z

< :(Z,Z) -> Boolean

<= : (Z.Z) -> Boolean

<> : (Z.Z) -> Boolean

=:(Z.Z) -> Boolean

>: (Z.Z) -> Boolean

>-: (Z.Z) -> Boolean

Abs : Z ->Z

Characteristic : Integers

Coerce : Integers-> Z

Div : (Z.Z) -> Union(Z,.FAIL)

EuclideanNorm : Z -> Integers

Factor : Z -> [Z,.[[Z,Integers]*]]

Gcd : Z* -> Z

Gcdex : (Z,Z,Name) ->Z

Gcdex : (Z,.Z,Name,Name) -> Z

Input : Expression -> Union(Z,.FAIL)

Inv : Z -> Union(Z,FAIL)

Lcm : Z* -> Z

Max : (Z,Z*) -> Z

Min : (Z,.Z*)-> Z

Modp : (Z,.Z) ->Z

Mods : (Z.Z)--> Z

ModularHoraomorphlsm : () -> (Z -> Z.Z)'

Normal : Z -> Z

Output : Z -> Expression

Powmod : (Z,Integers,Z) -> Z

Prime : Z -> Boolean

Quo : (Z,.Z,Name) ->Z

Quo : (Z,.Z) -> Z

Random : О ->Z

RelativelyPrime : (Z,.Z) -> Boolean'

Rem : (Z,.Z,.Name)-> Z

Rera : (Z,Z) -> Z

Sign : Z -> UNIONU,.-l,0)

SmallerEuclideanNorm : (Z,.Z) -> Boolean

Sqrfree : Z ->[Z,.[[Z,.Integers]*]]

Type : Expression -> 'Boolean'

Unit : Z -> Z

UnitNormal : Z -> [Z,.Z,.Z]

Zero : Z -> Boolean

^ : (Z,Integers) -> Z.

Домены позволяют передавать в качестве параметра процедур набор функций в виде единого целою, что и объясняет название этих объектов. Предполагается, что это может привести к заметному сокращению кодов программ вычислений в будущих реализациях системы Maple. Пока же возможности доменов скорее выглядят как очередная экзотика, чем как реальное средство для оптимизации вычислений. Потребуется время, чтобы показать, что это не так.





©2015- 2017 megalektsii.ru Права всех материалов защищены законодательством РФ.