数学における関数(かんすう、、、、 蘭: functie、、函数とも書かれる)とは、かつてはある変数に依存して決まる値あるいはその対応を表す式のことであった。この言葉はゴットフリート・ライプニッツによって導入された。その後定義が一般化され、現代では数の集合に値をとる写像の一種であると理解されるものとなった。

概要 素朴な定式化 二つの変数 と があり、入力 に対して、出力 の値を決定する規則( に特定の値を代入するごとに の値が確定する)が与えられているとき、変数 を「 を独立変数 (independent variable) とする関数」或いは簡単に「 の関数」という。対応規則を明示するときは、適当な文字列(特に何か理由がなければ、function の頭文字から が選ばれることが多い)を使って と書いて、 を代入したときに決まる関数の値を と表す。しかしここで、定数関数の例に示されるように、個々の の値について対応する の値が一つに決まるとは限らない事に注意しなければならない。この という表記法は18世紀の数学者レオンハルト・オイラーによるものである。オイラーは、変数や定数を組み合わせてできた数式のことを関数と定義していたが、コーシーは、上に述べたように という変数を関数と定義した。

が の関数であることの別の表現として、変数 は変数 に従属するとも言い、 を従属変数 (dependent variable) と言い表す。独立変数がとりうる値の全体(変域)を、この関数の定義域 (domain) という。

一方、現代的な解釈(写像としての関数)においては、関数が値を取りうる集合(変域)を終域 (codomain) と呼び、実際に変数がとる値の集合(定義域の像)である値域 (range; image) と区別することがある。

関数の終域は実数体 や複素数体 の部分集合であることが多い。終域が実数の集合となる関数を実数値関数 (real valued function) といい、終域が複素数の集合となる関数を複素数値関数 (complex valued function) という。それぞれ定義域がどのような集合であるかは問わないが、定義域も終域も実数の集合であるような関数を実関数 (real function) といい、定義域も終域も複素数の集合であるような関数を複素関数 (complex function) という。

現代的解釈 ディリクレは、 と の対応関係に対して一定の法則性を持たせる必要はないとした。つまり、個々の独立変数と従属変数の対応そのものが関数であり、その対応は数式などで表す必要はないという、オイラーとは異なる立場をとっている。

集合論的立場に立つ現代数学では、ディリクレのように関数を対応規則 のことであると解釈する。厳密には、関数(写像) は、始域 、終域 、および と の直積集合 の部分集合(二項関係) の三つ組 として定義される。ここで は「関数のグラフ」と呼ばれ、以下の条件を満たすものである。 任意の に対して、 となる が存在する。(全域性) かつ ならば である。(一意性) すなわち、始域の全ての元に対して、終域のただ一つの元が対応する規則のことである。なお、始域と終域が文脈から明らかな場合などには、単にグラフ そのものを関数と呼ぶこともある。その意味で関数は写像の同義語である。より細かく、「数」の集合への写像に限る場合もある。写像に用いる言葉、例えば 合成(合成関数) 全射、単射(一対一ともいう)、全単射(双射、一対一対応ともいう) 逆(逆関数) などはそのまま用いることができる。「数」に値を取る関数に特有の(つまり、一般の写像では成り立つとは限らない)性質もある。たとえば、像を用いて値毎の演算と呼ばれる函数同士の演算が定義できる: x を任意として、

 (ただし) と定義できる。あるいはまた、実函数(実一変数で実数値の函数) はグラフと呼ばれるで特徴づけられる。

名称表記の歴史

日本語としての関数はもともと「函数」()と書いた。函数という語は中国語から輸入されたものであり、中国での初出は1859年に出版された李善蘭の『』といわれる。既にオランダを通じて西洋数学(特に微積分)を勉強していた神田孝平らが翻訳の際に参考にしたとされる。

微積分について日本語で書かれた最初の本、花井静校・福田半編『筆算微積入門』(1880年) では「函数」が用いられている。それに続く長澤龜之助訳『微分学』(1881年)、岡本則録訳『査氏微分積分学』(1883年) のいずれも用語を『』、『』(1874年) などによっている。明治初期に東京數學會社で数学用語の日本語訳を検討する譯語會が毎月開催され、その結果が『東京數學會社雑誌』で逐次報告されている。この報告に の訳語は第62号 (1884年) の「原數」と第64号 (1884年) の「三角法函數」の二種類が登場する。一方、同誌の本文では61号 (1884年) や63号 (1884年) で「函數」が用いられている。

「函」が漢字制限による当用漢字に含まれなかったことから、1950年代以降同音の「関」へと書き換えがすすめられたこの経緯については、島田茂 (1981)「学校数学での用語と記号」福原満州雄他『数学と日本語』共立出版 ISBN 4-320-01315-8 pp.135-169 に詳しい。。この他、「干数」案もあった一松信 (1999)「当用漢字による書き替え」数学セミナー編集部編『数学の言葉づかい100』日本評論社 ISBN 4-535-60613-7 p.5。学習指導要領に「関数」が登場するのは中学校で1958年、高等学校で1960年であり、それまでは「函数」が用いられている。「関数」表記は 1985 年頃までには日本の初等教育の段階でほぼ定着した小松勇作「関数」『数学100の慣用語』数学セミナー1985 年9月増刊、数学セミナー編集部編『数学の言葉づかい100』日本評論社 ISBN 4-535-60613-7 p. 58 に再録。

「函数」の中国語における発音は() であり、志賀浩二や小松勇作によればこれはfunctionの音訳であるという志賀浩二『数学が生まれる物語/第4週 座標とグラフ』岩波書店、70頁(1992年)。一方、『代微積拾級』には「」東北大学附属図書館林文庫蔵。東北大学和算資料データベースで『』を検索することにより、画像ファイルを見ることができる。とあり、これは変数を包む、含む式という意味で定義されていると解釈できる。また変数に天、地などの文字を用いて「天 = 函(地)」という表記もある。片野善一郎によれば、「函」の字義はつつむ、つつみこむであるから、「天 = 函(地)」という表現は「天は地を函む」ようにみえ、従属変数(の表現)に独立変数が容れられているという意味であるという。

なお、現代の初等教育の場においてはしばしば関数をブラックボックスのたとえで説明することがある飯島徹穂編著、『数の単語帖』、共立出版、2003年、「関数」より。ISBN 978-4-320-01728-3遠山啓、『』、岩波書店、〈岩波現代文庫〉、2011年。ISBN 978-4-00-603215-9。この説明では、「函」を「はこ」と読むことと関連付けて説明されることもある。ただし、「函数」の語の初出は1859年であり、1945年ごろに登場した「ブラックボックス」の概念とは、語源上の直接的な関係はない。

記法 函数を書き表すために標準的な方法がいくつかある。

一般的によく知られる記法は、函数名と引数を明示する式を用いて函数を定義する、いわゆる函数記法である。しかし函数記法では、「函数それ自身」と「函数の値」 の表記が混同されやすく、文脈によっては両者の区別が曖昧になる場合がある。

函数はイタリック体の文字一つで表すか(例えば )、ローマン体の文字を複数用いて表す(例えば 三角関数: , 指数関数: , 対数: , 対数積分: , 跡: など)。後者のローマン体は例えば函数名の省略形で函数を表記する際などに用いられる。 イタリック体でなくローマン体を函数に用いることで、通常イタリック体で表記される変数との混同を避けることができる, p. 98, §13.3. Standard abbreviated forms of mathematical expressions and functions.。

函数記法 函数記法で (「 の における値が である」)と書けば、これは順序対 が函数を定義する順序対の集合に属することを意味する(より具体的に函数 の定義域を とすれば、函数を定義する順序対の集合とは、で と書ける)。

しばしば函数の定義は、函数 が明示された引数 に対して何をするのかという形で行われる。例えば を任意の実数 に対して成り立つ等式 によって定義するものとすれば、これは を自乗して 1 を加えその正弦をとるというより単純な複数の手続きの合成として考えることができる。

誤解のおそれのない場合、例えば複数文字の函数記号を用いる函数について、引数を明示する丸括弧は省略してよい。つまり と書く代わりに と書いてもよい。

函数記法を用いたのはレオンハルト・オイラーが最初(1734年)とされる。

矢印記法 函数 の定義域 と終域 を明示する目的では、矢印記法 や (「 は から への函数」「 は の元を の元に写す」)が用いられる。これに重ねて、元の間の関係を示すため「 が を に写す」ことを意味する をしばしば書き加える。

例えば、積の定義された集合 上で各元を平方する函数 を紛れなく定義するには のように書けばよい。元の対応は と書いても良い。

しばしば函数記号や定義域および終域については省略される。そのような記法は、函数の任意の引数における値だけが等式で与えられている状況がよくあるので、その際に特別な函数記号を用意しなくてよいため有用である。例えば、二変数の函数 が与えられていて、第二引数を値 に固定して得られる に言及したいとき、この函数に新たに名前を付けなくても、 という元の対応を表す矢印記法を用いれば扱うことができる。

添字記法 添字記法も函数記法と並んでよく用いられる記法で、函数記法の は添字記法では のように書かれる。

定義域が自然数の場合(つまり、数列の場合)には添字記法を使うのが典型的で、各値 は数列の 番目の項と呼ばれる。 複数の引数を持つ函数において、それら引数が「真の変数」と媒介変数(パラメータ)に分けられるとき、真の変数ではないことを区別するために助変数を添字にすることがしばしば行われる(実際にはパラメータというものは、一つの問題を考察している間は何らかの値に固定されているものと見なされるような変数を言うのである)。例えば、先の例でもみた二変数函数の偏函数 を添字記法で と書けば、定義式 によって一変数函数の族 が定義される。

点記法 矢印記法 において、記号 は特定の値を表さず、単なるプレースホルダとして、左辺の を任意の値に置き換えた際に右辺の も同じ値で置き換える必要があることを示すために、用いられている。したがって、 の代わりにどんな記号を使ってもよく、数式中の特定の値を表す文字との混同を避けるため、中黒 "" がよく用いられる。中黒を使用することで、例えば函数自身 と任意の点 における函数の値 とを区別することができる。

その他の例として、 を表すのに と書く場合や、上の限界が変数である定積分 を と書く場合などが挙げられる。

特殊化された記法 数学の特定の分野では、その他の特別な記法が使われたりもする。例えば線型代数学や関数解析学では線型写像をベクトルに作用させるときに、それらの間に成り立つ双対性を明らかにするために内積の記法が用いられる(量子力学でも同様のブラ-ケット記法が用いられる)。数理論理学や計算理論ではラムダ計算の記法が、函数の抽象化やなどの基本概念を明示的に表すために用いられる。圏論やホモロジー代数学では、上で見た函数の矢印記法を延長あるいは一般化するように、函数からなる図式およびそれらの合成が可換図式を満たすという意味でどのような可換性を持つかという形で記述される。

関数を特定するには 函数 が与えられたとき、定義により、 の定義域の各点 に対して の における値 がただ一つ割り当てられる。 を に(陰に陽に)関係付ける方法を特定あるいは記述するやり方は様々である。場合によっては、(函数が具体的にどのような姿かたちをしているかについては一切言及せずに)適当な性質を持つ函数の存在を定理や公理によって保証することもあるが、大抵は函数 の定義の一部としてその特定法や記述法は言及される。

値を書き並べる 有限集合上で定義された函数の場合には、定義域の各点に割り当てられる終域の元を全て書き並べることで函数を定義することができる。例えば のとき函数 を として与えることができる。

式を与える 算術やその他既知の函数を組み合わせた式(ただし手続き的な操作や無限個の組み合わせではない)によって函数が与えられることも多い。そのような式からは、定義域の任意の元の値から函数の値を計算することができる。例えば、一つ前の例の は とも定義できる。

この方法で函数を定義したとき、その函数がどのような集合上で定義されているかの決定が難しい場合がときどき生じる。例えば定義式が割り算を含む場合には、分母が零になるような変数の値は定義域から除かなければならない。同様に、実函数の定義に平方根が含まれる場合には、平方根の引数が非負となるような変数の値の集合に定義域が収まるようにしなければならない。

関数の分類 式によって函数を定義する場合、それらの式が持つ性質・特性によって函数を分類することもしばしば行われる。 関数 形式 初等関数 代数関数 有理関数 多項式関数 一次関数 二次関数 三次関数 分数関数 無理関数 初等超越関数指数関数ax, ex, 2x対数関数log(x), ln(x), loga(x)三角関数sin(x), cos(x), tan(x)逆三角関数sin−1(x), cos−1(x), tan−1(x)双曲線関数sinh(x), cosh(x), tanh(x) 特殊関数ガンマ関数Γ(x)ベータ関数Β(x, y)誤差関数erf(x)テータ関数ゼータ関数ζ(x)マチウ関数 * 代表的な関数とその具体例の一覧表を掲げる日本数学会編、『岩波数学辞典 第4版』、岩波書店、2007年、項目「特殊関数」より。ISBN 978-4-00-080309-0 C3541 。全てのものを網羅しているわけではないことに注意されたい。 二次関数は の形(ただし は 定数)と書ける函数を言う。 より一般に、多項式函数は加法・減法・乗法と非負整数冪乗のみを含む式で定義することができる函数である。例えば や など。 有理関数は多項式函数と同じ条件からさらに除法を許すようなものである。例えば や など。 代数関数はさらに冪根や多項式の根をとる操作が許される。 上記をすべて含む初等関数には、さらに対数や指数関数などが含まれる。

逆函数や陰伏函数として定める 函数 が全単射とは、 の各元 に対し、 の元 がちょうど一つ(少なくとも一つ、かつ、高々一つ)存在して と書けることであった。この場合、 の逆函数 が、任意の を を満たす に写す函数として定まる。例えば自然対数函数は正の実数全体の成す集合から実数全体の成す集合への全単射であるから、逆を持ち、それは指数函数と呼ばれる実数全体から正の実数全体への函数である。

函数 が全単射でなくとも、適当な部分集合 および を選んで、 の への制限が から への全単射となり、その意味での逆函数を持つということは起こり得る。逆三角関数はこのような仕方で定義される。

より一般に、ふたつの集合 の間の二項関係 が与えられ、 の部分集合 は各元 に対して適当な が存在して とできるものとする。どの に対してそのような をひとつ選び出す判定法がわかっているものとすれば、函数 を定義することができ、関係 から陰伏的に定まるとの意味で陰関数と呼ぶ。

陰函数定理は点の近傍における陰函数の存在と一意性を保証する緩やかな可微分性条件を提供するものである。

微積分学的な条件によって指定する 適当な函数の原始函数として沢山の函数が定義できる。例えば自然対数函数は逆数函数 の原始函数で における値が となるものとして定義される。誤差関数 もこのような方法で定義される函数の例である。

より一般に、ほとんどの特殊関数を含めた多くの函数は微分方程式の解として定義される。最も単純な例として、指数函数はその微分が自分自身に等しいような函数の中で における値が となる唯一の函数として定義することができる。

冪級数はその収束域を定義域として函数を定義することに利用できる。例えば指数函数は と定義できる。しかし、冪級数の係数列は極めて任意に決めることができるから、「収束冪級数の和として書ける函数」は大抵既にどこか別の場所で定義されていたり、係数列もその別な定義に基づく何らかの計算できまるなどしているものである。冪級数はそのような函数の定義域を拡大することに利用できる。典型的には、実変数の函数が適当な区間上でテイラー展開の和と等しいとき、その級数を用いて直ちに適当な複素領域(つまり、級数の収束円板)上の複素変数函数に定義域を拡大することができる。これはさらに解析接続を用いて複素平面上のさらに大きな領域へ拡大できる。この方法は、複素変数の指数函数・対数函数及び三角函数の定義に一般的に用いられる方法である。

漸化式を与える

定義域が非負整数であるような函数(つまり数列)はしばしば漸化式によって定義される。

基本的な例として、非負整数にその階乗を対応させる函数 は漸化式 と初期条件 によって決まる。

表示法 グラフは函数の直観的描像を与えるために広く用いられる。グラフからは、例えば函数がどのように増減するかといった函数の性質を読み取ることができて、函数の理解に役立つ。函数によっては、その表現に棒グラフなども利用できる。

グラフ

与えられた函数 のグラフとは、形式的な集合 のことである。

よくある場合として および が実数全体(あるいはその特定の部分集合、例えば区間など)の部分集合となっているとき、実数の組 を二次元の座標系(例えばにおいて座標 を持つ点と同一視することができる。このような函数(の一部分)の表示法の一環として、プロット図を書くことができる(こういったプロット図もまた「函数のグラフ」として至る所で良く用いられる)。また違った座標系を使って函数の図示をすることもできる。例えば平方函数 のグラフは座標 を持つ点の全体で、直交座標系に表せばよく知られたように放物線になる。これをもし極座標系を用いて、極座標 を持つ点をプロットしたならば、この場合のグラフはになる。

値の表

引数のとる値と函数のとる値を表の形に書きならべることに依って函数を表現することもできる。定義域が有限ならば、このやり方で函数を完全に特定することができる。例えば、掛け算をする函数 は馴染みの積表 \ 1 2 3 4 5 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 によって表すことができる。

しかし、定義域が連続的な場合には、定義域の特定の値に対する函数の値しか表には表示することができない。中間の値が必要となったときには、補間を使って函数の値を評価することは可能である。例えば正弦函数の小数第6位までで丸めた値を並べた数表の一部を以下のように与えることができる: 1.289 0.9605571.290 0.9608351.291 0.9611121.292 0.9613871.293 0.961662

計算機や電卓の登場以前には、対数や三角函数などの函数に対するこのような数表がしばしば編纂され出版されていた。

棒グラフ

有限集合、あるいは自然数または整数全体で定義された函数を表示するのに、棒グラフもまたよく用いられる。この場合、各元 は -軸上の区間を表しており、函数の値は の表す区間を底辺とする高さ の長方形として表現できる。

解析学 17世紀にはじまった函数の概念は、新しい無限小解析の基礎付けとなった(を参照)。当時は、実変数の実数値関数しか考えられておらず、どの函数も滑らかな関数であることが仮定されていたが、直に多変数複素関数に定義が拡張されていった。19世紀後半には数学的に厳密な函数の定義が導入され、任意の定義域および終域を持つ函数も扱われ始めた。

いまや函数は数学のあらゆる分野において用いられる。初歩の基礎解析学では単に「函数」といえば一変数の実数値函数の意味である。より一般の定義が導入され厳密な設定のもとで函数を扱うようになるのは実解析や複素解析においてであろう。

実函数

実函数とは「実変数」「実数値」の函数、つまり実数全体の成す集合を終域とし実数からなる適当な区間を含む部分集合を定義域とする函数を言う。以下本節では、そのような函数を単に函数と呼ぶことにする。

数学及びその応用分野において最もよく扱われる函数はさらに適当な正則性条件(連続や微分可能関数あるいは解析関数など)が課せられる。このような正則性があることによって、函数はそのグラフを用いてよく視覚化することができる。以下、適当な区間上で微分可能であるような函数だけを扱う。

函数は点ごとの演算が備わっている。つまり、函数 に対して、それらの和・差・積を で定義すれば、 の定義域の交わりを定義域とする函数が得られる。同様にこれらの商を と定義することができるが、この場合定義域は の定義域の交わりから の関数の零点を除いたものになる。

多項式からは実数全体で定義された多項式函数が定まる。これには定数関数・一次函数・二次函数などが含まれる。ふたつの多項式函数の商である有理函数は(ゼロ除算が起きないように)補有限の実数を定義域とする。もっとも単純な有理函数 のグラフは双曲線で を除く実数直線全体を定義域に持つ。

実可微分函数の導函数もまた実函数である。実連続函数の原始函数はもとの函数が連続となる任意の開区間上で可微分な実函数を与える。例えば逆数函数 は正の実数全体の成す集合上で連続(さらに微分可能)であるから、その原始函数で において零となるもの(自然対数函数)は正の実数全体の成す集合上で微分可能である。

実函数 がある区間上で単調写像となるのは、平均の変化率 の符号が、その区間内の点 の選び方に依らず一定であるときである。その函数がその区間で微分可能ならば、その区間上で微分係数の符号が一定であるときに単調となる。実函数 が区間 において単調であるならば、 の逆函数が から への函数として定まる。このような方法で、逆三角函数は三角函数が単調となる区間上で三角函数の逆函数として与えられる。あるいはまた、自然対数函数は正の実軸上で単調で値域は実数直線全体となるから、その逆函数である指数函数は実数全体から正の実数全体への全単射であることが分かる。

他にも多くの実函数が陰函数定理(逆函数は陰函数の特別の場合)から、あるいは微分方程式の解として、定義される。例えば正弦函数 や余弦函数 は線型微分方程式 の解として初期条件 から定まる。

ベクトル値函数

終域の元がベクトルとなっているような函数はベクトル値函数と呼ばれる。ベクトル値函数は、(例えば物理的性質をモデル化するような)応用において特に有用で、例えば流束の各点においてその点での速度ベクトルを割り当てる函数はベクトル値函数になる。

(あるいは多様体のように と似た幾何学的または位相的性質を持つ空間)上で定義されたベクトル値函数を考えることもできて、そのようなベクトル値函数はベクトル場と呼ばれる。

関数空間

解析学あるいはより具体的に関数解析学において、特定の性質を共有するスカラー場またはベクトル値の函数からなり線型位相空間を成すような集合を関数空間と呼ぶ。例えば、関数の台付き(つまり、適当なコンパクト空間の外側では常に零となる)滑らかな実函数全体の成す集合は、シュワルツ超函数論の基盤となる函数空間を成す。

函数空間ではその代数的および位相的性質を利用して函数の性質を調べることができるようになるから、より進んだ解析学において函数空間は基本的な役割を果たすことになる。例えば、常微分方程式や偏微分方程式における解の存在や一意性を言うすべての定理は函数空間を調べることで得られた結果である。

多変数関数と多価関数 複数の変数によって値が決定される関数を多変数関数という。これは複数の数の集合たちの直積集合から数の集合への写像であると解釈される。ベクトルの集合を定義域とする独立変数をもつ関数と解釈することもある。 個の変数で決まる関数であれば、 変数関数とも呼ばれ

のように書かれる。例えば

は二変数関数である。

一つの入力に複数の出力を返すような対応規則を多価関数 (multi-valued function) という。

現代の厳密な関数の定義(写像)においては、一つの入力に対して出力は「ただ一つ」でなければならないため、多価関数は厳密な意味では関数ではない。しかし、複素解析などの分野では歴史的な経緯や便利さから、このような対応関係を「多価関数」と呼び、従来(一価)の関数を特に一価関数 (single-valued function) と呼んで区別することがある。常に 個の出力を得る多価関数は 価であるといい、その を多価関数の価数と呼ぶ。例えば正の実数にその平方根を与える操作は正と負の二つ値を持つので、二価関数とみなせる。

多変数関数は独立変数がベクトルに値をとるものと解釈できるということを上に述べたが、逆に従属変数がベクトルの値を持つような写像も考えられ、それをベクトル値関数という。ベクトル値関数が与えられたとき、像のベクトルに対してその各成分をとり出す写像を合成することにより、通常の一価関数が複数得られる。つまり、定義域を共有するいくつかの関数を一つのベクトルとしてまとめて扱ったものがベクトル値関数であるということができる。

一つの例として、実数体 で定義された二価の関数

はベクトル値関数

として扱うことができる。また、定義域の "コピー" を作って定義域を広げてやることで、その拡張された定義域上の一価の関数

と見なすこともある。複素変数の対数関数 は素朴には無限多価関数であるが、これを のリーマン面上の一価関数と見なすなど、定義域を広げて一価にする手法は解析的な関数に対してしばしば用いられる。

陽表式と陰伏式 多変数方程式がいくつかの関数関係を定義することもある。例えば

のような式が与えられているとき、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) に表されているなどと言い表す。