Пакет работы с тензорами 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} дает доступ к следующим функциям пакета:
Примеры применения этого пакета можно найти в справочной базе данных системы. Пакет представляет интерес для физиков-теоретиков, работающих в области общей теории относительности и ее приложений/Для них (но не для большинства пользователей) приведенные данные полезны и понятны.
Пакет 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|