Function (mathematics): Difference between revisions

Content deleted Content added
No edit summary
m General properties: Fixed grammar
Tags: canned edit summary Mobile edit Mobile app edit Android app edit App section source
 
Line 1:
{{Short description|Association of one output to each input}}
[[Image:Function illustration.svg|right|thumb|A function i love blake to each element in the set ''X'' (an input) exactly one element in the set ''Y'' (the output). Two different elements in ''X'' can have the same output, and not every element in ''Y'' has to be an output.]]
{{redirect|f(x)|the musical group|f(x) (group)}}
[[Image:Graph of example function.svg|thumb|250px|right|Graph of example function,<br /> <math>\begin{align}&\scriptstyle f \colon [-1,1.5] \to [-1,1.5] \\ &\textstyle x \mapsto \frac{(4x^3-6x^2+1)\sqrt{x+1}}{3-x}\end{align}</math>]]
{{Functions}}
 
In [[mathematics]], a '''function''' from a [[set (mathematics)|set]] {{mvar|X}} to a set {{mvar|Y}} assigns to each element of {{mvar|X}} exactly one element of {{mvar|Y}}.<ref name=halmos>{{harvnb |Halmos |1970 |p=30}}; the words ''map'', ''mapping'', ''transformation'', ''correspondence'', and ''operator'' are sometimes used synonymously.</ref> The set {{mvar|X}} is called the [[Domain of a function|___domain]] of the function<ref>{{harvnb|Halmos|1970}}</ref> and the set {{mvar|Y}} is called the [[codomain]] of the function.<ref name=codomain>{{eom|title=Mapping|oldid=37940|mode=cs1}}</ref>
The [[mathematical]] concept of a '''function''' expresses the intuitive idea of deterministic dependence between two quantities, one of which is viewed as primary (the [[Dependent and independent variables | independent variable]], argument of the function, or its "input") and the other as secondary (the value of the function, or "output"). A function then is a way to associate a unique output for each input of a specified type, for example, a [[real number]] or an element of a given [[set]]. This definition covers most [[elementary functions]], maps between algebraic structures, such as [[group (mathematics)|groups]], and between geometric objects, such as [[manifold]]s.
 
Functions were originally the idealization of how a varying quantity depends on another quantity. For example, the position of a [[planet]] is a ''function'' of time. [[History of the function concept|Historically]], the concept was elaborated with the [[infinitesimal calculus]] at the end of the 17th century, and, until the 19th century, the functions that were considered were [[differentiable function|differentiable]] (that is, they had a high degree of regularity). The concept of a function was formalized at the end of the 19th century in terms of [[set theory]], and this greatly increased the possible applications of the concept.
One idea of enormous importance in all of mathematics is [[composition of functions]]: if ''z'' is a function of ''y'' and ''y'' is a function of ''x'', then ''z'' is a function of ''x''. We may describe it informally by saying that the composite function is obtained by feeding the output of the first function as the input into the second one. This feature of functions distinguishes them from other mathematical constructs, such as [[number]]s or [[shape|figure]]s, and provides the theory of functions with its most powerful structure.
 
A function is often denoted by a letter such as {{mvar|f}}, {{mvar|g}} or {{mvar|h}}. The value of a function {{mvar|f}} at an element {{mvar|x}} of its ___domain (that is, the element of the codomain that is associated with {{mvar|x}}) is denoted by {{math|''f''(''x'')}}; for example, the value of {{mvar|f}} at {{math|''x'' {{=}} 4}} is denoted by {{math|''f''(4)}}. Commonly, a specific function is defined by means of an [[expression (mathematics)|expression]] depending on {{mvar|x}}, such as <math>f(x)=x^2+1;</math> in this case, some computation, called '''{{vanchor|function evaluation}}''', may be needed for deducing the value of the function at a particular value; for example, if <math>f(x)=x^2+1,</math> then <math>f(4)=4^2+1=17.</math>
There are many ways to represent a function: by a [[formula]], by a plot or [[graph]], by an [[algorithm]] that computes it, by a description of its properties. Sometimes, a function is described through its relationship to other functions (see, for example, [[inverse function]]). In applied disciplines functions are frequently specified by their tables of values, or by a formula. Not all ways apply to every possible kind of function, and one has to make a firm distinction between the ''function'' itself and multiple ''ways of presenting'' or ''visualizing'' it.
 
Given its ___domain and its codomain, a function is uniquely represented by the set of all [[pair (mathematics)|pairs]] {{math|(''x'', ''f''{{hair space}}(''x''))}}, called the ''[[graph of a function|graph of the function]]'', a popular means of illustrating the function.<ref group="note">This definition of "graph" refers to a ''set'' of pairs of objects. Graphs, in the sense of ''diagrams'', are most applicable to functions from the real numbers to themselves. All functions can be described by sets of pairs but it may not be practical to construct a diagram for functions between other sets (such as sets of matrices).</ref><ref>{{Cite encyclopedia|title=function {{!}} Definition, Types, Examples, & Facts| url=https://www.britannica.com/science/function-mathematics|access-date=2020-08-17|encyclopedia=Encyclopædia Britannica|language=en}}</ref> When the ___domain and the codomain are sets of real numbers, each such pair may be thought of as the [[Cartesian coordinates]] of a point in the plane.
== Terminology, notation, and examples ==
 
Functions are widely used in [[science]], [[engineering]], and in most fields of mathematics. It has been said that functions are "the central objects of investigation" in most fields of mathematics.{{sfn |Spivak |2008 |p=39}}
Functions play a fundamental role in all areas of mathematics, as well as in other sciences and engineering. However, the intuition pertaining to functions, notation, and even the very meaning of the term "function" varies between the fields. More abstract areas of mathematics, such as [[set theory]], consider very general types of functions, which may not be specified by a concrete rule and are not governed by any familiar principles. The characteristic property of a function in the most abstract sense is that it relates exactly one output to each of its admissible inputs. Such functions need not involve numbers and may, for example, associate to each nation the name of its capital, as discussed below. Functions in [[algebra]] are usually expressible in terms of [[algebraic operation]]s. Functions studied in [[Mathematical analysis|analysis]], such as the [[exponential function]], usually have extra properties arising from continuity of space, but in the most general case cannot be defined by a single formula. [[Analytic function]]s in [[complex analysis]] may be defined fairly concretely through their [[series expansion]]s. On the other hand, in [[lambda calculus]], function is a primitive concept, instead of being defined in terms of set theory. In most mathematical fields, the terms ''[[map (mathematics)|map]]'', ''mapping'', and ''[[transformation (mathematics)|transformation]]'' are often synonymous with ''function''. However, in some contexts they may have a more specialized meaning. In particular, the term transformation usually applies to functions whose inputs and outputs are elements of the same set or more general structure. Thus, we speak of [[linear transformation]]s from a [[vector space]] into itself and of [[symmetry]] transformations of a geometric object or a pattern.
 
The concept of a function has evolved significantly over centuries, from its informal origins in ancient mathematics to its formalization in the 19th century. See [[History of the function concept]] for details.
Mathematical functions are frequently denoted by letters, and the standard notation for the output of a function ''f'' with the input ''x'' is ''f''(''x''). A function may be defined only for certain inputs, and the collection of all acceptable inputs of the function is called its [[___domain (mathematics)|___domain]]. The set of all resulting outputs is called the [[range (mathematics)|range]] of the function. However, in many fields, it is also important to specify the [[codomain]] of a function, which contains the range, but need not be equal to it. The distinction between range and codomain lets us ask whether the two happen to be equal, which in particular cases may be a question of some mathematical interest.
 
== Definition ==
For example, the expression ''f''(''x'') = ''x''<sup>2</sup> describes a function ''f'' of a variable ''x'',
which, depending on the context, may be an [[integer]], a [[real number|real]] or [[complex number|complex]] number or even an element of a [[group (mathematics)|group]]. Let us specify that ''x'' is an integer; then
this function relates each input, ''x'', with a single output, ''x''<sup>2</sup>, obtained from ''x'' by [[squaring]]. Thus, the input of 3 is related to the output of 9, the input of 1 to the output of 1, and the input of −2 to the output of 4, and we write ''f''(3) = 9, ''f''(1)=1, ''f''(−2)=4. Since every integer can be squared, the ___domain of this function consists of all integers, while its range is the set of [[perfect square]]s. If we choose integers as the codomain as well, we find that many numbers, such as 2, 3, and 6, are in the codomain but not the range.
 
[[File:Function machine2.svg|thumb|right|Schematic depiction of a function described metaphorically as a "machine" or "[[black box]]" that for each input yields a corresponding output]]
It is a usual practice in mathematics to introduce functions with temporary names like ''f''; in the next paragraph we might define ''f''(''x'')&nbsp;= 2''x''+1, and then ''f''(3)&nbsp;= 7. When a name for the function is not needed, often the form ''y''&nbsp;=&nbsp;''x''<sup>2</sup> is used.
[[Image:Example Function.png|thumb|right|The red curve is the [[graph of a function]], because any [[Vertical line test|vertical line]] has exactly one crossing point with the curve.]]
 
A '''function''' {{mvar|f}} from a [[set (mathematics)|set]] {{mvar|X}} to a set {{mvar|Y}} is an assignment of one element of {{mvar|Y}} to each element of {{mvar|X}}. The set {{mvar|X}} is called the [[Domain of a function|___domain]] of the function and the set {{mvar|Y}} is called the [[codomain]] of the function.
If we use a function often, we may give it a more permanent name as, for example,
:<math>\operatorname{Square}(x) = x^2 . \,\!</math>
 
If the element {{mvar|y}} in {{mvar|Y}} is assigned to {{mvar|x}} in {{mvar|X}} by the function {{mvar|f}}, one says that {{mvar|f}} ''maps'' {{mvar|x}} to {{mvar|y}}, and this is commonly written <math>y=f(x).</math> In this notation, {{mvar|x}} is the ''[[Argument of a function|argument]]'' or ''[[Variable (mathematics)|variable]]'' of the function.
The essential property of a function is that for each input there must be one unique output. Thus, for example, the formula
:<math>\operatorname{Root}(x) = \pm \sqrt x </math>
does not define a function of a positive real variable, because it assigns two outputs to each number: the square roots of 9 are 3 and −3. To make the square root a function, we must specify which square root to choose. The definition
:<math>\operatorname{Posroot}(x) = \sqrt x \,\!</math>
for any positive input chooses the positive square root as an output.
 
A specific element {{mvar|x}} of {{mvar|X}} is a ''value of the variable'', and the corresponding element of {{mvar|Y}} is the ''value of the function'' at {{mvar|x}}, or the [[Image (mathematics)|image]] of {{mvar|x}} under the function. The ''image of a function'', sometimes called its [[range of a function|range]], is the set of the images of all elements in the ___domain.<ref name="EOM Function"/><ref name="T&K Calc p.3">{{Taalman Kohn Calculus|p=3}}</ref><ref name="Trench RA pp.30-32">{{Trench Intro Real Analysis|pp=30–32}}</ref><ref name="TBB RA pp.A4-A5">{{Thomson Bruckner Bruckner Elementary Real Analysis|pp=A-4–A-5}}</ref>
A function need not involve numbers. An example of a function that does not use numbers is the function Capital_2007 that assigns to each nation its capital in 2007 (for instance at 00:01 on 1st January). In this case Capital_2007(''France'')&nbsp;= ''Paris''. The ___domain of this function is the set of world nations as of 2007, and its range is the set of world capitals. As another example, consider the function Area_of_a_triangle which is defined for all [[triangle]]s in the [[plane (geometry)|plane]] and whose value on a given triangle is its [[area of a triangle|area]]. The ___domain of this function is the set of all plane triangles and its range consists of positive real numbers.
 
A function {{mvar|f}}, its ___domain {{mvar|X}}, and its codomain {{mvar|Y}} are often specified by the notation <math>f: X\to Y.</math> One may write <math>x\mapsto y</math> instead of <math>y=f(x)</math>, where the symbol <math>\mapsto</math> (read '[[maps to]]') is used to specify where a particular element {{mvar|x}} in the ___domain is mapped to by {{mvar|f}}. This allows the definition of a function without naming. For example, the [[square function]] is the function <math>x\mapsto x^2.</math>
=== Abstract definition of a function ===
A fairly precise, but somewhat informal definition of a function follows. Let ''A'' and ''B'' be [[set (mathematics)|set]]s. A function from ''A'' to ''B'' is determined by any association of a unique element of ''B'' with each element of ''A''. The set ''A'' is called the ___domain of the function; the set ''B'' is called the [[codomain]].
 
The ___domain and codomain are not always explicitly given when a function is defined. In particular, it is common that one might only know, without some (possibly difficult) computation, that the ___domain of a specific function is contained in a larger set. For example, if <math>f:\R\to\R</math> is a [[real function]], the determination of the ___domain of the function <math>x\mapsto 1/f(x)</math> requires knowing the [[zero of a function|zeros]] of {{mvar|f.}} This is one of the reasons for which, in [[mathematical analysis]], "a function {{nowrap|from {{mvar|X}} to {{mvar|Y}} "}} may refer to a function having a proper subset of {{mvar|X}} as a ___domain.<ref group="note">The true ___domain of such a function is often called the ''___domain of definition'' of the function.</ref> For example, a "function from the reals to the reals" may refer to a [[real-valued function|real-valued]] function of a [[function of a real variable|real variable]] whose ___domain is a proper subset of the [[real number]]s, typically a subset that contains a non-empty [[open interval]]. Such a function is then called a [[partial function]].
=== Functions versus maps ===
A '''''map''''' is usually a (total) function as defined here, especially for authors using ''function'' as synonym for [[partial function]]s with a ___domain (''of definition'') not necessarily containing all points of the ''source'' or "departure set". (For them, ''f'':'''R'''&rarr;'''R'''; ''x''↦1/''x'' is a function with ___domain '''R'''\{0}.)
 
A function {{mvar|f}} on a set {{mvar|S}} means a function from the ___domain {{mvar|S}}, without specifying a codomain. However, some authors use it as shorthand for saying that the function is {{math|''f'' : ''S'' → ''S''}}.
==Mathematical definition of a function==
 
=== Formal definition ===
The informal idea of a function as a ''rule'' has been used since ancient times and is still used as the definition of a function in informal contexts such as introductory calculus textbooks. A typical example of this informal definition, as given by Tomas and Finney (1995), is that a function is a rule that assigns to each element of a set ''D'' a single element of set ''C''. This informal definition is sufficient for many purposes, but it relies on the undefined concept of a "rule". In the late 1800s, the question of what constitutes a valid rule defining a function came to the forefront (as described below). The consensus of modern mathematicians is that the word "rule" should be interpreted in the most general sense possible: as an arbitrary [[binary relation]].
 
[[file:Injection keine Injektion 2a.svg|thumb|Diagram of a function]]
Thus it is common in advanced mathematics (see Bartle (2001) for an example) to formally define a function ''f'' from a set ''D'' to a set ''C'' to be a set <math>G_f</math> of ordered pairs (''x'',''y'') in the [[Cartesian product]] <math>D \times C</math>. It is required that for each ''x'' in ''D'' there is at most one pair (''x'',''y'') in the set <math>G_f</math>. The "rule" of the function is: given ''x'' in ''D'', if there is a pair (''x'',''y'') in <math>G_f</math> then ''f''(''x'') = ''y'', and otherwise ''f''(''x'') is not defined. The set of ''x'' for which ''f'' is defined is called the '''[[Domain (mathematics)|___domain]]''' of ''f''; if the ___domain of ''f'' is all of ''D'' then ''f'' is called '''total''' and the notation <math>f\colon D \rightarrow C</math> is used. The set ''C'' is called the '''codomain''' of the function; this must be specified because it is not determined by <math>G_f</math>. The set <math>G_f</math> is called the '''graph''' of the function.
[[file:Injection keine Injektion 1.svg|thumb|Diagram of a relation that is not a function. One reason is that 2 is the first element in more than one ordered pair. Another reason is that neither 3 nor 4 are the first element (input) of any ordered pair.]]
 
The above definition of a function is essentially that of the founders of [[calculus]], [[Leibniz]], [[Isaac Newton|Newton]] and [[Euler]]. However, it cannot be [[formal proof|formalized]], since there is no mathematical definition of an "assignment". It is only at the end of the 19th century that the first formal definition of a function could be provided, in terms of [[set theory]]. This set-theoretic definition is based on the fact that a function establishes a ''relation'' between the elements of the ___domain and some (possibly all) elements of the codomain. Mathematically, a [[binary relation]] between two sets {{math|''X''}} and {{math|''Y''}} is a [[subset]] of the set of all [[ordered pair]]s <math>(x, y)</math> such that <math>x\in X</math> and <math>y\in Y.</math> The set of all these pairs is called the [[Cartesian product]] of {{math|''X''}} and {{math|''Y''}} and denoted <math>X\times Y.</math> Thus, the above definition may be formalized as follows.
In most areas of mathematics, the word function is used to mean total function, although non-total functions (called '''[[#Partial functions and multi-functions|partial functions]]''') are important in [[functional analysis]], [[mathematical logic]], and [[category theory]].
 
A ''function'' with ___domain {{math|''X''}} and codomain {{math|''Y''}} is a binary relation {{mvar|R}} between {{math|''X''}} and {{math|''Y''}} that satisfies the two following conditions:<ref>{{cite book | last=Halmos | first=Paul R. | title=Naive Set Theory | publisher=Springer | year=1974 | pages=30–33}}</ref>
Variations of this formal definition are sometimes more convenient for specific disciplines. In some contexts of [[category theory]], even if a function ''f'' from a set ''D'' is not defined for every element of ''D'', the set ''D'' is still called the ___domain of ''f''. In [[set theory]], it is common to identify the function ''f'' with its graph <math>G_f</math>; this identification removes the need to specify either ''D'' or ''C'' in the formal definition.
* For every <math>x</math> in <math>X</math> there exists <math>y</math> in <math>Y</math> such that <math>(x,y)\in R.</math>
* If <math>(x,y)\in R</math> and <math>(x,z)\in R,</math> then <math>y=z.</math>
 
This definition may be rewritten more formally, without referring explicitly to the concept of a relation, but using more notation (including [[set-builder notation]]):
==History of the concept==
 
A function is formed by three sets, the ''___domain'' <math>X,</math> the ''codomain'' <math>Y,</math> and the ''graph'' <math>R</math> that satisfy the three following conditions.
The history of the function concept in mathematics is described by da Ponte (1992).
*<math>R \subseteq \{(x,y) \mid x\in X, y\in Y\}</math>
As a mathematical term, "'''function'''" was coined by [[Gottfried Leibniz]] in [[1694]], to describe a quantity related to a [[curve]], such as a curve's [[slope]] at a specific [[Point (geometry)|point]]. The functions Leibniz considered are today called [[derivative|differentiable functions]], and they are the type of function most frequently encountered by nonmathematicians. For this type of function, one can talk about [[limit of a function|limit]]s and [[derivative]]s; both are measurements of the output or the change in the output as it depends on the input or the change in the input. Such functions are the basis of [[calculus]].
*<math>\forall x\in X, \exists y\in Y, \left(x, y\right) \in R \qquad</math>
*<math>(x,y)\in R \land (x,z)\in R \implies y=z\qquad</math>
 
=== Partial functions ===
The word function was later used by [[Leonhard Euler]] during the mid-[[18th century]] to describe an [[Expression (mathematics)|expression]] or formula involving various [[parameter|argument]]s, e.g. ''f''(''x'') = sin(''x'') + ''x''<sup>3</sup>.
{{main|Partial function}}
 
Partial functions are defined similarly to ordinary functions, with the "total" condition removed. That is, a ''partial function'' from {{mvar|X}} to {{mvar|Y}} is a binary relation {{mvar|R}} between {{mvar|X}} and {{mvar|Y}} such that, for every <math>x\in X,</math> there is ''at most one'' {{mvar|y}} in {{mvar|Y}} such that <math>(x,y) \in R.</math>
During the [[19th century]], mathematicians started to formalize all the different branches of mathematics. [[Karl Weierstrass|Weierstrass]] advocated building calculus on [[arithmetic]] rather than on [[geometry]], which favoured Euler's definition over Leibniz's (see [[arithmetization of analysis]]).
 
Using functional notation, this means that, given <math>x\in X,</math> either <math>f(x)</math> is in {{mvar|Y}}, or it is undefined.
At first, the idea of a function was rather limited. [[Joseph Fourier]], for example, claimed that every function had a [[Fourier series]], something no mathematician would claim today. By broadening the definition of functions, mathematicians were able to study "strange" mathematical objects such as continuous functions that are [[nowhere differentiable]]. These functions were first thought to be only theoretical curiosities, and they were collectively called "monsters" as late as the turn of the 20th century. However, powerful techniques from [[functional analysis]] have shown that these functions are in some sense "more common" than differentiable functions. Such functions have since been applied to the modeling of physical phenomena such as [[Brownian motion]].
 
The set of the elements of {{mvar|X}} such that <math>f(x)</math> is defined and belongs to {{mvar|Y}} is called the ''___domain of definition'' of the function. A partial function from {{mvar|X}} to {{mvar|Y}} is thus an ordinary function that has as its ___domain a subset of {{mvar|X}} called the ___domain of definition of the function. If the ___domain of definition equals {{mvar|X}}, one often says that the partial function is a ''total function''.
Towards the end of the 19th century, mathematicians started to formalize all of mathematics using [[axiomatic set theory|set theory]], and they sought to define every mathematical object as a [[set]]. [[Johann Peter Gustav Lejeune Dirichlet|Dirichlet]] and [[Nikolai Ivanovich Lobachevsky|Lobachevsky]] independently and almost simultaneously gave the modern "formal" definition of function.
In this definition, a function is a special case of a [[mathematical relation|relation]], in particular a function is a relation in which every first element has a unique second element.
 
In several areas of mathematics, the term "function" refers to partial functions rather than to ordinary (total) functions. This is typically the case when functions may be specified in a way that makes difficult or even impossible to determine their ___domain.
Hardy (1908, pp. 26&ndash;28) defined a function as a relation between two variables ''x'' and ''y'' such that "to some values of ''x'' at any rate correspond values of ''y''." He neither required the function to be defined for all values of ''x'' nor to associate each value of ''x'' to a single value of ''y''. This broad definition of a function encompasses more relations than are ordinarily considered functions in contemporary mathematics.
 
In [[calculus]], a ''real-valued function of a real variable'' or ''[[real function]]'' is a partial function from the set <math>\R</math> of the [[real number]]s to itself. Given a real function <math>f:x\mapsto f(x)</math> its [[multiplicative inverse]] <math>x\mapsto 1/f(x)</math> is also a real function. The determination of the ___domain of definition of a multiplicative inverse of a (partial) function amounts to compute the [[zero of a function|zeros]] of the function, the values where the function is defined but not its multiplicative inverse.
The notion of a function as a rule for [[computing]], rather than a special kind of relation, has been studied extensively in [[mathematical logic]] and [[theoretical computer science]]. Models for these [[computable function]]s include the [[lambda calculus]], the [[mu-recursive function|μ-recursive functions]] and [[Turing machine]]s.
 
Similarly, a ''[[function of a complex variable]]'' is generally a partial function whose ___domain of definition is a subset of the [[complex number]]s <math>\Complex</math>. The difficulty of determining the ___domain of definition of a [[complex function]] is illustrated by the multiplicative inverse of the [[Riemann zeta function]]: the determination of the ___domain of definition of the function <math>z\mapsto 1/\zeta(z)</math> is more or less equivalent to the proof or disproof of one of the major open problems in mathematics, the [[Riemann hypothesis]].
==Functions in other fields==
Functions are used in every quantitative [[science]], to model relationships between all kinds of physical quantities — especially when one quantity is completely determined by another quantity. Thus, for example, one may use a function to describe how the [[temperature]] of water affects its [[density]].
 
In [[computability theory]], a [[general recursive function]] is a partial function from the integers to the integers whose values can be computed by an [[algorithm]] (roughly speaking). The ___domain of definition of such a function is the set of inputs for which the algorithm does not run forever. A fundamental theorem of computability theory is that there cannot exist an algorithm that takes an arbitrary general recursive function as input and tests whether {{math|0}} belongs to its ___domain of definition (see [[Halting problem]]).
Functions are also used in [[computer science]] to model [[data structure]]s and the effects of [[algorithm]]s. However, the word is also used in computing in the very different sense of ''procedure'' or ''sub-routine''; see [[function (computer science)]].
 
=== Multivariate functions <span class="anchor" id="MULTIVARIATE_FUNCTION"></span> ===
==The vocabulary of functions==
{{distinguish|Multivalued function}}
A specific input in a function is called an '''argument''' of the function. For each argument value ''x'', the corresponding unique ''y'' in the codomain is called the function '''value''' at ''x'', or the '''[[image (mathematics)|image]]''' of ''x'' '''under''' ''f''. The image of ''x'' may be written as ''f''(''x'') or as ''y''. (See the section on [[#Notation|notation]].)
[[File:Binary operations as black box.svg|thumb|A binary operation is a typical example of a bivariate function which assigns to each pair <math>(x, y)</math> the result <math>x\circ y</math>.]]
 
A '''multivariate function''', '''multivariable function''', or '''function of several variables''' is a function that depends on several arguments. Such functions are commonly encountered. For example, the position of a car on a road is a function of the time travelled and its average speed.
The [[graph of a function]] ''f'' is the set of all [[ordered pair]]s (''x'', ''f''(''x'')), for all ''x'' in the ___domain ''X''. If ''X'' and ''Y'' are subsets of '''R''', the real numbers, then this definition coincides with the familiar sense of "graph" as a picture or plot of the function, with the ordered pairs being the [[Cartesian coordinates]] of points.
 
Formally, a function of {{mvar|n}} variables is a function whose ___domain is a set of {{mvar|n}}-tuples.<ref group=note>{{mvar|n}} may also be 1, thus subsuming functions as defined above. For {{math|1=''n'' = 0}}, each [[constant (mathematics)|constant]] is a special case of a multivariate function, too.</ref> For example, multiplication of [[integer]]s is a function of two variables, or '''bivariate function''', whose ___domain is the set of all [[ordered pairs]] (2-tuples) of integers, and whose codomain is the set of integers. The same is true for every [[binary operation]]. The graph of a bivariate surface over a two-dimensional real ___domain may be interpreted as defining a [[Surface (mathematics)#Graph of a bivariate function|parametric surface]], as used in, e.g., [[bivariate interpolation]].
The concept of the ''image'' can be extended from the image of a point to the image of a [[set]]. If ''A'' is any subset of the ___domain, then ''f''(''A'') is the subset of the range consisting of all images of elements of A. We say the ''f''(''A'') is the '''image''' of A under f.
 
Commonly, an {{mvar|n}}-tuple is denoted enclosed between parentheses, such as in <math>(1,2,\ldots, n).</math> When using [[functional notation]], one usually omits the parentheses surrounding tuples, writing <math>f(x_1,\ldots,x_n)</math> instead of <math>f((x_1,\ldots,x_n)).</math>
Notice that the range of ''f'' is the image ''f''(''X'') of its ___domain, and that the range of ''f'' is a subset of its codomain.
 
Given {{mvar|n}} sets <math>X_1,\ldots, X_n,</math> the set of all {{mvar|n}}-tuples <math>(x_1,\ldots,x_n)</math> such that <math>x_1\in X_1, \ldots, x_n\in X_n</math> is called the [[Cartesian product]] of <math>X_1,\ldots, X_n,</math> and denoted <math>X_1\times\cdots\times X_n.</math>
The ''[[preimage]]'' (or ''inverse image'') of a subset ''B'' of the codomain ''Y'' under a function ''f'' is the subset of the ___domain ''X'' defined by
:<math>f^{-1}(B) = \{x \in X : f(x) \in B\}</math>
So, for example, the preimage of {4, 9} under the squaring function is the set {−3,−2,+2,+3}.
 
Therefore, a multivariate function is a function that has a Cartesian product or a [[proper subset]] of a Cartesian product as a ___domain.
In general, the preimage of a [[singleton]] set (a set with exactly one element) may contain any number of elements. For example, if ''f''(''x'') = 7, then the preimage of {5} is the empty set but the preimage of {7} is the entire ___domain. Thus the preimage of an element in the codomain is a subset of the ___domain. The usual convention about the preimage of an element is that ''f''<sup>&nbsp;&minus;1</sup>(''b'') means ''f''<sup>&nbsp;&minus;1</sup>({''b''}), i.e
:<math>f^{-1}(b) = \{x \in X : f(x) = b\}</math>
 
<math display="block">f: U\to Y,</math>
Three important kinds of function are the '''[[injective function|injection]]s''' (or '''one-to-one functions'''), which have the property that if ''f''(''a'') = ''f''(''b'') then ''a'' must equal ''b''; the '''[[surjection]]s''' (or '''onto functions'''), which have the property that for every ''y'' in the codomain there is an ''x'' in the ___domain such that ''f''(''x'') = ''y''; and the '''[[bijection]]s''', which are both one-to-one and onto. This nomenclature was introduced by the [[Nicolas Bourbaki|Bourbaki group]].
 
where the ___domain {{mvar|U}} has the form
When the first definition of function given above is used, since the codomain is not defined, the "surjection" must be accompanied with a statement about the set the function maps onto. For example, we might say ''f'' maps onto the set of all real numbers.
 
<math display="block">U\subseteq X_1\times\cdots\times X_n.</math>
The [[function composition]] of two or more functions uses the output of one function as the input of another. For example, ''f''(''x'') = ''sin''(''x<sup>2</sup>'') is the composition of the sine function and the squaring function. The functions ''f'':&nbsp;''X''&nbsp;→&nbsp;''Y'' and ''g'':&nbsp;''Y''&nbsp;→&nbsp;''Z'' can be ''composed'' by first applying ''f'' to an argument ''x'' to obtain ''y'' = ''f''(''x'') and then applying ''g'' to ''y'' to obtain ''z'' = ''g''(''y''). The composite function formed in this way from general ''f'' and ''g'' may be written
: <math>g\circ f\colon X \to Z \,\! </math>
: <math> x \mapsto g(f(x)) \,\! </math>
The function on the right acts first and the function on the left acts second, reversing English reading order; we remember the order by reading the notation as "''g'' of ''f''".
 
If all the <math>X_i</math> are equal to the set <math>\R</math> of the [[real number]]s or to the set <math>\C</math> of the [[complex number]]s, one talks respectively of a [[function of several real variables]] or of a [[function of several complex variables]].
Informally, the '''[[inverse function|inverse]]''' of a function ''f'' is one that "undoes" the effect of ''f'', by taking each function value ''f''(''x'') to its argument ''x''. The squaring function is the inverse of the non-negative square root function. Formally, since every function ''f'' is a relation, its inverse ''f''<sup>&minus;1</sup> is just the inverse relation. That is, if ''f'' has ___domain ''X'', codomain ''Y'', and graph ''G'', the inverse has ___domain ''Y'', codomain ''X'', and graph
 
== Notation ==
:<math>G^{-1} = \{ (y, x) : (x, y) \in G \}</math>
 
There are various standard ways for denoting functions. The most commonly used notation is functional notation, which is the first notation described below.
For example, if the graph of ''f'' is ''G'' = {(1,5), (2,4), (3,5)}, then the graph of ''f''<sup>&minus;1</sup> is ''G''<sup>&minus;1</sup> = {(5,1), (4,2), (5,3)}.
 
=== Functional notation ===
The relation ''f''<sup>&minus;1</sup> is a function if and only if for each ''y'' in the codomain there is exactly one argument ''x'' such that ''f''(''x'') = ''y''; in other words, the inverse of a function ''f'' is a function if and only if ''f'' is a bijection. In that case, ''f''<sup>&minus;1</sup>(''f''(''x'')) = ''x'' for every ''x'' in ''X'', and ''f''(''f''<sup>&minus;1</sup>(''y'')) = ''y'' for any ''y'' in ''Y''. Sometimes a function can be modified, often by replacing the ___domain with a subset of the ___domain, and making corresponding changes in the codomain and graph, so that the modified function has an inverse that is a function.
The functional notation requires that a name is given to the function, which, in the case of a unspecified function is often the letter {{mvar|f}}. Then, the application of the function to an argument is denoted by its name followed by its argument (or, in the case of a multivariate functions, its arguments) enclosed between parentheses, such as in
 
<math display="block">f(x), \quad \sin(3),\quad \text{or}\quad f(x^2+1).</math>
For example, the inverse of ''y'' = ''sin''(''x''), ''f''(''x'') = ''arcsin'' (''x''), defined by ''y'' = ''arcsin'' (''x'') if and only if ''x'' = ''sin''(''y''), is not a function, because its graph contains both the ordered pair (0, 0) and the ordered pair (0, 2π). But if we change the ___domain of ''y'' = ''sin''(''x'') to −π/2&nbsp;≤&nbsp;''x''&nbsp;≤&nbsp;π/2 and change the codomain to −1&nbsp;≤&nbsp;''y''&nbsp;≤&nbsp;1, then the resulting function does have an inverse, denoted with a capital letter A, ''f''(''x'') = ''Arcsin'' (''x'').
 
The argument between the parentheses may be a [[variable (mathematics)|variable]], often {{mvar|x}}, that represents an arbitrary element of the ___domain of the function, a specific element of the ___domain ({{math|3}} in the above example), or an [[expression (mathematics)|expression]] that can be evaluated to an element of the ___domain (<math>x^2+1</math> in the above example). The use of a unspecified variable between parentheses is useful for defining a function explicitly such as in "let <math>f(x)=\sin(x^2+1)</math>".
This does not work with every function, however, and inverses are sometimes difficult or impossible to find.
 
When the symbol denoting the function consists of several characters and no ambiguity may arise, the parentheses of functional notation might be omitted. For example, it is common to write {{math|sin ''x''}} instead of {{math|sin(''x'')}}.
==Specifying a function==
If the ___domain ''X'' is finite, a function ''f'' may be defined by simply tabulating all the arguments ''x'' and their corresponding function values ''f''(''x'').
 
Functional notation was first used by [[Leonhard Euler]] in 1734.<ref>{{cite book|first1=Ron|last1=Larson|first2=Bruce H.|last2=Edwards|title=Calculus of a Single Variable|page=19|year=2010|publisher=Cengage Learning|isbn=978-0-538-73552-0}}</ref> Some widely used functions are represented by a symbol consisting of several letters (usually two or three, generally an abbreviation of their name). In this case, a [[roman type]] is customarily used instead, such as "{{math|sin}}" for the [[sine function]], in contrast to italic font for single-letter symbols.
More commonly, a function is defined by a [[formula]], or more generally an [[algorithm]] — that is, a recipe that tells how to compute the value of ''f''(''x'') given any ''x'' in the ___domain. More generally, a function can be defined by any mathematical condition relating the argument to the corresponding value. There are many other ways of defining functions. Examples include [[recursion]], algebraic or [[analytic function|analytic]] [[closure (mathematics)|closure]], [[limit (mathematics)|limits]], [[analytic continuation]], infinite [[series (mathematics)|series]], and as solutions to [[integral equation|integral]] and [[differential equation]]s.
 
The functional notation is often used colloquially for referring to a function and simultaneously naming its argument, such as in "let <math>f(x)</math> be a function". This is an [[abuse of notation]] that is useful for a simpler formulation.
There is a technical sense in which most mathematical functions cannot be defined at all, in any effective way, explicit or implicit. A fundamental result of [[computability theory]] says that there are functions that can be precisely defined which cannot be computed.
 
=== Arrow notation ===
==Notation==
Arrow notation defines the rule of a function inline, without requiring a name to be given to the function. It uses the ↦ arrow symbol, read as "[[maps to]]". For example, <math>x\mapsto x+1</math> is the function which takes a real number as input and outputs that number plus 1. Again, a ___domain and codomain of <math>\R</math> is implied.
It is common to omit the parentheses around the argument when there is little chance of ambiguity, thus: sin&nbsp;''x''. In some formal settings, use of [[reverse Polish notation]], ''x''&nbsp;''f'', eliminates the need for any parentheses; and, for example, the [[factorial]] function is always written ''n''!, even though its generalization, the [[gamma function]], is written &Gamma;(''n'').
 
The ___domain and codomain can also be explicitly stated, for example:
Formal description of a function typically involves the function's name, its ___domain, its codomain, and a rule of correspondence. Thus we frequently see a two-part notation, an example being
: <math> f\colon \mathbb{N} \to \mathbb{R} \,\! </math>
: <math> n \mapsto \frac{n}{\pi} \,\! </math>
Here the function named "''f''" has the [[natural number]]s as ___domain, the [[real number]]s as codomain, and maps ''n'' to itself divided by π. Less formally, this long form might be abbreviated
: <math> f(n) = \frac{n}{\pi} , \,\! </math>
though with some loss of information; we no longer are explicitly given the ___domain and codomain. Even the long form here abbreviates the fact that the ''n'' on the right-hand side is silently treated as a real number using the standard embedding.
 
<math display="block">\begin{align}
An alternative to the colon notation, convenient when functions are being composed, writes the function name above the arrow. For example, if ''f'' is followed by ''g'', where ''g'' produces the [[complex number]] ''e''<sup>'''i'''''x''</sup>, we may write
\operatorname{sqr}\colon \Z &\to \Z\\
: <math> \mathbb{N} \xrightarrow{f} \mathbb{R} \xrightarrow{g} \mathbb{C} . \,\! </math>
x &\mapsto x^2.\end{align}</math>
A more elaborate form of this is the [[commutative diagram]].
 
This defines a function {{math|sqr}} from the integers to the integers that returns the square of its input.
Use of ''f''(''A'') to denote the image of a subset ''A''&sube;''X'' is consistent as long as no subset of the ___domain is also an element of the ___domain. In some fields (e.g. in set theory, where [[ordinal]]s are also sets of ordinals) it is convenient or even necessary to distinguish the two concepts; the customary notation is ''f''[''A''] for the set { ''f''(''x''): x &isin; ''A'' }; some authors write ''f''`''x'' instead of ''f''(''x''), and ''f''``''A'' instead of ''f''[''A''].
 
As a common application of the arrow notation, suppose <math>f: X\times X\to Y;\;(x,t) \mapsto f(x,t)</math> is a function in two variables, and we want to refer to a [[Partial application|partially applied function]] <math>X\to Y</math> produced by fixing the second argument to the value {{math|''t''<sub>0</sub>}} without introducing a new function name. The map in question could be denoted <math>x\mapsto f(x,t_0)</math> using the arrow notation. The expression <math>x\mapsto f(x,t_0)</math> (read: "the map taking {{mvar|x}} to {{mvar|f}} of {{mvar|x}} comma {{mvar|t}} nought") represents this new function with just one argument, whereas the expression {{math|''f''(''x''<sub>0</sub>, ''t''<sub>0</sub>)}} refers to the value of the function {{mvar|f}} at the {{nowrap|point {{math|(''x''<sub>0</sub>, ''t''<sub>0</sub>)}}.}}
==Functions with multiple inputs and outputs==
===Functions of two (or more) variables===
The concept of function can be extended to an object that takes a combination of two (or more) argument values to a single result. This intuitive concept is formalized by a function whose ___domain is the [[Cartesian product]] of two or more sets.
 
=== Index notation ===
For example, consider the [[multiplication]] function that associates two [[integer]]s to their product: ''f''(''x'', ''y'') = ''x''·''y''. This function can be defined formally as having ___domain '''Z'''&times;'''Z''' , the set of all integer pairs; codomain '''Z'''; and, for graph, the set of all pairs ((''x'',''y''), ''x''·''y''). Note that the first component of any such pair is itself a pair (of integers), while the second component is a single integer.
 
Index notation may be used instead of functional notation. That is, instead of writing {{math|''f''{{hair space}}(''x'')}}, one writes <math>f_x.</math>
The function value of the pair (''x'',''y'') is ''f''((''x'',''y'')). However, it is customary to drop one set of parentheses and consider ''f''(''x'',''y'') a '''function of two variables''', ''x'' and ''y''.
 
This is typically the case for functions whose ___domain is the set of the [[natural number]]s. Such a function is called a [[sequence (mathematics)|sequence]], and, in this case the element <math>f_n</math> is called the {{mvar|n}}th element of the sequence.
===Functions with output in a product set===
The concept can still further be extended by considering a function that also produces output that is expressed as several variables. For example consider the function mirror(''x'', ''y'') = (''y'', ''x'') with ___domain '''R'''&times;'''R''' and codomain '''R'''&times;'''R''' as well. The pair (''y'', ''x'') is a single value in the codomain seen as a set.
 
The index notation can also be used for distinguishing some variables called ''[[Parameter (mathematics)|parameter]]s'' from the "true variables". In fact, parameters are specific variables that are considered as being fixed during the study of a problem. For example, the map <math>x\mapsto f(x,t)</math> (see above) would be denoted <math>f_t</math> using index notation, if we define the collection of maps <math>f_t</math> by the formula <math>f_t(x)=f(x,t)</math> for all <math>x,t\in X</math>.
===Binary operations===
The familiar [[binary operation]]s of [[arithmetic]], [[addition]] and [[multiplication]], can be viewed as functions from '''R'''&times;'''R''' to '''R'''. This view is generalized in [[abstract algebra]], where ''n''-ary functions are used to model the operations of arbitrary algebraic structures. For example, an abstract [[group (mathematics)|group]] is defined as a set ''X'' and a function ''f'' from ''X''&times;''X'' to ''X'' that satisfies certain properties.
 
=== Dot notation ===
Traditionally, addition and multiplication are written in the [[infix]] notation: ''x''+''y'' and ''x''&times;''y'' instead of +(''x'', ''y'') and &times;(''x'', ''y'').
 
In the notation
==Set of all functions==
<math>x\mapsto f(x),</math>
The set of all functions from a set ''X'' to a set ''Y'' is denoted by ''X'' → ''Y'', by [''X'' → ''Y''], or by ''Y''<sup>''X''</sup>. The latter notation is justified by the fact that |''Y''<sup>''X''</sup>| = |''Y''|<sup>|''X''|</sup> and is an example of [[combinatorics#Set sizes motivate a naming convention|the convention from enumerative combinatorics]] that provides notations for sets based on their cardinalities.
the symbol {{mvar|x}} does not represent any value; it is simply a [[placeholder name|placeholder]], meaning that, if {{mvar|x}} is replaced by any value on the left of the arrow, it should be replaced by the same value on the right of the arrow. Therefore, {{mvar|x}} may be replaced by any symbol, often an [[interpunct]] "{{math| ⋅ }}". This may be useful for distinguishing the function {{math|''f''{{hair space}}(⋅)}} from its value {{math|''f''{{hair space}}(''x'')}} at {{mvar|x}}.
 
For example, <math> a(\cdot)^2</math> may stand for the function <math> x\mapsto ax^2</math>, and <math display="inline"> \int_a^{\, (\cdot)} f(u)\,du</math> may stand for a function defined by an [[integral]] with variable upper bound: <math display="inline"> x\mapsto \int_a^x f(u)\,du</math>.
See the article on [[cardinal number]]s for more details.
 
=== Specialized notations ===
It is traditional to write ''f'': ''X'' → ''Y'' to mean ''f'' ∈ [''X'' → ''Y'']; that is, "''f'' is a function from ''X'' to ''Y''". This statement is sometimes read "''f'' is a ''Y''-valued function of an ''X''-valued variable". One often writes informally "Let ''f'': ''X'' → ''Y''" to mean "Let ''f'' be a function from ''X'' to ''Y''".
There are other, specialized notations for functions in sub-disciplines of mathematics. For example, in [[linear algebra]] and [[functional analysis]], [[linear form]]s and the [[Vector (mathematics and physics)|vectors]] they act upon are denoted using a [[dual pair]] to show the underlying [[Duality (mathematics)|duality]]. This is similar to the use of [[bra–ket notation]] in quantum mechanics. In [[Mathematical logic|logic]] and the [[theory of computation]], the function notation of [[lambda calculus]] is used to explicitly express the basic notions of function [[Abstraction (computer science)|abstraction]] and [[Function application|application]]. In [[category theory]] and [[homological algebra]], networks of functions are described in terms of how they and their compositions [[Commutative property|commute]] with each other using [[commutative diagram]]s that extend and generalize the arrow notation for functions described above.
 
==Is=Functions a functionof more than itsone graph?variable===
In some cases the argument of a function may be an ordered pair of elements taken from some set or sets. For example, a function {{mvar|f}} can be defined as mapping any pair of real numbers <math>(x, y)</math> to the sum of their squares, <math>x^2 + y^2</math>. Such a function is commonly written as <math>f(x, y)=x^2 + y^2</math> and referred to as "a function of two variables". Likewise one can have a function of three or more variables, with notations such as <math>f(w,x, y)</math>, <math>f(w,x, y, z)</math>.
Some mathematicians define a binary relation (and hence a function) as an [[tuple|ordered triple]] (''X'', ''Y'', ''G''), where ''X'' and ''Y'' are the ___domain and codomain sets, and ''G'' is the graph of ''f''. However, other mathematicians define a relation as being simply the set of pairs ''G'', without explicitly giving the ___domain and co-___domain.
 
== Other terms ==
There are advantages and disadvantages to each definition, but either of them is satisfactory for most uses of functions in mathematics. The explicit ___domain and codomain are important mostly in formal contexts, such as [[category theory]].
{{broader|Map (mathematics)}}
 
{| class="wikitable floatright" style= "width: 50%"
==Partial functions and multi-functions==
!Term
The condition for a binary relation ''f'' from ''X'' to ''Y'' to be a function can be split into two conditions:
!Distinction from "function"
# ''f'' is ''total'', or ''entire'': for each ''x'' in ''X'', there exists some ''y'' in ''Y'' such that ''x'' is related to ''y''.
|-
# ''f'' is ''single-valued'': for each ''x'' in ''X'', there is at most one ''y'' in ''Y'' such that ''x'' is related to ''y''.
| rowspan="3" |[[Map (mathematics)|Map/Mapping]]
|None; the terms are synonymous.<ref>{{Cite web|url=http://mathworld.wolfram.com/Map.html|title=Map|last=Weisstein|first=Eric W.|website=Wolfram MathWorld|language=en|access-date=2019-06-12}}</ref>
|-
|A map can have ''any set'' as its codomain, while, in some contexts, typically in older books, the codomain of a function is specifically the set of [[real number|real]] or [[complex number|complex]] numbers.<ref name=Lang87p43>{{cite book |last=Lang |first=Serge |title=Linear Algebra |chapter=III §1. Mappings |chapter-url={{GBurl|0DUXym7QWfYC|p=43}} |publisher=Springer |date=1987 |isbn=978-0-387-96412-6 |edition=3rd |page=43 |quote=A function is a special type of mapping, namely it is a mapping from a set into the set of numbers, i.e. into, '''R''', or '''C''' or into a field ''K''.}}</ref>
|-
|Alternatively, a map is associated with a ''special structure'' (e.g. by explicitly specifying a structured codomain in its definition). For example, a [[linear map]].<ref name=Apostol81p35/>
|-
|[[Homomorphism]]
|A function between two [[structure (mathematics)|structures]] of the same type that preserves the operations of the structure (e.g. a [[group homomorphism]]).<ref>{{Cite book |last1=James |first1=Robert C. |author-link1=Robert C. James |title=Mathematics dictionary |last2=James |first2=Glenn |date=1992 |publisher=Van Nostrand Reinhold |isbn=0-442-00741-8 |edition=5th |page=202 |oclc=25409557}}</ref>
|-
|[[Morphism]]
|A generalisation of homomorphisms to any [[Category (mathematics)|category]], even when the objects of the category are not sets (for example, a [[group (mathematics)|group]] defines a category with only one object, which has the elements of the group as morphisms; see {{slink|Category (mathematics)|Examples}} for this example and other similar ones).<ref>{{harvnb|James|James|1992|p=48}}</ref>
|}
 
A function may also be called a '''map''' or a '''mapping''', but some authors make a distinction between the term "map" and "function". For example, the term "map" is often reserved for a "function" with some sort of special structure (e.g. [[maps of manifolds]]). In particular ''map'' may be used in place of ''homomorphism'' for the sake of succinctness (e.g., [[linear map]] or ''map from {{mvar|G}} to {{mvar|H}}'' instead of ''[[group homomorphism]] from {{mvar|G}} to {{mvar|H}}''). Some authors<ref name=Apostol81p35>{{cite book |first=T. M. |last=Apostol |title=Mathematical Analysis|year=1981 |publisher=Addison-Wesley |page=35 |isbn=978-0-201-00288-1 |oclc=928947543 |edition=2nd}}</ref> reserve the word ''mapping'' for the case where the structure of the codomain belongs explicitly to the definition of the function.
 
Some authors, such as [[Serge Lang]],<ref name=Lang87p43/> use "function" only to refer to maps for which the [[codomain]] is a subset of the [[real number|real]] or [[complex number|complex]] numbers, and use the term ''mapping'' for more general functions.
 
In the theory of [[dynamical system]]s, a map denotes an [[Discrete-time dynamical system|evolution function]] used to create [[Dynamical system#Maps|discrete dynamical systems]]. See also [[Poincaré map]].
 
Whichever definition of ''map'' is used, related terms like ''[[Domain of a function|___domain]]'', ''[[codomain]]'', ''[[Injective function|injective]]'', ''[[Continuous function|continuous]]'' have the same meaning as for a function.
 
== Specifying a function ==
Given a function <math>f</math>, by definition, to each element <math>x</math> of the ___domain of the function <math>f</math>, there is a unique element associated to it, the value <math>f(x)</math> of <math>f</math> at <math>x</math>. There are several ways to specify or describe how <math>x</math> is related to <math>f(x)</math>, both explicitly and implicitly. Sometimes, a theorem or an [[axiom]] asserts the existence of a function having some properties, without describing it more precisely. Often, the specification or description is referred to as the definition of the function <math>f</math>.
 
=== By listing function values ===
On a finite set a function may be defined by listing the elements of the codomain that are associated to the elements of the ___domain. For example, if <math>A = \{ 1, 2, 3 \}</math>, then one can define a function <math>f: A \to \mathbb{R}</math> by <math>f(1) = 2, f(2) = 3, f(3) = 4.</math>
 
=== By a formula ===
Functions are often defined by an [[expression (mathematics)|expression]] that describes a combination of [[arithmetic operations]] and previously defined functions; such a formula allows computing the value of the function from the value of any element of the ___domain.
For example, in the above example, <math>f</math> can be defined by the formula <math>f(n) = n+1</math>, for <math>n\in\{1,2,3\}</math>.
 
When a function is defined this way, the determination of its ___domain is sometimes difficult. If the formula that defines the function contains divisions, the values of the variable for which a denominator is zero must be excluded from the ___domain; thus, for a complicated function, the determination of the ___domain passes through the computation of the [[zero of a function|zeros]] of auxiliary functions. Similarly, if [[square root]]s occur in the definition of a function from <math>\mathbb{R}</math> to <math>\mathbb{R},</math> the ___domain is included in the set of the values of the variable for which the arguments of the square roots are nonnegative.
 
For example, <math>f(x)=\sqrt{1+x^2}</math> defines a function <math>f: \mathbb{R} \to \mathbb{R}</math> whose ___domain is <math>\mathbb{R},</math> because <math>1+x^2</math> is always positive if {{mvar|x}} is a real number. On the other hand, <math>f(x)=\sqrt{1-x^2}</math> defines a function from the reals to the reals whose ___domain is reduced to the interval {{closed-closed|−1, 1}}. (In old texts, such a ___domain was called the ''___domain of definition'' of the function.)
 
Functions can be classified by the nature of formulas that define them:
* A [[quadratic function]] is a function that may be written <math>f(x) = ax^2+bx+c,</math> where {{math|''a'', ''b'', ''c''}} are [[constant (mathematics)|constants]].
* More generally, a [[polynomial function]] is a function that can be defined by a formula involving only additions, subtractions, multiplications, and [[exponentiation]] to nonnegative integer powers. For example, <math>f(x) = x^3-3x-1</math> and <math>f(x) = (x-1)(x^3+1) +2x^2 -1</math> are polynomial functions of <math>x</math>.
* A [[rational function]] is the same, with divisions also allowed, such as <math>f(x) = \frac{x-1}{x+1},</math> and <math>f(x) = \frac 1{x+1}+\frac 3x-\frac 2{x-1}.</math>
* An [[algebraic function]] is the same, with [[nth root|{{mvar|n}}th roots]] and [[zero of a function|roots of polynomials]] also allowed.
* An [[elementary function]]<ref group=note>Here "elementary" has not exactly its common sense: although most functions that are encountered in elementary courses of mathematics are elementary in this sense, some elementary functions are not elementary for the common sense, for example, those that involve roots of polynomials of high degree.</ref> is the same, with [[logarithm]]s and [[exponential functions]] allowed.
 
=== Inverse and implicit functions ===
A function <math>f : X\to Y,</math> with ___domain {{mvar|X}} and codomain {{mvar|Y}}, is [[bijective]], if for every {{mvar|y}} in {{mvar|Y}}, there is one and only one element {{mvar|x}} in {{mvar|X}} such that {{math|1=''y'' = ''f''(''x'')}}. In this case, the [[inverse function]] of {{mvar|f}} is the function <math>f^{-1} : Y \to X</math> that maps <math>y\in Y</math> to the element <math>x\in X</math> such that {{math|1=''y'' = ''f''(''x'')}}. For example, the [[natural logarithm]] is a bijective function from the positive real numbers to the real numbers. It thus has an inverse, called the [[exponential function]], that maps the real numbers onto the positive numbers.
 
If a function <math>f: X\to Y</math> is not bijective, it may occur that one can select subsets <math>E\subseteq X</math> and <math>F\subseteq Y</math> such that the [[restriction of a function|restriction]] of {{mvar|f}} to {{mvar|E}} is a bijection from {{mvar|E}} to {{mvar|F}}, and has thus an inverse. The [[inverse trigonometric functions]] are defined this way. For example, the [[cosine function]] induces, by restriction, a bijection from the [[interval (mathematics)|interval]] {{closed-closed|0, ''π''}} onto the interval {{closed-closed|−1, 1}}, and its inverse function, called [[arccosine]], maps {{closed-closed|−1, 1}} onto {{closed-closed|0, ''π''}}. The other inverse trigonometric functions are defined similarly.
 
More generally, given a [[binary relation]] {{mvar|R}} between two sets {{mvar|X}} and {{mvar|Y}}, let {{mvar|E}} be a subset of {{mvar|X}} such that, for every <math>x\in E,</math> there is some <math>y\in Y</math> such that {{math|''x R y''}}. If one has a criterion allowing selecting such a {{mvar|y}} for every <math>x\in E,</math> this defines a function <math>f: E\to Y,</math> called an [[implicit function]], because it is implicitly defined by the relation {{mvar|R}}.
 
For example, the equation of the [[unit circle]] <math>x^2+y^2=1</math> defines a relation on real numbers. If {{math|−1 < ''x'' < 1}} there are two possible values of {{mvar|y}}, one positive and one negative. For {{math|1=''x'' = ± 1}}, these two values become both equal to 0. Otherwise, there is no possible value of {{mvar|y}}. This means that the equation defines two implicit functions with ___domain {{closed-closed|−1, 1}} and respective codomains {{closed-open|0, +∞}} and {{open-closed|−∞, 0}}.
 
In this example, the equation can be solved in {{mvar|y}}, giving <math>y=\pm \sqrt{1-x^2},</math> but, in more complicated examples, this is impossible. For example, the relation <math>y^5+y+x=0</math> defines {{mvar|y}} as an implicit function of {{mvar|x}}, called the [[Bring radical]], which has <math>\mathbb R</math> as ___domain and range. The Bring radical cannot be expressed in terms of the four arithmetic operations and [[nth root|{{mvar|n}}th roots]].
 
The [[implicit function theorem]] provides mild [[differentiability]] conditions for existence and uniqueness of an implicit function in the neighborhood of a point.
 
=== Using differential calculus ===
Many functions can be defined as the [[antiderivative]] of another function. This is the case of the [[natural logarithm]], which is the antiderivative of {{math|1/''x''}} that is 0 for {{math|1=''x'' = 1}}. Another common example is the [[error function]].
 
More generally, many functions, including most [[special function]]s, can be defined as solutions of [[differential equation]]s. The simplest example is probably the [[exponential function]], which can be defined as the unique function that is equal to its derivative and takes the value 1 for {{math|1=''x'' = 0}}.
 
[[Power series]] can be used to define functions on the ___domain in which they converge. For example, the [[exponential function]] is given by <math display="inline">e^x = \sum_{n=0}^{\infty} {x^n \over n!}</math>. However, as the coefficients of a series are quite arbitrary, a function that is the sum of a convergent series is generally defined otherwise, and the sequence of the coefficients is the result of some computation based on another definition. Then, the power series can be used to enlarge the ___domain of the function. Typically, if a function for a real variable is the sum of its [[Taylor series]] in some interval, this power series allows immediately enlarging the ___domain to a subset of the [[complex number]]s, the [[disc of convergence]] of the series. Then [[analytic continuation]] allows enlarging further the ___domain for including almost the whole [[complex plane]]. This process is the method that is generally used for defining the [[logarithm]], the [[exponential function|exponential]] and the [[trigonometric functions]] of a complex number.
 
=== By recurrence ===
{{main|Recurrence relation}}
Functions whose ___domain are the nonnegative integers, known as [[sequence]]s, are sometimes defined by [[recurrence relation]]s.
 
The [[factorial]] function on the nonnegative integers (<math>n\mapsto n!</math>) is a basic example, as it can be defined by the recurrence relation
 
<math display="block">n!=n(n-1)!\quad\text{for}\quad n>0,</math>
 
and the initial condition
 
<math display="block">0!=1.</math>
 
== Representing a function ==
 
A [[Graph of a function|graph]] is commonly used to give an intuitive picture of a function. As an example of how a graph helps to understand a function, it is easy to see from its graph whether a function is increasing or decreasing. Some functions may also be represented by [[bar chart]]s.
 
=== Graphs and plots ===
{{main|Graph of a function}}
[[File:Motor vehicle deaths in the US.svg|thumb|The function mapping each year to its US motor vehicle death count, shown as a [[line chart]]]]
[[File:Motor vehicle deaths in the US histogram.svg|thumb|The same function, shown as a bar chart]]
 
Given a function <math>f : X\to Y,</math> its ''graph'' is, formally, the set
 
<math display="block">G=\{(x,f(x))\mid x\in X\}.</math>
 
In the frequent case where {{mvar|X}} and {{mvar|Y}} are subsets of the [[real number]]s (or may be identified with such subsets, e.g. [[interval (mathematics)|intervals]]), an element <math>(x,y)\in G</math> may be identified with a point having coordinates {{math|''x'', ''y''}} in a 2-dimensional coordinate system, e.g. the [[Cartesian plane]]. Parts of this may create a [[Plot (graphics)|plot]] that represents (parts of) the function. The use of plots is so ubiquitous that they too are called the ''graph of the function''. Graphic representations of functions are also possible in other coordinate systems. For example, the graph of the [[square function]]
 
<math display="block">x\mapsto x^2,</math>
 
consisting of all points with coordinates <math>(x, x^2)</math> for <math>x\in \R,</math> yields, when depicted in Cartesian coordinates, the well known [[parabola]]. If the same quadratic function <math>x\mapsto x^2,</math> with the same formal graph, consisting of pairs of numbers, is plotted instead in [[polar coordinates]] <math>(r,\theta) =(x,x^2),</math> the plot obtained is [[Fermat's spiral]].
 
=== Tables ===
{{Main|Mathematical table}}
A function can be represented as a table of values. If the ___domain of a function is finite, then the function can be completely specified in this way. For example, the multiplication function <math>f:\{1,\ldots,5\}^2 \to \mathbb{R}</math> defined as <math>f(x,y)=xy</math> can be represented by the familiar [[multiplication table]]
 
{| class="wikitable" style="text-align: center;"
{|
! {{diagonal split header|{{mvar|x}}|{{mvar|y}}}}
|[[image:Multivalued_function.svg|200px|thumb|left|Total but not single-valued]]
! 1 !! 2 !! 3 !! 4 !! 5
|[[image:Partial_function.svg|200px|thumb|left|Single-valued but not total]]
|-
|[[image:Total_function.svg|200px|thumb|left|Total and single-valued (a function)]]
! 1
| 1 || 2 || 3 || 4 || 5
|-
! 2
| 2 || 4 ||6 || 8 || 10
|-
! 3
| 3 || 6 || 9 || 12 || 15
|-
! 4
| 4 || 8 || 12 || 16 || 20
|-
! 5
| 5 || 10 || 15 || 20 || 25
|}
 
On the other hand, if a function's ___domain is continuous, a table can give the values of the function at specific values of the ___domain. If an intermediate value is needed, [[interpolation]] can be used to estimate the value of the function. For example, a portion of a table for the sine function might be given as follows, with values rounded to 6 decimal places:
<!--
<br style="clear:both" />
-->
 
{| class="wikitable" style="text-align: center;"
In some contexts, a relation that is total, but not necessarily single-valued, may be called a '''[[multivalued function]]'''; and a relation that is single-valued, but not necessarily total, may be called a '''[[partial function]]'''.
! {{mvar|x}} !! {{math|sin ''x''}}
|-
|1.289 || 0.960557
|-
|1.290 || 0.960835
|-
|1.291 || 0.961112
|-
|1.292 || 0.961387
|-
|1.293 || 0.961662
|}
 
Before the advent of handheld calculators and personal computers, such tables were often compiled and published for functions such as logarithms and trigonometric functions.
===Other properties===
There are many other special classes of functions that are important to particular branches of mathematics, or particular applications.
Here is a partial list:
*[[continuous function|continuous]], [[differentiable function|differentiable]], [[integrable function|integrable]]
*[[linear function|linear]], [[polynomial]], [[rational function|rational]]
*[[convex function|convex]], [[monotonic function|monotonic]], [[unimodal function|unimodal]]
*[[trigonometry|trigonometric]]
*[[algebraic function|algebraic]]
*[[transcendental function|transcendental]]
*[[fractal|fractal function]]
*[[even and odd functions|odd or even]]
*[[Vector-valued function]]
*[[Holomorphic function|holomorphic]], [[Meromorphic function|meromorphic]], [[Entire function|entire]]
 
=== Bar chart ===
==Restrictions and extensions==<!-- This section is linked from [[Subgroup]] -->
{{main|Bar chart}}
Informally, a '''[[function restriction|restriction]]''' of a function ''f'' is the result of trimming its ___domain.
A bar chart can represent a function whose ___domain is a finite set, the [[natural number]]s, or the [[integer]]s. In this case, an element {{mvar|x}} of the ___domain is represented by an [[interval (mathematics)|interval]] of the {{mvar|x}}-axis, and the corresponding value of the function, {{math|''f''(''x'')}}, is represented by a [[rectangle]] whose base is the interval corresponding to {{mvar|x}} and whose height is {{math|''f''(''x'')}} (possibly negative, in which case the bar extends below the {{mvar|x}}-axis).
 
== General properties ==
More precisely, if ''f'' is a function from a ''X'' to ''Y'', and ''S'' is any subset of ''X'', the '''restriction of''' ''f'' '''to''' ''S'' is the function ''f''|<sub>''S''</sub> from ''S'' to ''Y'' such that ''f''|<sub>''S''</sub>(''s'') = ''f''(''s'') for all ''s'' in ''S''.
 
This section describes general properties of functions, that are independent of specific properties of the ___domain and the codomain.
If ''g'' is any restriction of ''f'', we say that ''f'' is an '''extension''' of ''g''.
 
=== PointwiseStandard operationsfunctions ===
There are a number of standard functions that occur frequently:
* For every set {{mvar|X}}, there is a unique function, called the '''{{vanchor|empty function}}''', or '''empty map''', from the [[empty set]] to {{mvar|X}}. The graph of an empty function is the empty set.<ref group=note>By definition, the graph of the empty function to {{mvar|X}} is a subset of the Cartesian product {{math|∅ × ''X''}}, and this product is empty.</ref> The existence of empty functions is needed both for the coherency of the theory and for avoiding exceptions concerning the empty set in many statements. Under the usual set-theoretic definition of a function as an [[Tuple|ordered triplet]] (or equivalent ones), there is exactly one empty function for each set, thus the empty function <math>\varnothing \to X</math> is not equal to <math>\varnothing \to Y</math> if and only if <math>X\ne Y</math>, although their graphs are both the [[empty set]].
* For every set {{mvar|X}} and every [[singleton set]] {{math|{{mset|''s''}}}}, there is a unique function from {{mvar|X}} to {{math|{{mset|''s''}}}}, which maps every element of {{mvar|X}} to {{mvar|s}}. This is a surjection (see below) unless {{mvar|X}} is the empty set.
* Given a function <math>f: X\to Y,</math> the ''canonical surjection'' of {{mvar|f}} onto its image <math>f(X)=\{f(x)\mid x\in X\}</math> is the function from {{mvar|X}} to {{math|''f''(''X'')}} that maps {{mvar|x}} to {{math|''f''(''x'')}}.
* For every [[subset]] {{mvar|A}} of a set {{mvar|X}}, the [[inclusion map]] of {{mvar|A}} into {{mvar|X}} is the injective (see below) function that maps every element of {{mvar|A}} to itself.
* The [[identity function]] on a set {{mvar|X}}, often denoted by {{math|id<sub>''X''</sub>}}, is the inclusion of {{mvar|X}} into itself.
 
=== Function composition ===
If ''f'':&nbsp;''X''&nbsp;→&nbsp;'''R''' and ''g'':&nbsp;''X''&nbsp;→&nbsp;'''R''' are functions with common ___domain ''X'' and codomain is a [[ring (mathematics)|ring]] '''R''', then one can define the sum function ''f''&nbsp;+&nbsp;''g'': ''X''&nbsp;→&nbsp;'''R''' and the product function ''f''&nbsp;&times;&nbsp;''g'': ''X''&nbsp;→&nbsp;'''R''' as follows:
{{Main|Function composition}}
:(''f''&nbsp;+&nbsp;''g'')(''x'')&nbsp;= ''f''(''x'')&nbsp;+&nbsp;''g''(''x'')
:(''f''&nbsp;&times;&nbsp;''g'')(''x'')&nbsp;= ''f''(''x'')&nbsp;&times;&nbsp;''g''(''x'')
for all ''x'' in ''X''.
 
Given two functions <math>f: X\to Y</math> and <math>g: Y\to Z</math> such that the ___domain of {{mvar|g}} is the codomain of {{mvar|f}}, their ''composition'' is the function <math>g \circ f: X \rightarrow Z</math> defined by
This turns the set of all such functions into a ring. The binary operations in that ring have as ___domain ordered pairs of functions, and as codomain functions. This is an example of climbing up in abstraction, to functions of more complex types.
 
<math display="block">(g \circ f)(x) = g(f(x)).</math>
By taking some other [[abstract algebra|algebraic structure]] ''A'' in the place of '''R''', we can turn the set of all functions from ''X'' to ''A'' into an algebraic structure of the same type in an analogous way.
 
That is, the value of <math>g \circ f</math> is obtained by first applying {{math|''f''}} to {{math|''x''}} to obtain {{math|1=''y'' = ''f''(''x'')}} and then applying {{math|''g''}} to the result {{mvar|y}} to obtain {{math|1=''g''(''y'') = ''g''(''f''(''x''))}}. In this notation, the function that is applied first is always written on the right.
== Computable and non-computable functions ==
 
The composition <math>g\circ f</math> is an [[operation (mathematics)|operation]] on functions that is defined only if the codomain of the first function is the ___domain of the second one. Even when both <math>g \circ f</math> and <math>f \circ g</math> satisfy these conditions, the composition is not necessarily [[commutative property|commutative]], that is, the functions <math>g \circ f</math> and <math> f \circ g</math> need not be equal, and may deliver different values for the same argument. For example, let {{math|1=''f''(''x'') = ''x''<sup>2</sup>}} and {{math|1=''g''(''x'') = ''x'' + 1}}, then <math>g(f(x))=x^2+1</math> and <math> f(g(x)) = (x+1)^2</math> agree just for <math>x=0.</math>
The number of [[computable function]]s from integers to integers is [[countable]], because the number of possible algorithms is. The number of all functions from integers to integers is higher: the same as the [[cardinality]] of the [[real number]]s. This argument shows that there are functions from integers to integers that are not computable. For examples of noncomputable functions, see the articles on the [[halting problem]] and [[Rice's theorem]].
 
The function composition is [[associative property|associative]] in the sense that, if one of <math>(h\circ g)\circ f</math> and <math>h\circ (g\circ f)</math> is defined, then the other is also defined, and they are equal, that is, <math>(h\circ g)\circ f = h\circ (g\circ f).</math> Therefore, it is usual to just write <math>h\circ g\circ f.</math>
==Lambda calculus==
The [[lambda calculus]] provides a powerful and flexible [[syntax]] for combining functions of several variables. In particular, composition becomes a special case of [[variable substitution]]; and ''n''-ary functions can be reduced to functions with fewer arguments by a process called [[currying]].
 
The [[identity function]]s <math>\operatorname{id}_X</math> and <math>\operatorname{id}_Y</math> are respectively a [[right identity]] and a [[left identity]] for functions from {{mvar|X}} to {{mvar|Y}}. That is, if {{mvar|f}} is a function with ___domain {{mvar|X}}, and codomain {{mvar|Y}}, one has
==Functions in category theory==
<math>f\circ \operatorname{id}_X = \operatorname{id}_Y \circ f = f.</math>
The notion of function can be generalized to the notion of [[morphism]] in the context of [[category theory]]. A [[category (mathematics)|category]] is a collection of objects and morphisms. The collection of objects is completely arbitrary. The morphisms are the relationships between the objects. Each morphism is an ordered triple (''X'', ''Y'', ''f''), where ''X'' is an object called the ___domain, ''Y'' is an object called the codomain, and ''f'' connects ''X'' to ''Y''. There are a few restrictions on the morphisms which guarantee that they are analogous to functions (for these, see the article on categories). However, because category theory is designed to work with objects that may not be sets or may not behave like sets do, morphisms are not the same as functions.
 
<gallery widths="250" heights="300">
In a [[concrete category]], each morphism is associated with an underlying function.
File:Function machine5.svg|A composite function ''g''(''f''(''x'')) can be visualized as the combination of two "machines".
File:Example for a composition of two functions.svg|A simple example of a function composition
File:Compfun.svg|Another composition. In this example, {{math|1=(''g'' ∘ ''f'' )(c) = #}}.
</gallery>
 
=== Image and preimage ===
==See also==
{{Main|Image (mathematics)}}
*[[List of mathematical functions]]
Let <math>f: X\to Y.</math> The ''image'' under {{mvar|f}} of an element {{mvar|x}} of the ___domain {{mvar|X}} is {{math|''f''(''x'')}}.<ref name="EOM Function"/> If {{math|''A''}} is any subset of {{math|''X''}}, then the ''image'' of {{mvar|A}} under {{mvar|f}}, denoted {{math|''f''(''A'')}}, is the subset of the codomain {{math|''Y''}} consisting of all images of elements of {{mvar|A}},<ref name="EOM Function"/> that is,
*[[Functional (mathematics)|Functional]]
*[[Plateau (mathematics)|Plateau]]
*[[Proportionality (mathematics)|Proportionality]]
 
<math display="block">f(A)=\{f(x)\mid x\in A\}.</math>
==References==
 
* Anton, Howard (1980). ''Calculus with analytical geometry.'' John Wiley and Sons. ISBN 0-471-03248-4
The ''image'' of {{math|''f''}} is the image of the whole ___domain, that is, {{math|''f''(''X'')}}.{{r|PCM p.11}} It is also called the [[range of a function|range]] of {{mvar|f}},{{r|EOM Function|T&K Calc p.3|Trench RA pp.30-32|TBB RA pp.A4-A5}} although the term ''range'' may also refer to the codomain.{{r|TBB RA pp.A4-A5|PCM p.11}}<ref name = "standard">''Quantities and Units - Part 2: Mathematical signs and symbols to be used in the natural sciences and technology'', p. 15. ISO 80000-2 (ISO/IEC 2009-12-01)</ref>
* Bartle, R (2001). ''The Elements of Real Analysis'', second ed. John Wiley and Sons. ISBN 0-471-05464-X
 
* Husch, Lawrence S. (2001). [http://archives.math.utk.edu/visual.calculus/ <cite>Visual Calculus.</cite>] [[University of Tennessee]].
On the other hand, the ''[[inverse image]]'' or ''[[preimage]]'' under {{mvar|f}} of an element {{mvar|y}} of the codomain {{mvar|Y}} is the set of all elements of the ___domain {{math|''X''}} whose images under {{mvar|f}} equal {{mvar|y}}.<ref name="EOM Function"/> In symbols, the preimage of {{mvar|y}} is denoted by <math>f^{-1}(y)</math> and is given by the equation
* da Ponte, João Pedro (1992). The history of the concept of function and some educational implications. <cite>The Mathematics Educator</cite> '''3'''(2), 3-8. [http://www.educ.fc.ul.pt/docentes/jponte/docs-uk/92%20Ponte%20(Functions).doc]
 
* Thomas, G. and Finney, R (1995) ''Calculus and Analytic Geometry'', 9th edition. Addison-Wesley. ISBN 0-201-53174-7
<math display="block">f^{-1}(y) = \{x \in X \mid f(x) = y\}.</math>
* Godfrey Harold Hardy, (1908) ''A Course in Pure Mathematics'', Cambridge University. ISBN 0521092272
 
Likewise, the preimage of a subset {{math|''B''}} of the codomain {{math|''Y''}} is the set of the preimages of the elements of {{math|''B''}}, that is, it is the subset of the ___domain {{math|''X''}} consisting of all elements of {{math|''X''}} whose images belong to {{math|''B''}}.<ref name="EOM Function"/> It is denoted by <math>f^{-1}(B)</math> and is given by the equation
 
<math display="block">f^{-1}(B) = \{x \in X \mid f(x) \in B\}.</math>
 
For example, the preimage of <math>\{4, 9\}</math> under the [[square function]] is the set <math>\{-3,-2,2,3\}</math>.
 
By definition of a function, the image of an element {{math|''x''}} of the ___domain is always a single element of the codomain. However, the preimage <math>f^{-1}(y)</math> of an element {{mvar|y}} of the codomain may be [[empty set|empty]] or contain any number of elements. For example, if {{mvar|f}} is the function from the integers to themselves that maps every integer to 0, then <math>f^{-1}(0) = \mathbb{Z}</math>.
 
If <math>f : X\to Y</math> is a function, {{math|''A''}} and {{math|''B''}} are subsets of {{math|''X''}}, and {{math|''C''}} and {{math|''D''}} are subsets of {{math|''Y''}}, then one has the following properties:
* <math>A\subseteq B \Longrightarrow f(A)\subseteq f(B)</math>
* <math>C\subseteq D \Longrightarrow f^{-1}(C)\subseteq f^{-1}(D)</math>
* <math>A \subseteq f^{-1}(f(A))</math>
* <math>C \supseteq f(f^{-1}(C))</math>
* <math>f(f^{-1}(f(A)))=f(A)</math>
* <math>f^{-1}(f(f^{-1}(C)))=f^{-1}(C)</math>
 
The preimage by {{mvar|f}} of an element {{mvar|y}} of the codomain is sometimes called, in some contexts, the [[fiber (mathematics)|fiber]] of {{math|''y''}} under {{mvar|''f''}}.
 
If a function {{mvar|f}} has an inverse (see below), this inverse is denoted <math>f^{-1}.</math> In this case <math>f^{-1}(C)</math> may denote either the image by <math>f^{-1}</math> or the preimage by {{mvar|f}} of {{mvar|C}}. This is not a problem, as these sets are equal. The notation <math>f(A)</math> and <math>f^{-1}(C)</math> may be ambiguous in the case of sets that contain some subsets as elements, such as <math>\{x, \{x\}\}.</math> In this case, some care may be needed, for example, by using square brackets <math>f[A], f^{-1}[C]</math> for images and preimages of subsets and ordinary parentheses for images and preimages of elements.
 
=== Injective, surjective and bijective functions ===
{{main|Bijection, injection and surjection}}
 
Let <math>f : X\to Y</math> be a function.
 
The function {{mvar|f}} is ''[[injective function|injective]]'' (or ''one-to-one'', or is an ''injection'') if {{math|''f''(''a'') ≠ ''f''(''b'')}} for every two different elements {{math|''a''}} and {{mvar|''b''}} of {{mvar|X}}.<ref name="PCM p.11">{{Princeton Companion to Mathematics|p=11}}</ref><ref name="EOM Injection">{{eom |title=Injection |oldid=30986 |first=O. A. |last=Ivanova |mode=cs1}}</ref> Equivalently, {{mvar|f}} is injective if and only if, for every <math>y\in Y,</math> the preimage <math>f^{-1}(y)</math> contains at most one element. An empty function is always injective. If {{mvar|X}} is not the empty set, then {{mvar|f}} is injective if and only if there exists a function <math>g: Y\to X</math> such that <math>g\circ f=\operatorname{id}_X,</math> that is, if {{mvar|f}} has a [[left inverse function|left inverse]].<ref name="EOM Injection"/> ''Proof'': If {{mvar|f}} is injective, for defining {{mvar|g}}, one chooses an element <math>x_0</math> in {{mvar|X}} (which exists as {{mvar|X}} is supposed to be nonempty),<ref group=note>The [[axiom of choice]] is not needed here, as the choice is done in a single set.</ref> and one defines {{mvar|g}} by <math>g(y)=x</math> if <math>y=f(x)</math> and <math>g(y)=x_0</math> if <math>y\not\in f(X).</math> Conversely, if <math>g\circ f=\operatorname{id}_X,</math> and <math>y=f(x),</math> then <math>x=g(y),</math> and thus <math>f^{-1}(y)=\{x\}.</math>
 
The function {{mvar|f}} is ''[[surjective]]'' (or ''onto'', or is a ''surjection'') if its range <math>f(X)</math> equals its codomain <math>Y</math>, that is, if, for each element <math>y</math> of the codomain, there exists some element <math>x</math> of the ___domain such that <math>f(x) = y</math> (in other words, the preimage <math>f^{-1}(y)</math> of every <math>y\in Y</math> is nonempty).<ref name="PCM p.11"/><ref name="EOM Surjection">{{eom |title=Surjection |oldid=35689 |author-first=O.A. |author-last=Ivanova|mode=cs1}}</ref> If, as usual in modern mathematics, the [[axiom of choice]] is assumed, then {{mvar|f}} is surjective if and only if there exists a function <math>g: Y\to X</math> such that <math>f\circ g=\operatorname{id}_Y,</math> that is, if {{mvar|f}} has a [[right inverse function|right inverse]].<ref name="EOM Surjection"/> The axiom of choice is needed, because, if {{mvar|f}} is surjective, one defines {{mvar|g}} by <math>g(y)=x,</math> where <math>x</math> is an ''arbitrarily chosen'' element of <math>f^{-1}(y).</math>
 
The function {{mvar|f}} is ''[[bijective]]'' (or is a ''bijection'' or a ''one-to-one correspondence'') if it is both injective and surjective.<ref name="PCM p.11"/><ref name="EOM Bijection">{{eom |title=Bijection |oldid=30987 |author-first=O.A. |author-last=Ivanova|mode=cs1}}</ref> That is, {{mvar|f}} is bijective if, for every <math>y\in Y,</math> the preimage <math>f^{-1}(y)</math> contains exactly one element. The function {{mvar|f}} is bijective if and only if it admits an [[inverse function]], that is, a function <math>g : Y\to X</math> such that <math>g\circ f=\operatorname{id}_X</math> and <math>f\circ g=\operatorname{id}_Y.</math><ref name="EOM Bijection"/> (Contrarily to the case of surjections, this does not require the axiom of choice; the proof is straightforward).
 
Every function <math>f: X\to Y</math> may be [[factorization|factorized]] as the composition <math>i\circ s</math> of a surjection followed by an injection, where {{mvar|s}} is the canonical surjection of {{mvar|X}} onto {{math|''f''(''X'')}} and {{mvar|i}} is the canonical injection of {{math|''f''(''X'')}} into {{mvar|Y}}. This is the ''canonical factorization'' of {{mvar|f}}.
 
"One-to-one" and "onto" are terms that were more common in the older English language literature; "injective", "surjective", and "bijective" were originally coined as French words in the second quarter of the 20th century by the [[Nicolas Bourbaki|Bourbaki group]] and imported into English.<ref>{{Cite web |last=Hartnett |first=Kevin |date=9 November 2020 |title=Inside the Secret Math Society Known Simply as Nicolas Bourbaki |url=https://www.quantamagazine.org/inside-the-secret-math-society-known-as-nicolas-bourbaki-20201109/ |access-date=2024-06-05 |website=Quanta Magazine}}</ref> As a word of caution, "a one-to-one function" is one that is injective, while a "one-to-one correspondence" refers to a bijective function. Also, the statement "{{math|''f''}} maps {{math|''X''}} ''onto'' {{math|''Y''}}" differs from "{{math|''f''}} maps {{math|''X''}} ''into'' {{math|''B''}}", in that the former implies that {{math|''f''}} is surjective, while the latter makes no assertion about the nature of {{math|''f''}}. In a complicated reasoning, the one letter difference can easily be missed. Due to the confusing nature of this older terminology, these terms have declined in popularity relative to the Bourbakian terms, which have also the advantage of being more symmetrical.
 
=== Restriction and extension <span class="anchor" id="Restrictions and extensions"></span> ===
<!-- This section is linked from [[Subgroup]], [[Restriction]], [[Quadratic form]] -->
{{main|Restriction (mathematics)}}
If <math>f : X \to Y</math> is a function and {{math|''S''}} is a subset of {{math|''X''}}, then the ''restriction'' of <math>f</math> to ''S'', denoted <math>f|_S</math>, is the function from {{math|''S''}} to {{math|''Y''}} defined by
 
<math display="block">f|_S(x) = f(x)</math>
 
for all {{math|''x''}} in {{math|''S''}}. Restrictions can be used to define partial [[inverse function]]s: if there is a [[subset]] {{math|''S''}} of the ___domain of a function <math>f</math> such that <math>f|_S</math> is injective, then the canonical surjection of <math>f|_S</math> onto its image <math>f|_S(S) = f(S)</math> is a bijection, and thus has an inverse function from <math>f(S)</math> to {{math|''S''}}. One application is the definition of [[inverse trigonometric functions]]. For example, the [[cosine]] function is injective when restricted to the [[interval (mathematics)|interval]] {{closed-closed|0, ''π''}}. The image of this restriction is the interval {{closed-closed|−1, 1}}, and thus the restriction has an inverse function from {{closed-closed|−1, 1}} to {{closed-closed|0, ''π''}}, which is called [[arccosine]] and is denoted {{math|arccos}}.
 
Function restriction may also be used for "gluing" functions together. Let <math display="inline"> X=\bigcup_{i\in I}U_i</math> be the decomposition of {{mvar|X}} as a [[set union|union]] of subsets, and suppose that a function <math>f_i : U_i \to Y</math> is defined on each <math>U_i</math> such that for each pair <math>i, j</math> of indices, the restrictions of <math>f_i</math> and <math>f_j</math> to <math>U_i \cap U_j</math> are equal. Then this defines a unique function <math>f : X \to Y</math> such that <math>f|_{U_i} = f_i</math> for all {{mvar|i}}. This is the way that functions on [[manifold]]s are defined.
 
An ''extension'' of a function {{mvar|f}} is a function {{mvar|g}} such that {{mvar|f}} is a restriction of {{mvar|g}}. A typical use of this concept is the process of [[analytic continuation]], that allows extending functions whose ___domain is a small part of the [[complex plane]] to functions whose ___domain is almost the whole complex plane.
 
Here is another classical example of a function extension that is encountered when studying [[homography|homographies]] of the [[real line]]. A ''homography'' is a function <math>h(x)=\frac{ax+b}{cx+d}</math> such that {{math|''ad'' − ''bc'' ≠ 0}}. Its ___domain is the set of all [[real number]]s different from <math>-d/c,</math> and its image is the set of all real numbers different from <math>a/c.</math> If one extends the real line to the [[projectively extended real line]] by including {{math|∞}}, one may extend {{mvar|h}} to a bijection from the extended real line to itself by setting <math>h(\infty)=a/c</math> and <math>h(-d/c)=\infty</math>.
 
== In calculus ==
{{further|History of the function concept}}
 
The idea of function, starting in the 17th century, was fundamental to the new [[infinitesimal calculus]]. At that time, only [[real-valued function|real-valued]] functions of a [[function of a real variable|real variable]] were considered, and all functions were assumed to be [[smooth function|smooth]]. But the definition was soon extended to [[#Multivariate function|functions of several variables]] and to [[functions of a complex variable]]. In the second half of the 19th century, the mathematically rigorous definition of a function was introduced, and functions with arbitrary domains and codomains were defined.
 
Functions are now used throughout all areas of mathematics. In introductory [[calculus]], when the word ''function'' is used without qualification, it means a real-valued function of a single real variable. The more general definition of a function is usually introduced to second or third year college students with [[STEM]] majors, and in their senior year they are introduced to calculus in a larger, more rigorous setting in courses such as [[real analysis]] and [[complex analysis]].
 
=== Real function ===
{{see also|Real analysis}}
[[File:Gerade.svg|thumb|right|Graph of a linear function]]
[[File:Polynomialdeg2.svg|thumb|right|Graph of a polynomial function, here a quadratic function.]]
[[File:Sine cosine one period.svg|thumb|right|Graph of two trigonometric functions: [[sine]] and [[cosine]].]]
A ''real function'' is a [[real-valued function|real-valued]] [[function of a real variable]], that is, a function whose codomain is the [[real number|field of real numbers]] and whose ___domain is a set of [[real number]]s that contains an [[interval (mathematics)|interval]]. In this section, these functions are simply called ''functions''.
 
The functions that are most commonly considered in mathematics and its applications have some regularity, that is they are [[continuous function|continuous]], [[differentiable function|differentiable]], and even [[analytic function|analytic]]. This regularity insures that these functions can be visualized by their [[#Graph and plots|graphs]]. In this section, all functions are differentiable in some interval.
 
Functions enjoy [[pointwise operation]]s, that is, if {{mvar|f}} and {{mvar|g}} are functions, their sum, difference and product are functions defined by
 
<math display="block">\begin{align}
(f+g)(x)&=f(x)+g(x)\\
(f-g)(x)&=f(x)-g(x)\\
(f\cdot g)(x)&=f(x)\cdot g(x)\\
\end{align}.</math>
 
The domains of the resulting functions are the [[set intersection|intersection]] of the domains of {{mvar|f}} and {{mvar|g}}. The quotient of two functions is defined similarly by
 
<math display="block">\frac fg(x)=\frac{f(x)}{g(x)},</math>
 
but the ___domain of the resulting function is obtained by removing the [[zero of a function|zeros]] of {{mvar|g}} from the intersection of the domains of {{mvar|f}} and {{mvar|g}}.
 
The [[polynomial function]]s are defined by [[polynomial]]s, and their ___domain is the whole set of real numbers. They include [[constant function]]s, [[linear function]]s and [[quadratic function]]s. [[Rational function]]s are quotients of two polynomial functions, and their ___domain is the real numbers with a finite number of them removed to avoid [[division by zero]]. The simplest rational function is the function <math>x\mapsto \frac 1x,</math> whose graph is a [[hyperbola]], and whose ___domain is the whole [[real line]] except for 0.
 
The [[derivative]] of a real differentiable function is a real function. An [[antiderivative]] of a continuous real function is a real function that has the original function as a derivative. For example, the function <math display="inline">x\mapsto\frac 1x</math> is continuous, and even differentiable, on the positive real numbers. Thus one antiderivative, which takes the value zero for {{math|1=''x'' = 1}}, is a differentiable function called the [[natural logarithm]].
 
A real function {{mvar|f}} is [[monotonic function|monotonic]] in an interval if the sign of <math>\frac{f(x)-f(y)}{x-y}</math> does not depend of the choice of {{mvar|x}} and {{mvar|y}} in the interval. If the function is differentiable in the interval, it is monotonic if the sign of the derivative is constant in the interval. If a real function {{mvar|f}} is monotonic in an interval {{mvar|I}}, it has an [[inverse function]], which is a real function with ___domain {{math|''f''(''I'')}} and image {{mvar|I}}. This is how [[inverse trigonometric functions]] are defined in terms of [[trigonometric functions]], where the trigonometric functions are monotonic. Another example: the natural logarithm is monotonic on the positive real numbers, and its image is the whole real line; therefore it has an inverse function that is a [[bijection]] between the real numbers and the positive real numbers. This inverse is the [[exponential function]].
 
Many other real functions are defined either by the [[implicit function theorem]] (the inverse function is a particular instance) or as solutions of [[differential equation]]s. For example, the [[sine]] and the [[cosine]] functions are the solutions of the [[linear differential equation]]
 
<math display="block">y''+y=0</math>
 
such that
 
<math display="block">\sin 0=0, \quad \cos 0=1, \quad\frac{\partial \sin x}{\partial x}(0)=1, \quad\frac{\partial \cos x}{\partial x}(0)=0.</math>
 
=== Vector-valued function ===
{{main|Vector-valued function|Vector field}}
 
When the elements of the codomain of a function are [[vector (mathematics and physics)|vectors]], the function is said to be a vector-valued function. These functions are particularly useful in applications, for example modeling physical properties. For example, the function that associates to each point of a fluid its [[velocity vector]] is a vector-valued function.
 
Some vector-valued functions are defined on a subset of <math>\mathbb{R}^n</math> or other spaces that share geometric or [[topological]] properties of <math>\mathbb{R}^n</math>, such as [[manifolds]]. These vector-valued functions are given the name ''vector fields''.
 
== Function space ==
{{Main|Function space|Functional analysis}}
In [[mathematical analysis]], and more specifically in [[functional analysis]], a '''function space''' is a set of [[scalar-valued function|scalar-valued]] or [[vector-valued function]]s, which share a specific property and form a [[topological vector space]]. For example, the real [[smooth function]]s with a [[compact support]] (that is, they are zero outside some [[compact set]]) form a function space that is at the basis of the theory of [[distribution (mathematics)|distributions]].
 
Function spaces play a fundamental role in advanced mathematical analysis, by allowing the use of their algebraic and [[topology|topological]] properties for studying properties of functions. For example, all theorems of existence and uniqueness of solutions of [[ordinary differential equation|ordinary]] or [[partial differential equation]]s result of the study of function spaces.
 
== Multi-valued functions ==
{{main|Multi-valued function}}
[[File:Function with two values 1.svg|thumb|right|Together, the two square roots of all nonnegative real numbers form a single smooth curve.]]
[[File:Xto3minus3x.svg|thumb|right]]
Several methods for specifying functions of real or complex variables start from a local definition of the function at a point or on a [[neighbourhood (mathematics)|neighbourhood]] of a point, and then extend by continuity the function to a much larger ___domain. Frequently, for a starting point <math>x_0,</math> there are several possible starting values for the function.
 
For example, in defining the [[square root]] as the inverse function of the square function, for any positive real number <math>x_0,</math> there are two choices for the value of the square root, one of which is positive and denoted <math>\sqrt {x_0},</math> and another which is negative and denoted <math>-\sqrt {x_0}.</math> These choices define two continuous functions, both having the nonnegative real numbers as a ___domain, and having either the nonnegative or the nonpositive real numbers as images. When looking at the graphs of these functions, one can see that, together, they form a single [[smooth curve]]. It is therefore often useful to consider these two square root functions as a single function that has two values for positive {{mvar|x}}, one value for 0 and no value for negative {{mvar|x}}.
 
In the preceding example, one choice, the positive square root, is more natural than the other. This is not the case in general. For example, let consider the [[implicit function]] that maps {{mvar|y}} to a [[root of a function|root]] {{mvar|x}} of <math>x^3-3x-y =0</math> (see the figure on the right). For {{math|1=''y'' = 0}} one may choose either <math>0, \sqrt 3,\text{ or } -\sqrt 3</math> for {{mvar|x}}. By the [[implicit function theorem]], each choice defines a function; for the first one, the (maximal) ___domain is the interval {{closed-closed|−2, 2}} and the image is {{closed-closed|−1, 1}}; for the second one, the ___domain is {{closed-open|−2, ∞}} and the image is {{closed-open|1, ∞}}; for the last one, the ___domain is {{open-closed|−∞, 2}} and the image is {{open-closed|−∞, −1}}. As the three graphs together form a smooth curve, and there is no reason for preferring one choice, these three functions are often considered as a single ''multi-valued function'' of {{mvar|y}} that has three values for {{math|−2 < ''y'' < 2}}, and only one value for {{math|''y'' ≤ −2}} and {{math|''y'' ≥ −2}}.
 
Usefulness of the concept of multi-valued functions is clearer when considering complex functions, typically [[analytic function]]s. The ___domain to which a complex function may be extended by [[analytic continuation]] generally consists of almost the whole [[complex plane]]. However, when extending the ___domain through two different paths, one often gets different values. For example, when extending the ___domain of the square root function, along a path of complex numbers with positive imaginary parts, one gets {{mvar|i}} for the square root of −1; while, when extending through complex numbers with negative imaginary parts, one gets {{math|−''i''}}. There are generally two ways of solving the problem. One may define a function that is not [[continuous function|continuous]] along some curve, called a [[branch cut]]. Such a function is called the [[principal value]] of the function. The other way is to consider that one has a ''multi-valued function'', which is analytic everywhere except for isolated singularities, but whose value may "jump" if one follows a closed loop around a singularity. This jump is called the [[monodromy]].
 
== In the foundations of mathematics ==
 
The definition of a function that is given in this article requires the concept of [[set (mathematics)|set]], since the ___domain and the codomain of a function must be a set. This is not a problem in usual mathematics, as it is generally not difficult to consider only functions whose ___domain and codomain are sets, which are well defined, even if the ___domain is not explicitly defined. However, it is sometimes useful to consider more general functions.
 
For example, the [[singleton set]] may be considered as a function <math>x\mapsto \{x\}.</math> Its ___domain would include all sets, and therefore would not be a set. In usual mathematics, one avoids this kind of problem by specifying a ___domain, which means that one has many singleton functions. However, when establishing foundations of mathematics, one may have to use functions whose ___domain, codomain or both are not specified, and some authors, often logicians, give precise definitions for these weakly specified functions.<ref>{{harvnb |Gödel |1940 |p=16}}; {{harvnb |Jech |2003 |p=11}}; {{harvnb |Cunningham |2016 |p=57}}</ref>
 
These generalized functions may be critical in the development of a formalization of the [[foundations of mathematics]]. For example, [[Von Neumann–Bernays–Gödel set theory]], is an extension of the set theory in which the collection of all sets is a [[Class (set theory)|class]]. This theory includes the [[Von Neumann–Bernays–Gödel set theory#NBG's axiom of replacement|replacement axiom]], which may be stated as: If {{mvar|X}} is a set and {{mvar|F}} is a function, then {{math|''F''[''X'']}} is a set.
 
In alternative formulations of the foundations of mathematics using [[type theory]] rather than set theory, functions are taken as [[primitive notion]]s rather than defined from other kinds of object. They are the inhabitants of [[function type]]s, and may be constructed using expressions in the [[lambda calculus]].<ref>
{{cite book
| last = Klev | first = Ansten
| editor1-last = Centrone | editor1-first = Stefania
| editor2-last = Kant | editor2-first = Deborah
| editor3-last = Sarikaya | editor3-first = Deniz
| contribution = A comparison of type theory with set theory
| doi = 10.1007/978-3-030-15655-8_12
| isbn = 978-3-030-15654-1
| ___location = Cham
| mr = 4352345
| pages = 271–292
| publisher = Springer
| series = Synthese Library
| title = Reflections on the Foundations of Mathematics: Univalent Foundations, Set Theory and General Thoughts
| volume = 407
| year = 2019}}</ref>
 
== In computer science ==
{{main|Function (computer programming)|Lambda calculus}}
 
In [[computer programming]], a [[Function (programming)|function]] is, in general, a [[subroutine]] which [[implementation|implements]] the abstract concept of function. That is, it is a program unit that produces an output for each input. [[Functional programming]] is the [[programming paradigm]] consisting of building programs by using only subroutines that behave like mathematical functions, meaning that they have no [[side effect (computer science)|side effect]]s and depend only on their arguments: they are [[Referential transparency|referentially transparent]]. For example, <code>if_then_else</code> is a function that takes three ([[nullary]]) functions as arguments, and, depending on the value of the first argument (''true'' or ''false''), returns the value of either the second or the third argument. An important advantage of functional programming is that it makes easier [[program proof]]s, as being based on a well founded theory, the [[lambda calculus]] (see below). However, side effects are generally necessary for practical programs, ones that perform [[input/output]]. There is a class of ''[[Purely functional programming|purely functional]]'' languages, such as [[Haskell]], which encapsulate the possibility of side effects in the type of a function. Others, such as the [[ML (programming language)|ML]] family, simply allow side effects.
 
In many [[programming language]]s, every subroutine is called a function, even when there is no output but only side effects, and when the functionality consists simply of modifying some data in the [[computer memory]].
 
Outside the context of programming languages, "function" has the usual mathematical meaning in [[computer science]]. In this area, a property of major interest is the [[computable function|computability]] of a function. For giving a precise meaning to this concept, and to the related concept of [[algorithm]], several [[models of computation]] have been introduced, the old ones being [[μ-recursive function|general recursive function]]s, [[lambda calculus]], and [[Turing machine]]. The fundamental theorem of [[computability theory]] is that these three models of computation define the same set of computable functions, and that all the other models of computation that have ever been proposed define the same set of computable functions or a smaller one. The [[Church–Turing thesis]] is the claim that every philosophically acceptable definition of a ''computable function'' defines also the same functions.
 
General recursive functions are [[partial function]]s from integers to integers that can be defined from
* [[constant function]]s,
* [[successor function|successor]], and
* [[projection function|projection]] functions
via the operators
* [[#Function composition|composition]],
* [[primitive recursion]], and
* [[μ operator|minimization]].
 
Although defined only for functions from integers to integers, they can model any computable function as a consequence of the following properties:
 
* a computation is the manipulation of finite sequences of symbols (digits of numbers, formulas, etc.),
* every sequence of symbols may be coded as a sequence of [[bit]]s,
* a bit sequence can be interpreted as the [[binary representation]] of an integer.
 
[[Lambda calculus]] is a theory that defines computable functions without using [[set theory]], and is the theoretical background of functional programming. It consists of ''terms'' that are either variables, function definitions (''{{lambda}}''-terms), or applications of functions to terms. Terms are manipulated by interpreting its [[axiom]]s (the {{math|''α''}}-equivalence, the {{mvar|β}}-reduction, and the {{mvar|η}}-conversion) as [[rewriting]] rules, which can be used for computation.
 
In its original form, lambda calculus does not include the concepts of ___domain and codomain of a function. Roughly speaking, they have been introduced in the theory under the name of ''type'' in [[typed lambda calculus]]. Most kinds of typed lambda calculi can define fewer functions than untyped lambda calculus.
 
== See also ==
=== Subpages ===
{{div col|colwidth=22em}}
* [[History of the function concept]]
* [[List of types of functions]]
* [[List of functions]]
* [[Function fitting]]
* [[Implicit function]]
{{div col end}}
 
=== Generalizations ===
{{div col|colwidth=22em}}
* [[Higher-order function]]
* [[Homomorphism]]
* [[Morphism]]
* [[Microfunction]]
* [[Distribution (mathematics)|Distribution]]
* [[Functor]]
{{div col end}}
 
=== Related topics ===
{{div col|colwidth=22em}}
* [[Associative array]]
* [[Closed-form expression]]<!-- a function may or may not be defined by closed form -->
* [[Elementary function]]
* [[Functional (mathematics)|Functional]]
* [[Functional decomposition]]
* [[Functional predicate]]
* [[Functional programming]]
* [[Parametric equation]]
* [[Set function]]
* [[Simple function]]
{{div col end}}
 
== Notes ==
{{reflist|group=note}}
 
== References ==
{{reflist|refs=
<ref name="EOM Function">{{eom |title=Function |oldid=36823 |author-first=L.D. |author-last=Kudryavtsev|mode=cs1}}</ref>
}}
 
== Sources ==
{{refbegin}}
* {{cite book |last=Bartle |first=Robert |author-link=Robert G. Bartle |title=The Elements of Real Analysis |publisher=Wiley |isbn=978-0-471-05465-8 |date=1976 |edition=2nd |oclc=465115030}}
* {{cite book |last=Bloch |first=Ethan D. |title=Proofs and Fundamentals: A First Course in Abstract Mathematics |publisher=Springer |year=2011|isbn=978-1-4419-7126-5 |url=https://books.google.com/books?id=QJ_537n8zKYC}}
* {{cite book |last=Cunningham |first=Daniel W. |title=Set theory: A First Course |publisher=Cambridge University Press |year=2016 |isbn=978-1-107-12032-7}}
* {{cite book |last=Gödel |first=Kurt | author-link=Kurt Gödel|title=The Consistency of the Continuum Hypothesis |publisher=Princeton University Press |year=1940 |isbn=978-0-691-07927-1}}
* {{cite book |last=Halmos |first=Paul R. |author-link=Paul Halmos |year=1970 |title=Naive Set Theory |publisher=Springer-Verlag |isbn=978-0-387-90092-6 |url=https://books.google.com/books?id=x6cZBQ9qtgoC}}
* {{cite book |last=Jech | first=Thomas| author-link=Thomas Jech| title=Set theory| edition=3rd |publisher=[[Springer-Verlag]]| year=2003| isbn=978-3-540-44085-7}}
* {{cite book |title=Calculus |first=Michael |last=Spivak |author-link=Michael Spivak |edition=4th |year=2008 |publisher=Publish or Perish |isbn=978-0-914098-91-1 |url=https://books.google.com/books?id=7JKVu_9InRUC}}
{{refend}}
 
== Further reading ==
{{refbegin}}
* {{cite book |last=Anton |first=Howard |title=Calculus with Analytical Geometry |url=https://archive.org/details/studentssolution00anto |url-access=registration |year=1980 |publisher=[[John Wiley & Sons|Wiley]] |isbn=978-0-471-03248-9}}
* {{cite book |last=Bartle |first=Robert G. |title=The Elements of Real Analysis |edition=2nd |year=1976 |publisher=Wiley |isbn=978-0-471-05464-1}}
* {{Cite book |title=The Concept of Function: Aspects of Epistemology and Pedagogy|publisher=Mathematical Association of America |year=1992 |first1=Ed |last1=Dubinsky |first2=Guershon |last2=Harel |isbn=978-0-88385-081-7}}
* {{cite book |last=Hammack |first=Richard |title=Book of Proof |year=2009 |publisher=[[Virginia Commonwealth University]] |url=https://www.people.vcu.edu/~rhammack/BookOfProof/ |chapter=12. Functions |chapter-url=https://www.people.vcu.edu/~rhammack/BookOfProof/Main.pdf#page=235 |access-date=2012-08-01}}
* {{cite book |last=Husch |first=Lawrence S. |title=Visual Calculus |year=2001 |publisher=[[University of Tennessee]] |url=http://archives.math.utk.edu/visual.calculus/ |access-date=2007-09-27}}
* {{cite book |last=Katz |first=Robert |title=Axiomatic Analysis |year=1964 |publisher=[[D. C. Heath and Company]]}}
* {{cite journal |title=Evolution of the Function Concept: A Brief Survey |first=Israel |last=Kleiner |journal=The College Mathematics Journal |volume=20 |issue=4 |year=1989 |pages=282–300 |doi=10.2307/2686848|jstor=2686848 |citeseerx=10.1.1.113.6352 }}
* {{cite book |title=The Cambridge History of Science: The modern physical and mathematical sciences |chapter=Between rigor and applications: Developments in the concept of function in mathematical analysis |first=Jesper |last=Lützen |chapter-url=https://books.google.com/books?id=B3WvWhJTTX8C&pg=PA468 |editor-first=Roy|editor-last=Porter |publisher=Cambridge University Press |year=2003 |isbn=978-0-521-57199-9}} An approachable and diverting historical presentation.
* {{cite journal |title=Historical and pedagogical aspects of the definition of function |last=Malik |first=M. A. |journal=International Journal of Mathematical Education in Science and Technology |volume=11 |issue=4 |year=1980 |pages=489–492 |doi=10.1080/0020739800110404}}
* {{cite book |last=Reichenbach |first=Hans |date=1947 |title=Elements of Symbolic Logic |publisher=Dover |isbn=0-486-24004-5}}
* {{cite journal |last=Ruthing |first=D. |title=Old Intelligencer: Some definitions of the concept of function from Bernoulli, Joh. to Bourbaki, N. |journal=Mathematical Intelligencer |volume=6 |issue=4 |pages=71–78 |year=1984 |doi=10.1007/BF03026743|s2cid=189883712 }}
* {{cite book |last1=Thomas |first1=George B. |last2=Finney |first2=Ross L. |title=Calculus and Analytic Geometry |url=https://archive.org/details/calculusanalytic00geor_0 |url-access=registration |edition=9th |year=1995 |publisher=[[Addison-Wesley]] |isbn=978-0-201-53174-9}}
{{refend}}
 
== External links ==
* [http://functions.wolfram.com/ The Wolfram Functions Site], gives– website giving formulae and visualizations of many mathematical functions
* [https://dlmf.nist.gov/ NIST Digital Library of Mathematical Functions]
* [http://www.shodor.org/interactivate/activities/FunctionFlyer/ Shodor: Function Flyer], interactive Java applet for graphing and exploring functions.
 
* [http://math.hws.edu/xFunctions/ xFunctions], a Java applet for exploring functions graphically.
{{Analysis-footer}}
* [http://rechneronline.de/function-graphs/ Draw Function Graphs], online drawing program for mathematical functions.
{{Authority control}}
* [http://www.cut-the-knot.org/do_you_know/FunctionMain.shtml Functions] from [[cut-the-knot]]
* [http://www.apronus.com/provenmath/cartesian.htm Function at ProvenMath]
 
[[Category:Functions and mappings| ]]
[[Category:Basic concepts in set theory]]
[[Category:Elementary mathematics]]
 
[[be-x-old:Функцыя (матэматыка)]]
[[fa:تابع]]
 
[[ar:دالة رياضية]]
[[bs:Funkcija (matematika)]]
[[bg:Функция]]
[[ca:Funció matemàtica]]
[[cs:Funkce (matematika)]]
[[da:Funktion (matematik)]]
[[de:Funktion (Mathematik)]]
[[et:Funktsioon (matemaatika)]]
[[el:Συνάρτηση]]
[[es:Función matemática]]
[[eo:Funkcio (matematiko)]]
[[fr:Application (mathématiques)]]
[[gl:Función]]
[[ko:함수 (수학)]]
[[hr:Funkcija (matematika)]]
[[io:Funciono]]
[[id:Fungsi]]
[[is:Fall (stærðfræði)]]
[[it:Funzione (matematica)]]
[[he:פונקציה]]
[[ka:ფუნქცია (მათემატიკა)]]
[[lt:Funkcija (matematika)]]
[[hu:Függvény]]
[[nl:Functie (wiskunde)]]
[[ja:関数 (数学)]]
[[oc:Aplicacion (matematicas)]]
[[pl:Funkcja (matematyka)]]
[[pt:Função]]
[[ro:Funcţie (matematică)]]
[[ru:Функция (математика)]]
[[simple:Function (mathematics)]]
[[sk:Zobrazenie (matematika)]]
[[sl:Funkcija]]
[[sr:Функција]]
[[sh:Funkcija]]
[[fi:Funktio]]
[[sv:Funktion (matematik)]]
[[ta:செயலி (கணிதம்)]]
[[th:ฟังก์ชัน (คณิตศาสตร์)]]
[[vi:Hàm số]]
[[tr:İşlev (matematik)]]
[[uk:Функція (математика)]]
[[zh:函数]]