Function composition
Template:Short description Template:About-distinguish Template:Redirect-distinguish Template:Redirects Template:Use dmy dates Template:Functions
In mathematics, the composition operator takes two functions, and , and returns a new function . When the composite function is evaluated at an input , the result is . That is, the function fScript error: No such module "Check for unknown parameters". is applied after applying gScript error: No such module "Check for unknown parameters". to xScript error: No such module "Check for unknown parameters".. The symbol is pronounced "fScript error: No such module "Check for unknown parameters". of gScript error: No such module "Check for unknown parameters".".[1]
The composition of functions is a special case of the composition of relations, sometimes also denoted by . As a result, all properties of composition of relations are true of composition of functions,[2] such as associativity.
Examples
- Composition of functions on a finite set: If f = {(1, 1), (2, 3), (3, 1), (4, 2)}Script error: No such module "Check for unknown parameters"., and g = {(1, 2), (2, 3), (3, 1), (4, 2)}Script error: No such module "Check for unknown parameters"., then g ∘ f = {(1, 2), (2, 1), (3, 2), (4, 3)}Script error: No such module "Check for unknown parameters"., as shown in the figure.
- Composition of functions on an infinite set: If f: R → RScript error: No such module "Check for unknown parameters". (where RScript error: No such module "Check for unknown parameters". is the set of all real numbers) is given by f(x) = 2x + 4Script error: No such module "Check for unknown parameters". and g: R → RScript error: No such module "Check for unknown parameters". is given by g(x) = x3Script error: No such module "Check for unknown parameters"., then: Template:Block indent Template:Block indent
- If an airplane's altitude at time Template:Mvar is a(t)Script error: No such module "Check for unknown parameters"., and the air pressure at altitude Template:Mvar is p(x)Script error: No such module "Check for unknown parameters"., then (p ∘ a)(t)Script error: No such module "Check for unknown parameters". is the pressure around the plane at time Template:Mvar.
- Function defined on finite sets which change the order of their elements such as permutations can be composed on the same set, this being composition of permutations.
Properties
The composition of functions is always associative—a property inherited from the composition of relations.[2] That is, if Template:Mvar, Template:Mvar, and Template:Mvar are composable, then f ∘ (g ∘ h) = (f ∘ g) ∘ hScript error: No such module "Check for unknown parameters"..[3] Since the parentheses do not change the result, they are generally omitted.
In a strict sense, the composition g ∘ fScript error: No such module "Check for unknown parameters". is only meaningful if the codomain of Template:Mvar equals the domain of Template:Mvar; in a wider sense, it is sufficient that the former be an improper subset of the latter.[nb 1] Moreover, it is often convenient to tacitly restrict the domain of Template:Mvar, such that Template:Mvar produces only values in the domain of Template:Mvar. For example, the composition g ∘ fScript error: No such module "Check for unknown parameters". of the functions f : R → (−∞,+9] Script error: No such module "Check for unknown parameters". defined by f(x) = 9 − x2Script error: No such module "Check for unknown parameters". and g : [0,+∞) → RScript error: No such module "Check for unknown parameters". defined by can be defined on the interval [−3,+3]Script error: No such module "Check for unknown parameters"..
The functions Template:Mvar and Template:Mvar are said to commute with each other if g ∘ f = f ∘ gScript error: No such module "Check for unknown parameters".. Commutativity is a special property, attained only by particular functions, and often in special circumstances. For example, Template:Abs + 3 = Template:AbsScript error: No such module "Check for unknown parameters". only when x ≥ 0Script error: No such module "Check for unknown parameters".. The picture shows another example.
The composition of one-to-one (injective) functions is always one-to-one. Similarly, the composition of onto (surjective) functions is always onto. It follows that the composition of two bijections is also a bijection. The inverse function of a composition (assumed invertible) has the property that (f ∘ g)−1 = g−1∘ f−1Script error: No such module "Check for unknown parameters"..[4]
Derivatives of compositions involving differentiable functions can be found using the chain rule. Higher derivatives of such functions are given by Faà di Bruno's formula.[3]
Composition of functions is sometimes described as a kind of multiplication on a function space, but has very different properties from pointwise multiplication of functions (e.g. composition is not commutative).[5]
Composition monoids
Script error: No such module "Labelled list hatnote". Suppose one has two (or more) functions f: X → X,Script error: No such module "Check for unknown parameters". g: X → XScript error: No such module "Check for unknown parameters". having the same domain and codomain; these are often called transformations. Then one can form chains of transformations composed together, such as f ∘ f ∘ g ∘ fScript error: No such module "Check for unknown parameters".. Such chains have the algebraic structure of a monoid, called a transformation monoid or (much more seldom) a composition monoid. In general, transformation monoids can have remarkably complicated structure. One particular notable example is the de Rham curve. The set of all functions f: X → XScript error: No such module "Check for unknown parameters". is called the full transformation semigroup[6] or symmetric semigroup[7] on Template:Mvar. (One can actually define two semigroups depending how one defines the semigroup operation as the left or right composition of functions.[8])
If the given transformations are bijective (and thus invertible), then the set of all possible combinations of these functions forms a transformation group (also known as a permutation group); and one says that the group is generated by these functions.
The set of all bijective functions f: X → XScript error: No such module "Check for unknown parameters". (called permutations) forms a group with respect to function composition. This is the symmetric group, also sometimes called the composition group. A fundamental result in group theory, Cayley's theorem, essentially says that any group is in fact just a subgroup of a symmetric group (up to isomorphism).[9]
In the symmetric semigroup (of all transformations) one also finds a weaker, non-unique notion of inverse (called a pseudoinverse) because the symmetric semigroup is a regular semigroup.[10]
Functional powers
Script error: No such module "Labelled list hatnote". If Y ⊆ XScript error: No such module "Check for unknown parameters"., then may compose with itself; this is sometimes denoted as . That is: Template:Block indent Template:Block indent Template:Block indent
More generally, for any natural number n ≥ 2Script error: No such module "Check for unknown parameters"., the Template:Mvarth functional power can be defined inductively by f n = f ∘ f n−1 = f n−1 ∘ fScript error: No such module "Check for unknown parameters"., a notation introduced by Hans Heinrich BürmannScript error: No such module "Unsubst".[11][12] and John Frederick William Herschel.[13][11][14][12] Repeated composition of such a function with itself is called function iteration.
- By convention, f 0Script error: No such module "Check for unknown parameters". is defined as the identity map on f Script error: No such module "Check for unknown parameters".'s domain, idXScript error: No such module "Check for unknown parameters"..
- If Y = XScript error: No such module "Check for unknown parameters". and f: X → XScript error: No such module "Check for unknown parameters". admits an inverse function f −1Script error: No such module "Check for unknown parameters"., negative functional powers f −nScript error: No such module "Check for unknown parameters". are defined for n > 0Script error: No such module "Check for unknown parameters". as the negated power of the inverse function: f −n = (f −1)nScript error: No such module "Check for unknown parameters"..[13][11][12]
Note: If Template:Mvar takes its values in a ring (in particular for real or complex-valued f Script error: No such module "Check for unknown parameters".), there is a risk of confusion, as f nScript error: No such module "Check for unknown parameters". could also stand for the Template:Mvar-fold product of Template:Mvar, e.g. f 2(x) = f(x) · f(x)Script error: No such module "Check for unknown parameters"..[12] For trigonometric functions, usually the latter is meant, at least for positive exponents.[12] For example, in trigonometry, this superscript notation represents standard exponentiation when used with trigonometric functions:
sin2(x) = sin(x) · sin(x)Script error: No such module "Check for unknown parameters"..
However, for negative exponents (especially −1), it nevertheless usually refers to the inverse function, e.g., tan−1 = arctan ≠ 1/tanScript error: No such module "Check for unknown parameters"..
In some cases, when, for a given function Template:Mvar, the equation g ∘ g = fScript error: No such module "Check for unknown parameters". has a unique solution Template:Mvar, that function can be defined as the functional square root of Template:Mvar, then written as g = f 1/2Script error: No such module "Check for unknown parameters"..
More generally, when gn = fScript error: No such module "Check for unknown parameters". has a unique solution for some natural number n > 0Script error: No such module "Check for unknown parameters"., then f m/nScript error: No such module "Check for unknown parameters". can be defined as gmScript error: No such module "Check for unknown parameters"..
Under additional restrictions, this idea can be generalized so that the iteration count becomes a continuous parameter; in this case, such a system is called a flow, specified through solutions of Schröder's equation. Iterated functions and flows occur naturally in the study of fractals and dynamical systems.
To avoid ambiguity, some mathematiciansScript error: No such module "Unsubst". choose to use ∘Script error: No such module "Check for unknown parameters". to denote the compositional meaning, writing fTemplate:I sup(x)Script error: No such module "Check for unknown parameters". for the Template:Mvar-th iterate of the function f(x)Script error: No such module "Check for unknown parameters"., as in, for example, fTemplate:I sup(x)Script error: No such module "Check for unknown parameters". meaning f(f(f(x)))Script error: No such module "Check for unknown parameters".. For the same purpose, fTemplate:I sup(x)Script error: No such module "Check for unknown parameters". was used by Benjamin Peirce[15][12] whereas Alfred Pringsheim and Jules Molk suggested Template:I supf(x)Script error: No such module "Check for unknown parameters". instead.[16][12][nb 2]
Alternative notations
Many mathematicians, particularly in group theory, omit the composition symbol, writing gfScript error: No such module "Check for unknown parameters". for g ∘ fScript error: No such module "Check for unknown parameters"..[17]
During the mid-20th century, some mathematicians adopted postfix notation, writing xf Script error: No such module "Check for unknown parameters". for f(x)Script error: No such module "Check for unknown parameters". and (xf)gScript error: No such module "Check for unknown parameters". for g(f(x))Script error: No such module "Check for unknown parameters"..[18] This can be more natural than prefix notation in many cases, such as in linear algebra when Template:Mvar is a row vector and Template:Mvar and Template:Mvar denote matrices and the composition is by matrix multiplication. The order is important because function composition is not necessarily commutative. Having successive transformations applying and composing to the right agrees with the left-to-right reading sequence.
Mathematicians who use postfix notation may write "fgScript error: No such module "Check for unknown parameters".", meaning first apply Template:Mvar and then apply Template:Mvar, in keeping with the order the symbols occur in postfix notation, thus making the notation "fgScript error: No such module "Check for unknown parameters"." ambiguous. Computer scientists may write "f ; gScript error: No such module "Check for unknown parameters"." for this,[19] thereby disambiguating the order of composition. To distinguish the left composition operator from a text semicolon, in the Z notation the ⨾ character is used for left relation composition.[20] Since all functions are binary relations, it is correct to use the [fat] semicolon for function composition as well (see the article on composition of relations for further details on this notation).
Composition operator
Script error: No such module "Labelled list hatnote". Given a function gScript error: No such module "Check for unknown parameters"., the composition operator CgScript error: No such module "Check for unknown parameters". is defined as that operator which maps functions to functions as Composition operators are studied in the field of operator theory.
In programming languages
Script error: No such module "Labelled list hatnote". Function composition appears in one form or another in numerous programming languages.
Multivariate functions
Partial composition is possible for multivariate functions. The function resulting when some argument xiScript error: No such module "Check for unknown parameters". of the function Template:Mvar is replaced by the function Template:Mvar is called a composition of Template:Mvar and Template:Mvar in some computer engineering contexts, and is denoted f |xi = gScript error: No such module "Check for unknown parameters".
When Template:Mvar is a simple constant Template:Mvar, composition degenerates into a (partial) valuation, whose result is also known as restriction or co-factor.[21]
In general, the composition of multivariate functions may involve several other functions as arguments, as in the definition of primitive recursive function. Given Template:Mvar, a Template:Mvar-ary function, and Template:Mvar Template:Mvar-ary functions g1, ..., gnScript error: No such module "Check for unknown parameters"., the composition of Template:Mvar with g1, ..., gnScript error: No such module "Check for unknown parameters"., is the Template:Mvar-ary function
This is sometimes called the generalized composite or superposition of f with g1, ..., gnScript error: No such module "Check for unknown parameters"..[22] The partial composition in only one argument mentioned previously can be instantiated from this more general scheme by setting all argument functions except one to be suitably chosen projection functions. Here g1, ..., gnScript error: No such module "Check for unknown parameters". can be seen as a single vector/tuple-valued function in this generalized scheme, in which case this is precisely the standard definition of function composition.[23]
A set of finitary operations on some base set X is called a clone if it contains all projections and is closed under generalized composition. A clone generally contains operations of various arities.[22] The notion of commutation also finds an interesting generalization in the multivariate case; a function f of arity n is said to commute with a function g of arity m if f is a homomorphism preserving g, and vice versa, that is:[22]
A unary operation always commutes with itself, but this is not necessarily the case for a binary (or higher arity) operation. A binary (or higher arity) operation that commutes with itself is called medial or entropic.[22]
Generalizations
Composition can be generalized to arbitrary binary relations. If R ⊆ X × YScript error: No such module "Check for unknown parameters". and S ⊆ Y × ZScript error: No such module "Check for unknown parameters". are two binary relations, then their composition amounts to
.
Considering a function as a special case of a binary relation (namely functional relations), function composition satisfies the definition for relation composition. A small circle R∘SScript error: No such module "Check for unknown parameters". has been used for the infix notation of composition of relations, as well as functions. When used to represent composition of functions however, the text sequence is reversed to illustrate the different operation sequences accordingly.
The composition is defined in the same way for partial functions and Cayley's theorem has its analogue called the Wagner–Preston theorem.[24]
The category of sets with functions as morphisms is the prototypical category. The axioms of a category are in fact inspired from the properties (and also the definition) of function composition.[25] The structures given by composition are axiomatized and generalized in category theory with the concept of morphism as the category-theoretical replacement of functions. The reversed order of composition in the formula (f ∘ g)−1 = (g−1 ∘ f −1)Script error: No such module "Check for unknown parameters". applies for composition of relations using converse relations, and thus in group theory. These structures form dagger categories.
The standard "foundation" for mathematics starts with sets and their elements. It is possible to start differently, by axiomatising not elements of sets but functions between sets. This can be done by using the language of categories and universal constructions.
. . . the membership relation for sets can often be replaced by the composition operation for functions. This leads to an alternative foundation for Mathematics upon categories -- specifically, on the category of all functions. Now much of Mathematics is dynamic, in that it deals with morphisms of an object into another object of the same kind. Such morphisms (like functions) form categories, and so the approach via categories fits well with the objective of organizing and understanding Mathematics. That, in truth, should be the goal of a proper philosophy of Mathematics.
Typography
The composition symbol ∘Script error: No such module "Check for unknown parameters". is encoded as Template:Unichar; see the Degree symbol article for similar-appearing Unicode characters. In TeX, it is written \circ.
See also
- Cobweb plot – a graphical technique for functional composition
- Combinatory logic
- Composition ring, a formal axiomatization of the composition operation
- Flow (mathematics)
- Function composition (computer science)
- Function of random variable, distribution of a function of a random variable
- Functional decomposition
- Functional square root
- Functional equation
- Higher-order function
- Infinite compositions of analytic functions
- Iterated function
- Lambda calculus
Notes
<templatestyles src="Reflist/styles.css" />
- ↑ The strict sense is used, e.g., in category theory, where a subset relation is modelled explicitly by an inclusion function.
- ↑ Alfred Pringsheim's and Jules Molk's (1907) notation Template:I supf(x)Script error: No such module "Check for unknown parameters". to denote function compositions must not be confused with Rudolf von Bitter Rucker's (1982) notation Template:I supxScript error: No such module "Check for unknown parameters"., introduced by Hans Maurer (1901) and Reuben Louis Goodstein (1947) for tetration, or with David Patterson Ellerman's (1995) Template:I supxScript error: No such module "Check for unknown parameters". pre-superscript notation for roots.
Script error: No such module "Check for unknown parameters".
References
<templatestyles src="Reflist/styles.css" />
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b c Script error: No such module "citation/CS1". [1] (NB. Inhere, Herschel refers to his Template:Citeref and mentions Hans Heinrich Bürmann's older work.)
- ↑ a b c d e f g Script error: No such module "citation/CS1". (xviii+367+1 pages including 1 addenda page) (NB. ISBN and link for reprint of 2nd edition by Cosimo, Inc., New York, USA, 2013.)
- ↑ a b Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1". (NB. This is the updated and free version of book originally published by Prentice Hall in 1990 as Template:Isbn.)
- ↑ ISO/IEC 13568:2002(E), p. 23
- ↑ Script error: No such module "Citation/CS1".
- ↑ a b c d Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
Script error: No such module "Check for unknown parameters".
External links
- Template:Springer
- "Composition of Functions" by Bruce Atwood, the Wolfram Demonstrations Project, 2007.