関数 (数学)

数学における関数（かんすう、、、、 蘭: "functie"、、函数とも書かれる）とは、かつてはある変数に依存して決まる値あるいはその対応を表す式のことであった。この言葉はライプニッツによって導入された。その後定義が一般化され、現代では数の集合に値をとる写像の一種であると理解されるものとなった。
名称表記の歴史.
日本語としての関数はもともと「函数」（）と書いた。函数という語は中国語から輸入されたものであり、中国での初出は1859年に出版された李善蘭の『』といわれる。既にオランダを通じて西洋数学（特に微積分）を勉強していた神田孝平らが翻訳の際に参考にしたとされる。
微積分について日本語で書かれた最初の本、花井静校・福田半編『筆算微積入門』(1880年) では「函数」が用いられている。それに続く長澤龜之助訳『微分学』(1881年)、岡本則録訳『査氏微分積分学』(1883年) のいずれも用語を『』、『』(1874年) などによっている。明治初期に東京數學會社で数学用語の日本語訳を検討する譯語會が毎月開催され、その結果が『東京數學會社雑誌』で逐次報告されている。この報告に の訳語は第62号 (1884年) の「原數」と第64号 (1884年) の「三角法函數」の二種類が登場する。一方、同誌の本文では61号 (1884年) や63号 (1884年) で「函數」が用いられている。
「函」が漢字制限による当用漢字に含まれなかったことから、1950年代以降同音の「関」へと書き換えがすすめられた。この他、「干数」案もあった。学習指導要領に「関数」が登場するのは中学校で1958年、高等学校で1960年であり、それまでは「函数」が用いられている。「関数」表記は 1985 年頃までには日本の初等教育の段階でほぼ定着した。
「函数」の中国語における発音は() であり、志賀浩二や小松勇作によればこれはfunctionの音訳であるという。一方、『代微積拾級』には「」とあり、これは変数を包む、含む式という意味で定義されていると解釈できる。また変数に天、地などの文字を用いて「天 = 函(地)」という表記もある。片野善一郎によれば、「函」の字義はつつむ、つつみこむであるから、「天 = 函(地)」という表現は「天は地を函む」ようにみえ、従属変数（の表現）に独立変数が容れられているという意味であるという。
なお、現代の初等教育の場においてはしばしば関数をブラックボックスのたとえで説明することがある。この説明では、「函」を「はこ」と読むことと関連付けて説明されることもあるが、「函数」の語の初出は1859年なのに対し、「ブラックボックス」の語の初出は1945年ごろとされることに注意を要する。
概要.
素朴な定式化.
二つの変数 と があり、入力 ' に対して、出力 ' の値を決定する規則（' に特定の値を代入するごとに ' の値が確定する）が与えられているとき、変数 ' を「' を独立変数 (independent variable) とする関数」或いは簡単に「' の関数」という。対応規則を明示するときは、適当な文字列（特に何か理由がなければ、function の頭文字から が選ばれることが多い）を使って と書いて、 を代入したときに決まる関数の値を と表す。しかしここで、定数関数の例に示されるように、個々の ' の値について対応する ' の値が一つに決まるとは限らない事に注意しなければならない。この という表記法は18世紀の数学者オイラーによるものである。オイラーは、変数や定数を組み合わせてできた数式のを関数と定義していたが、コーシーは、上に述べたように ' という変数を関数と定義した。
' が ' の関数であることの別の表現として、変数 ' は変数 ' に従属するとも言い、' を従属変数 (dependent variable) と言い表す。独立変数がとりうる値の全体（変域）を、この関数の定義域 (domain) といい、独立変数が定義域のあらゆる値をとるときに、従属変数がとりうる値（変域）を、この関数の値域 (range) という。
関数の終域は実数体 formula_1 や複素数体 formula_2 の部分集合であることが多い。終域が実数の集合となる関数を実数値関数 (real valued function) といい、終域が複素数の集合となる関数を複素数値関数 (complex valued function) という。それぞれ定義域がどのような集合であるかは問わないが、定義域も終域も実数の集合であるような関数を実関数 (real function) といい、定義域も終域も複素数の集合であるような関数を複素関数 (complex function) という。
現代的解釈.
ディリクレは、"" と の対応関係に対して一定の法則性を持たせる必要はないとした。つまり、個々の独立変数と従属変数の対応そのものが関数であり、その対応は数式などで表す必要はないという、オイラーとは異なる立場をとっている。
集合論的立場に立つ現代数学では、ディリクレのように関数を対応規則 のことであると解釈する。それは二項関係の特別の場合として関数を定義するということであり、その意味で関数は写像の同義語である。より細かく、「数」の集合への写像に限る場合もある。写像に用いる言葉、例えば
などはそのまま用いることができる。「数」に値を取る関数に特有の（つまり、一般の写像では成り立つとは限らない）性質もある。たとえば、像を用いて値毎の演算と呼ばれる函数同士の演算が定義できる： "x" を任意として、
。あるいはまた、実函数（実一変数で実数値の函数）formula_8 はグラフと呼ばれるで特徴づけられる。
記法.
函数を書き表すために標準的な方法がいくつかある。
一般的によく知られる記法は、函数名と引数を明示する式を用いて函数を定義する、いわゆる函数記法である。しかし函数記法には、「函数それ自身」と「函数の値」の区別ができないという問題点がある。
函数はイタリック体の文字一つで表すか（例えば ）、ローマン体の文字を複数用いて表す（例えば 三角関数: , 指数関数: , 対数関数: , 対数積分: , 跡: など）。後者のローマン体は例えば函数名の省略形で函数を表記する際などに用いられる。
イタリック体でなくローマン体を函数に用いることで、通常イタリック体で表記される変数との混同を避けることができる。
函数記法.
函数記法で formula_9（「 の における値が である」）と書けば、これは順序対 が函数を定義する順序対の集合に属することを意味する（より具体的に函数 の定義域を とすれば、函数を定義する順序対の集合とは、で formula_10と書ける）。
しばしば函数の定義は、函数 が明示された引数 に対して何をするのかという形で行われる。例えば を任意の実数 に対して成り立つ等式 formula_11 によって定義するものとすれば、これは を平方して 1 を加えその正弦をとるというより単純な複数の手続きの合成として考えることができる。
誤解のおそれのない場合、例えば複数文字の函数記号を用いる函数について、引数を明示する丸括弧は省略してよい。つまり formula_12 と書く代わりに formula_13 と書いてもよい。
函数記法を用いたのはレオンハルト・オイラーが最初（1734年）とされる。
矢印記法.
函数 の定義域 と終域 を明示する目的では、矢印記法 formula_14 や formula_15（「 は から への函数」「 は の元を の元に写す」）が用いられる。これに重ねて、元の間の関係を示すため「 が を に写す」ことを意味する をしばしば書き加える。
例えば、積の定義された集合 上で各元を平方する函数 を紛れなく定義するには formula_16 のように書けばよい。元の対応は と書いても良い。
しばしば函数記号や定義域および終域については省略される。そのような記法は、函数の任意の引数における値だけが等式で与えられている状況がよくあるので、その際に特別な函数記号を用意しなくてよいため有用である。例えば、二変数の函数 formula_17 が与えられていて、第二引数を値 に固定して得られる formula_18 に言及したいとき、この函数に新たに名前を付けなくても、formula_19 という元の対応を表す矢印記法を用いれば扱うことができる。
添字記法.
添字記法も函数記法と並んでよく用いられる記法で、函数記法の は添字記法では のように書かれる。
点記法.
矢印記法 において、記号 は特定の値を表さず、単なるプレースホルダとして、左辺の を任意の値に置き換えた際に右辺の も同じ値で置き換える必要があることを示すために、用いられている。したがって、 の代わりにどんな記号を使ってもよく、数式中の特定の値を表す文字との混同を避けるため、中黒 "" がよく用いられる。中黒を使用することで、例えば函数自身を と任意の点 における函数の値 とを区別することができる。
その他の例として、 を表すのに formula_23 と書く場合や、上の限界が変数である定積分 formula_24 を formula_25 と書く場合などが挙げられる。
特殊化された記法.
数学の特定の分野では、その他の特別な記法が使われたりもする。例えば線型代数学や函数解析学では線型形式をベクトルに作用させるときに、それらの間に成り立つ双対性を明らかにするために内積の記法が用いられる（量子力学でも同様のブラケット記法が用いられる）。数理論理学や計算理論ではラムダ計算の記法が、函数の抽象化やなどの基本概念を明示的に表すために用いられる。圏論やホモロジー代数では、上で見た函数の矢印記法を延長あるいは一般化するように、函数からなる図式およびそれらの合成が可換図式を満たすという意味でどのような可換性を持つかという形で記述される。
関数を特定するには.
函数 が与えられたとき、定義により、 の定義域の各点 に対して の における値 がただ一つ割り当てられる。 を に（陰に陽に）関係付ける方法を特定あるいは記述するやり方は様々である。場合によっては、（函数が具体的にどのような姿かたちをしているかについては一切言及せずに）適当な性質を持つ函数の存在を定理や公理によって保証することもあるが、大抵は函数 の定義の一部としてその特定法や記述法は言及される。
値を書き並べる.
有限集合上で定義された函数の場合には、定義域の各点に割り当てられる終域の元を全て書き並べることで函数を定義することができる。例えば formula_26 のとき函数 formula_27 を formula_28 として与えることができる。
式を与える.
四則演算やその他既知の函数を組み合わせた式（ただし手続き的な操作や無限個の組み合わせではない）によって函数が与えられることも多い。そのような式からは、定義域の任意の元の値から函数の値を計算することができる。例えば、一つ前の例の は formula_29 とも定義できる。
この方法で函数を定義したとき、その函数がどのような集合上で定義されているかの決定が難しい場合がときどき生じる。例えば定義式が割り算を含む場合には、分母が零になるような変数の値は定義域から除かなければならない。同様に、実函数の定義に平方根が含まれる場合には、平方根の引数が非負となるような変数の値の集合に定義域が収まるようにしなければならない。
式によって函数を定義する場合、それらの式が持つ性質・特性によって函数を分類することもしばしば行われる
逆函数や陰伏函数として定める.
函数 formula_35 が全単射とは、 の各元 に対し、 の元 がちょうど一つ（少なくとも一つ、かつ、高々一つ）存在して と書けることであった。この場合、 の逆函数 formula_36 が、任意の を を満たす に写す函数として定まる。例えば自然対数函数は正の実数全体の成す集合から実数全体の成す集合への全単射であるから、逆を持ち、それは指数函数と呼ばれる実数全体から正の実数全体への函数である。
函数 formula_35 が全単射でなくとも、適当な部分集合 formula_38 および formula_39 を選んで、 の への制限が から への全単射となり、その意味での逆函数を持つということは起こり得る。逆三角函数はこのような仕方で定義される。
より一般に、ふたつの集合 の間の二項関係 が与えられ、 の部分集合 は各元 に対して適当な が存在して とできるものとする。どの に対してそのような をひとつ選び出す判定法がわかっているものとすれば、函数 formula_40 を定義することができ、関係 から陰伏的に定まるとの意味で陰函数と呼ぶ。
陰函数定理は点の近傍における陰函数の存在と一意性を保証する緩やかな可微分性条件を提供するものである。
微積分学的な条件によって指定する.
適当な函数の原始函数として沢山の函数が定義できる。例えば自然対数函数は逆数函数 の原始函数で における値が となるものとして定義される。誤差函数 もこのような方法で定義される函数の例である。
より一般に、ほとんどの特殊函数を含めた多くの函数は微分方程式の解として定義される。最も単純な例として、指数函数はその微分が自分自身に等しいような函数の中で における値が となる唯一の函数として定義することができる。
冪級数はその収束域を定義域として函数を定義することに利用できる。例えば指数函数は formula_41 と定義できる。しかし、冪級数の係数列は極めて任意に決めることができるから、「収束冪級数の和として書ける函数」は大抵既にどこか別の場所で定義されていたり、係数列もその別な定義に基づく何らかの計算できまるなどしているものである。冪級数はそのような函数の定義域を拡大することに利用できる。典型的には、実変数の函数が適当な区間上でテイラー級数の和と等しいとき、その級数を用いて直ちに適当な複素領域（つまり、級数の収束円板）上の複素変数函数に定義域を拡大することができる。これはさらに解析接続を用いて複素数平面上のさらに大きな領域へ拡大できる。この方法は、複素変数の指数函数・対数函数及び三角函数の定義に一般的に用いられる方法である。
漸化式を与える.
定義域が非負整数であるような函数（つまり数列）はしばしば漸化式によって定義される。
基本的な例として、非負整数にその階乗を対応させる函数 formula_42 は漸化式 formula_43 と初期条件 formula_44 によって決まる。
表示法.
函数のグラフは函数の直観的描像を与えるために広く用いられる。グラフからは、例えば函数がどのように増減するかといった函数の性質を読み取ることができて、函数の理解に役立つ。函数によっては、その表現に棒グラフなども利用できる。
グラフ.
与えられた函数 formula_35 のグラフとは、形式的な集合 formula_46 のことである。
よくある場合として および が実数全体（あるいはその特定の部分集合、例えば区間など）の部分集合となっているとき、実数の組 formula_47 を二次元の座標系（例えばにおいて座標 を持つ点と同一視することができる。このような函数（の一部分）の表示法の一環として、プロット図を書くことができる（こういったプロット図もまた「函数のグラフ」として至る所で良く用いられる）。また違った座標系を使って函数の図示をすることもできる。例えば平方函数 のグラフは座標 を持つ点の全体で、直交座標系に表せばよく知られたように抛物線になる。これをもし極座標系を用いて、極座標 を持つ点をプロットしたならば、この場合のグラフはになる。
値の表.
引数のとる値と函数のとる値を表の形に書きならべることに依って函数を表現することもできる。定義域が有限ならば、このやり方で函数を完全に特定することができる。例えば、掛け算をする函数 formula_48 は馴染みの乗積表
によって表すことができる。
しかし、定義域が連続的な場合には、定義域の特定の値に対する函数の値しか表には表示することができない。中間の値が必要となったときには、補間を使って函数の値を評価することは可能である。例えば正弦函数の小数第6位までで丸めた値を並べた数表の一部を以下のように与えることができる:
計算機や電卓の登場以前には、対数や三角函数などの函数に対するこのような数表がしばしば編纂され出版されていた。
棒グラフ.
有限集合、あるいは自然数または整数全体で定義された函数を表示するのに、棒グラフもまたよく用いられる。この場合、各元 は -軸上の区間を表しており、函数の値は の表す区間を底辺とする高さ の長方形として表現できる。
解析学.
17世紀にはじまった函数の概念は、新しい無限小解析の基礎付けとなった（を参照）。当時は、実変数の実数値函数しか考えられておらず、どの函数も滑らかな函数であることが仮定されていたが、直に多変数函数や複素変数函数に定義が拡張されていった。19世紀後半には数学的に厳密な函数の定義が導入され、任意の定義域および終域を持つ函数も扱われ始めた。
いまや函数は数学のあらゆる分野において用いられる。初歩の基礎解析学では単に「函数」といえば一変数の実数値函数の意味である。より一般の定義が導入され厳密な設定のもとで函数を扱うようになるのは実解析や複素解析においてであろう。
実函数.
実函数とは「実変数」「実数値」の函数、つまり実数全体の成す集合を終域とし実数からなる適当な区間を含む部分集合を定義域とする函数を言う。以下本節では、そのような函数を単に函数と呼ぶことにする。
数学及びその応用分野において最もよく扱われる函数はさらに適当な正則性条件（連続性や微分可能性あるいは解析性など）が課せられる。このような正則性があることによって、函数はそのグラフを用いてよく視覚化することができる。以下、適当な区間上で微分可能であるような函数だけを扱う。
函数は点ごとの演算が備わっている。つまり、函数 に対して、それらの和・差・積を formula_49 で定義すれば、 の定義域の交わりを定義域とする函数が得られる。同様にこれらの商を formula_50 と定義することができるが、この場合定義域は の定義域の交わりから の零点を除いたものになる。
多項式からは実数全体で定義された多項式函数が定まる。これには定数函数・一次函数・二次函数などが含まれる。ふたつの多項式函数の商である有理函数は（零除算が起きないように）有限個の例外を除くすべての実数を定義域とする。もっとも単純な有理函数 のグラフは双曲線で を除く実数直線全体を定義域に持つ。
実可微分函数の導函数もまた実函数である。実連続函数の原始函数はもとの函数が連続となる任意の開区間上で可微分な実函数を与える。例えば逆数函数 は正の実数全体の成す集合上で連続（さらに微分可能）であるから、その原始函数で において零となるもの（自然対数函数）は正の実数全体の成す集合上で微分可能である。
実函数 がある区間上で単調となるのは、平均の変化率 formula_51 の符号が、その区間内の点 の選び方に依らず一定であるときである。その函数がその区間で微分可能ならば、その区間上で微分係数の符号が一定であるときに単調となる。実函数 が区間 において単調であるならば、 の逆函数が から への函数として定まる。このような方法で、逆三角函数は三角函数が単調となる区間上で三角函数の逆函数として与えられる。あるいはまた、自然対数函数は正の実軸上で単調で値域は実数直線全体となるから、その逆函数である指数函数は実数全体から正の実数全体への全単射であることが分かる。
他にも多くの実函数が陰函数定理（逆函数は陰函数の特別の場合）から、あるいは微分方程式の解として、定義される。例えば正弦函数 や余弦函数 は線型微分方程式 formula_52 の解として初期条件 formula_53 から定まる。
ベクトル値函数.
終域の元がベクトルとなっているような函数はベクトル値函数と呼ばれる。ベクトル値函数は、（例えば物理的性質をモデル化するような）応用において特に有用で、例えば流束の各点においてその点での速度ベクトルを割り当てる函数はベクトル値函数になる。
（あるいは多様体のように と似た幾何学的または位相的性質を持つ空間）上で定義されたベクトル値函数を考えることもできて、そのようなベクトル値函数はベクトル場と呼ばれる。
函数空間.
解析学あるいはより具体的に函数解析学において、特定の性質を共有するスカラー値またはベクトル値の函数からなり位相線型空間を成すような集合を函数空間と呼ぶ。例えば、コンパクト台付き（つまり、適当なコンパクト集合の外側では常に零となる）滑らかな実函数全体の成す集合は、シュヴァルツ超函数論の基盤となる函数空間を成す。
函数空間ではその代数的および位相的性質を利用して函数の性質を調べることができるようになるから、より進んだ解析学において函数空間は基本的な役割を果たすことになる。例えば、常微分方程式や偏微分方程式における解の存在や一意性を言うすべての定理は函数空間を調べることで得られた結果である。
多変数関数と多価関数.
複数の変数によって値が決定される関数を多変数関数という。これは複数の数の集合たちの直積集合から数の集合への写像であると解釈される。ベクトルの集合を定義域とする独立変数をもつ関数と解釈することもある。 個の変数で決まる関数であれば、 変数関数とも呼ばれ
のように書かれる。例えば
は二変数関数である。
一つの入力に複数の出力を返すような対応規則を関数の仲間として捉えるとき多価関数 (multi-valued function) という。常に 個の出力を得る関数は 価であるといい、その を多価関数の価数と呼ぶ。例えば正の実数にその平方根を与える操作は正と負の二つ値を持つので、二価関数である。多価関数に対し、普通の一つの値しか返さない関数は一価関数といわれる。
多変数関数は独立変数がベクトルに値をとるものと解釈できるということを上に述べたが、逆に従属変数がベクトルの値を持つような写像も考えられ、それをベクトル値関数という。ベクトル値関数が与えられたとき、像のベクトルに対してその各成分をとり出す写像を合成することにより、通常の一価関数が複数得られる。つまり、定義域を共有するいくつかの関数を一つのベクトルとしてまとめて扱ったものがベクトル値関数であるということができる。
一つの例として、実数体 formula_1 で定義された二価の関数
はベクトル値関数
として扱うことができる。また、定義域の "コピー" を作って定義域を広げてやることで、その拡張された定義域上の一価の関数
と見なすこともある。複素変数の対数関数 は素朴には無限多価関数であるが、これを のリーマン面上の一価関数と見なすなど、定義域を広げて一価にする手法は解析的な関数に対してしばしば用いられる。
陽表式と陰伏式.
多変数方程式がいくつかの関数関係を定義することもある。例えば
のような式が与えられているとき、"x" と "y" は独立に別々の値をとることはできない。"x" に勝手な値を与えるならば、"y" は "x" の値によってとりうる値の制約を受けるからである。このことを以って、独立変数 "x" と従属変数 "y" が対応付けられると考えるとき、方程式 "F"("x", "y") = 0 は "x" の関数 "y" を陰 (implicit) に定めるといい、"y" を "x" の陰伏関数または陰関数 (implicit function) という。これに対して、"y" = "f"("x") と表されるような関数関係を、"y" は "x" の陽関数 (explicit function) である、あるいは "y" は "x" で陽 (explicit) に表されているなどと言い表す。
陰伏的な関数関係が "F"("x", "y") = 0 によって与えられていて、陽な関数関係 "y" = "f"("x") が適当な集合 "D" を定義域として "F"("x", "f"("x")) = 0 を満たすなら、この陽関数 "y" = "f"("x") は "D" 上で関係式 "F"("x", "y") = 0 から陰伏的に得られるという。関数の概念を広くとらず、一価で連続である場合や一価正則な場合などに考察を限ることはしばしば行われることであるが、そのような仮定のもとでは陰関数から陰伏的に得られる陽関数は一つとは限らず、一般に一つの陰関数は（定義域や値域でより分けることにより）複数の陽関数に分解される。このとき、陰伏的に得られた個々の陽関数をもとの陰関数の枝という。また、陰関数の複数の枝を総じて扱うならば、陰関数の概念から多価関数の概念を得ることになる。例えば、方程式
が定める陰関数 "y" は全域で 2 つの一価連続な枝
をもつ二価関数である。
また、媒介変数を導入して関係式を分解し、各変数を媒介変数の陽関数として表すことによって、陰関数を表すこともある。例えば、方程式 2"x" − 3"y" = 0 は、媒介変数 "t" を導入して
と表すことができるが、これによって "y" と "x" の陰伏的な関数関係が表されていると考えるのである。
数列.
有限集合からの関数は実質的に数の組あるいは数列と呼ばれるものになる（適当な演算をいれてベクトルと見ることもできる）。それはつまり、集合の各元に序列を与えて {1, 2, ..., "n"} と並べるとき、"k" = 1, 2, ..., "n" に対して "x""k" = "x"("k") を対応付ける関数 "x" を
のかたちに表すのである。これは有限列であるが、無限列 
を考えれば、それは各自然数 "n" に対して、数 "s""n" を対応させる
という関数を考えていることに他ならない。もっと一般に数の族を考慮に入れれば、通常の実関数 "f" = "f"("x") を "x" を添字に持つ実数の族
と読みかえることができる。
汎関数.
関数を変数に取る関数はとくに汎関数 (functional) と呼ばれる。特にある集合上の関数の作るベクトル空間から係数体への線型写像を線型汎関数 (linear functional) という。文脈によっては単に汎関数といえば線型汎関数を指すこともある。たとえば積分
は可積分関数 "f" を変数と見なして様々に取り替えることによって汎関数 "F" を与える。積分は線型性を持つから、"F" は線型汎関数である。
有限個の変数の組を考えることも関数の一種であったから、汎関数
はひとつまたは複数のパラメータで添字付けられる一般には無限個の変数をもつ関数の一種
と見なすことができる。また、有限次元ベクトル空間は基底を固定することにより、その座標で表される係数体の有限個の直積と同型であるから、そこからの汎関数は多変数関数
と同一視できる。
関数に対して数を対応付けるという汎関数の概念は、さらに関数に関数を対応付ける作用素の概念に一般化される。
超関数.
シュワルツの超関数（分布、）の理論は、汎関数の一種（コンパクトな台を持つ無限階微分可能関数の作る空間上の連続線型汎関数）として超関数を定義する。通常の局所可積分関数に測度を掛けて積分作用素として見ると、この意味で超関数と見なされる。
この様な連続線型汎関数を用いた定式化の方向で よりも大きいクラスとしては、超分布 が知られている。
一方、佐藤の超関数（）は層係数コホモロジー等の代数的手法を用いて定義される。この代数的手法の解析学への導入により、線型微分方程式系の代数化である 加群の理論等、代数解析学と呼ばれる分野が開かれた。以上の超関数のクラスは局所化可能、言い換えれば層を成すという事が重要である。
「関数」と「函数」の違いについて.
「函」が漢字制限による当用漢字に含まれなかったことから、1950年代以降同音の「関」へと書き換えがすすめられた。この他、「干数」案もあった。学習指導要領に「関数」が登場するのは中学校で1958年、高等学校で1960年であり、それまでは「函数」が用いられている。「関数」表記は 1985 年頃までには日本の初等教育の段階でほぼ定着した。