跳到正文
格致开物MATHWIKI

函数:修订间差异

AIContentBot留言 | 贡献
扩充双语数学百科:定义条件、证明算例、历史来源与 AI 编者评注;补齐学科导航
 
AIContentBot留言 | 贡献
重编数学讲解:连贯例题、逐步推导与多幅过程图;更新写作规范
 
第1行: 第1行:
'''函数'''(function),也称映射,是把一个集合中每个元素恰好对应到另一个集合中一个元素的规则。记作 <math>f:A\to B</math>,其中 <math>A</math> 是定义域,<math>B</math> 是陪域,<math>f(x)</math> 是输入 <math>x</math> 的输出。函数的定义不要求输出是数字,也不要求规则由单个公式表达。公式、图像、数据表和算法可以描述函数,却都不应代替对输入范围与唯一输出要求的说明。
'''函数'''(function),也称映射,是一种为每个输入指定唯一输出的对应。输入和输出可以是数,也可以是位置、日期、集合等对象。函数通常记作 <math>f</math>,输入 x 对应的输出记作 <math>f(x)</math>


== 一个公式为什么还不够 ==
例如,规则“把一个实数平方”给出 <math>f(x)=x^2</math>。输入 3 得到 9,输入 −3 也得到 9。两个输入可以得到相同输出;函数所要求的唯一性,是同一个输入只能得到一个确定的输出。
式子 <math>f(x)=x^2</math> 看起来已经明确,但若研究是否可以反求输入,还缺少范围信息。在全体实数上,正负输入可能得到相同平方;限制为非负实数后,就不再发生这种重复。若陪域取实数,负数永远得不到;若陪域取非负实数,所有允许的输出又都能得到。同一计算公式配上不同定义域或陪域,可以具有不同性质。


因此本文把定义域、陪域和对应规则一起作为函数资料。像集或值域 <math>f(A)</math> 指实际得到的输出集合,是陪域的子集。中文教材对“值域”的使用习惯有时容易与陪域混淆,本条始终区分二者。说一个函数满射,是说像集恰好填满已指定的陪域,而不是说“所有能得到的值都能得到”这个重复陈述。
== 从平方看定义域、陪域和值域 ==
先让输入可以取任意实数,把允许接收输出的范围也指定为实数,写成
<math display="block">f:\mathbb R\to\mathbb R,\qquad f(x)=x^2.</math>
箭头左边的集合叫'''定义域''',说明哪些输入都必须有对应值;右边的集合叫'''陪域''',说明输出所属的集合。记号 <math>\mathbb R</math> 表示全体实数。


“每个输入恰好一个输出”包含存在与唯一两层要求。在声明的定义域内,有输入没有输出,规则就没有定义完整;一个输入允许两个不同输出,也不是通常意义下的函数。多个不同输入产生同一输出则完全允许。例如绝对值把正三和负三都送到三,它仍然是函数,只是不单射。
平方的输出实际上只会是非负数。把所有真正得到的输出收集起来,得到'''像集''',也称值域:
<math display="block">f(\mathbb R)=[0,\infty).</math>
像集是陪域的子集,但未必填满陪域。这里 −1 在陪域中,却没有任何实数的平方等于 −1。


所谓多值函数通常是另一种约定:一个输入对应一个输出集合,或研究多支关系。使用它时必须明确改变了什么对象。初等函数语境中,<math>\sqrt{x}</math> 对非负实数表示非负平方根;方程 <math>y^2=x</math> 可能有两个实数解,是关于解集的陈述,不能直接把两种含义混为一谈。
若只让输入取非负实数,平方规则仍然可用。这时每个输出还可以唯一反求输入:输出 9 来自 3,输出 0 来自 0。原先的两个输入 3 和 −3 合并到同一输出的问题消失了。因此,公式不变而输入范围改变,函数的性质也会改变。


== 定义域由运算条件与问题背景共同决定 ==
本条在讨论函数时把定义域、陪域和对应规则都写清楚。有些文献只把函数看作输入输出的有序对集合,不把陪域列入函数相等的条件;无论采用哪一种约定,讨论能否覆盖所有输出、能否反求输入时,都需要指定相应的范围。
对实函数 <math>h(x)=\sqrt{4-x^2}/(x-1)</math>,根号内必须非负,给出 <math>-2\le x\le2</math>;分母必须非零,排除一。所以按该公式自然得到的实定义域是 <math>[-2,1)\cup(1,2]</math>。两个条件应取交,而不是分别列出后任选一个。代入零得到负二,代入二得到零;代入一没有定义,不能因为分子有值就忽略分母。


对于 <math>p(x)=(x^2-1)/(x-1)</math>,约分得到 <math>x+1</math> 只在 <math>x\ne1</math> 时成立。原函数在一处没有定义,而定义在全部实数上的 <math>q(x)=x+1</math> 有定义,所以两者不是同一个定义域上的相同函数。可以把前者延拓到一处,但“延拓”是新增函数值的操作,不是化简自动补出来的事实。
== 怎样找出允许的输入 ==
有些公式只能接受部分实数。例如
<math display="block">h(x)=\frac{\sqrt{4-x^2}}{x-1}.</math>
要得到实数输出,根号内须非负,所以 <math>4-x^2\ge0</math>,即 <math>-2\le x\le2</math>。同时分母不能为零,须排除 <math>x=1</math>。两个条件要同时成立,得到自然定义域
<math display="block">[-2,1)\cup(1,2].</math>
代入 0,分子为 2、分母为 −1,故 <math>h(0)=-2</math>;代入 2,分子为 0、分母为 1,故 <math>h(2)=0</math>。代入 1 则没有定义。


模型还可能进一步限制输入。面积作为边长的函数,边长通常非负;离散时间模型只在整数时刻定义;摄氏温度到华氏温度的换算虽然用一次式表示,却包含量纲和基准点。自然定义域与现实允许范围可以不同,应明确采用哪一种。[[数学建模]]中的函数不是仅有一个代数表达式,还包含变量意义与适用范围。
代数化简也要保留原来的范围。对
<math display="block">p(x)=\frac{x^2-1}{x-1},</math>
在 <math>x\ne1</math> 时可以约分,得到 <math>p(x)=x+1</math>。但原分式在 1 处没有值,而定义在全部实数上的 <math>q(x)=x+1</math> 有 <math>q(1)=2</math>。q 是给 p 补上一个值后得到的'''延拓'''。反过来,只保留一个函数在较小输入集合上的值,叫作'''限制'''。


有限数据表只有在每个被列入定义域的输入对应唯一输出时才定义一个函数。如果同一个输入在不同试验中得到不同测量值,数据可能包含噪声、未控制变量,或者输入信息不完整。可以研究条件分布、均值或拟合函数,但不能直接把多次不同测量宣称为同一个确定函数的精确值。
在实际问题中,输入范围还来自对象本身。正方形的面积可写为边长的平方,但边长只取非负数;某设备运行后的记录若每秒采样一次,输入时间可能只取非负整数。这些范围与公式允许的全部实数输入不一定相同。


== 图像、分段规则与不依赖公式的对应 ==
== 公式、图像与分段对应 ==
实变量实值函数的图像是全部有序对 <math>(x,f(x))</math> 的集合。竖直线检验表达唯一性:任意固定横坐标最多与图像相交一次。如果还声明了定义域,那么域内每个横坐标都必须恰有一个交点。图像外观可以帮助理解,却常不足以精确读出端点、跳跃位置或无穷远行为。
平方函数的图像由全部点 <math>(x,x^2)</math> 组成。例如 <math>(-2,4)</math>、<math>(0,0)</math>、<math>(2,4)</math> 都在图像上。横坐标表示输入,纵坐标表示输出;每个定义域内的横坐标恰好对应一个点,这就是实函数图像的竖直线检验。


分段函数并不表示“几个互不相关的函数”。例如绝对值在非负输入时等于输入,在负输入时等于相反数;这两段在各自范围内共同定义一条规则。分段条件若重叠,重叠处的结果必须一致;若留有缝隙,就需把未定义的点从定义域删去,或者补充规则。边界点归属是定义的一部分,不能仅凭画图猜测。
圆 <math>x^2+y^2=1</math> 整体不是一个把 x 送到 y 的函数图像:在 <math>x=0</math> 时,它同时给出 <math>y=1</math> 和 <math>y=-1</math>。若只取上半圆,便得到
<math display="block">y=\sqrt{1-x^2},\qquad -1\le x\le1.</math>
平方根号取非负平方根,因而每个输入只有一个输出。


函数也可以作用于集合、字符串或几何图形。例如把一个有限集合送到其元素个数,把一个多项式送到其导数,把每个人送到登记的出生日期,都是不同类型的对应。最后一个例子会有许多人得到同一日期,因此不是单射,但这不影响它满足函数定义。现实数据可能缺失或登记错误,是数据质量问题,与抽象定义应分开讨论。
一条对应也可以由几段公式共同描述。例如
<math display="block">|x|=\begin{cases}x,&x\ge0,\\-x,&x<0.\end{cases}</math>
两个条件分担全部实数,0 明确归入第一段。输入 −3 时使用第二段,输出 3;输入 3 时使用第一段,也输出 3。分段描述仍然定义同一个函数。


甚至有完全不连续的函数。例如在有理数处取一、无理数处取零的实函数,每个实输入都有唯一输出,却在任何点都不连续,因为任意区间里同时有有理数与无理数。这个例子说明连续性不是函数的定义条件。进一步谈[[极限]][[导数]]或[[积分]]时,需要逐项检查相应性质,不能因为有一个明确规则就默认所有分析运算都可进行。
函数未必画成连续曲线。规定有理数输入时输出 1、无理数输入时输出 0,也为每个实数指定了唯一值。由于任何小区间里都有有理数和无理数,这个函数处处不连续。连续性因而是可以进一步研究的性质,并非函数定义本身的要求;[[极限]][[连续映射]]讨论了这种性质。


== 复合把两个过程接成一个 ==
数值以外的例子也很常见:把一个有限集合对应到它的元素个数,或把每个人对应到其登记的出生日期,都符合函数的形式。一个输出若是三维位置 <math>(x,y,z)</math>,三个坐标合在一起构成一个对象,也仍是唯一输出。
<math>f:A\to B</math>、<math>g:B\to C</math>,复合函数定义为 <math>(g\circ f)(x)=g(f(x))</math>。先执行右侧的函数,再执行左侧的函数。更一般地,只要第一个函数的实际输出都落在第二个函数的定义域内,复合就有意义。输入输出类型匹配与矩阵乘法的中间维数匹配是相似的要求。


<math>f(x)=x+1</math><math>g(x)=x^2</math>,两者都定义在实数上。则 <math>(g\circ f)(x)=(x+1)^2</math>,而 <math>(f\circ g)(x)=x^2+1</math>。在输入二处,前者得到九,后者得到五,说明复合通常不交换。判断两个函数不同,只需找到一个输出不同的共同输入;判断它们相同,则需定义域一致并对全部输入比较。
== 两个函数怎样接起来 ==
从一个数开始,先加 1,再平方,是两次连续处理。设
<math display="block">s(x)=x+1,\qquad q(x)=x^2.</math>
处理输入 2,先得到 <math>s(2)=3</math>,再得到 <math>q(3)=9</math>。把整个过程写成一个函数,便有
<math display="block">(q\circ s)(x)=q(s(x))=(x+1)^2.</math>
符号 <math>\circ</math> 表示'''复合''',右边的函数先执行。若反过来先平方再加 1,就得到 <math>(s\circ q)(x)=x^2+1</math>;输入 2 的结果是 5。次序不同,复合函数通常也不同。


复合满足结合律:三个过程先把前两个括在一起或后两个括在一起,最终都按同一顺序执行。因此在类型匹配时可省略括号,但不能随意交换次序。恒等函数把每个输入送回自身,是复合中的单位操作。[[群]]把可逆操作及其复合抽象成共同结构,函数复合为这种抽象提供了基本模型。
下图逐个标出中间结果。沿上排先加 1 再平方,输入 2 依次变成 3、9;沿下排交换两个处理步骤,得到 4、5。复合符号中的右边函数,对应图中先经过的箭头。


复合还可能缩小定义域。例如先取 <math>\sqrt{x}</math>,再代入 <math>1/(t-2)</math>,需要 <math>x\ge0</math> 且 <math>\sqrt{x}\ne2</math>,所以排除四。若先取倒数再开根,则输入条件完全不同。写出复合公式后,应从每一步运算的合法性重新检查范围,而不能机械地把两个原定义域取交。
[[File:Gezhi-teaching-foundation-function-composition.svg|frame|center|alt=函数复合的两排箭头,上排二加一得三再平方得九,下排二平方得四再加一得五|同一个输入经过不同次序,产生不同输出。]]


== 单射、满射与反函数 ==
一般地,若 <math>f:A\to B</math><math>g:B\to C</math>,则
单射要求不同输入有不同输出,等价地,若 <math>f(x_1)=f(x_2)</math> <math>x_1=x_2</math>。满射要求陪域内每个元素至少有一个原像。两者同时成立称为双射:每个允许输出恰有一个输入。它才具有定义在整个陪域上的双侧反函数 <math>f^{-1}:B\to A</math>
<math display="block">(g\circ f)(x)=g(f(x)),\qquad x\in A.</math>
第一个过程的输出能被第二个过程接收,才构成完整复合。三个过程按同一顺序执行时,无论先把哪两个视为整体,结果都是 <math>h(g(f(x)))</math>。这就是复合的结合律。


严格递增的实函数一定单射,因为不同输入的大小次序会严格传到输出;但“单射”不必在任意定义域上等价于某种简单单调性。满射更明显依赖陪域:指数函数作为从实数到正实数的映射是满射,若陪域写成全体实数就不是。说“它有没有反函数”之前,应先明确在什么范围上讨论。
输入范围也要沿着处理顺序检查。例如先开平方,再计算“这个结果减 2 的倒数”,得到
<math display="block">F(x)=\frac1{\sqrt{x}-2}.</math>
第一步要求 <math>x\ge0</math>;第二步排除 <math>\sqrt{x}=2</math>,也就是排除 <math>x=4</math>。故定义域为 <math>[0,4)\cup(4,\infty)</math>。如果反过来先取 <math>1/(x-2)</math> 再开平方,就要求该分式非负且分母非零,定义域变为 <math>(2,\infty)</math>。


完整例子是 <math>f:[2,\infty)\to[1,\infty)</math>,<math>f(x)=(x-2)^2+1</math>。定义域保证 <math>x-2\ge0</math>,平方在此范围严格递增,所以单射。任取陪域中的 <math>y\ge1</math>,令 <math>x=2+\sqrt{y-1}</math>,便满足输入范围且输出为 <math>y</math>,所以满射。反函数为
== 何时可以从输出反求输入 ==
<math display="block">f^{-1}(y)=2+\sqrt{y-1}.</math>
反求输入会遇到两个问题:可能根本没有输入对应这个输出,也可能有多个输入。分别排除这两种情况,便得到单射与满射。
例如输出十对应输入五,回代为 <math>(5-2)^2+1=10</math>。若去掉输入下界,另一个输入负一也会给出十,反求就不再唯一。


反函数不是函数值的倒数,<math>f^{-1}(y)</math> <math>1/f(y)</math> 通常没有相同含义。求反函数也不是简单交换字母后就结束:还需选择由定义域决定的分支,并交换原来的定义域与陪域。平方根的正负选择就是这一点最具体的例子。
'''单射'''要求不同输入产生不同输出。等价地,只要 <math>f(x_1)=f(x_2)</math>,就能推出 <math>x_1=x_2</math>。'''满射'''要求陪域中每个元素都能被某个输入达到。两者同时成立,称为'''双射'''。


== 原像不要求函数可逆 ==
平方函数可以说明范围的作用:
给定输出集合 <math>S\subseteq B</math>,原像 <math>f^{-1}(S)</math> 表示所有被映入 <math>S</math> 的输入。这一集合记号对任何函数都有定义,完全不要求存在反函数。若输出没有被达到,原像可以为空;若很多输入落入同一个输出范围,原像可以很大。
<div class="math-table-scroll" role="region" aria-label="平方函数在不同定义域和陪域下的性质" tabindex="0">
{| class="wikitable"
! 对应 !! 单射吗 !! 满射吗
|-
| <math>\mathbb R\to\mathbb R,\ x\mapsto x^2</math> || 否,3 与 −3 输出相同 || 否,负数不能达到
|-
| <math>\mathbb R\to[0,\infty),\ x\mapsto x^2</math> || 否 || 是,每个 y≥0 都由 √y 达到
|-
| <math>[0,\infty)\to[0,\infty),\ x\mapsto x^2</math> || 是 || 是
|}
</div>
表中最后一行允许把每个输出唯一送回原输入,得到'''反函数''' <math>y\mapsto\sqrt y</math>。一般双射 <math>f:A\to B</math> 的反函数记为 <math>f^{-1}:B\to A</math>,满足
<math display="block">f^{-1}(f(x))=x,\qquad f(f^{-1}(y))=y.</math>
左式撤销原来的运算,右式说明陪域中的每个 y 都能被这样恢复。


<math>f:\mathbb R\to\mathbb R</math> 为平方函数。输出区间 <math>[1,4]</math> 的原像由满足 <math>1\le x^2\le4</math> 的实数组成,因此是 <math>[-2,-1]\cup[1,2]</math>。而输入区间 <math>[-1,2]</math> 的像是 <math>[0,4]</math>。这两个问题方向不同,一个找可能输出,一个找满足输出条件的全部输入。
看一个带平移的例子:
<math display="block">f:[2,\infty)\to[1,\infty),\qquad f(x)=(x-2)^2+1.</math>
输入先减 2,结果非负;平方后再加 1,输出至少为 1。求反函数时,从 <math>y=(x-2)^2+1</math> 得到 <math>(x-2)^2=y-1</math>。由于 <math>x-2\ge0</math>,取非负平方根,得到
<math display="block">x=2+\sqrt{y-1},\qquad f^{-1}(y)=2+\sqrt{y-1}.</math>
任意 <math>y\ge1</math> 都得到一个 <math>x\ge2</math>,回代后恰为 y,因此这既证明有输入,又证明输入唯一。输出 10 对应输入 5,检验为 <math>(5-2)^2+1=10</math>


原像与交、并、补运算配合良好,因为成员条件可以直接拉回输入。例如 <math>x</math> 属于两个输出集合交的原像,当且仅当其输出同时属于两集合,因此等于两个原像的交。这个简单事实后来成为用开集定义[[连续映射]]的基础:连续性要求合适输出邻域的原像仍是合适的输入邻域。
下图左侧画出一段抛物线:高度 10 同时对应 −1 与 5。保留金色的 x≥2 分支以后,只剩一个输入。右图将这条分支与反函数画在同一坐标系中,点 (5,10) 交换横纵坐标成为 (10,5),两条曲线关于虚线 y=x 对称。


像对交集却一般只满足包含关系,不能随便写等号。平方函数把单元素集 <math>\{-1\}</math> 与 <math>\{1\}</math> 都送到 <math>\{1\}</math>,两个像的交非空,而两个原集合的交为空,其像也为空。丢失输入区分是等号失败的原因。若额外有单射性,这种合并不会发生,便可恢复对交集的保持。
[[File:Gezhi-teaching-foundation-function-inverse.svg|frame|center|alt=左图抛物线同一高度对应负一和五,金色保留输入大于等于二的分支;右图函数与反函数关于直线y等于x对称|限制输入范围解决反求不唯一;反函数将输入与输出的位置交换。]]


== 相等、限制与延拓的边界 ==
如果允许全部实数输入,−1 也会输出 10,反求就不唯一。反函数的分支取自输入范围;记号中的 −1 表示反向对应,并不表示数值倒数 <math>1/f(y)</math>。
本条采用定义域和陪域明确的映射约定,两函数相等要求这些资料及对应规则一致。数学文献有时只把函数当成其有序对图像,因而陪域不作为相等判据的一部分。两种习惯在各自约定下都可以使用,关键是不能在讨论满射、反函数时无声改变陪域。百科叙述应把实际采用的约定写明。


把函数只保留在定义域的一个子集上称为限制;在更大范围补充值且保留原值称为延拓。限制可能使非单射函数变得单射,延拓则可能不唯一。一个有限数据表通常能被无穷多条不同曲线经过,因此数据拟合必须加入平滑性、模型族或其他准则,不能由“通过所有点”推出唯一规律。
== 反求一个范围:像与原像 ==
回到定义在全体实数上的平方函数。若输入位于 <math>[-1,2]</math>,可能得到哪些输出?最小平方为 0,最大为 4,中间的值也都能达到,所以
<math display="block">f([-1,2])=[0,4].</math>
这是求一个输入集合的'''像'''。


周期性、奇偶性和单调性也都需要范围条件。讨论偶函数需要定义域关于零对称,并满足正负输入输出相同;仅检查几个点不够。周期函数要求平移相应周期以后仍有定义且输出不变。这些性质是在函数定义完整之后附加的结构,不能用“图像看起来大概对称”作为证明。
反过来,若知道输出在 <math>[1,4]</math>,就要找所有满足 <math>1\le x^2\le4</math> 的输入。它们为
<math display="block">f^{-1}([1,4])=[-2,-1]\cup[1,2].</math>
这是求输出集合的'''原像'''。尽管平方函数在全部实数上没有反函数,仍可以求任何输出集合的原像。此处 <math>f^{-1}(S)</math> 的 S 是集合,表示把满足输出条件的所有输入收集起来。


函数的输出还可以是向量。位置随时间的变化通常由若干坐标函数共同表示,一个时刻对应一个完整位置向量,并不违反“唯一输出”。判断是否为函数时,应把输出对象作为整体,而不是把它的多个分量误认为多个互相冲突的结果。这也是从一元函数进入[[向量空间]]与多变量模型时需要保留的层次区别。
原像与交集有很直接的关系。输入 x 的输出同时落入 S 和 T,等价于 x 既在 S 的原像中,也在 T 的原像中。因此
<math display="block">f^{-1}(S\cap T)=f^{-1}(S)\cap f^{-1}(T).</math>
对并集作同样的逐元素判断,也有对应等式。


== 函数概念怎样逐步扩大 ==
像与交集却可能不满足等式。平方函数把 <math>\{-1\}</math> 和 <math>\{1\}</math> 都映成 <math>\{1\}</math>,两个像有共同元素;两个输入集合本身不相交,其交集的像为空。原因正是函数把不同输入合并成了同一个输出。增加单射条件后,这种合并被排除,像才保持交集。
函数不是由一个人一次给出今天的全部定义。十七至十八世纪的曲线研究与微积分促成了相关语言,Johann Bernoulli 在 1694 年与 Leibniz 的通信中给出以变量与常量构成的量为中心的描述;Euler 在 1748 年的《无穷分析引论》中系统研究由表达式形成的函数。后来对更一般对应关系的研究逐渐超出单一解析表达式的限制。[https://mathshistory.st-andrews.ac.uk/HistTopics/Functions/ MacTutor:The function concept]展示了这些定义随问题变化而调整的过程。


十九世纪的级数、振动问题以及不规则函数,使“函数必须有一条良好公式或平滑曲线”的限制不再适合所有分析问题。现代集合语言进一步把函数描述为满足唯一性条件的有序对集合。这个发展方向不是抛弃公式,而是区分对象本身与描述它的一种手段:同一个函数可以有多种表达式,有些函数则没有简便的闭合公式。
== 从表达式到一般对应 ==
 
十七至十八世纪的函数语言与曲线、微积分研究紧密相连。Johann Bernoulli 在 1694 年与 Leibniz 的通信中,讨论由变量与常量构成的量;Euler 在 1748 年《无穷分析引论》中系统研究以表达式给出的函数。[https://mathshistory.st-andrews.ac.uk/HistTopics/Functions/ MacTutor:The function concept]
== English overview ==
<div lang="en" class="math-english-summary">
A function assigns exactly one output to each input in a specified domain. Its codomain lists the allowed outputs, while its image consists of the outputs actually attained. A formula alone may not specify all of this information. The same formula can have different injectivity or surjectivity properties when its domain or codomain changes.
 
Composition joins compatible functions and is generally not commutative. Injective functions do not merge distinct inputs, surjective functions reach every element of their codomain, and bijective functions have two sided inverses. Restricting a quadratic function to one branch gives a concrete example of constructing an inverse and checking its domain.
 
The inverse image of a set is different from an inverse function: it is defined even when the function is not invertible. Images can merge distinct inputs, whereas inverse images preserve basic set operations. Functions need not be continuous, given by one expression, or take numerical values. Historically, the concept broadened from quantities described by expressions to general single valued correspondences. Modeling with functions additionally requires explicit units, assumptions, and a justified range of inputs.
</div>


== 编者评注(AI 辅助) ==
后来,级数与振动问题推动数学家考虑分段或不规则的函数。集合语言把函数进一步表述为具有唯一输出的对应,使同一概念既适用于平滑曲线,也适用于有限表格、离散对象和空间中的运动。公式和图像仍是描述函数的重要方式,定义域及对应关系则说明这些表示究竟描述了什么。
本条把定义域、陪域和像集放在公式之前,是为了使单射、满射与反函数的讨论有固定对象。约分后的缺点、平方函数的两支和原像运算,分别展示“表达式相同”不能代替“函数相同”的三个原因。内容由 AI 辅助整理;编者认为范围检查比增加函数名称清单更能打牢后续分析基础。历史部分呈现概念扩大的过程,未把现代定义直接归给某位早期作者。


== 参考资料与后续阅读 ==
== 参考资料 ==
* [https://www.jirka.org/ra/html/sec_basicset.html Jiří Lebl,Basic Analysis,Basic set theory]:函数、像、原像以及单射满射。
* [https://www.jirka.org/ra/html/sec_basicset.html Jiří Lebl,Basic Analysis,Basic set theory]:函数、像、原像以及单射、满射。
* [https://mathshistory.st-andrews.ac.uk/HistTopics/Functions/ J. J. O’Connor、E. F. Robertson,The function concept]:函数定义的历史变化。
* [https://mathshistory.st-andrews.ac.uk/HistTopics/Functions/ J. J. O’Connor、E. F. Robertson,The function concept]
* 前置可读[[集合]][[逻辑]];继续阅读[[极限]]、[[连续映射]]、[[导数]][[线性代数]]。
* 先修:[[集合]];相关:[[极限]][[连续映射]]、[[导数]]、[[线性代数]][[数学建模]]。
[[分类:基础与逻辑]]
[[分类:基础与逻辑]]

2026年9月20日 (日) 07:17的最新版本

函数(function),也称映射,是一种为每个输入指定唯一输出的对应。输入和输出可以是数,也可以是位置、日期、集合等对象。函数通常记作 f,输入 x 对应的输出记作 f(x)

例如,规则“把一个实数平方”给出 f(x)=x2。输入 3 得到 9,输入 −3 也得到 9。两个输入可以得到相同输出;函数所要求的唯一性,是同一个输入只能得到一个确定的输出。

从平方看定义域、陪域和值域

先让输入可以取任意实数,把允许接收输出的范围也指定为实数,写成 f:,f(x)=x2. 箭头左边的集合叫定义域,说明哪些输入都必须有对应值;右边的集合叫陪域,说明输出所属的集合。记号 表示全体实数。

平方的输出实际上只会是非负数。把所有真正得到的输出收集起来,得到像集,也称值域: f()=[0,). 像集是陪域的子集,但未必填满陪域。这里 −1 在陪域中,却没有任何实数的平方等于 −1。

若只让输入取非负实数,平方规则仍然可用。这时每个输出还可以唯一反求输入:输出 9 来自 3,输出 0 来自 0。原先的两个输入 3 和 −3 合并到同一输出的问题消失了。因此,公式不变而输入范围改变,函数的性质也会改变。

本条在讨论函数时把定义域、陪域和对应规则都写清楚。有些文献只把函数看作输入输出的有序对集合,不把陪域列入函数相等的条件;无论采用哪一种约定,讨论能否覆盖所有输出、能否反求输入时,都需要指定相应的范围。

怎样找出允许的输入

有些公式只能接受部分实数。例如 h(x)=4x2x1. 要得到实数输出,根号内须非负,所以 4x20,即 2x2。同时分母不能为零,须排除 x=1。两个条件要同时成立,得到自然定义域 [2,1)(1,2]. 代入 0,分子为 2、分母为 −1,故 h(0)=2;代入 2,分子为 0、分母为 1,故 h(2)=0。代入 1 则没有定义。

代数化简也要保留原来的范围。对 p(x)=x21x1,x1 时可以约分,得到 p(x)=x+1。但原分式在 1 处没有值,而定义在全部实数上的 q(x)=x+1q(1)=2。q 是给 p 补上一个值后得到的延拓。反过来,只保留一个函数在较小输入集合上的值,叫作限制

在实际问题中,输入范围还来自对象本身。正方形的面积可写为边长的平方,但边长只取非负数;某设备运行后的记录若每秒采样一次,输入时间可能只取非负整数。这些范围与公式允许的全部实数输入不一定相同。

公式、图像与分段对应

平方函数的图像由全部点 (x,x2) 组成。例如 (2,4)(0,0)(2,4) 都在图像上。横坐标表示输入,纵坐标表示输出;每个定义域内的横坐标恰好对应一个点,这就是实函数图像的竖直线检验。

x2+y2=1 整体不是一个把 x 送到 y 的函数图像:在 x=0 时,它同时给出 y=1y=1。若只取上半圆,便得到 y=1x2,1x1. 平方根号取非负平方根,因而每个输入只有一个输出。

一条对应也可以由几段公式共同描述。例如 |x|={x,x0,x,x<0. 两个条件分担全部实数,0 明确归入第一段。输入 −3 时使用第二段,输出 3;输入 3 时使用第一段,也输出 3。分段描述仍然定义同一个函数。

函数未必画成连续曲线。规定有理数输入时输出 1、无理数输入时输出 0,也为每个实数指定了唯一值。由于任何小区间里都有有理数和无理数,这个函数处处不连续。连续性因而是可以进一步研究的性质,并非函数定义本身的要求;极限连续映射讨论了这种性质。

数值以外的例子也很常见:把一个有限集合对应到它的元素个数,或把每个人对应到其登记的出生日期,都符合函数的形式。一个输出若是三维位置 (x,y,z),三个坐标合在一起构成一个对象,也仍是唯一输出。

两个函数怎样接起来

从一个数开始,先加 1,再平方,是两次连续处理。设 s(x)=x+1,q(x)=x2. 处理输入 2,先得到 s(2)=3,再得到 q(3)=9。把整个过程写成一个函数,便有 (qs)(x)=q(s(x))=(x+1)2. 符号 表示复合,右边的函数先执行。若反过来先平方再加 1,就得到 (sq)(x)=x2+1;输入 2 的结果是 5。次序不同,复合函数通常也不同。

下图逐个标出中间结果。沿上排先加 1 再平方,输入 2 依次变成 3、9;沿下排交换两个处理步骤,得到 4、5。复合符号中的右边函数,对应图中先经过的箭头。

函数复合的两排箭头,上排二加一得三再平方得九,下排二平方得四再加一得五
同一个输入经过不同次序,产生不同输出。

一般地,若 f:ABg:BC,则 (gf)(x)=g(f(x)),xA. 第一个过程的输出能被第二个过程接收,才构成完整复合。三个过程按同一顺序执行时,无论先把哪两个视为整体,结果都是 h(g(f(x)))。这就是复合的结合律。

输入范围也要沿着处理顺序检查。例如先开平方,再计算“这个结果减 2 的倒数”,得到 F(x)=1x2. 第一步要求 x0;第二步排除 x=2,也就是排除 x=4。故定义域为 [0,4)(4,)。如果反过来先取 1/(x2) 再开平方,就要求该分式非负且分母非零,定义域变为 (2,)

何时可以从输出反求输入

反求输入会遇到两个问题:可能根本没有输入对应这个输出,也可能有多个输入。分别排除这两种情况,便得到单射与满射。

单射要求不同输入产生不同输出。等价地,只要 f(x1)=f(x2),就能推出 x1=x2满射要求陪域中每个元素都能被某个输入达到。两者同时成立,称为双射

平方函数可以说明范围的作用:

对应 单射吗 满射吗
, xx2 否,3 与 −3 输出相同 否,负数不能达到
[0,), xx2 是,每个 y≥0 都由 √y 达到
[0,)[0,), xx2

表中最后一行允许把每个输出唯一送回原输入,得到反函数 yy。一般双射 f:AB 的反函数记为 f1:BA,满足 f1(f(x))=x,f(f1(y))=y. 左式撤销原来的运算,右式说明陪域中的每个 y 都能被这样恢复。

看一个带平移的例子: f:[2,)[1,),f(x)=(x2)2+1. 输入先减 2,结果非负;平方后再加 1,输出至少为 1。求反函数时,从 y=(x2)2+1 得到 (x2)2=y1。由于 x20,取非负平方根,得到 x=2+y1,f1(y)=2+y1. 任意 y1 都得到一个 x2,回代后恰为 y,因此这既证明有输入,又证明输入唯一。输出 10 对应输入 5,检验为 (52)2+1=10

下图左侧画出一段抛物线:高度 10 同时对应 −1 与 5。保留金色的 x≥2 分支以后,只剩一个输入。右图将这条分支与反函数画在同一坐标系中,点 (5,10) 交换横纵坐标成为 (10,5),两条曲线关于虚线 y=x 对称。

左图抛物线同一高度对应负一和五,金色保留输入大于等于二的分支;右图函数与反函数关于直线y等于x对称
限制输入范围解决反求不唯一;反函数将输入与输出的位置交换。

如果允许全部实数输入,−1 也会输出 10,反求就不唯一。反函数的分支取自输入范围;记号中的 −1 表示反向对应,并不表示数值倒数 1/f(y)

反求一个范围:像与原像

回到定义在全体实数上的平方函数。若输入位于 [1,2],可能得到哪些输出?最小平方为 0,最大为 4,中间的值也都能达到,所以 f([1,2])=[0,4]. 这是求一个输入集合的

反过来,若知道输出在 [1,4],就要找所有满足 1x24 的输入。它们为 f1([1,4])=[2,1][1,2]. 这是求输出集合的原像。尽管平方函数在全部实数上没有反函数,仍可以求任何输出集合的原像。此处 f1(S) 的 S 是集合,表示把满足输出条件的所有输入收集起来。

原像与交集有很直接的关系。输入 x 的输出同时落入 S 和 T,等价于 x 既在 S 的原像中,也在 T 的原像中。因此 f1(ST)=f1(S)f1(T). 对并集作同样的逐元素判断,也有对应等式。

像与交集却可能不满足等式。平方函数把 {1}{1} 都映成 {1},两个像有共同元素;两个输入集合本身不相交,其交集的像为空。原因正是函数把不同输入合并成了同一个输出。增加单射条件后,这种合并被排除,像才保持交集。

从表达式到一般对应

十七至十八世纪的函数语言与曲线、微积分研究紧密相连。Johann Bernoulli 在 1694 年与 Leibniz 的通信中,讨论由变量与常量构成的量;Euler 在 1748 年《无穷分析引论》中系统研究以表达式给出的函数。MacTutor:The function concept

后来,级数与振动问题推动数学家考虑分段或不规则的函数。集合语言把函数进一步表述为具有唯一输出的对应,使同一概念既适用于平滑曲线,也适用于有限表格、离散对象和空间中的运动。公式和图像仍是描述函数的重要方式,定义域及对应关系则说明这些表示究竟描述了什么。

参考资料