函数(英語:function)是數學描述對應關係的一種特殊集合;粗略地說,從集合到集合的函數將的一個元素恰好分配給的每個元素。集合稱為函數的定义域,集合稱為函數的到达域。
函數最初是一個變化的量如何依賴另一個量的理想化。例如,特定時間行星的位置可以視為是行星的位置對時間的函數。“函数”一词作为数学概念是由莱布尼茨首先引入的。從歷史上看,這個概念是在17世紀末用無窮微積分來闡述的,直到19世紀,所考慮的函數都是可微的。函數的概念於19世紀末在集合論中被形式化,這大大擴展了這個概念的應用領域。
簡介
若是實數,以有序對為元素所構成的集合就是一個函数。直觀上代表「輸入」就可以得到唯一值的對應關係。
一般會以英文字母表示函数,並把依據函数的對應規則所得到的值写作,並讀作「f of x」。函数的概念不限於數之间的對應关系,例定义函数為世界上所有國家跟它現在的首都的對應關係,那輸入英国就會输出唯一值伦敦:。
直觀上的「多變數函數」其實也可以概括到一般函數的定義裡。例如算式有兩個實數參數和。可以將這兩個參數看作一個實數有序对,然後定義一個以為元素所構成的函數,然後把簡記成符合直觀的。
數學中,对应、映射、变换通常都是函数的別稱,但也可能有別的意思,如在拓扑學的映射有时代表的是连续函数。
在類型論的λ演算中,「對應關係」可以是作為一個原始概念(也就是無定義名詞),而不像上述的定義把函數視為集合的衍伸物。
函數的值域或像是定义域中所有元素的像之集合。
历史
函数(function)这个数学名词是莱布尼兹在1694年开始使用的,用來描述跟曲线相关的一個量,如曲线的斜率或者曲线上的某一点。莱布尼兹所指的函数现在被称作可导函数,数学家之外的普通人一般接触到的函数即属此类。对于可导函数可以讨论它的极限和导数,此两者描述了函数输出值的变化同输入值变化的关系,是微积分学的基础。中文的「函数」一词由清朝数学家李善兰译出。其《代数学》书中解释:「凡此變數中函(包含)彼變數者,則此為彼之函數」。
- 1718年,約翰·伯努利把函数定义为「一个变量的函数是指由这个变量和常量以任何一种方式组成的一种量。」
- 1748年,伯努利的学生欧拉在《无穷分析引论》一书中说:「一个变量的函数是由该变量和一些数或常量以任何一种方式构成的解析表达式」,例如。
- 1775年,欧拉在《微分学原理》一书中又提出了函数的一个定义:「如果某些量以如下方式依赖于另一些量,即当后者变化时,前者本身也发生变化,则称前一些量是后一些量的函数。」
- 19世纪的数学家开始对数学的各个分支進行形式化。维尔斯特拉斯倡議将微积分学建立在算术,而不是几何的基础上,這種主張較趋向于欧拉的定义。
- 函数的定义得以擴展之後,数学家便能对一些「奇怪」的数学对象进行研究,例如處處不可导的连续函数。这些函数曾经被认为只具有理论价值,迟至20世纪初时它们仍被视作「怪物」。稍后,人们发现这些函数在对如布朗运动之类的物理现象进行建模时有重要的作用。
- 到19世纪末,数学家开始尝试利用集合论来進行数学的形式化。他们试图将每一個数学对象都定义为集合。狄利克雷给出了现代正式的函数定义(参见下文#正式定義)。在他的定義下,函数被视作数学关系的特例。然而对于实际应用的情况,现代定义和欧拉定义的区别可以忽略不计。
正式定義
定義 —
二元關係 若滿足:
則稱為 為一函數。
(為了避免的括弧與逻辑敘述的括弧混淆,也會用來表示有序对)
也就是直觀上,有序对代表(輸入值, 輸出值);而本身是以窮舉所有(輸入值, 輸出值)來詳盡定義的對應規則,且每個輸入值只能對應一個輸出值。
函數值的簡記
習慣上把「等價地」記為。但嚴謹來說,是在一阶逻辑公理化集合论下額外新增的雙元函數符號(因為與各為一個變數),而它的「定義」就是以下連帶額外增加的公理:
公理 —
- 其中:
- ( 的每個輸入值只能對應一個輸出值)
- ( 在 規定的輸入值範圍內)
| 新增公理的合理性 |
|---|
假設有,此時對公式套用量词公理A4有:
這樣綜合上式和就有:
換句話說:
這樣根據特定條件下的存在性就有:
這樣根據函數符號與唯一性的內容,就可以於策梅洛-弗兰克尔集合论增加上述的公理與雙元函數符號,且新增這個公理的新理論等效於原來的理論。 |
直觀上,這個公理表示「若為一函數且在的輸入值範圍,則;否則規定為空集」。
這樣根據函數符號與唯一性的定理(E),就會有本節一開始所說的直觀性質:
也就是「若為一函數且在的輸入值範圍,則對所有的,等價於」。
對於「n變數」的函數,也就是以
為元素的函數,習慣上會把以下的項
進一步簡寫為
定義域與值域
如果能指出函數的「輸入值範圍」跟「輸出值範圍」,對數學的討論是相當方便的;事實上公理化集合論中,分类公理確保對任意集合有唯一的集合和(嚴格來說,單元函數符號)分別滿足
- (「輸入值範圍」)
- (「輸出值範圍」)
直觀上,是蒐集所有裡所有有序对的第一個所構成的集合;是蒐集所有裡所有有序对的第二個所構成的集合。這樣的話,如果本身就是函數的話,就是所謂的「輸入值範圍」,所以被稱為定義域;類似地,就是所謂的「輸出值範圍」,所以被稱為值域。
通常情況下,有以下慣用的記號
也就是直觀上,表示「是函數且其定義域為,且值域包含於。」。這種情況下,通常被俗稱為對應域。
屬於定義域的元素常被俗稱為自變量(independent variable),而項則被俗稱為因變量(dependent variable),但是這跟實驗上的自变量和因变量是稍有不同的,因為前者是現實得到的實驗值之間的關聯,但另一個是源於集合論的概念。
一對一
定義 —
函數 若滿足
則被稱為一對一的(one-to-one)或是单射(injective function)。
直觀上,若函數的輸出值都只能被唯一個輸入值對應,則稱是一對一的。
若是單射,那(根據分类公理所取的)以下的集合:
也是一個函數,被稱為的反函數。
滿射
這個簡記只能指出「輸出值不會超出」,為了彌補這個簡記的缺陷,口語上會將满射(surjective function)定義為「且值域就是」的函數。
函數的簡記
除了正式定義一節所規範的集合論表示法,一般的數學書籍會採用比較通俗的函數表記方法,下面將一一介紹。
函數記號
很多函數都是取实数為輸出值和輸入值,換句話說,都是(),這些函數很多都是以實數的四則運算去定義的。但考慮到实数加法可由皮亚诺公理裡的單元函數符號(直觀上解釋成「的下一個」,或說「」)建構出來,或被視為实数公理系統裡的雙元函數符號(簡記為),實數加法其實是一阶逻辑下的項;類似地,其他四則運算也可以此類推,而得出他們都是項的結論。所以直觀上定義实数函數的時候,都希望一條項(直觀上的運算式)能唯一決定一個函數,比如說,對於項:
以下的集合:
是一個函數。為了讓這類函數的表示更加簡潔,就衍伸出以下的表記方式:
符號定義 —
都是集合, 是含有變數 的項,那在:
的前提下,則可做以下的符號定義:
這個表記方式被稱為函數記號(functional notation),直觀上表示「若從依序取出地代入裡,都可以得到唯一的輸出值,那可以定義一個的函數」。(有可能不滿足前提,從而無法定義這樣的一個函數,如取就無法得到唯一輸出值)
像是取為的話,因為實數加法的性質而有:
因為單元對被規定成:
這樣就可以把前面的函數簡記為:
如果定義域可以從上下文推斷出來,函數記號可以更不正式的寫為:
比如說函數就可以進一步簡記為:
這個記號是1734年第一次被萊昂哈德·歐拉所採用。但當時並沒有清楚地區分函數、項與幂级数,因為當時並沒有一阶逻辑這種清楚研究語言推理的系統;也並不知道有些物理應用的函數不能用幂级数展開。
箭號表示
以上的函數記號也可以稍作修改,來明確的指出「輸出值」的範圍:
符號定義 —
與 都是集合, 是含有變數 的項,在:
的前提下,可做以下的符號定義:
這個表記方式被稱為箭號表示(arrow notation),直觀上表示「若把從依序取出地代入裡,都可以得到裡的某唯一輸出,那可以定義一個從到,對應規則為的函數」
上述符號也可以比較通俗地記為:
比如說,取為的話,因為實數加法的性質而有:
因為可以推出,所以可把函數表示成:
箭號表示常用來「固定」某個變數,來得到新的函數;假設是含有變數和的項,如果:
那根據:
若假設是將裡的都代換成所形成的新項,那以下的符號簡寫也是可行的:
直觀上來說,是把第二個變數「固定」成特定的所得到的新函數,英文上也可稱為partial applied function。
間隔號表示
可以把箭號表示裡的都取代成间隔号,變成更通俗直觀的間隔號表示,比如說:
可以記為:
或是對於可積的,作如下定義的話:
函數的定義亦可不正式的記為:
但這個表記方法的明顯缺點是無法指出定義域,因為函數於哪個區間可積會決定以上的函數的定義可不可行。
函数图形