関数 (数学)

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

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

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

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

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

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

集合論的立場に立つ現代数学では、ディリクレのように関数を対応規則  のことであると解釈する。厳密には、関数（写像）<math>f: X \to Y</math> は、始域 <math>X</math> 、終域 <math>Y</math> 、および <math>X</math> と <math>Y</math> の[[直積集合]] <math>X \times Y</math> の部分集合（[[二項関係]]）<math>G</math> の三つ組 <math>(X, Y, G)</math> として定義される。ここで <math>G</math> は「関数のグラフ」と呼ばれ、以下の条件を満たすものである。
# 任意の <math>x \in X</math> に対して、<math>(x, y) \in G</math> となる <math>y \in Y</math> が存在する。（全域性）
# <math>(x, y) \in G</math> かつ <math>(x, y') \in G</math> ならば <math>y = y'</math> である。（一意性）
すなわち、始域の全ての元に対して、終域のただ一つの元が対応する規則のことである。なお、始域と終域が文脈から明らかな場合などには、単にグラフ <math>G</math> そのものを関数と呼ぶこともある。その意味で関数は[[写像]]の同義語である。より細かく、「[[数]]」の集合への写像に限る場合もある。写像に用いる言葉、例えば
* [[写像#合成|合成]]（合成関数）
* [[全射]]、[[単射]]（一対一ともいう）、[[全単射]]（双射、**一対一対応**ともいう）
* [[写像#逆写像|逆]]（逆関数）
などはそのまま用いることができる。「数」に値を取る関数に特有の（つまり、一般の写像では成り立つとは限らない）性質もある。たとえば、[[像 (数学)|像]]を用いて値毎の演算と呼ばれる函数同士の演算が定義できる： ''x'' を任意として、
* <math>(f + g)(x) := f(x) + g(x),</math>
* <math>(f - g)(x) := f(x) - g(x),</math>
* <math>(fg)(x) := f(x)g(x),</math>
* <math>\left(\frac{f}{g}\right)(x) := \frac{f(x)}{g(x)}</math>　（ただし<math>g(x) \neq 0</math>）
と定義できる。あるいはまた、実函数（実一変数で実数値の函数）<math>f:\mathbb{R}\to\mathbb{R}</math> は[[グラフ (関数)|グラフ]]と呼ばれるで特徴づけられる。

== 名称表記の歴史 ==

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

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

「函」が漢字制限による[[当用漢字]]に含まれなかったことから、1950年代以降同音の「関」へと書き換えがすすめられた。この他、「干数」案もあった。[[学習指導要領]]に「関数」が登場するのは中学校で1958年、高等学校で1960年であり、それまでは「函数」が用いられている。「関数」表記は 1985 年頃までには日本の初等教育の段階でほぼ定着した。

「函数」の中国語における発音は() であり、[[志賀浩二]]や[[小松勇作]]によればこれはfunctionの音訳であるという。一方、『代微積拾級』には「」とあり、これは変数を包む、含む式という意味で定義されていると解釈できる。また変数に天、地などの文字を用いて「天 = 函(地)」という表記もある。[[片野善一郎]]によれば、「函」の字義はつつむ、つつみこむであるから、「天 = 函(地)」という表現は「天は地を函む」ようにみえ、従属変数（の表現）に独立変数が容れられているという意味であるという。


なお、現代の初等教育の場においてはしばしば関数を[[ブラックボックス]]のたとえで説明することがある。この説明では、「函」を「はこ」と読むことと関連付けて説明されることもある。ただし、「函数」の語の初出は1859年であり、1945年ごろに登場した「ブラックボックス」の概念とは、語源上の直接的な関係はない。



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

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

函数は[[イタリック体]]の文字一つで表すか（例えば  ）、[[ローマン体]]の文字を複数用いて表す（例えば [[三角関数]]: , [[指数関数]]: , [[対数]]: , [[対数積分]]: , [[跡 (線型代数学)|跡]]:  など）。後者のローマン体は例えば函数名の省略形で函数を表記する際などに用いられる。
イタリック体でなくローマン体を函数に用いることで、通常イタリック体で表記される変数との混同を避けることができる。

=== 函数記法 ===
函数記法で <math>y = f(x)</math>（「 の  における値が  である」）と書けば、これは順序対  が函数を定義する順序対の集合に属することを意味する（より具体的に函数  の定義域を  とすれば、函数を定義する順序対の集合とは、で <math>\{(x,f(x));\ x \in X\}</math>と書ける）。

しばしば函数の定義は、函数  が明示された引数  に対して何をするのかという形で行われる。例えば  を任意の実数  に対して成り立つ等式 <math>f(x):=\sin(x^2+1)</math> によって定義するものとすれば、これは  を[[自乗]]して 1 を加えその正弦をとるというより単純な複数の手続きの[[函数の合成|合成]]として考えることができる。

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

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

=== 矢印記法 ===
函数  の定義域  と終域  を明示する目的では、矢印記法 <math>f\colon X \to Y</math> や <math>X \stackrel{f} Y</math>（「 は  から  への函数」「 は  の元を  の元に写す」）が用いられる。これに重ねて、元の間の関係を示すため「 が  を  に写す」ことを意味する  をしばしば書き加える。

例えば、積の定義された集合  上で各元を平方する函数  を紛れなく定義するには <math display="block">\begin{align}
\operatorname{sqr}\colon X &\to X\\
x &\mapsto x\cdot x,\end{align}</math> のように書けばよい。元の対応は  と書いても良い。

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

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

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

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

その他の例として、 を表すのに <math>a(\cdot)^2</math> と書く場合や、上の限界が変数である定積分 <math>x\mapsto \int_a^x f(u)\,du</math> を <math>\int_a^{(\cdot)} f(u)\,du</math> と書く場合などが挙げられる。

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

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

=== 値を書き並べる ===
有限集合上で定義された函数の場合には、定義域の各点に割り当てられる終域の元を全て書き並べることで函数を定義することができる。例えば <math>A := \{ 1, 2, 3 \}</math> のとき函数 <math>f: A \to \mathbb{R}</math> を <math>f(1) = 2, f(2) = 3, f(3) = 4</math> として与えることができる。

=== 式を与える ===
[[算術]]やその他既知の函数を組み合わせた式（ただし手続き的な操作や無限個の組み合わせではない）によって函数が与えられることも多い。そのような式からは、定義域の任意の元の値から函数の値を計算することができる。例えば、一つ前の例の  は <math display="inline">f(n) := n+1\ (n\in\{1,2,3\})</math> とも定義できる。

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

== 関数の分類 ==
式によって函数を定義する場合、それらの式が持つ性質・特性によって函数を分類することもしばしば行われる。

* [[二次関数]]は <math>f(x)=ax^2+bx+c</math> の形（ただし  は [[定数]]）と書ける函数を言う。
* より一般に、[[多項式函数]]は加法・減法・乗法と非負整数[[冪乗]]のみを含む式で定義することができる函数である。例えば <math>f(x)=x^3-3x-1</math> や <math>f(x)=(x-1)(x^3+1) +2x^2 -1</math> など。
* [[有理関数]]は多項式函数と同じ条件からさらに除法を許すようなものである。例えば <math display="inline">f(x)=\frac{x-1}{x+1}</math> や <math display="inline">f(x)=\frac 1{x+1}+\frac 3x-\frac 2{x-1}</math> など。
* [[代数関数]]はさらに[[冪根]]や[[多項式の根]]をとる操作が許される。
* 上記をすべて含む[[初等関数]]には、さらに[[対数]]や[[指数関数]]などが含まれる。

=== 逆函数や陰伏函数として定める ===
函数 <math>f\colon X\to Y</math> が[[全単射]]とは、 の各元  に対し、 の元  がちょうど一つ（少なくとも一つ、かつ、高々一つ）存在して  と書けることであった。この場合、 の逆函数 <math display="inline">f^{-1}\colon Y \to X</math> が、任意の  を  を満たす  に写す函数として定まる。例えば[[自然対数]]函数は正の実数全体の成す集合から実数全体の成す集合への全単射であるから、逆を持ち、それは指数函数と呼ばれる実数全体から正の実数全体への函数である。

函数 <math>f\colon X\to Y</math> が全単射でなくとも、適当な部分集合 <math>E\subseteq X</math> および <math>F\subseteq Y</math> を選んで、 の  への[[制限 (数学)|制限]]が  から  への全単射となり、その意味での逆函数を持つということは起こり得る。[[逆三角関数]]はこのような仕方で定義される。

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

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

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

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

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

=== 漸化式を与える ===

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

基本的な例として、非負整数にその[[階乗]]を対応させる函数 <math>n\mapsto n!</math> は漸化式 <math display="inline">n!=n(n-1)!\quad(n>0)</math> と初期条件 <math>0!=1</math> によって決まる。

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

=== グラフ ===




与えられた函数 <math>f\colon X\to Y</math> のグラフとは、形式的な集合 <math display="inline">G:=\{(x,f(x)) : x\in X\}</math> のことである。

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

=== 値の表 ===

引数のとる値と函数のとる値を表の形に書きならべることに依って函数を表現することもできる。定義域が有限ならば、このやり方で函数を完全に特定することができる。例えば、掛け算をする函数 <math>f\colon\{1,\ldots,5\}^2 \to \mathbb{R};\;f(x,y):=xy</math> は馴染みの[[積表]]

によって表すことができる。

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


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

=== 棒グラフ ===

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

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

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

=== 実函数 ===




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

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

函数は[[点ごとの演算]]が備わっている。つまり、函数  に対して、それらの和・差・積を <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> で定義すれば、 の定義域の交わりを定義域とする函数が得られる。同様にこれらの商を <math display="block">\frac fg(x):=\frac{f(x)}{g(x)}</math> と定義することができるが、この場合定義域は  の定義域の交わりから  の[[関数の零点]]を除いたものになる。

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

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

実函数  がある区間上で[[単調写像]]となるのは、平均の変化率 <math display="inline">\frac{f(x)-f(y)}{x-y}</math> の符号が、その区間内の点  の選び方に依らず一定であるときである。その函数がその区間で微分可能ならば、その区間上で微分係数の符号が一定であるときに単調となる。実函数  が区間  において単調であるならば、 の逆函数が  から  への函数として定まる。このような方法で、逆三角函数は三角函数が単調となる区間上で三角函数の逆函数として与えられる。あるいはまた、自然対数函数は正の実軸上で単調で[[値域]]は実数直線全体となるから、その逆函数である指数函数は実数全体から正の実数全体への[[全単射]]であることが分かる。

他にも多くの実函数が[[陰函数定理]]（逆函数は陰函数の特別の場合）から、あるいは[[微分方程式]]の解として、定義される。例えば正弦函数  や余弦函数  は[[線型微分方程式]] <math display="inline">y''+y=0</math> の解として初期条件 <math display="block">\sin 0=0, \cos 0=1, \quad\frac{\partial \sin x}{\partial x}(0)=1, \frac{\partial \cos x}{\partial x}(0)=0</math> から定まる。

=== ベクトル値函数 ===

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

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

=== 関数空間 ===

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

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

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

: <math>y = f(x_1,x_2, \ldots,x_n)</math>

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

: <math>y = x_1^2 + x_2^2</math>

は二変数関数である。

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

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

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

一つの例として、実数体 <math>\mathbb{R}</math> で定義された二価の関数

:<math>f(x) := \pm\sqrt{1+x^2}</math>
はベクトル値関数
: <math>f\colon \mathbb{R} \to \mathbb{R}^2;\ x \to f(x) = (\sqrt{1+x^2}, - \sqrt{1+x^2})</math>
として扱うことができる。また、定義域の "コピー" を作って定義域を広げてやることで、その拡張された定義域上の一価の関数
:<math>f\colon A \sqcup B \to \mathbb{R} \quad(A=B=\mathbb{R})</math>
::<math>f(x)=\begin{cases}
  -\sqrt{1+x^2} & (x\in A),\\
  \sqrt{1+x^2} & (x\in B)
\end{cases}</math>

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

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

: <math>F(x,y) = 0</math>

のような式が与えられているとき、''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 から陰伏的に得られるという。関数の概念を広くとらず、一価で連続である場合や一価正則な場合などに考察を限ることはしばしば行われることであるが、そのような仮定のもとでは陰関数から陰伏的に得られる陽関数は一つとは限らず、一般に一つの陰関数は（定義域や値域でより分けることにより）複数の陽関数に分解される。このとき、陰伏的に得られた個々の陽関数をもとの陰関数の**枝**という。また、陰関数の複数の枝を総じて扱うならば、陰関数の概念から多価関数の概念を得ることになる。例えば、方程式

: <math>y^2 - x^2 = 1</math>
が定める陰関数 ''y'' は全域で 2 つの一価連続な枝
:<math>f_1(x) := \sqrt{1+x^2},</math>
:<math>f_2(x) := -\sqrt{1+x^2}</math>

をもつ二価関数である。

また、[[媒介変数]]を導入して関係式を分解し、各変数を媒介変数の陽関数として表すことによって、陰関数を表すこともある。例えば、方程式 2''x'' − 3''y'' = 0 は、媒介変数 ''t'' を導入して

:<math>\begin{cases}
 x = 3t, \\
 y = 2t
\end{cases}</math>

と表すことができるが、これによって ''y'' と ''x'' の陰伏的な関数関係が表されていると考えるのである。

==  ==
=== 数列 ===
有限集合からの関数は実質的に数の組あるいは[[数列]]と呼ばれるものになる（適当な演算をいれてベクトルと見ることもできる）。それはつまり、集合の各元に序列を与えて {1, 2, ..., ''n''} と並べるとき、''k'' = 1, 2, ..., ''n'' に対して ''x''<sub>''k''</sub> = ''x''(''k'') を対応付ける関数 ''x'' を

:<math>(x_1,x_2,\ldots,x_n) \in \mathbb{R}^n</math>
のかたちに表すのである。これは有限列であるが、無限列 
:<math>(s_n)_{n\in\mathbb{N}} \in \mathbb{R}^\mathbb{N}</math>
を考えれば、それは各自然数 ''n'' に対して、数 ''s''<sub>''n''</sub> を対応させる
:<math>s\colon \mathbb{N} \to \mathbb{R};\,n \mapsto s_n</math>
という関数を考えていることに他ならない。もっと一般に数の[[族 (数学)|族]]を考慮に入れれば、通常の実関数 ''f'' = ''f''(''x'') を ''x'' を添字に持つ実数の族
:<math>(f_x)_{x\in\mathbb{R}} \in \mathbb{R}^\mathbb{R}</math>
と読みかえることができる。

=== 汎関数 ===

関数を変数に取る関数はとくに**汎関数** (functional) と呼ばれる。特にある集合上の関数の作る[[ベクトル空間]]から係数体への[[線型写像]]を**線型汎函数** (linear functional) という。文脈によっては単に汎関数といえば線型汎関数を指すこともある。たとえば積分

:<math>F(f)=\int_{-\infty}^\infty f(x)dx</math>

は可積分関数 ''f'' を変数と見なして様々に取り替えることによって汎関数 ''F'' を与える。積分は[[線型性]]を持つから、''F'' は線型汎関数である。

有限個の変数の組を考えることも関数の一種であったから、汎関数

:<math>\mathcal{F}(f)=\mathcal{F}(f(x))</math>
はひとつまたは複数のパラメータで添字付けられる一般には無限個の変数をもつ関数の一種
:<math>\mathcal{F}\left((f_x)_{x\in\mathbb{R}}\right)</math>
と見なすことができる。また、有限次元ベクトル空間は[[基底 (線型代数学)|基底]]を固定することにより、その[[座標]]で表される係数体の[[加群の直和]]と[[同型写像]]であるから、そこからの汎関数は多変数関数
:<math>F(x_1,x_2,x_3, \ldots, x_n)</math>

と同一視できる。

関数に対して数を対応付けるという汎関数の概念は、さらに関数に関数を対応付ける[[作用素 (関数解析学)|作用素]]の概念に一般化される。

=== 超関数 ===

**シュワルツの超関数**（分布、）の理論は、汎関数の一種（コンパクトな台を持つ無限階微分可能関数の作る空間上の連続線型汎関数）として[[超関数]]を定義する。通常の局所可積分関数に測度を掛けて積分作用素として見ると、この意味で超関数と見なされる。

この様な連続線型汎関数を用いた定式化の方向で  よりも大きいクラスとしては、**超分布**  が知られている。

一方、**佐藤超関数'''（）は層係数コホモロジー等の代数的手法を用いて定義される。この代数的手法の解析学への導入により、線型微分方程式系の代数化である  加群の理論等、代数解析学と呼ばれる分野が開かれた。以上の超関数のクラスは局所化可能、言い換えれば層を成すという事が重要である。

## 脚注

### 注釈

### 出典

## 参考文献
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
** 小松勇作「関数」『数学100の慣用語』数学セミナー1985 年9月増刊の再録
* 

## 関連文献
* 

## 関連項目
* 集合論
* 写像
* 関数の分類
** 連続
** 偶関数と奇関数
* 超越関数
** 初等関数
** 特殊関数
* 関数一覧
* 畳み込み
* 定点通過

## 外部リンク

* 
* Curvas数学関数のソフトウェア
* FooPlot
* 
* 
* 
* 
* 
*