Maple für Professional
Maple für Akademiker
Maple für Studenten
Maple Personal Edition
Maple Player
Maple Player für iPad
MapleSim für Professional
MapleSim für Akademiker
Maple T.A. - Testen & beurteilen
Maple T.A. MAA Placement Test Suite
Möbius - Online-Courseware
Machine Design / Industrial Automation
Luft- und Raumfahrt
Fahrzeugtechnik
Robotics
Energiebranche
System Simulation and Analysis
Model development for HIL
Anlagenmodelle für den Regelungsentwurf
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematikausbildung
Technik
Allgemein- und berufsbildende Schulen
Testen und beurteilen
Studierende
Finanzmodelle
Betriebsforschung
Hochleistungsrechnen
Physik
Live-Webinare
Aufgezeichnete Webinare
Geplante Veranstaltungen
MaplePrimes
Maplesoft-Blog
Maplesoft-Mitgliedschaft
Maple Ambassador Program
MapleCloud
Technische Whitepapers
E-Mail Newsletters
Maple-Bücher
Math Matters
Anwendungs-Center
MapleSim Modell-Galerie
Anwenderberichte
Exploring Engineering Fundamentals
Lehrkonzepte mit Maple
Maplesoft Welcome-Center
Resource-Center für Lehrer
Help-Center für Studierende
The tensor Package Simplification Routines
Description
When doing computations involving tensor components, the size of a computation can grow quite rapidly due to the sheer number of quantities involved. Also, the amount and type of simplification depends on the particular computation and the metric of the geometry involved. Thus, it is necessary for simplification of quantities to be carried out with the computation of each new component or quantity. This is why each computation routine of the package uses its own simplification routine (where appropriate). By redefining the simplification routines for particular routines of the package, you can customize the way simplification is done at each step of computation.
For the most part, these simplification routines are named after the routine that they are used by. The name `tensor/xxxx/simp` would be used for the simplifier used by the `xxxx` routine of the package. However, because some of the operations are similar and because some operations call others, some of the simplification routines are shared by more than one routine of the package. For reference, here is a table of the simplifying routines used by each procedure of the package:
Package Routine | Simplifier
------------------------------------------------------
|
Christoffel1 | tensor/Christoffel1/simp
Christoffel2 | tensor/Christoffel2/simp
Einstein | tensor/Einstein/simp
Jacobian | tensor/partial_diff/simp
Killing_eqns | tensor/lin_com/simp,
| tensor/cov_diff/simp
Levi_Civita | ----
Lie_diff | tensor/Lie_diff/simp,
| tensor/partial_diff/simp
Ricci | tensor/Ricci/simp
Ricciscalar | tensor/Ricciscalar/simp
Riemann | tensor/Riemann/simp
RiemannF | tensor/RiemannF/simp *
Weyl | tensor/Weyl/simp
act | ----
antisymmetrize | tensor/lin_com/simp
change_basis | tensor/raise/simp
commutator | tensor/commutator/simp,
compare | tensor/compare/simp
connexF | tensor/connexF/simp *
contract | tensor/prod/simp
convertNP | tensor/lin_com/simp
cov_diff | tensor/cov_diff/simp
create | ----
d1metric | tensor/d1metric/simp
d2metric | tensor/d2metric/simp
directional_diff | tensor/dir_diff/simp
display_allGR | ----
displayGR | ----
dual | tensor/prod/simp
exterior_diff | tensor/lin_com/simp,
exterior_prod | tensor/lin_com/simp,
| tensor/prod/simp
frame | tensor/lin_com/simp
geodesic_eqns | ----
get_char | ----
get_compts | ----
invars | tensor/invars/simp
| tensor/invars/Msimp *
invert | tensor/invert/simp
lin_com | tensor/lin_com/simp
lower | tensor/raise/simp
npcurve | tensor/npcurve/simp
npspin | tensor/npspin/simp,
| tensor/npspin/spincoeff/simp *
partial_diff | tensor/partial_diff/simp
permute_indices | ----
petrov | tensor/petrov/simp
prod | tensor/prod/simp
raise | tensor/raise/simp
entermetric | ----
symmetrize | tensor/lin_com/simp
tensorsGR | ----
transform | tensor/raise/simp
The simplification routines must take a single algebraic argument and return something (presumably a simpler version of the argument) of an algebraic type.
To facilitate the initialization of all of these routines (except for the ones identified by an asterisk), they are all initialized to `tensor/simp`, which is itself initialized to:
`tensor/simp` := proc(a)
normal(a)
end proc:
If you find that you want to change the method of simplification done by each routine, but that most or all of the routines require the same method, you can cut down on the number of changes that need to be made by simply changing `tensor/simp` to suit the needs of most of the simplifiers, and then make any further changes for the few specific routines. Note that such automatic initialization is done only after either having defined all of the tensor functions using the command with(tensor), or having explicitly performed the initialization using the command with(tensor,name), where name is either one of the tensor package procedures or an empty list).
Once you have customized the simplification routines for a particular problem, they can be written to a file (see ?save) so that they are easily retrievable in subsequent sessions.
For more information on the simplifier used by a particular routine, refer to the "Simplification" section of the help for that particular routine.
Examples
To what are the simplifiers initialized?
Now suppose that you want to change all of the simplifiers so that they use the Maple simplify function instead of normal. You can accomplish this easily:
`tensor/simp`:=proc(x) simplify(x) end proc;
Notice that this single change affects all of the simplifiers.
Now suppose that for the Riemann procedure, you want to simplify each component, make the substitution cos(theta)^2 = 1 - sin(theta)^2, and then factor the result. You can do this by re-defining the `tensor/Riemann/simp` procedure:
`tensor/Riemann/simp`:=proc(x) local y; y:= simplify(x); y:= subs(cos(theta)^2 = 1 - sin(theta)^2, y); factor(y); end proc;
See Also
tensor
Download Help Document