闭区间[*a*,*b*]上的连续函数*ƒ*(*x*)，其最大值为红色点，最小值为蓝色点。
在微积分中，**极值定理**说明如果实函数*f*在闭区间[*a*,*b*]上是连续函数，则它一定取得最大值和最小值，至少一次。也就是说，存在[*a*,*b*]内的*c*和*d*，使得：

f(c) \ge f(x) \ge f(d)对于所有x\in [a,b]。
一个相关的定理是**有界性定理**，它说明闭区间[*a*,*b*]内的连续函数*f*在该区间上有界。也就是说，存在实数*m*和*M*，使得：

m \le f(x) \le M对于所有x \in [a,b]。
极值定理强化了有界性定理，它表明函数不仅是有界的，而且它的最小上界就是最大值，最大下界就是最小值。

定理的证明
-----

我们来证明*f* 的上界和存在最大值。把这个结果应用于函数–*f*，也可推出*f* 的下界和存在最小值。

我们首先证明有界性定理，它是证明极值定理中的一个步骤。

### 有界性定理的证明

假设函数*f*在区间[*a*,*b*]内連續且没有上界，那么对于每一个自然数*n*，都存在[*a*,*b*]内的一个*x**n*，使得*f*(*x**n*) > *n*（仼定的，總之條件為真即可）。这便定义了一个序列{*x**n*}。

由于[*a*,*b*]是有界的，根据波尔查诺-魏尔施特拉斯定理，可推出存在{*x**n*}的一个收敛的子序列{\displaystyle \{x\_{n\_{k}}\}}。把它的极限记为*x*。由于[*a*,*b*]是闭区间，它一定含有*x*。因为*f*在*x*处连续，我们知道{\displaystyle \{f(x\_{n\_{k}})\}}收敛于实数*f*(*x*)。

但对于所有的*k*，都有{\displaystyle f(x\_{n\_{k}})>n\_{k}\geq k}，这意味着{\displaystyle \{f(x\_{n\_{k}})\}}发散于无穷大。

前者描述為收斂，後者描述為無窮大，得出矛盾。因此，*f*在[*a*,*b*]内有上界。同理*f*在[*a*,*b*]内有下界。证毕。

### 极值定理的证明1

基本步骤为：

1. 寻找一个序列，它的像收敛于*f* 的最小上界。
2. 证明存在一个子序列，它收敛于定义域内的一个点。
3. 用连续性来证明子序列的像收敛于最小上界。

我们现在证明函数*f* 在区间[*a*,*b*]内有最大值。根据有界性定理，*f* 有上界，因此，根据实数的戴德金完备性，*f* 的最小上界*M*存在。我们需要寻找[*a*,*b*]内的一个*d*，使得*M* = *f* (*d*)。设*n*为一个自然数。由于*M*是最小上界，*M* – 1/*n*就不是 *f* 的上界。因此，存在[*a*,*b*]内的*d**n*，使得*M* – 1/*n* < *f* (*d**n*)。这便定义了一个序列{*d**n*}。由于*M*是*f* 的一个上界，即便是对于所有的*n*，我们仍有*M* – 1/*n* < *f* (*d**n*) ≤ *M*。因此，序列{\displaystyle \{f(d\_{n})\}}收敛于*M*。

根据波尔查诺-魏尔施特拉斯定理，可知存在一个子序列{\displaystyle \{d\_{n\_{k}}\}}，它收敛于某个*d*，且由于[*a*,*b*]是闭区间，{\displaystyle d\in [a,b]}。因为*f* 在*d* 处连续，所以序列{\displaystyle \{f(d\_{n\_{k}})\}}收敛于*f* (*d*)。但{\displaystyle \{f(d\_{n\_{k}})\}}是{\displaystyle \{f(d\_{n})\}}的一个子序列，收敛于*M*，因此*M* = *f* (*d*)。所以，*f* 在*d* 处取得最小上界*M*。证毕。

### 极值定理的证明2

设*M*是*f* 在区间[*a*,*b*]上的最小上界，我们要证明存在{\displaystyle d\in [a,b]}使得{\displaystyle f(d)=M}。我们使用反证法：如若不然，对任意 {\displaystyle x\in [a,b]}，{\displaystyle f(x)\neq M}，所以，对任意的{\displaystyle x\in [a,b]}，{\displaystyle f(x)<M}。我们考虑正值的函数

{\displaystyle g(x)={\frac {1}{M-f(x)}}.}
因为分母不是零，这个函数是良定义的，并且是连续的。然而，由于*M*是*f* (*x*)的最小上界，所以存在 {\displaystyle x\in [a,b]}，使得*f* (*x*)可以无限地接近*M*，从而*g*(*x*)是无界的。这和有界性定理矛盾。证毕。

注: 上面构造函数*g*(*x*)来证明最大值能在某个*d*取到的方法也在代数基本定理的基于Liouville定理的证明中出现。

例子
--

以下的例子说明了为什么函数的定义域需要是闭的和有界的。

1. 定义在[0,∞)的函数*f*(*x*) = *x*没有上界。
2. 定义在[0,∞)的函数*f*(*x*) = *x*/(1 + *x*)有界，但不取得最小上界1。
3. 定义在(0,1]的函数*f*(*x*) = 1/*x*没有上界。
4. 定义在(0,1]的函数*f*(*x*) = 1 –*x*有界，但不取得最小上界1。

推广到半连续函数
--------

如果把*f*的连续性减弱为半连续，则有界性定理和极值定理的对应的一半仍然成立，且扩展的实数轴上的值–∞和+∞也可以允许为可能的值。更加精确地：

**定理：**如果函数*f* : [*a*,*b*] → [–∞,∞)是上半连续的，也就是说，对于[*a*,*b*]内的所有*x*，都有：

\limsup\_{y\to x} f(y)\le f(x)，
那么*f*有上界，且取得最小上界。

*证明：*如果对于[*a*,*b*]内的所有*x*，都有*f*(*x*) = –∞，那么最小上界也是–∞，于是定理成立。在任何其它情况下，只需把上面的证明稍加修改便可。在有界性定理的证明中，*f*在*x*处的半连续性只意味着子序列{\displaystyle \{f(x\_{n\_{k}})\}}的上极限有上界*f*(*x*) < ∞，但这已足以得到矛盾。在极值定理的证明中，*f*在*d*处的半连续性意味着子序列{\displaystyle \{f(d\_{n\_{k}})\}}的上极限有上界*f*(*d*)，但这已足以推出*f*(*d*) = *M*的结论。证毕。

把这个结果应用于−*f*，可得：

**定理：**如果函数*f* : [*a*,*b*] → (–∞,∞]是下半连续的，也就是说，对于[*a*,*b*]内的所有*x*，都有：

\liminf\_{y\to x} f(y)\ge f(x)
那么*f*有下界，且取得最大下界。

一个实函数是上半连续且下半连续的，当且仅当它是连续的。因此，从这两个定理就可以推出有界性定理和极值定理。

参考文献
----

1. ↑   (PDF).  [2022-10-16]. （原始内容存档 (PDF)于2022-10-16）.

* Parzynski, William R.. McGraw-Hill, Inc. 1982: 102-104.
* Michael Spivak.. Cambridge University Press. 2006.

外部链接
----

* cut-the-knot上极值定理的证明 （页面存档备份，存于）
*. PlanetMath.
*. PlanetMath.
* 埃里克·韦斯坦因.. MathWorld.