函数

**函數**（英語：Function）是數學描述對應關係的一種特殊集合。

## 簡介

若 $x$ 是實數，以有序對 $(x,\,x^{2})$ 為元素所構成的集合就是一個函數。直觀上代表＂輸入＂ $x$ 就可以得到唯一值 $x^{2}$ 的對應關係。

一般會以英文字母 $f,\,g,\,h$ 表示函數，並把 $x$ 依據函數 $f$ 的對應規則所得到的值寫作 $f(x)$ ，並讀作 "_f of x"_。函數的概念不限於數之間的對應關係，例定義函數 $\operatorname {Capital} $ 為世界上所有國家跟它現在的首都的對應關係，那輸入英國就會輸出唯一值倫敦： $\operatorname {Capital} (\mathrm {U.K.} )=\mathrm {London} $ 。 

直觀上的 "多變數函數" 其實也可以概括到一般函數的定義裡。例如算式 $x\times y$ 有兩個實數參數 $x$ 和 $y$ 。可以將這兩個參數看作一個實數有序對 $(x,y)$ ，然後定義一個以 $((x,\,y),\,x\times y)$ 為元素所構成的函數 $f$ ，然後把 $f[(x,\,y)]=x\times y$ 簡記成符合直觀的 $f(x,\,y)=x\times y$ 。

數學中，對應、映射、轉換通常都是函數的別稱，但也可能有別的意思，如在拓撲學的映射有時代表的是連續函數。

在類型論的 λ 演算中，"對應關係" 可以是作為一個原始概念 (也就是無定義名詞)，而不像上述的定義把函數視為集合的衍伸物。

## 歷史

函數這個數學名詞是萊布尼茲在 1694 年開始使用的，用來描述跟曲線相關的一個量，如曲線的斜率或者曲線上的某一點。萊布尼茲所指的函數現在被稱作可導函數，數學家之外的普通人一般接觸到的函數即屬此類。對於可導函數可以討論它的極限和導數，此兩者描述了函數輸出值的變化同輸入值變化的關係，是微積分學的基礎。中文的「**函數**」一詞由清朝數學家李善蘭譯出。其《代數學》書中解釋：「凡此變數中函（包含）彼變數者，則此為彼之函數」。

* 1718 年，約翰・伯努利把函數定義為「一個變數的函數是指由這個變數和常數以任何一種方式組成的一種量。」
* 1748 年，伯努利的學生歐拉在《無窮分析引論》一書中說：「一個變數的函數是由該變數和一些數或常數以任何一種方式構成的解析表達式」，例如 $f(x)=\sin(x)+x^{2}$ 。
* 1775 年，歐拉在《微分學原理》一書中又提出了函數的一個定義：「如果某些量以如下方式依賴於另一些量，即當後者變化時，前者本身也發生變化，則稱前一些量是後一些量的函數。」
* 19 世紀的數學家開始對數學的各個分支進行形式化。維爾斯特拉斯倡議將微積分學建立在算術，而不是幾何的基礎上，這種主張較趨向於歐拉的定義。
* 函數的定義得以擴展之後，數學家便能對一些「奇怪」的數學物件進行研究，例如處處不可導的連續函數。這些函數曾經被認為只具有理論價值，遲至 20 世紀初時它們仍被視作「怪物」。稍後，人們發現這些函數在對如布朗運動之類的物理現象進行建模時有重要的作用。
* 到 19 世紀末，數學家開始嘗試利用集合論來進行數學的形式化。他們試圖將每一個數學物件都定義為集合。狄利克雷給出了現代正式的函數定義（參見下文 #正式定義）。在他的定義下，函數被視作數學關係的特例。然而對於實際應用的情況，現代定義和歐拉定義的區別可以忽略不計。

## 正式定義

函數 ( $f$ ) 是一種特殊的二元關係 (也就是元素都是 $(x,\,y)$ 這樣形式的二元有序對的集合) ，滿足

* 對任意 $x,\,y,\,y^{\prime }$ 若 $(x,\,y)\in f$ 且 $(x,\,y^{\prime })\in f$ ， 則 $y=y^{\prime }$

若以正式的邏輯符號表述就是 (設下面這條合式公式簡記為 ${\mathcal {A}}$ ，等等的討論會用到)

　
: $(\forall x)(\forall y)(\forall y^{\prime })\{\,[\,(x,\,y)\in f\wedge (x,\,y^{\prime })\in f\,]\Rightarrow (y=y^{\prime })\,\}$

也就是直觀上，可以把有序對 $(x,\,y)$ 看成 (_輸入值_, _輸出值_)；而函數本身是窮舉輸出入值來詳盡定義的對應規則。而且依照函數 $f$ 的規則，若 $x$ 同時對應 到 $y$ 和 $y^{\prime }$ ，則必然 $y=y^{\prime }$ ，也就是說一個 $x$ 只能對應到**僅僅唯一的一個輸出**。

### 函數值的簡記

習慣上把 $(x,\,y)\in f$ 等價的寫為 $y=f(x)$ 。但事實上， $f(x)$ 是在一階邏輯公理化集合論下，基於 ${\mathcal {A}}$ 所確保的唯一性，而新增的雙元函數符號 ( $x$ 和 $f$ 各為一個變數) ，而它的＂定義＂本質上是以下額外增加的公理 (唯一性保證新增這條公理後，"新理論" 所擁有的定理和 "舊理論" 是一樣的，詳請參見函數符號與唯一性)

　
: $[\,\neg ({\mathcal {A}}\wedge {\mathcal {B}})\Rightarrow (f(x)=\varnothing )\,]\vee \{\,({\mathcal {A}}\wedge {\mathcal {B}})\Rightarrow (\forall y)\{\,[\,(x,\,y)\in f\,]\Leftrightarrow [\,y=f(x)\,]\,\}\,\}$

其中 ${\mathcal {B}}$ 為以下合式公式的簡寫

　
: $(\forall p\in f)(\exists x)(\exists y)[\,p=(x,\,y)\,]$

 ${\mathcal {B}}$ 事實上就是 $f$ 為二元關係的正式邏輯符號表述。

直觀上＂n 變數＂的函數，也就是以

　
: $((x_{1},\,\cdots ,\,x_{n}),\,y)$

為元素的函數 ${\mathcal {f}}$ ，習慣上會把以下的項

　
: $f[(x_{1},\cdots ,\,x_{n})]$

進一步簡寫為

　
: $f(x_{1},\cdots ,\,x_{n})$

### 定義域與值域

實用上如果能指出函數 $f$ 的 "輸入值範圍" 跟 "輸出值範圍" ，對數學的討論是相當方便的；事實上公理化集合論確保對任意集合 $A$ 有以下兩個單元函數符號 $D_{A}$ 和 $I_{A}$ 以及以下公理

　
: $(\forall x)\{(x\in D_{A})\Leftrightarrow (\exists y)[\,(x,\,y)\in A\,]\}$

　
: $(\forall y)\{(y\in I_{A})\Leftrightarrow (\exists x)[\,(x,\,y)\in A\,]\}$

簡單來說， $D_{A}$ 是所有蒐集所有 $A$ 裡所有**有序對**的第一個元素所構成的集合； $I_{A}$ 是所有蒐集所有 $A$ 裡所有**有序對**的第二個元素所構成的集合，集合論保證了兩者一定**唯一存在**（就算是空集合）。如果 $A$ 本身就是函數的話，直觀上 $D_{A}$ 就是＂輸入值範圍＂，所以被稱為定義域；而直觀上 $I_{A}$ 就是 ＂輸出值範圍＂，所以被稱為值域。

所以在 $f$ 是函數的情況下，有以下慣用的記號

　
: $f:X\to Y$

這個記號嚴格上來說代表

　
: $(D_{f}=X)\wedge (I_{f}\subseteq Y)$

也就是函數 $f$ 的＂輸入值範圍＂為 $X$ ， ＂輸出值範圍＂包含於 $Y$ 。 $Y$ 通常會被稱為對應域 (**特別注意對應域不是唯一的**)

屬於定義域 $D_{f}$ 的元素 $x$ 常被俗稱為**自變數（**independent variable），而項 $f(x)$ 則被俗稱為**因變數（**dependent variable），但是這跟實驗上的自變數和應變數是稍有不同的，因為一個是以現實手段操縱所得到的實驗值之間的關聯，但另一個是源於集合論的抽象邏輯概念。

### 一對一與滿射

滿足

* 對任意 $y,\,x,\,x^{\prime }$ 若 $(x,\,y)\in f$ 且 $(x^{\prime },\,y)\in f$ ， 則 $x=x^{\prime }$ 。

的函數 $f$ 被稱為一對一函數。這種狀況下，很容易證明以下的集合：

　
: $f^{-1}:=\{\,p\,|\,(\exists x)(\exists y)[\,p=(y,\,x)\,\wedge \,y=f(x)\,]\,\}$

也是一個函數，稱為 $f$ 的反函數。

另外基於 $f:X\to Y$ 這個簡記裡只有指出 "輸出值" 不會超出 $Y$ "，所以通常會定義滿射為一個值域就是 $Y$ 的函數，但這只是一個為了彌補這個慣用簡記法的缺陷所延伸出的冗餘定義而已。

## 函數圖形

如果函數 $f$ 的值域跟定義域都是實數集合 (俗稱 $f$ 為**實函數**)，可以 x 軸代表定義域的範圍；y 軸代表值域的範圍，把函數的每個元素標示在平面直角坐標上，這被稱為實函數 $f$ 在平面上的**函數圖形**。

對於 "雙變數" 的實函數 $g$ ，也就是以 ( $x,\,y,\,z\in \mathbb {R} $ )

　
: $((x,\,y),\,z)$

為元素的函數，可以取

　
: $D_{x}=\{\,x\,|\,(\exists y)(\exists z)[\,g(x,\,y)=z\,]\,\}$

　
: $D_{y}=\{\,x\,|\,(\exists x)(\exists z)[\,g(x,\,y)=z\,]\,\}$

然後以 x 軸為 $D_{x}$ 變化範圍；y 軸為 $D_{y}$ 變化範圍；最後取 z 軸為 $g$ 的值域變化範圍，這樣就可以在三維直角坐標繪出 $g$ 的**函數圖形**。

### 實函數的判別

平面上的任意圖形可用**豎直判別法**判斷是否為**實函數**的圖形，即圖形與任何一條平行於 y 軸的直線不能有一個以上的交點。但實際上這僅僅是函數正式定義的一種應用，因為平行於 y 軸的直線代表的是形如

　
: $\{\,p\in {\mathbb {R} }^{2}\,|\,(\exists y\in \mathbb {R} )[\,p=(c,\,y)\,]\,\}$

的集合，也就是此直線交 x 軸於 $(c,\,0)$ ，那這樣直線與實函數 $f$ 的交集就是

　
: $\{\,p\in {\mathbb {R} }^{2}\,|\,(\exists y\in \mathbb {R} )[\,p=(c,\,y)\wedge y=f(c)\,]\,\}$

而屬於這個交集裡的平面點**最多只能有一個**，否則就會跟每個 $x\in D_{f}$ 只能對應一個 $f(x)$ 的基本定義矛盾。

## 像和原像

**像**可以指兩種不同的概念

第一種是形如 $f(x)$ 的項，直觀上代表的是依照函數 $f$ 的對應規則，使 $x$ 能對應到的那個 "值"。(嚴謹的意義請回去參考函數值的簡記)

第二種指的是集合 $A$ 在函數 $f$ 下定義的集合 $f(A)$

　
: $f(A):=\{\,y\,|\,(\exists x\in A)[\,y=f(x)\,]\,\}$

注意 $f$ 的值域就是定義域 $D_{f}$ 的像 $f(D_{f})$ 。在正式定義一節的最後例子中， $\{2,3\}$ 在 $f$ 的像是 $f(\{2,3\})=\{c,d\}$ ，而 $f$ 的值域是 $\{c,d\}$ 。

類似的，集合 $B$ 在函數 $f$ 下的**原像**（或_逆像_）定義為：

　
: $f^{-1}(B):=\{\,x\,|\,(\exists y)[\,y=f(x)\wedge y\in B\,]\,\}$

沿用同一例子，可以看到 $\{a,b\}$ 的原像是 $f^{-1}(\{a,b\})=\varnothing $ ，即空集。

以下是 $f$ 及 $f^{-1}$ 的一些特性：

 * $f(A_{1}\cup A_{2})=f(A_{1})\cup f(A_{2})$ ；
* $f(A_{1}\cap A_{2})\subseteq f(A_{1})\cap f(A_{2})$ ；
* $f(B_{1}\cup B_{2})=f^{-1}(B_{1})\cup f^{-1}(B_{2})$ ；
* $f^{-1}(B_{1}\cap B_{2})=f^{-1}(B_{1})\cap f^{-1}(B_{2})$ ；
* $f^{-1}(f(B))\subseteq B$ ；
* $f^{-1}(f(A))\supseteq A$ 。

這些特性適合定義域的任意子集 $A,A_{1}$ 及 $A_{2}$ 和對應域的任意子集 $B,B_{1}$ 及 $B_{2}$ ，甚至可推廣到任意子集群的交集和聯集。

## 函數的限制及擴張

若 $f:X\to Y$ 且 $X^{\prime }\subset X$ ， 那以下定義的集合 $f|_{X^{\prime }}$ ( 注意到 $\times $ 代表笛卡兒積 )

　
: $f|_{X^{\prime }}:={\bigg \{}\,(x,\,y)\,{\bigg |}\,(x\in X^{\prime })\wedge [\,y=f(x)\,]\,{\bigg \}}=f\cap (X^{\prime }\times Y)$

顯然為一函數，稱為 $f$ 在 $X^{\prime }$ 的**限制**。

反之，若 $g:X\to Z$ 、 $X\subseteq Y$ 、 $f:Y\to Z$ 且 $f|_{X}=g$ ，那 $f$ 稱為 $g$ 的**擴張**。

## 點態運算

設 $f:X\to R$ 且 $g:X\to R$ 且 $(R,\,+,\,\times )$ 為環。這樣可以定義＂函數和＂ $f+g$ 與＂函數積＂ $f\times g$ 如下：

　
: ${\begin{aligned}f+g:={\bigg \{}\,(x,\,y)\,{\bigg |}\,(x\in X)\wedge [\,y=f(x)+g(x)\,]\,{\bigg \}}\\\end{aligned}}$

　
: ${\begin{aligned}f+g:={\bigg \{}\,(x,\,y)\,{\bigg |}\,(x\in X)\wedge [\,y=f(x)\times g(x)\,]\,{\bigg \}}\\\end{aligned}}$

很容易證明以上兩者也是函數，類似的對任意的 $r\in R$ 可以定義下面這兩個集合

　
: ${\begin{aligned}r_{R}:={\bigg \{}\,(x,\,y)\,{\bigg |}\,(x\in X)\wedge (y=r)\,{\bigg \}}\\\end{aligned}}$

　
: ${\begin{aligned}r\cdot f:={\bigg \{}\,(x,\,y)\,{\bigg |}\,(x\in X)\wedge [\,y=r\times f(x)\,]\,{\bigg \}}\\\end{aligned}}$

也是函數，其中 $r_{R}$ 被稱為**常數函數**。

## 函數範例

* 首都之於國家（若不把多首都國 [1] （頁面存檔備份，存於網際網路檔案館） 計算在內)。
* 每個自然數 $n$ 的平方 $n^{2}$ 是 $n$ 的函數。
* 對數函數。 $\ln x$ 是正實數 $x$ 的函數。注意，雖然可以把對數函數推廣到複數情況，但結果就不是函數了，而是多值函數。
* 對每個在 $\mathbb {R} ^{2}$ 平面上的點，其和原點 $(0,0)$ 的距離是確定的。

常用的數學函數包括多項式函數、根式函數、冪函數、對數函數、有理函數、三角函數、反三角函數等。它們都是初等函數。非初等函數（或特殊函數）包括伽馬函數和貝索函數等。

## 函數的分類

函數可分為

* 奇函數或偶函數
* 連續函數或不連續函數
* 實函數或虛函數
* 純量函數或向量函數
* 單調增函數或單調減函數

## 範疇論觀點下的函數

在範疇論中，函數的槪念被推廣為態射的槪念。

一個範疇包括一組物件與一組態射，每一個態射是個三元組 (_X_, _Y_, _f_)，_X_ 稱為源物件（定義域的類比），_Y_ 稱為目標物件（對應域的類比），而源物件與目標物件是範疇內的物件。基於這種解釋，可以把函數看作集合範疇裡面的態射。

## 參考文獻

* Visual Calculus（頁面存檔備份，存於網際網路檔案館） by Lawrence S. Husch, 田納西大學（2001 年）

## 外部連結

* NIST 數學函數（頁面存檔備份，存於網際網路檔案館）
* mysuc.com，經典函數示例
* Wolfram 函數網站（頁面存檔備份，存於網際網路檔案館），匯集了各數學函數的公式和圖像
* Was ist eine Funktion? （頁面存檔備份，存於網際網路檔案館）
* xFunctions（頁面存檔備份，存於網際網路檔案館）一個多功能的 Java 小程式，可以顯示函數的圖像，既可以在線使用，也可以下載運行。
* FooPlot （頁面存檔備份，存於網際網路檔案館）
* Curvas（頁面存檔備份，存於網際網路檔案館）