In mathematics, an **endomorphism** is a morphism from a mathematical object to itself. An endomorphism that is also an isomorphism is an automorphism. For example, an endomorphism of a vector space *V* is a linear map *f*: *V* → *V*, and an endomorphism of a group *G* is a group homomorphism *f*: *G* → *G*. In general, we can talk about endomorphisms in any category. In the category of sets, endomorphisms are functions from a set *S* to itself.

In any category, the composition of any two endomorphisms of *X* is again an endomorphism of *X*. It follows that the set of all endomorphisms of *X* forms a monoid, the full transformation monoid, and denoted End(*X*) (or End_{C}(*X*) to emphasize the category *C*).

Main article: Automorphism |

An invertible endomorphism of *X* is called an automorphism. The set of all automorphisms is a subset of End(*X*) with a group structure, called the automorphism group of *X* and denoted Aut(*X*). In the following diagram, the arrows denote implication:

Automorphism | ⇒ | Isomorphism |

⇓ | ⇓ | |

Endomorphism | ⇒ | (Homo)morphism |

Main article: Endomorphism ring |

Any two endomorphisms of an abelian group, *A*, can be added together by the rule (*f* + *g*)(*a*) = *f*(*a*) + *g*(*a*). Under this addition, and with multiplication being defined as function composition, the endomorphisms of an abelian group form a ring (the endomorphism ring). For example, the set of endomorphisms of ℤ^{n} is the ring of all *n* × *n* matrices with integer entries. The endomorphisms of a vector space or module also form a ring, as do the endomorphisms of any object in a preadditive category. The endomorphisms of a nonabelian group generate an algebraic structure known as a near-ring. Every ring with one is the endomorphism ring of its regular module, and so is a subring of an endomorphism ring of an abelian group;^{[1]} however there are rings that are not the endomorphism ring of any abelian group.

In any concrete category, especially for vector spaces, endomorphisms are maps from a set into itself, and may be interpreted as unary operators on that set, acting on the elements, and allowing the notion of element orbits to be defined, etc.

Depending on the additional structure defined for the category at hand (topology, metric, ...), such operators can have properties like continuity, boundedness, and so on. More details should be found in the article about operator theory.

An **endofunction** is a function whose domain is equal to its codomain. A homomorphic endofunction is an endomorphism.

Let *S* be an arbitrary set. Among endofunctions on *S* one finds permutations of *S* and constant functions associating to every *x* in *S* the same element *c* in *S*. Every permutation of *S* has the codomain equal to its domain and is bijective and invertible. If *S* has more than one element, a constant function on *S* has an image that is a proper subset of its codomain, and thus is not bijective (and hence not invertible). The function associating to each natural number *n* the floor of *n*/2 has its image equal to its codomain and is not invertible.

Finite endofunctions are equivalent to directed pseudoforests. For sets of size *n* there are *n*^{n} endofunctions on the set.

Particular examples of bijective endofunctions are the involutions; i.e., the functions coinciding with their inverses.