Black-Scholes-Pde

變換 PDE 中的馮諾依曼邊界

  • June 16, 2018

我已經改造了 BSM PDE

$$ \frac{\partial V}{\partial t} + \frac{\sigma^2}{2}S^2 \frac{\partial^2 V}{\partial S^2} + rS \frac{\partial V}{\partial S} - rV = 0 $$ 至 $ u(\tau,x) = V(T-\tau,S_{0} e^{x}) $ 隨著變數的變化 $ x = \ln(S/S_{0}) $ 和 $ \tau = T -t $ 至 $$ \frac{\partial u}{\partial \tau} = \frac{\sigma^2}{2} \frac{\partial^2 u}{\partial x^2} + (r - \frac{\sigma^2}{2})\frac{\partial u}{\partial x} - ru $$ 對於離散化,我對時間導數使用後向差分,對空間導數使用中心差分。所以我有一個形式的隱式有限差分方案 $$ A u_{i}^{n+1} = u_{i}^{n} $$ 在哪裡 $ i $ 是空間網格的索引(從 1 到 $ M = 2B/\Delta x $ ) 和 $ n $ 對於時間網格(從 1 到 $ N = T/\Delta\tau $ ) 和 $$ A = \begin{pmatrix} \beta_{1} & \gamma_{1} & 0 & 0 & \cdots & 0\ \alpha_{2} & \beta_{2} & \gamma_{2} & 0 & \cdots & 0 \ 0 & \alpha_{3} & \beta_{3} & \gamma_{3} & \cdots & 0 \ \vdots & \ddots & \ddots & \ddots &\ddots &\vdots \ 0 &\cdots & & & \alpha_M & \beta_{M} \end{pmatrix} $$ 和 $ \beta_i = 1 - k (\frac{\sigma^2}{\Delta x^2} - r) $ , $ \gamma_i = k(- \frac{\sigma^2}{2 \Delta x^2} - (r - \frac{\sigma^2}{2}) \frac{1}{2\Delta x}) $ 和 $ \alpha_i = k( -\frac{\sigma^2}{2 \Delta x^2} + (r - \frac{\sigma^2}{2})\frac{1}{2 \Delta x}) $ $ \forall 2 \leq i \leq N-1 $ 從歐洲呼叫的邊界條件 $$ \lim_{S \rightarrow 0} V(S,t) = 0 \qquad \lim_{x \rightarrow -\infty} u(x,\tau) = 0 $$ 我設置 $ \beta_1 = 1 $ , $ \gamma_{1} = 0 $ 和 $ u_{i}^{n} = 0 $ 作為下界和從 $$ \lim_{S \rightarrow \infty} V(S,t) = S - K e^{-r(T-t)} \qquad \lim_{x \rightarrow \infty} u(x,\tau) = S_{0} e^{x} - K e^{-r(T-t)} $$ 我設置 $ \alpha_M = 0 $ , $ \beta_{M} = 1 $ 和 $ u_{M}^{n} = S_{0} e^{x_{M}} - K e^{-r(T-t)} $ 來解決這個方案。 現在我想使用馮諾依曼邊界,但我不確定它是如何在轉換後的 PDE 中完成的。到目前為止,我已經通過保留下邊界和我使用的上邊界來嘗試它

$$ \lim_{S \rightarrow \infty} \frac{\partial V(S,t)}{\partial S} = 1 \qquad \lim_{x \rightarrow \infty} \frac{\partial u(x,\tau)}{\partial x} = S_{0} e^{x} $$ 從我得到的一階空間導數的中心差 $$ \frac{u_{M+1}^{n+1} - u_{M-1}^{n+1}}{2 \Delta x} = e^{x_{M}} S_{0} \ u_{M+1}^{n+1} = 2 \Delta x e^{x_{M}} S_{0} - u_{M-1}^{n+1} $$ 現在我將它插入到方案的最後一行 $$ \alpha_{M} u_{M-1}^{n+1} + \beta_{M} u_{M} + \gamma_{M} (2 \Delta x e^{x_{M}} S_{0} - u_{M-1}^{n+1}) = u_{M}^{n} \ (\alpha_{M} - \gamma_{M}) u_{M-1}^{n+1} + \beta_{M} u_{M} = u_{M}^{n} - 2 \Delta x e^{x_{M}} S_{0} \gamma_{M} $$ 所以方案中的邊界變為 $ \alpha_{M} = (\alpha_{M} - \gamma_{M}) $ , $ \beta_M = \beta_M $ 和 $ u_{M}^{n} = u_{M}^{n} - 2 \Delta x e^{x_{M}} S_{0} \gamma_{M} $ 當我在帶有 Dirichlet 邊界的 Matlab 中實現這個時,我得到了很好的結果,但是 von Neumann 的實現一定有問題,因為結果很大 $ S $ 有非常大的錯誤。有人可以幫幫我嗎?

非常感謝

我建議這個程序:

$$ x=\ln\left(\frac{S}{S_0}\right),,,\ ,,,,\tau=T-t,,,, ,,,,,U(x,\tau)=e^{r\tau}V(S_t,t) $$ 這導致具有恆定係數的前向 PDE $$ U_\tau(x,\tau)=\frac{\sigma^2}{2}U_{xx}(x,\tau)+\mu,U_{x}(x,\tau) $$ 在哪裡 $$ \mu=r-\frac{1}{2}\sigma^2 $$ 在變數的這種變化之後,終止條件成為初始條件 $ \tau = 0 $ : $$ U(x,0)=\max{S_0,e^{x_0}-K,0} $$ 為了應用 PDE 數值解的標準方法,例如有限差分或有限元方案,我們需要將定義域定位在 $ x $ 到有界區間 $$ x\in(x_{min},,,x_{max}) $$ 標準方法包括選擇計算域 $ (x_{min},,,x_{max}) $ 足夠大”並基於解的漸近施加狄利克雷或諾依曼邊界條件。例如,在看漲期權的情況下,我們有以下解的漸近行為: $$ V_S(S,t)\simeq,S-K,e^{-r(T-t)},, ,,,S\to\infty $$ $$ V_S(S,t)\simeq0,, ,,,S\to0 $$ 諾伊曼邊界: $$ u_x(x_{max},\tau)=S_0e^{x_{max}+r\tau}-K $$ $$ u_x(x_{min},\tau)=0 $$

事實證明,當計算域的大小趨於無窮大時,由於這些邊界條件導致的定位誤差趨於零指數。然而,這些結果並沒有表明採用 Dirichlet 條件還是 Neumann 條件是否更好,也沒有表明在實踐中如何選擇“足夠大”的域。有人經常建議將此區間與該時期布朗運動的標準偏差聯繫起來 $ [0,T] $ . 這種方法使用所謂的透明邊界條件:

  • 透明邊界條件可用於任何區間 $ x\in(x_{min},,,x_{max}) $ 即使很小,只要它包含收益的奇異性。
  • 它們為局部 PDE 提供了精確的邊界條件(不僅是漸近精確的)。由於這些條件的離散化,仍然存在小的數值誤差。
  • 透明邊界條件幾乎與 Neumann 或 Dirichlet 條件一樣容易實現。有關更多詳細資訊,您可以閱讀

離散化

$$ x=x_{min}+i\Delta,x,, ,,,\Delta,x=\frac{x_{max}-x_{min}}{N-1} $$ $$ \tau_n=n\Delta t,,, ,,,\Delta t=\frac{T}{M} $$ 我實施

我們有一個通常的三點有限差分格式:

$$ a_lU_{i-1}^{n+1}+a_dU_{i}^{n+1}+a_uU_{i+1}^{n+1}=b_lU_{i-1}^{n}+b_dU_{i}^{n}+b_uU_{i}^{n+1} $$ 在這種情況下 $ \theta $ -scheme,係數由下式給出

$$ \begin{align} & {{a}{l}}=\theta ,\Delta t\left( -\frac{{{\sigma }^{2}}}{2{{(\Delta x)}^{,2}}}+\frac{\mu }{2\Delta x} \right) \ & {{a}{d}}=1+\theta \Delta t\frac{{{\sigma }^{2}}}{{{(\Delta x)}^{,2}}} \ & {{a}{u}}=\theta \Delta t\left( -\frac{{{\sigma }^{2}}}{2{{(\Delta x)}^{,2}}}-\frac{\mu }{2\Delta x} \right) \ & {{b}{l}}=(\theta -1)\Delta t\left( -\frac{{{\sigma }^{2}}}{2{{(\Delta x)}^{,2}}}+\frac{\mu }{2\Delta x} \right) \ & {{b}{d}}=1+(\theta -1)\theta \Delta t\frac{{{\sigma }^{2}}}{{{(\Delta x)}^{,2}}} \ & {{b}{u}}=(\theta -1)\Delta t\left( -\frac{{{\sigma }^{2}}}{2{{(\Delta x)}^{,2}}}-\frac{\mu }{2\Delta x} \right) \ \end{align} $$

剛剛碰到這個老問題,因為它還沒有真正得到回答,而且現在它的價值,日誌座標中的實際諾伊曼條件是錯誤的。代替 $ lim_{x \rightarrow \infty} \frac{\partial u(x,\tau)}{\partial x} = S_{0} e^{x} $ , 它應該讀 $ lim_{x \rightarrow \infty} \frac{\partial u(x,\tau)}{\partial x} = e^{x} $ . 這可能是大 S 出現大錯誤的原因。

引用自:https://quant.stackexchange.com/questions/27526