量化交易中文教材

第 01 章 函数、极限与连续

导数、积分、级数、概率极限定理,全都建立在「极限」上。你在 CFA 里用过很多极限的结果,比如连续复利 \(e^{rT}\)、大样本下 \(t\) 分布接近正态。本章讲清这些结果背后的语言。读完后不要求会做证明题,但看到「当 \(n\to\infty\) 时 \(\hat\theta_n\to\theta\)」或「\(f\) 在 \(x_0\) 处连续」,要能准确说出它断言了什么、没断言什么。

学习目标

  • 能从图像读出函数的单调、凸凹、渐近行为,熟悉指数、对数、幂函数的性质。
  • 能用白话翻译 \(\varepsilon\)-\(N\) 和 \(\varepsilon\)-\(\delta\) 定义,掌握极限运算、夹逼定理和重要极限。
  • 理解连续性,知道介值定理、最值定理在求收益率和优化中的用途。
  • 分清最大值与上确界。
  • 会比较无穷小的「阶」,为第 07 章的大 \(O\)、小 \(o\) 记号打基础。

1. 函数:把一个量映射成另一个量

1.1 从债券价格说起

一只 5 年期、年息 5%、面值 100 的债券,价格取决于到期收益率 \(y\):

\[ P(y)=\sum_{t=1}^{5}\frac{5}{(1+y)^t}+\frac{100}{(1+y)^5}. \]

给定一个 \(y\),就能算出唯一一个 \(P\)。例如 \(y=6\%\) 时 \(P=95.79\);\(y=5\%\) 时 \(P=100\)。这就是函数:每个输入对应唯一一个输出。

1.2 定义

定义(函数):设 \(D\) 是一个实数集合。如果对 \(D\) 中每一个 \(x\),按某个规则 \(f\) 都有唯一确定的实数 \(y\) 与之对应,就说 \(f\) 是定义在 \(D\) 上的函数,记作 \(y=f(x)\)。\(D\) 叫定义域,所有 \(f(x)\) 组成的集合叫值域。

白话:函数就是一台机器,放进去一个数,吐出来一个数,而且同一个输入每次吐出同一个结果。

两点要注意。第一,定义域是函数的一部分:\(\ln x\) 只对 \(x>0\) 有定义,所以对数收益 \(\ln(P_t/P_{t-1})\) 要求价格为正,2020 年 4 月 WTI 期货出现负价格时,很多系统算对数收益直接报错。第二,函数不一定有公式:「某只股票第 \(t\) 天的收盘价」也是函数,只是没有解析式。

1.3 从图像读函数

看函数图像时关注四件事:

  • 单调性:\(x\) 增大时 \(f(x)\) 是否一直增大(递增)或一直减小(递减)。债券价格 \(P(y)\) 关于 \(y\) 递减。
  • 凸凹性:图像向上弯还是向下弯。\(P(y)\) 是向上弯的(凸函数),这就是债券的「正凸性」,第 02 章会精确定义。
  • 截距与零点:\(f(x)=0\) 的点叫零点。求内部收益率(IRR)就是求净现值函数 \(\text{NPV}(r)\) 的零点。
  • 渐近行为:\(x\) 很大或很小时函数趋于什么。\(y\to\infty\) 时 \(P(y)\to 0\):利率无穷大时,未来现金流一文不值。

严格定义(单调):若对定义域内任意 \(x_1<x_2\) 都有 \(f(x_1)<f(x_2)\),称 \(f\) 严格递增。例如 \(x^2\) 在整个实数轴上不单调,但在 \([0,\infty)\) 上严格递增。

1.4 复合函数与反函数

复合函数:先算 \(g(x)\),再把结果放进 \(f\),得到 \(f(g(x))\),记作 \((f\circ g)(x)\)。

第 02 章的链式法则就是复合函数的求导规则。数值例子:\(g(x)=1+x\),\(f(u)=\ln u\),则 \(f(g(x))=\ln(1+x)\)。\(x=0.05\) 时 \(g=1.05\),\(f(g)=\ln 1.05=0.04879\)。这正是 5% 简单收益对应的对数收益。

反函数:如果 \(f\) 严格单调,那么每个 \(y\) 也只对应一个 \(x\),可以反过来定义 \(x=f^{-1}(y)\)。

价格是收益率的严格递减函数,所以给定价格能唯一反解出到期收益率。\(e^x\) 和 \(\ln x\) 互为反函数:\(\ln(e^{0.05})=0.05\)。


2. 常见函数

2.1 多项式

\[ p(x)=a_0+a_1x+a_2x^2+\cdots+a_nx^n,\quad a_n\neq 0. \]

金融例子:两资产组合方差是权重 \(w\) 的二次多项式:

\[ \sigma_p^2(w)=w^2\sigma_A^2+(1-w)^2\sigma_B^2+2w(1-w)\rho\sigma_A\sigma_B. \]

取 \(\sigma_A=0.20\),\(\sigma_B=0.10\),\(\rho=0.3\),\(w=0.5\):\(\sigma_p^2=0.25\times0.04+0.25\times0.01+2\times0.25\times0.006=0.0155\),\(\sigma_p=12.45\%\)。

多项式处处光滑,只需加法和乘法。泰勒展开(第 02 章)的核心就是用多项式近似复杂函数。

2.2 指数函数

\[ f(x)=a^x,\quad a>0,\ a\neq 1. \]

最重要的底数是 \(e\approx 2.718281828\)。\(e^x\) 也写作 \(\exp(x)\)。

关键性质:\(a^{x+y}=a^x a^y\)(加法变乘法),\(a^{-x}=1/a^x\),\(a^x>0\) 恒成立。

金融例子:本金 100 以连续复利 5% 增长 2 年,终值 \(100e^{0.1}=110.517\)。分两段算也一样:\(100e^{0.05}e^{0.05}=110.517\)。两段的增长因子相乘,等于总时间的增长因子。

2.3 对数函数

\(\ln x\) 是 \(e^x\) 的反函数,定义域 \(x>0\)。\(\ln y = x \iff e^x=y\)。

关键性质,全部来自指数性质「加法变乘法」的反向:

  • \(\ln(ab)=\ln a+\ln b\):乘法变加法。
  • \(\ln(a/b)=\ln a-\ln b\)。
  • \(\ln(a^k)=k\ln a\)。
  • \(\ln 1=0\),\(\ln e=1\)。

金融例子:多期对数收益可以直接相加。三天价格 \(100\to105\to99.75\),对数收益分别是 \(\ln(105/100)=0.04879\) 和 \(\ln(99.75/105)=-0.05129\),和为 \(-0.00250\),正好等于 \(\ln(99.75/100)=-0.00250\)。依据是 \(\ln\frac{P_2}{P_0}=\ln\left(\frac{P_2}{P_1}\cdot\frac{P_1}{P_0}\right)=\ln\frac{P_2}{P_1}+\ln\frac{P_1}{P_0}\)。

换底公式:\(\log_a x=\ln x/\ln a\)。例如「翻倍需要多少年」:\(1.07^T=2\),\(T=\ln 2/\ln1.07=0.6931/0.06766=10.24\) 年。这就是「72 法则」的来源:\(\ln(1+r)\approx r\),所以 \(T\approx 0.693/r\),取 72 是因为它好整除且能补偿 \(\ln(1+r)<r\)。

2.4 幂函数

\[ f(x)=x^\alpha,\quad \alpha \text{ 是常数}. \]

注意与指数函数区分:幂函数的底是变量、指数固定;指数函数的指数是变量、底固定。

  • \(\alpha=2\):抛物线。
  • \(\alpha=1/2\):\(\sqrt{x}\),波动率随时间按 \(\sqrt{T}\) 放大。日波动率 1%,一年 252 个交易日,年化波动率 \(=1\%\times\sqrt{252}=15.87\%\)。
  • \(\alpha=-1\):\(1/x\)。

厚尾分布的「幂律」\(P(|R|>x)\approx Cx^{-\alpha}\) 也是幂函数,第 06 册讨论厚尾时会用到。

2.5 四类函数谁增长得快

\(x\to\infty\) 时,增长速度从慢到快排序:

\[ \ln x \ \ll\ x^\alpha\ (\alpha>0) \ \ll\ a^x\ (a>1). \]

任何正的幂最终超过对数,任何底大于 1 的指数最终超过任何幂。「最终」很重要,\(x\) 不大时可能相反:

import numpy as np

# 两个重要极限的数值验证:h 越小,比值越接近 1
for h in [0.1, 0.01, 0.001, 1e-5]:
    print(f"h={h:<7} sin(h)/h={np.sin(h)/h:.10f}  (e^h-1)/h={np.expm1(h)/h:.10f}")

# 增长速度比较:x^10 / e^x 最后趋于 0,ln(x) / x^0.1 最后也趋于 0
for x in [10, 50, 100, 200]:
    print(f"x={x:<4} x^10/e^x={x**10/np.exp(x):.3e}")
for x in [1e3, 1e10, 1e50, 1e100]:
    print(f"x={x:.0e} ln(x)/x^0.1={np.log(x)/x**0.1:.3e}")

输出:

h=0.1     sin(h)/h=0.9983341665  (e^h-1)/h=1.0517091808
h=0.01    sin(h)/h=0.9999833334  (e^h-1)/h=1.0050167084
h=0.001   sin(h)/h=0.9999998333  (e^h-1)/h=1.0005001667
h=1e-05   sin(h)/h=1.0000000000  (e^h-1)/h=1.0000050000
x=10   x^10/e^x=4.540e+05
x=50   x^10/e^x=1.884e-05
x=100  x^10/e^x=3.720e-24
x=200  x^10/e^x=1.417e-64
x=1e+03 ln(x)/x^0.1=3.462e+00
x=1e+10 ln(x)/x^0.1=2.303e+00
x=1e+50 ln(x)/x^0.1=1.151e-03
x=1e+100 ln(x)/x^0.1=2.303e-08

\(x=10\) 时 \(x^{10}\) 是 \(e^x\) 的 45 万倍,到 \(x=50\) 已被反超。\(\ln x\) 对 \(x^{0.1}\) 更慢,到 \(10^{50}\) 比值才明显变小。前半段输出在第 4.4 节解释。

这个排序在算法复杂度(第 09 册第 03 章)和尾部概率估计中反复出现。例如正态分布的尾部按 \(e^{-x^2/2}\) 衰减,比任何幂律 \(x^{-\alpha}\) 都快,所以正态模型会严重低估极端行情的概率。


3. 数列与数列极限

3.1 从复利次数说起

年利率 5%,一年复利 \(n\) 次,1 元变成 \(a_n=(1+0.05/n)^n\) 元。\(n\) 越大结果越大,但增幅越来越小,似乎在逼近某个数。按顺序排好的一串数 \(\{a_n\}\) 叫数列,这种「逼近」就是极限。

3.2 极限的直观含义

\(\lim_{n\to\infty}a_n=L\) 的意思是:只要 \(n\) 足够大,\(a_n\) 就能和 \(L\) 要多接近有多接近,并且之后一直保持这么近。

「要多接近有多接近」指误差要求 0.01、\(10^{-10}\) 都能做到;「之后一直保持」指从某项起所有项都在 \(L\) 附近,不是偶尔碰到。

3.3 \(\varepsilon\)-\(N\) 定义

定义(数列极限):\(\lim_{n\to\infty}a_n=L\),当且仅当对任意 \(\varepsilon>0\),存在正整数 \(N\),使得当 \(n>N\) 时,\(|a_n-L|<\varepsilon\)。

用逻辑符号写:

\[ \forall\varepsilon>0,\ \exists N,\ \forall n>N:\ |a_n-L|<\varepsilon. \]

白话读法:把它想成一场挑战游戏。

  1. 对手先出题:给你一个误差容忍度 \(\varepsilon\),比如 0.001。
  2. 你来应战:找一个门槛 \(N\)。
  3. 你赢的条件:所有第 \(N\) 项之后的 \(a_n\),与 \(L\) 的距离都小于 \(\varepsilon\)。

如果不管对手出多小的 \(\varepsilon\),你都能赢,那么 \(L\) 就是极限。\(N\) 可以依赖于 \(\varepsilon\):对手要求越严,你的门槛一般越靠后。

这和风控里的「容忍度」很像:风控说「跟踪误差必须小于 \(\varepsilon\)」,你回答「建仓 \(N\) 天之后一定满足」。极限说的是:无论风控把标准定多严,你都能给出这样一个天数。

例:证明 \(a_n=1+1/n\to 1\)。

  • 第 1 步,写出要满足的不等式:\(|a_n-1|=1/n<\varepsilon\)。
  • 第 2 步,反解出 \(n\) 的条件:\(1/n<\varepsilon \iff n>1/\varepsilon\)。
  • 第 3 步,取门槛:令 \(N=\lfloor 1/\varepsilon\rfloor+1\),其中 \(\lfloor\cdot\rfloor\) 表示向下取整。那么 \(n>N\) 时一定有 \(n>1/\varepsilon\),从而 \(|a_n-1|<\varepsilon\)。

具体数值:\(\varepsilon=0.01\) 时 \(N=101\),\(a_{101}=1.0099\),确实与 1 相差不到 0.01。

import numpy as np

# ε-N:a_n = 1 + 1/n 收敛到 1,给定 ε 找最小的 N
for eps in [0.1, 0.01, 0.001]:
    N = int(np.floor(1 / eps)) + 1          # 只要 n > 1/ε 就有 |a_n - 1| = 1/n < ε
    print(f"eps={eps:<6} N={N:<5} a_N={1 + 1/N:.6f}  |a_N-1|={1/N:.6f}")

# 复利次数 n 增加时 (1 + r/n)^n 的变化,r = 5%
r = 0.05
for n in [1, 2, 4, 12, 365, 10_000]:
    print(f"n={n:<6} (1+r/n)^n = {(1 + r/n)**n:.8f}")
print(f"e^r        = {np.exp(r):.8f}")

输出:

eps=0.1    N=11    a_N=1.090909  |a_N-1|=0.090909
eps=0.01   N=101   a_N=1.009901  |a_N-1|=0.009901
eps=0.001  N=1001  a_N=1.000999  |a_N-1|=0.000999
n=1      (1+r/n)^n = 1.05000000
n=2      (1+r/n)^n = 1.05062500
n=4      (1+r/n)^n = 1.05094534
n=12     (1+r/n)^n = 1.05116190
n=365    (1+r/n)^n = 1.05126750
n=10000  (1+r/n)^n = 1.05127096
e^r        = 1.05127110

复利序列从年复利的 1.05 增加到日复利的 1.0512675,再到一万次的 1.0512710,一步步逼近 \(e^{0.05}=1.0512711\)。\((1+r/n)^n\to e^r\) 的证明放在第 04 章,那里用对数和泰勒展开处理。

3.4 读定义时常见的误解

  • \(a_n\) 可能永远不等于 \(L\),如 \(1+1/n\) 永远大于 1。
  • 「越来越近」不等于有极限:\(1/n\) 离 \(-1\) 越来越近,但极限是 0。必须「要多近有多近」。
  • \(\varepsilon\) 是任意的。只验证 \(\varepsilon=0.01\) 不构成证明。

3.5 发散

没有极限的数列叫发散,例如 \(a_n=n\to\infty\)(\(\infty\) 不是实数,不算收敛)和来回振荡的 \((-1)^n\)。日收益率序列本身也不收敛,但它的样本均值在一定条件下收敛,这是大数定律(第 02 册第 08 章)。

3.6 极限的运算法则

若 \(a_n\to A\),\(b_n\to B\),则:

\(a_n\pm b_n\to A\pm B\),\(a_nb_n\to AB\),\(ca_n\to cA\);当 \(B\neq0\) 时 \(a_n/b_n\to A/B\)。函数极限的运算法则与此相同。

数值例子:\(a_n=2+1/n\to2\),\(b_n=3-1/n^2\to3\),则 \(a_nb_n\to6\)。\(n=100\) 时 \(a_nb_n=2.01\times2.9999=6.0298\),已经很接近 6。

用不了的情况:分母极限为零。\(a_n=1/n\),\(b_n=1/n^2\) 都趋于 0,\(a_n/b_n=n\to\infty\);换成 \(b_n=2/n\),比值是 \(1/2\)。这类「\(0/0\) 型未定式」的结果取决于相对速度,第 02 章用洛必达法则处理。

3.7 夹逼定理

定理(夹逼):若从某项起 \(b_n\le a_n\le c_n\),且 \(b_n\to L\),\(c_n\to L\),则 \(a_n\to L\)。

直观:\(a_n\) 被两条「墙」夹住,两堵墙往同一点合拢,\(a_n\) 无处可逃。

例:\(a_n=\dfrac{\sin n}{n}\)。因为 \(-1\le\sin n\le1\),所以 \(-\dfrac1n\le a_n\le\dfrac1n\)。两边都趋于 0,故 \(a_n\to0\)。\(n=1000\) 时 \(|a_n|\le0.001\)。

估计量的误差常常算不准,但能被一个趋于 0 的上界控制住,这就是夹逼思想的用法。

3.8 单调有界数列必收敛

定理:单调递增且有上界的数列一定收敛;单调递减且有下界的数列也一定收敛。

\((1+1/n)^n\) 是单调递增的(第 3.3 节的输出也能看出来),并且可以证明它小于 3,所以它有极限,这个极限就定义为 \(e\)。定理只保证极限存在,不告诉你是多少。它依赖实数的完备性,见第 6 节。


4. 函数极限

4.1 从数列到函数

数列只能 \(n\to\infty\);函数的自变量是连续变化的,可以趋于任何一点 \(x_0\),也可以趋于 \(\pm\infty\)。

例:期权价格 \(C\) 在到期时间 \(T\to0^+\) 时趋于内在价值 \(\max(S-K,0)\)。

4.2 \(\varepsilon\)-\(\delta\) 定义

定义(函数极限):\(\lim_{x\to x_0}f(x)=L\),当且仅当对任意 \(\varepsilon>0\),存在 \(\delta>0\),使得当 \(0<|x-x_0|<\delta\) 时,\(|f(x)-L|<\varepsilon\)。

白话读法:还是挑战游戏,只是把门槛 \(N\) 换成了「邻域半径」\(\delta\)。

  1. 对手给出输出端的容忍度 \(\varepsilon\):要求 \(f(x)\) 与 \(L\) 的差小于 \(\varepsilon\)。
  2. 你给出输入端的半径 \(\delta\):只要 \(x\) 离 \(x_0\) 不超过 \(\delta\)(但不等于 \(x_0\)),就满足对手的要求。

一句话:输出想要多准,输入就收得多紧。

有两处细节要读准:

  • \(0<|x-x_0|\):\(x\) 不能等于 \(x_0\)。极限只关心 \(x_0\) 附近的行为,不关心 \(x_0\) 处的值,甚至 \(f\) 在 \(x_0\) 处可以没有定义。
  • \(\delta\) 依赖于 \(\varepsilon\):对手要求越严,你给的范围越窄。

例:证明 \(\lim_{x\to 2}(3x+1)=7\)。

  • 第 1 步:\(|f(x)-7|=|3x+1-7|=3|x-2|\)。
  • 第 2 步:要让 \(3|x-2|<\varepsilon\),只需 \(|x-2|<\varepsilon/3\)。
  • 第 3 步:取 \(\delta=\varepsilon/3\)。

数值:要求 \(\varepsilon=0.03\),取 \(\delta=0.01\)。\(x=2.009\) 时 \(f(x)=7.027\),误差 \(0.027<0.03\)。

4.3 单侧极限与无穷远处的极限

右极限 \(\lim_{x\to x_0^+}f(x)\) 只让 \(x\) 从右边靠近,左极限 \(\lim_{x\to x_0^-}f(x)\) 只从左边靠近。双侧极限存在当且仅当左右极限存在且相等。

例:阶梯佣金,交易额 \(x<10\) 万元时佣金率 0.3%,\(x\ge 10\) 万元时 0.2%。在 \(x=10\) 处左极限 0.3%、右极限 0.2%,极限不存在。

无穷远处的极限 \(\lim_{x\to\infty}f(x)=L\):对任意 \(\varepsilon>0\),存在 \(M\),当 \(x>M\) 时 \(|f(x)-L|<\varepsilon\)。它和数列极限几乎一样。例:\(\lim_{y\to\infty}P(y)=0\)(收益率无穷大时债券价格为零);\(\lim_{x\to-\infty}\Phi(x)=0\),\(\lim_{x\to\infty}\Phi(x)=1\),其中 \(\Phi\) 是标准正态分布函数。

4.4 两个重要极限

\[ \lim_{x\to0}\frac{\sin x}{x}=1,\qquad \lim_{x\to0}\frac{e^x-1}{x}=1. \]

第一个在金融中用得少,常出现在傅里叶方法(第 09 册第 30 章)里。第二个非常重要:它说的是 \(x\) 很小时 \(e^x-1\approx x\)。连续复利率 \(r\) 很小时,等价的年简单收益 \(e^r-1\) 约等于 \(r\)。

第 2.5 节的输出中,\(h=0.01\) 时 \((e^h-1)/h=1.00502\),偏差约为 \(h/2\)。这个 \(h/2\) 恰好是泰勒展开 \(e^h=1+h+h^2/2+\cdots\) 的下一项,第 02 章会解释。

与之等价的形式是 \(\lim_{x\to0}\dfrac{\ln(1+x)}{x}=1\),也就是 \(\ln(1+x)\approx x\):日收益很小时,对数收益和简单收益几乎一样。

另一个必须记住的极限:

\[ \lim_{n\to\infty}\left(1+\frac{r}{n}\right)^n=e^r. \]

它把离散复利和连续复利连起来。第 3.3 节已经数值验证过,第 04 章给出证明。


5. 连续性

5.1 直观

连续就是「图像能一笔画出来,不用提笔」。更精确地说:输入的微小变化只引起输出的微小变化。

几乎所有数值方法都默认连续:二分法求 IRR 要求 NPV 关于折现率连续,Delta 对冲要求期权价格关于标的价格连续。数字期权的到期收益在行权价处跳跃,临近到期时 Delta 爆炸、很难对冲,这就是不连续的代价。

5.2 定义

定义(连续):\(f\) 在点 \(x_0\) 连续,是指三件事同时成立:

  1. \(f(x_0)\) 有定义;
  2. \(\lim_{x\to x_0}f(x)\) 存在;
  3. 两者相等:\(\lim_{x\to x_0}f(x)=f(x_0)\)。

用 \(\varepsilon\)-\(\delta\) 写:对任意 \(\varepsilon>0\),存在 \(\delta>0\),使得 \(|x-x_0|<\delta\) 时 \(|f(x)-f(x_0)|<\varepsilon\)。与极限定义相比,这里去掉了 \(0<|x-x_0|\) 中的「\(0<\)」,并把 \(L\) 换成了 \(f(x_0)\)。

如果 \(f\) 在区间内每一点都连续,就说 \(f\) 在这个区间上连续。

白话:在 \(x_0\) 处「取极限」和「直接代入」结果一样。所以对连续函数求极限,直接代入就行。

5.3 间断的三种类型

类型 特征 例子
可去间断 极限存在,但 \(f(x_0)\) 没定义或不等于极限 \(f(x)=\dfrac{e^x-1}{x}\) 在 \(x=0\) 无定义,但极限为 1
跳跃间断 左右极限都存在但不等 阶梯佣金率;数字期权到期收益
无穷间断 至少一侧趋于 \(\pm\infty\) \(f(x)=1/x\) 在 \(x=0\)

可去间断可以「补上」:令 \(f(0)=1\) 即连续。编程时 \((e^{rT}-1)/(rT)\) 在 \(r=0\) 处要单独取极限值 1;numpy 的 expm1 专门用于精确计算小 \(x\) 的 \(e^x-1\)。

5.4 哪些函数是连续的

本章的初等函数在定义域内都连续,它们的和、差、积、商(分母非零)、复合也连续。所以债券价格 \(P(y)\)、组合方差 \(\sigma_p^2(w)\)、正态分布函数 \(\Phi(x)\) 都连续。

5.5 介值定理:IRR 为什么一定存在

定理(介值定理):若 \(f\) 在闭区间 \([a,b]\) 上连续,且 \(f(a)\) 与 \(f(b)\) 异号,则存在 \(c\in(a,b)\) 使 \(f(c)=0\)。

直观:一笔画的曲线从水平线下方走到上方,中途一定穿过水平线。

金融应用:项目期初投入 100,之后三年每年流入 40。

\[ \text{NPV}(r)=-100+\frac{40}{1+r}+\frac{40}{(1+r)^2}+\frac{40}{(1+r)^3}. \]
  • \(r=0\):\(\text{NPV}=-100+120=20>0\)。
  • \(r=20\%\):\(\text{NPV}=-100+33.33+27.78+23.15=-15.74<0\)。

NPV 在 \([0,0.2]\) 上连续,两端异号,所以 IRR 一定在 0 到 20% 之间。实际 IRR 约为 9.70%。二分法就是反复利用介值定理:取中点,看符号,扔掉一半区间。

注意介值定理只保证存在,不保证唯一。现金流符号多次变化时,NPV 可能有多个零点,IRR 不唯一,这是 CFA 里讲过的「多重 IRR 问题」。

5.6 最值定理

定理(最值定理):闭区间 \([a,b]\) 上的连续函数一定能取到最大值和最小值。

「闭」和「连续」缺一不可:\(f(x)=x\) 在开区间 \((0,1)\) 上连续,却取不到最大值,因为 1 不在区间里。

金融应用:不允许卖空时 \(w\in[0,1]\),组合方差 \(\sigma_p^2(w)\) 连续,所以最小方差组合一定存在。允许任意权重时区间不闭,要另外论证(开口向上的二次函数仍有最小值)。


6. 上确界与下确界

6.1 最大值不一定存在

集合 \(A=\{1-1/n:n=1,2,\dots\}=\{0,\ 0.5,\ 0.667,\ \dots\}\) 没有最大元素:任给 \(1-1/n\),下一个更大。但 1 是一个「天花板」,而且比 1 小的数都不再是天花板。这个「最紧的天花板」就是上确界。

6.2 定义

定义(上界、上确界):

  • 若对集合 \(A\) 中所有 \(a\) 都有 \(a\le M\),称 \(M\) 是 \(A\) 的一个上界。
  • 最小的上界叫上确界,记作 \(\sup A\)(supremum)。

等价的两条刻画(判断 \(s=\sup A\) 时就验证这两条):

  1. \(s\) 是上界:\(\forall a\in A\),\(a\le s\)。
  2. 比 \(s\) 小一点就不再是上界:\(\forall\varepsilon>0\),\(\exists a\in A\),\(a>s-\varepsilon\)。

下确界 \(\inf A\)(infimum)是最大的下界,定义对称。

确界原理:实数集中,任何非空、有上界的集合都有上确界。这是实数「没有空洞」的体现。第 3.8 节「单调有界必收敛」就是从这条原理推出来的。

例:验证 \(\sup A=1\)。

  • 第 1 条:\(1-1/n<1\) 对所有 \(n\) 成立。
  • 第 2 条:任给 \(\varepsilon>0\),取 \(n>1/\varepsilon\),则 \(1-1/n>1-\varepsilon\)。

具体数值:\(\varepsilon=0.001\),取 \(n=1001\),\(1-1/1001=0.999001>0.999\)。

6.3 和最大值的关系

最大值存在时就等于上确界;上确界总存在(对有上界的非空集合),但可能不属于集合,此时没有最大值。

import numpy as np

# 上确界与最大值的区别:a_n = 1 - 1/n 的上确界是 1,但没有哪一项等于 1
n = np.arange(1, 1_000_001)
a = 1 - 1 / n
print("max of first 10^6 terms:", a.max(), " sup = 1, attained?", np.any(a == 1))

# 用模拟价格路径计算最大回撤:running max 就是“到目前为止的上确界”
rng = np.random.default_rng(0)
ret = rng.normal(0.0004, 0.01, 250)
price = 100 * np.cumprod(1 + ret)
peak = np.maximum.accumulate(price)
dd = price / peak - 1
print(f"final price={price[-1]:.2f}  max price={price.max():.2f}  max drawdown={dd.min():.2%}")

输出:

max of first 10^6 terms: 0.999999  sup = 1, attained? False
final price=107.49  max price=118.15  max drawdown=-12.79%

有限集合一定有最大值,所以前一百万项的最大值是 0.999999;整个无穷集合的上确界 1 取不到。

6.4 在金融与统计中的出现

  • 最大回撤:\(\text{MDD}=\sup_{0\le s\le t\le T}\dfrac{P_s-P_t}{P_s}\)。离散数据下 sup 就是 max。
  • Kolmogorov–Smirnov 统计量:\(D_n=\sup_x|F_n(x)-F(x)|\),衡量经验分布与理论分布的最大偏离(第 03 册第 07 章)。
  • 范数:矩阵的算子范数 \(\|A\|=\sup_{\|x\|=1}\|Ax\|\)(第 01 册第 05b 章)。

7. 无穷小与无穷大

7.1 定义

  • 若 \(\lim f(x)=0\),称 \(f(x)\) 是该极限过程中的无穷小。
  • 若 \(\lim |f(x)|=\infty\),称 \(f(x)\) 是无穷大。

无穷小不是「很小的数」,而是「趋于 0 的变量」:0.000001 不是无穷小,\(1/n\)(\(n\to\infty\))才是。还要说明极限过程:\(x^2\) 在 \(x\to0\) 时是无穷小,在 \(x\to\infty\) 时是无穷大。

7.2 无穷小的比较

两个无穷小趋于 0 的速度可以不一样。设 \(x\to0\) 时 \(\alpha(x)\to0\),\(\beta(x)\to0\):

关系 条件 记号 例子(\(x\to0\))
\(\alpha\) 是 \(\beta\) 的高阶无穷小 \(\alpha/\beta\to0\) \(\alpha=o(\beta)\) \(x^2=o(x)\)
同阶 \(\alpha/\beta\to c\neq0\) \(\alpha=O(\beta)\) \(2x\) 与 \(x\)
等价 \(\alpha/\beta\to1\) \(\alpha\sim\beta\) \(\ln(1+x)\sim x\),\(e^x-1\sim x\)

数值:\(x=0.01\) 时 \(x^2\) 是 \(x\) 的 1%,\(x=0.001\) 时只是 0.1%。\(x\) 越小,\(x^2\) 越可忽略,这就是「高阶」。

7.3 为什么金融里到处都是「忽略高阶项」

日收益 \(r\) 的量级约为 1%。\(r^2\) 约为 0.01%,\(r^3\) 约为 0.0001%。在很多推导中,保留 \(r\)、忽略 \(r^2\) 就够了;需要更精确时保留到 \(r^2\)。

  • 久期近似忽略 \((\Delta y)^2\) 项,凸性调整再把它补回来(第 02 章)。
  • 伊藤引理中 \((dW)^2\) 与 \(dt\) 同阶,不能忽略;\(dt\,dW\) 和 \((dt)^2\) 是高阶小量,可以忽略(第 08 册第 14 章)。
  • 估计误差 \(\hat\theta-\theta=O_p(1/\sqrt n)\):样本量翻 4 倍,误差减半(第 07 章)。

7.4 等价无穷小替换

在乘除运算中,可以把无穷小换成等价的更简单形式,极限不变。

例:\(\lim_{x\to0}\dfrac{\ln(1+3x)}{e^{2x}-1}\)。

  • 第 1 步:\(x\to0\) 时 \(3x\to0\),所以 \(\ln(1+3x)\sim3x\)。
  • 第 2 步:\(2x\to0\),所以 \(e^{2x}-1\sim2x\)。
  • 第 3 步:原式 \(=\lim\dfrac{3x}{2x}=\dfrac32\)。

数值核对:\(x=0.001\) 时,\(\ln1.003/(e^{0.002}-1)=0.0029955/0.0020020=1.4963\),接近 1.5。

警告:加减运算中不能随便替换。\(\lim_{x\to0}\dfrac{e^x-1-x}{x^2}\) 若把 \(e^x-1\) 换成 \(x\),会错得 0;正确答案是 \(1/2\)(第 02 章),因为替换丢掉的正是与 \(x^2\) 同阶的部分。

7.5 无穷大的比较

\(x\to\infty\) 时,第 2.5 节的排序可以写成:

\[ \lim_{x\to\infty}\frac{\ln x}{x^\alpha}=0\ (\alpha>0),\qquad \lim_{x\to\infty}\frac{x^k}{a^x}=0\ (a>1). \]

数列还要加上阶乘:\(a^n\ll n!\)。例如 \(10^{30}/30!\approx3.8\times10^{-3}\)。第 02 章泰勒余项 \(x^{n+1}/(n+1)!\) 最终趋于 0,正是因为阶乘增长快于指数。


本章小结

概念 公式或定义 白话
指数与对数 \(e^{a+b}=e^ae^b\),\(\ln(ab)=\ln a+\ln b\) 增长因子可连乘,对数收益可相加
数列极限 \(\forall\varepsilon>0,\exists N,\forall n>N:\lvert a_n-L\rvert<\varepsilon\) 给定任意精度,从某项起一直满足
函数极限 \(\forall\varepsilon>0,\exists\delta>0:0<\lvert x-x_0\rvert<\delta\Rightarrow\lvert f(x)-L\rvert<\varepsilon\) 输出要多准,输入就收多紧
连续 \(\lim_{x\to x_0}f(x)=f(x_0)\) 取极限等于直接代入
重要极限 \(\dfrac{\sin x}{x}\to1\),\(\dfrac{e^x-1}{x}\to1\),\(\dfrac{\ln(1+x)}{x}\to1\) 小 \(x\) 时 \(e^x-1\approx x\),\(\ln(1+x)\approx x\)
复利极限 \((1+r/n)^n\to e^r\) 离散复利的极限是连续复利
介值定理 \([a,b]\) 上连续且 \(f(a)f(b)<0\Rightarrow\exists c:f(c)=0\) IRR 存在性、二分法
最值定理 闭区间上连续函数取得最大、最小值 优化问题解的存在性
上确界 最小上界;\(\forall\varepsilon,\exists a>s-\varepsilon\) 最紧的天花板,未必取到
高阶无穷小 \(\alpha/\beta\to0\),记 \(\alpha=o(\beta)\) 比另一个更快趋于 0
增长排序 \(\ln x\ll x^\alpha\ll a^x\);\(a^n\ll n!\) 对数最慢,指数最快,阶乘更快

练习

1. 一只股票连续三天收盘价为 50、52、49.4。分别计算两天的简单收益和对数收益,并验证两天对数收益之和等于 \(\ln(49.4/50)\)。

答:简单收益 \(52/50-1=4\%\),\(49.4/52-1=-5\%\)。对数收益 \(\ln1.04=0.03922\),\(\ln0.95=-0.05129\),和 \(=-0.01207\)。\(\ln(49.4/50)=\ln0.988=-0.01207\),相等。

2. 用 72 法则和精确公式分别计算年利率 9% 时资金翻倍所需年数。

答:72 法则 \(72/9=8\) 年。精确 \(\ln2/\ln1.09=0.6931/0.08618=8.04\) 年。

3. 对数列 \(a_n=\dfrac{2n+1}{n}\),求极限 \(L\),并对 \(\varepsilon=0.002\) 给出一个满足要求的 \(N\)。

答:\(a_n=2+1/n\to2\)。\(|a_n-2|=1/n<0.002\iff n>500\),取 \(N=500\)(定义要求 \(n>N\))。

4. 判断下列说法是否正确:「若 \(a_n>0\) 对所有 \(n\) 成立,且 \(a_n\to L\),则 \(L>0\)。」

答:错误。反例 \(a_n=1/n>0\),但 \(L=0\)。正确的结论是 \(L\ge0\):严格不等式取极限后可能变成等号。

5. 求 \(\lim_{x\to0}\dfrac{e^{0.5x}-1}{\ln(1+4x)}\),并用 \(x=0.001\) 做数值核对。

答:等价替换 \(e^{0.5x}-1\sim0.5x\),\(\ln(1+4x)\sim4x\),极限为 \(0.5/4=0.125\)。数值:\(e^{0.0005}-1=0.00050013\),\(\ln1.004=0.0039920\),比值 \(0.12528\)。

6. 函数 \(f(x)=\dfrac{x^2-4}{x-2}\) 在 \(x=2\) 处是什么类型的间断?如何补充定义使其连续?

答:\(x\neq2\) 时 \(f(x)=x+2\),\(\lim_{x\to2}f(x)=4\),但 \(f(2)\) 无定义,是可去间断。补充定义 \(f(2)=4\) 即连续。

7. 项目期初投入 1000,第 1 年末流入 600,第 2 年末流入 600。用介值定理说明 IRR 在 0 与 15% 之间,再用二分法缩小一次区间。

答:\(\text{NPV}(0)=200>0\);\(\text{NPV}(0.15)=-1000+521.74+453.69=-24.57<0\)。NPV 连续,故 IRR 在 \((0,0.15)\) 内。取中点 7.5%:\(\text{NPV}=-1000+558.14+519.20=77.34>0\),IRR 在 \((7.5\%,15\%)\) 内。(精确 IRR 约 13.07%。)

8. 求集合 \(B=\{(-1)^n/n:n=1,2,\dots\}\) 的上确界、下确界,并判断它们是否属于 \(B\)。

答:元素依次为 \(-1,\ 1/2,\ -1/3,\ 1/4,\dots\)。最大元素是 \(1/2\),所以 \(\sup B=1/2\in B\)。最小元素是 \(-1\),\(\inf B=-1\in B\)。本例中确界都能取到,是最大值和最小值。

9. 解释为什么不能用等价替换 \(\ln(1+x)\sim x\) 来计算 \(\lim_{x\to0}\dfrac{x-\ln(1+x)}{x^2}\),并用 \(x=0.01\) 估计这个极限。

答:分子是两个等价无穷小相减,直接替换得 0,丢掉了与 \(x^2\) 同阶的部分。数值:\(x=0.01\) 时 \(x-\ln1.01=0.01-0.00995033=4.967\times10^{-5}\),除以 \(10^{-4}\) 得 \(0.4967\),极限是 \(1/2\)(第 02 章用泰勒展开证明)。


在全书中用到的地方

  • 第 02 册第 05 章「连续型随机变量」:分布函数的连续性与 \(\pm\infty\) 处的极限。
  • 第 02 册第 08 章「极限定理」:大数定律、中心极限定理,直接套用 \(\varepsilon\)-\(N\) 读法。
  • 第 03 册第 07 章「经验分布函数与统计泛函」:\(\sup_x|F_n(x)-F(x)|\)。
  • 第 01 册附录 A「凸性与连续性等背景」、第 05b 章「矩阵范数」:最值定理、用 \(\sup\) 定义的范数。
  • 第 08 册第 04 章「利率」:连续复利。
  • 第 08 册第 14 章「维纳过程与伊藤引理」:高阶无穷小的取舍。
  • 第 09 册第 03 章「函数的增长与渐近记号」:增长排序。
  • 第 04 册第 02 章「无约束优化基础」:最值存在性。