跳轉到

1942 年 Itô 積分:向左看齊的賭局#

探案代號 : 左顧右盼

一句話案情 : 布朗運動抖得太兇 , 傳統積分全數陣亡 , 少年偵探下令一律向左看齊 。

案件檔案

項目 內容
案發時間 1942 年 , 戰火中的日本 , 論文以德文發表
案發地點 東京帝國大學 , Itô Kiyosi 的博士研究
主角 Itô Kiyosi , 時年 27 歲 , 孤軍奮戰
核心證物 非預知被積分 , 左端點 Riemann 和 , Itô 等距
涉案人物 Wiener , Kolmogorov , Lévy , Doob , Stratonovich
案件狀態 已破案 , 隨機分析的起點
關聯案件 1923 年 Wiener 過程 , 1933 年公理化 , 1951 年 Itô 公式

案發現場#

案發現場是一條抖到無法描摹的曲線 。

Wiener 在 1923 年構造的布朗運動 \(W_t\) 處處連續卻處處不可微 , 變差無窮 , 傳統 Riemann–Stieltjes 積分直接斃命 。

物理學家想寫 \(\int H dW\) , 卻發現取左端點還是右端點 , 結果天差地別 。

若被積分函數偷看未來 , 賭局就不公平 , 期望值會憑空生出漂移 。

更糟的是 , 二次大戰切斷了日本與歐美的學術郵路 , Itô 幾乎收不到最新文獻 。

他手邊只有 Wiener 的論文 , Kolmogorov 的公理 , Lévy 的斷簡殘篇 。

現場留下一具屍體 : 路徑逐點積分之夢 , 死因是布朗運動的無窮變差 。

偵探 Itô 蹲下來檢查屍體 , 發現兇器正是未來資訊 , 解藥則是 filtration 。

他說 , 賭徒下注時只能看過去 , 積分也一樣 , 一律向左看齊 。

偵查過程#

偵探先界定賭桌規則 , 即 filtration \(F_t\) 與適應過程 。

被積分過程 \(H_t\) 必須非預知 , 也就是對每個時刻 \(t\) , \(H_t\) 為 \(F_t\) 可測 。

直覺是 , 下注金額只能依賴過去的牌面 , 不能偷看下一張牌 。

接著定義最簡單的賭注 , 即簡單過程 , 形如分段常數 。

設分割為 \(0 = t_0 < t_1 < \dots < t_n = T\) , 在區間上取值為 \(H_{t_i}\) 。

對簡單過程的積分 , 偵探下令取左端點 。

\[ I(H) = \sum_i H_{t_i}(W_{t_{i+1}} - W_{t_i}) \]

其中 \(H_{t_i}\) 為左端值 , \(W_{t_{i+1}} - W_{t_i}\) 為布朗增量 , 兩者相互獨立於過去 。

為何堅持左端點 , 偵探在筆記本上列出三條理由 。

第一 , 左端值 \(H_{t_i}\) 與未來增量獨立 , 期望相乘可分離 。

第二 , 增量均值為零 , 故積分均值為零 , 賭局公平 。

第三 , 右端點或中點會偷看未來 , 導致均值不再為零 , 公平性崩解 。

關鍵證據是 Itô 等距 , 它把隨機的平方期望化為確定的時間積分 。

\[ E[( \int_0^T H_t dW_t )^2] = E[ \int_0^T H_t^2 dt ] \]

其中 \(H\) 為適應平方可積過程 , \(W\) 為布朗運動 , 等號右端不再隨機 。

證明思路是交叉項消失 , 偵探展示如下 。

步驟 計算 理由
展開平方 \(E[(\sum_i H_{t_i}\Delta W_i)^2]\) 代入左端點定義
對角項 \(\sum_i E[H_{t_i}^2] \Delta t_i\) \(E[(\Delta W_i)^2] = \Delta t_i\)
交叉項 \(E[H_{t_i}H_{t_j}\Delta W_i\Delta W_j] = 0\) \(i \ne j\) 時條件期望為零
取極限 得到 \(E[\int H^2 dt]\) 等距保持完備化

有了等距 , 積分可從簡單過程完備化至一般適應過程 , 記為 \(\int H dW\) 。

完備後的積分保有兩大美德 , 零均值與鞅性 。

\[ E[ \int_0^T H_t dW_t ] = 0 \]
\[ M_t = \int_0^t H_s dW_s \text{為鞅} \]

其中 \(M_t\) 對 \(F_t\) 為鞅 , 未來期望等於現在 , 即 \(E[M_t \mid F_s] = M_s\) 。

偵探還預見了對手 , 二十多年後的 Stratonovich 積分 , 特整理對照表 。

特徵 Itô 積分 Stratonovich 積分
記號 \(\int H dW\) \(\int H \circ dW\)
取點 左端點 \(H_{t_i}\) 中點 \((H_{t_i}+H_{t_{i+1}})/2\)
均值 零均值 , 公平賭局 一般非零 , 含修正漂移
鞅性 是鞅 一般不是鞅
鏈鎖律 需二階修正 , 見 1951 年案 普通鏈鎖律成立
物理直覺 因果 , 適合金融與濾波 對稱 , 適合 Wong–Zakai 逼近
轉換關係 基準 \(H\circ dW = H dW + \frac{1}{2}d\langle H,W\rangle\)

一句話總結 , Itô 選因果 , Stratonovich 選對稱 , 兩者以二次協變差相連 。

結案報告#

真兇落網 : 傳統積分之死 , 肇因於無窮變差與未來偷窺 。

Itô 積分用非預知與左端點重建了公平賭局 , 讓 \(\int H dW\) 首次有了嚴格意義 。

本案遺產有四件 , 件件改變歷史 。

第一 , 鞅論得以大展身手 , Doob 將隨機積分納入鞅王國 , 金融數學從此有法可依 。

第二 , SDE 從此可以嚴格書寫 , 1951 年 Itô 公式與強解理論皆立於此積分之上 。

第三 , 等距給了數值方法靈魂 , Euler–Maruyama 格式的均方收斂分析全靠它 。

第四 , 與 Stratonovich 之爭澄清了建模哲學 , 因果與對稱不可兼得 , 必須抉擇 。

當然 , 本案初發表時門可羅雀 , 戰時日本論文無人問津 。

直到 1950 年代 Doob 在美國大力引介 , Itô 積分才從冷案變成顯學 。

遲到的正義仍是正義 , 1987 年 Kyoto 獎與 2006 年 Gauss 獎是最好的平反 。

證據與工具#

證物一號 : 左端點 Riemann 和 , 本案的指紋 。

\[ \sum_i H_{t_i}(W_{t_{i+1}} - W_{t_i}) \]

其中 \(H_{t_i}\) 為 \(F_{t_i}\) 可測 , 增量獨立於 \(F_{t_i}\) 。

證物二號 : Itô 等距 , 本案的兇器與解藥 。

\[ E[( \int H dW )^2] = E[ \int H^2 dt ] \]

其中省略積分限 , 左為隨機平方 , 右為確定積分 。

證物三號 : 鞅性 , 公平賭局的保證書 。

\[ E[ \int_0^t H_s dW_s \mid F_0 ] = 0 \]

偵探工具箱 : 單調類擴張 , Doob 不等式 , Borel–Cantelli 引理 , 完備化論證 。

數值呼應可參考程式 _code/1942-ito_isometry.py , 驗證均值為零與變異數為二分之平方時間 。

參數速查表如下 。

符號 意義 備註
\(H\) 被積分過程 須適應且平方可積
\(W\) 布朗運動 \(W_0 = 0\) , 增量獨立
\(F_t\) 訊息流 過去的全部情報
\(\Delta W_i\) 布朗增量 方差為 \(\Delta t_i\)
\(\circ\) Stratonovich 記號 中點取值的標記

補充:程式實作#

對應程式#

本節對應程式為 1942-ito_isometry.py ,以左端點與右端點和對照演示 Itô 抉擇。

理論呼應#

本案的起點是左端點和 \(I(H) = \sum_i H_{t_i} (W_{t_{i+1}} - W_{t_i})\) ,非預知是公平賭局的規則。 Itô 等距 \(E[(\int_0^1 W_t dW_t)^2] = E[\int_0^1 W_t^2 dt] = 1 / 2\) 把隨機平方化為確定積分。 程式以左端點和逼近 \(\int_0^1 W dW\) ,驗證均值近零且變異數近 \(1 / 2\) ,右端點和均值近 1 則展示偷看未來的代價。 零均值與鞅性 \(E[M_t \mid F_s] = M_s\) 在此得到數值回聲,左端點即因果的選擇。

執行方式#

python3 _code/1942-ito_isometry.py

實測輸出#

本次實測輸出如下:左端點 mean=0.00069 貼近理論值 0 ,變異數 var=0.49831 貼近理論值 0.5 ,右端點 mean=1.00047 貼近理論值 1.0 ,結尾印出 VERIFY 1942 Ito isometry: mean=0.00069 var=0.49831 right_mean=1.00047 PASS 。

讀者實驗#

將 \(Nsteps\) 由 500 增至 2000 後重跑,觀察左端點變異數是否更貼近 0.5 而右端點均值仍停留在 1.0 附近。

完整程式如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""1942 Ito 等距對應 wiki 說明
對應 wiki:1942 年 Ito 積分與 Ito 等距 E[(int_0^1 W dW)^2] = int_0^1 E[W^2]dt = 1/2。
int_0^1 W dW 以左端點黎曼和逼近 = (W_1^2-1)/2,均值 0、變異數 1/2。
右端點和則均值 1,展示 Ito 抉擇(非預測被積函數會改變期望)。
規範:只用 numpy,固定種子,不畫圖只印數字,結尾印 VERIFY 並用 assert 把關。
"""
import numpy as np

np.random.seed(7)

Npaths = 50000
Nsteps = 500
h = 1.0 / Nsteps
sqh = np.sqrt(h)

W = np.zeros(Npaths)
I_left = np.zeros(Npaths)
I_right = np.zeros(Npaths)

for _ in range(Nsteps):
    dW = sqh * np.random.randn(Npaths)
    I_left += W * dW
    I_right += (W + dW) * dW
    W += dW

mean_left = float(np.mean(I_left))
var_left = float(np.var(I_left))
mean_right = float(np.mean(I_right))

print(f"Ito int_0^1 W dW left-sum Npaths={Npaths} Nsteps={Nsteps}")
print(f"left  mean={mean_left:.5f} (theory 0) var={var_left:.5f} (theory 0.5)")
print(f"right mean={mean_right:.5f} (theory 1.0)")

assert abs(mean_left) < 0.01, f"|mean_left|={abs(mean_left)} >= 0.01"
assert abs(var_left - 0.5) / 0.5 < 0.05, f"var rel err={abs(var_left-0.5)/0.5} >= 5%"
assert abs(mean_right - 1.0) < 0.05, f"right mean {mean_right} not ~1"
print(f"VERIFY 1942 Ito isometry: mean={mean_left:.5f} var={var_left:.5f} right_mean={mean_right:.5f} PASS")