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

Пакет работы с тензорами 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 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...