,给予输入值x便產生唯一输出值f(x)]]
函数()是數學描述對應關係的一種特殊集合;粗略地說,從集合X到集合Y的函數將Y的一個元素恰好分配給X的每個元素。集合X稱為函數的定义域{{#tag:ref|
函數最初是一個變化的量如何依賴另一個量的理想化。例如,特定時間行星的位置可以視為是行星的位置對時間的函數。“函数”一词作为数学概念是由莱布尼茨首先引入的。從歷史上看,這個概念是在17世紀末用無窮微積分來闡述的,直到19世紀,所考慮的函數都是可微的。函數的概念於19世紀末在集合論中被形式化,這大大擴展了這個概念的應用領域。
簡介
若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 。
數學中,对应、映射、变换通常都是函数的別稱,但也可能有別的意思,如在拓扑學的映射有时代表的是连续函数。
在類型論的λ演算中,「對應關係」可以是作為一個原始概念(也就是無定義名詞),而不像上述的定義把函數視為集合的衍伸物。
函數的值域或像是定义域中所有元素的像之集合。
历史
函数(function)这个数学名词是莱布尼兹在1694年开始使用的,用來描述跟曲线相关的一個量,如曲线的斜率或者曲线上的某一点。莱布尼兹所指的函数现在被称作可导函数,数学家之外的普通人一般接触到的函数即属此类。对于可导函数可以讨论它的极限和导数,此两者描述了函数输出值的变化同输入值变化的关系,是微积分学的基础。中文的「函数」一词由清朝数学家李善兰译出。其《代数学》书中解释:「凡此變數中函(包含)彼變數者,則此為彼之函數」。
- 1718年,約翰·伯努利把函数定义为「一个变量的函数是指由这个变量和常量以任何一种方式组成的一种量。」
- 1748年,伯努利的学生欧拉在《无穷分析引论》一书中说:「一个变量的函数是由该变量和一些数或常量以任何一种方式构成的解析表达式」,例如f(x)=\sin(x)+x^2。
- 1775年,欧拉在《微分学原理》一书中又提出了函数的一个定义:「如果某些量以如下方式依赖于另一些量,即当后者变化时,前者本身也发生变化,则称前一些量是后一些量的函数。」
- 19世纪的数学家开始对数学的各个分支進行形式化。维尔斯特拉斯倡議将微积分学建立在算术,而不是几何的基础上,這種主張較趋向于欧拉的定义。
- 函数的定义得以擴展之後,数学家便能对一些「奇怪」的数学对象进行研究,例如處處不可导的连续函数。这些函数曾经被认为只具有理论价值,迟至20世纪初时它们仍被视作「怪物」。稍后,人们发现这些函数在对如布朗运动之类的物理现象进行建模时有重要的作用。
- 到19世纪末,数学家开始尝试利用集合论来進行数学的形式化。他们试图将每一個数学对象都定义为集合。狄利克雷给出了现代正式的函数定义(参见下文#正式定義)。在他的定義下,函数被视作数学关系的特例。然而对于实际应用的情况,现代定义和欧拉定义的区别可以忽略不计。
正式定義
{{math theorem
| name = 定義
| math_statement =
二元關係 f 若滿足:
:(\forall a)(\forall b)(\forall b^{\prime})
\{\,
[\,(\langle a,\,b \rangle \in f)
\wedge
(\langle a,\,b^{\prime}\rangle \in f)\,]
\Rightarrow (b=b^{\prime})
\,\}
則稱為 f 為一函數。
}}
(為了避免(x,\,y)的括弧與逻辑敘述的括弧混淆,本頁面也以\langle x,\,y \rangle表示有序对)
也就是直觀上,有序对(x,\,y)代表(輸入值, 輸出值);而f本身是以窮舉所有(輸入值, 輸出值)來詳盡定義的對應規則,且每個輸入值只能對應一個輸出值。
函數值的簡記
習慣上把(x,\,y)\in f「等價地」記為y=f(x)。但嚴格來說,f(x)是在一阶逻辑公理化集合论下額外新增的雙元函數符號(因為x與f各為一個變數),而它的「定義」就是以下新增的公理:
{{math theorem
| name = 公理
| math_statement =
:\{\,\neg(\mathcal{B}\wedge\mathcal{C}_x) \wedge [\,f(x)=\varnothing\,]\,\} \vee
\{\,(\mathcal{B}\wedge\mathcal{C}_x) \wedge
[\,\langle x,\,f(x) \rangle \in f\,]\,\}
:其中:
:\mathcal{B}
:=
(\forall a)(\forall b)(\forall b^{\prime})
\{\,
[\,(\langle a,\,b \rangle \in f)
\wedge
(\langle a,\,b^{\prime}\rangle \in f)\,]
\Rightarrow (b=b^{\prime})
\,\} (f 的每個輸入值只對應一個輸出值)
:\mathcal{C}_x
:=
(\exists y)(\langle x,\, y \rangle \in f)
(x 在 f 規定的輸入值範圍內)
}}
直觀上,這個公理表示「若f為一函數且x在f的輸入值範圍,則\langle x,\,f(x) \rangle \in f;否則規定f(x)為空集」。
這樣根據函數符號與唯一性的定理(E)和普遍化,就會有本節一開始所期望的直觀性質:
:\mathcal{B} \land \mathcal{C}_x
\vdash
(\forall y)\{\,
[\,y = f(x)\,]
\Leftrightarrow
[\,\langle x,\, y \rangle \in f\,]
\,\}
也就是「若f為一函數且x在f的輸入值範圍,則對所有的y,\langle x,\,y \rangle \in f等價於y = f(x)」。
另一方面,對於直觀上「n個變數」的函數\mathcal{f},也就是
:\langle\,\langle x_1,\,\cdots,\,x_n \rangle,\,y \rangle
=
\langle x_1,\,\cdots,\,x_n,\,y \rangle
\in
f
換句話說
: y = f \big(\langle x_1,\cdots,\, x_n \rangle \big)
這時習慣上會將\mathcal{f}的「函數值」進一步簡寫為
:y = 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: X \to Y
:=
[\,(f \text{ is a function})
\wedge
(D_f=X)
\wedge
(I_f \subseteq Y)\,]
也就是直觀上,f: X \to Y
表示「f是函數且其定義域為X,且值域包含於Y。」。這種情況下,Y通常被俗稱為對應域。
屬於定義域D_f的元素x常被俗稱為自變量(independent variable),而項f(x)則被俗稱為因變量(dependent variable),但是這跟實驗上的自变量和因变量是稍有不同的,因為前者是現實得到的實驗值之間的關聯,但另一個是源於集合論的概念。
一對一
{{math theorem
| name = 定義
| math_statement =
函數 f 若滿足
(\forall y)(\forall x)(\forall x^{\prime})
\{\,
[\,(\langle x,\,y \rangle \in f)
\wedge
(\langle x^{\prime},\,y\rangle \in f)\,]
\Rightarrow (x = x^{\prime})
\,\}
則被稱為一對一的(one-to-one)或是单射(injective function)。
}}
直觀上,若函數f的輸出值都只能被唯一個輸入值對應,則稱f是一對一的。
若f是單射,那(根據分类公理所取的)以下的集合:
:f^{-1}:=\{\,p\,|\,(\exists x)(\exists y)[\,p = (y,\,x)\,\wedge\, y = f(x) \,]\,\}
也是一個函數,被稱為f的反函數。
滿射
f: X \to Y這個簡記只能指出「輸出值不會超出Y」,為了彌補這個簡記的缺陷,口語上會將满射(surjective function)定義為「f: X \to Y且值域就是Y」的函數。
{{多圖 |align = center |width = 250px
|image1 = Multivalued function.svg
|caption1 = (1)一對多。X中的元素3与Y中的两个元素b和c相关。因此这是多值函数,而不是函数。
|image2 = Partial function.svg
|caption2 = (2)一對一但非完全對應。X的元素1未与Y的任一元素相关。因此这是偏函数,而不是函数。
|image3 = Total function.svg
|caption3 = (3)完全對應且多对一,因此这是从X到Y的函数。此函数可以表示为f=\{\,(1,d),(2,d),(3,c)\},或f(x)=\left\{\begin{matrix} d, & \mbox{if }x=1 \\ d, & \mbox{if }x=2 \\ c, & \mbox{if }x=3\end{matrix}\right.
}}
函數的簡記
除了正式定義一節所規範的集合論表示法,一般的數學書籍會採用比較通俗的函數表記方法,下面將一一介紹。
函數記號
很多函數都是取实数為輸出值和輸入值,換句話說,都是f: A \to \R(A \subseteq \R),這些函數很多都是以實數的四則運算去定義的。但考慮到实数加法可由皮亚诺公理裡的單元函數符號S(x)(直觀上解釋成「x的下一個」,或說「x + 1」)建構出來,或被視為实数公理系統裡的雙元函數符號P(x,\,y)(簡記為x + y),實數加法其實是一阶逻辑下的項;類似地,其他四則運算也可以此類推,而得出他們都是項的結論。所以直觀上定義实数函數的時候,都希望一條項(直觀上的運算式)能唯一決定一個函數,比如說,對於項:
: x + 1
以下的集合:
: h
:=
\bigg\{
p \,\bigg|\,
(\exists x \in \R)[ p = (x,\, x + 1)]
\bigg\}
是一個函數。為了讓這類函數的表示更加簡潔,就衍伸出以下的表記方式:
{{math theorem
| name = 符號定義
| math_statement =
X_1,\,\dots,\,X_n 都是集合,T 是含有變數 x_1,\,\dots,\,x_n 的項,那在:
: (\forall x_1 \in X_1)\dots(\forall x_n \in X_n)(\exists! y)(y = T)
的前提下,則可做以下的符號定義:
: f(x_1,\,\dots,\,x_n) = T \;\;(\langle x_1,\,\dots,\,x_n \rangle \in X_1 \times \dots \times X_n)\,
: :=
: f
=
\bigg\{
p \,\bigg|\,
\exists x_1\dots\exists x_n[(\langle x_1,\,\dots,\,x_n \rangle \in X_1 \times \dots \times X_n) \wedge ( p = \langle x_1,\,\dots,\,x_n,\,T \rangle )]
\bigg\}
}}
這個表記方式被稱為函數記號(functional notation),直觀上表示「若從X_i依序取出地x_i代入T 裡,都可以得到唯一的輸出值,那可以定義一個f(x_1,\,\dots,\,x_n) = T
的函數」。(T 有可能不滿足前提,從而無法定義這樣的一個函數,如取T := x_1 + z
就無法得到唯一輸出值)
像是取T
為x + 1的話,因為實數加法的性質而有:
: (\forall x \in \R)(\exists! y)(y = x + 1)
因為單元對被規定成:
: \langle x \rangle := x
這樣就可以把前面的函數h
簡記為:
: h(x) = x + 1 \; (x \in \R)
如果定義域可以從上下文推斷出來,函數記號可以更不正式的寫為:
: f(x_1,\,\dots,\,x_n) = T
比如說函數h
就可以進一步簡記為:
: h(x) = x + 1
這個記號是1734年第一次被萊昂哈德·歐拉所採用。但當時並沒有清楚地區分函數、項與幂级数,因為當時並沒有一阶逻辑這種清楚研究語言推理的系統;也並不知道有些物理應用的函數不能用幂级数展開。
箭號表示
以上的函數記號也可以稍作修改,來明確的指出「輸出值」的範圍:
{{math theorem
| name = 符號定義
| math_statement =
X_1,\, \dots ,\, X_n 與 Y 都是集合,T 是含有變數 x_1,\,\dots,\,x_n 的項,在:
:(\forall x_1 \in X_1)\dots(\forall x_n \in X_n)(\exists! y)[\,
(y \in Y)
\wedge
(y = T)
\,]
的前提下,可做以下的符號定義:
: f: X_1 \times \dots \times X_n \to Y ;\; \langle x_1,\,\dots,\,x_n \rangle \mapsto T
: :=
: f
=
\bigg\{
p \,\bigg|\,
\exists x_1 \dots \exists x_n[
(\langle x_1,\,\dots,\,x_n\rangle \in X_1 \times \dots \times X_n)
\wedge
(p = \langle x_1,\,\dots,\,x_n,\, T \rangle)
\wedge
(T \in Y)
]
\bigg\}
}}
這個表記方式被稱為箭號表示(arrow notation),直觀上表示「若把從X_i依序取出地x_i代入T 裡,都可以得到Y裡的某唯一輸出,那可以定義一個從X到Y,對應規則為\langle x_1,\,\dots,\,x_n \rangle \mapsto T
的函數f
」
上述符號也可以比較通俗地記為:
: f: X_1 \times \dots \times X_n \to Y ;\;f(x_1,\,\dots,\,x_n) = T
比如說,取T_x
為x + 1的話,因為實數加法的性質而有:
: (\forall x \in \R)(\exists! y)[
(y \in \R)
\wedge
(y = x + 1)
]
因為x \in \R
可以推出x + 1 \in \R
,所以可把函數h
表示成:
: h: \R \to \R ;\;h(x) = x + 1
箭號表示常用來「固定」某個變數,來得到新的函數;假設T_{xt} 是含有變數x和t的項,如果:
: f: X\times T\to Y;\;(x,t) \mapsto T_{xt}
: \tau \in T
那根據:
: (\forall x)(\forall y)(\forall x^{\prime})(\forall y^{\prime})\{
(\langle x, y \rangle = \langle x^{\prime}, y^{\prime}\rangle)
\Leftrightarrow
[(x = x) \wedge (y^{\prime} = y^{\prime})]
\}
若假設T_{x\tau}是將T_{xt} 裡的t 都代換成\tau 所形成的新項,那以下的符號簡寫也是可行的:
: f_\tau: X\to Y;\; x \mapsto T_{x\tau}
直觀上來說,f_\tau是把f第二個變數t 「固定」成特定的\tau 所得到的新函數,英文上也可稱為。
間隔號表示
可以把箭號表示裡的x都取代成间隔号,變成更通俗直觀的間隔號表示,比如說:
: f: \R \to \R;\;x \mapsto x^2
可以記為:
: {(\cdot)}^2
或是對於 [a,\,b]可積的f: [a,\,b] \to \R,作如下定義的話:
: g: [a,\,b] \to \R;\;x \mapsto \int_a^x f(u) \,du
函數g的定義亦可不正式的記為:
: \int_a^{(\cdot)} f(u) \,du
但這個表記方法的明顯缺點是無法指出定義域,因為函數於哪個區間可積會決定以上的函數g的定義可不可行。
函数图形
如果函數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{align}
f + g :=
\bigg\{\,(x,\,y)\,\bigg|\,
(x \in X) \wedge [\,y=f(x)+g(x)\,]
\,\bigg\} \\
\end{align}
:\begin{align}
f + g :=
\bigg\{\,(x,\,y)\,\bigg|\,
(x \in X) \wedge [\,y=f(x) \times g(x)\,]
\,\bigg\} \\
\end{align}
很容易證明以上兩者也是函數,類似的對任意的r \in R可以定義下面這兩個集合
:\begin{align}
r_R :=
\bigg\{\,(x,\,y)\,\bigg|\,
(x \in X) \wedge (y = r)
\,\bigg\} \\
\end{align}
:\begin{align}
r\cdot f :=
\bigg\{\,(x,\,y)\,\bigg|\,
(x \in X) \wedge [\,y = r \times f(x)\,]
\,\bigg\} \\
\end{align}
也是函數,其中r_R被稱為常數函數。
範例
- 首都之於国家(若不把多首都国计算在内)。
- 每个自然数n的平方n^2是n的函數。
- 對數函數。\ln x是正实数x的函數。注意,雖然可以把對數函數推廣到複數情況,但結果就不是函數了,而是多值函數。
- 對每个在\R^2平面上的点,其和原点(0, 0)的距离是確定的。
常用的数学函数包括多项式函數、根式函數、冪函數、对数函數、有理函数、三角函数、反三角函數等。它们都是初等函数。非初等函数(或特殊函数)包括伽马函數和贝塞尔函数等。
分類
函數可分為
- 奇函數或偶函數
- 連續函數或不連續函數
- 實函數或虛函數
- 純量函數或向量函數
- 单调增函数或单调减函数
范畴論觀點
在范畴论中,函数的槪念被推廣為態射的槪念。
一個范畴包括一組物件與一組態射,每一個態射是個三元组(X, Y, f),X稱為源物件(定義域的類比),Y稱為目標物件(到達域的類比),而源物件与目標物件是范畴內的物件。基于这种解释,可以把函数看作集合范畴裡面的態射。
註釋
參考文獻
*
*
*
*
*
*
*
延伸閱讀
*
*
*
*
*
*
*
- An approachable and diverting historical presentation.
*
*
*
*
外部链接
- [http://dlmf.nist.gov/ NIST數學函數]
- [https://web.archive.org/web/20080923201632/http://www.mysuc.com/?tag=%E5%87%BD%E6%95%B0 mysuc.com],经典函数示例
- [https://functions.wolfram.com/ Wolfram函数网站],汇集了各数学函数的公式和图像
- [https://de.serlo.org/mathe/funktionen/funktionsbegriff/funktionen-relationen-ist-funktion Was ist eine Funktion?]
- [https://math.hws.edu/xFunctions/ xFunctions]一个多功能的Java小程序,可以显示函数的图像,既可以在线使用,也可以下载运行。
- [http://fooplot.com/ FooPlot]
- [https://curvas21.blogspot.com/ Curvas]
评论 (0)