Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Пакет работы с тензорами 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- 2022 megalektsii.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.