Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

As pointed out in Sect. 2.3, when the short-term interest rate is considered as a random variable, there is an unknown function λ(r, t), called the market price of risk, in the governing equation. Before using the governing equation for evaluating an interest rate derivative, we have to find this function (or make some assumptions on it). This function cannot be obtained by statistics directly from the market data. In Sect. 5.4, the inverse problem on the market price of risk was formulated. This problem can be solved by numerical methods. However, if the problem is formulated in another way, then the inverse problem may be solved more efficiently. Therefore, in Sect. 10.1, we first discuss another formulation of the inverse problem and then we give numerical methods for both formulations and show some numerical examples. Then, numerical methods for one-factor interest rate derivatives are described, and some numerical results are shown in Sect. 10.2. Because interest rate derivative problems are so complicated, for many cases, use of multi-factor models is necessary. In the last section, we study how to price interest rate derivatives using the three-factor model and the market data.

1 Inverse Problems

1.1 Another Formulation of the Inverse Problem

As seen in Sect. 5.4, in order to match the bond equation with the market data, we need to find λ(r, t) such that the solution V (r, t; T  ∗ ) of the problem (5.47) at r = r  ∗  and t = 0 is equal to today’s price of the bond with maturity T  ∗ . There, we also briefly discussed how to solve this inverse problem. Here, we reformulate the inverse problem in Sect. 5.4 (see [89]). This formulation may make the numerical solution easy and efficient. Let us derive this formulation. The problem (5.47) can be rewritten as follows:

$$\displaystyle{\left \{\begin{array}{ll} { \partial V \over \partial t} = -\mathbf{L}_{r}V, &r_{l} \leq r \leq r_{u,}\mbox{ }0 \leq t \leq {T}^{{\ast}}\leq T_{max}^{{\ast}}, \\ V (r,{T}^{{\ast}};{T}^{{\ast}}) = 1,&r_{l} \leq r \leq r_{u}.\end{array} \right.}$$

Here, we have used the relation

$$\displaystyle\begin{array}{rcl} & &{ 1 \over 2} {w}^{2}{ {\partial }^{2}V \over \partial {r}^{2}} + (u -\lambda w){ \partial V \over \partial r} - rV {}\\ & =&{ \partial \over \partial r} \left ({ 1 \over 2} {w}^{2}{ \partial V \over \partial r} \right ) + \left [u -\left (\lambda +{ \partial w \over \partial r} \right )w\right ]{ \partial V \over \partial r} - rV {}\\ \end{array}$$

and adopted the following notation

$$\displaystyle{ \mathbf{L}_{r} ={ \partial \over \partial r} \left ({ 1 \over 2} {w}^{2}{ \partial \over \partial r} \right ) + \left [u -\left (\lambda +{ \partial w \over \partial r} \right )w\right ]{ \partial \over \partial r} - r. }$$
(10.1)

Let us define

$$\displaystyle{ \mathbf{L}_{r}^{{\ast}} ={ \partial \over \partial r} \left ({ 1 \over 2} {w}^{2}{ \partial \over \partial r} \right ) -{ \partial \over \partial r} \left \{\left [u -\left (\lambda +{ \partial w \over \partial r} \right )w\right ]\right \} - r }$$
(10.2)

and U(r, t) satisfy the following equation:

$$\displaystyle{{ \partial U \over \partial t} = \mathbf{L}_{r}^{{\ast}}U,\mbox{ }r_{ l} \leq r \leq r_{u,}\mbox{ }0 \leq t \leq T_{max}^{{\ast}}.}$$

Because

$$\displaystyle\begin{array}{rcl} & &{ 1 \over 2} \int _{r_{l}}^{r_{u} }{ \partial \over \partial r} \left ({w}^{2}{ \partial V \over \partial r} \right )Udr {}\\ & =&{ 1 \over 2} \left [\left.\left ({w}^{2}{ \partial V \over \partial r} U\right )\right \vert _{r_{l}}^{r_{u} } -\int _{r_{l}}^{r_{u} }{w}^{2}{ \partial V \over \partial r} { \partial U \over \partial r} dr\right ] {}\\ & =&{ 1 \over 2} \left [\left.\left ({w}^{2}{ \partial V \over \partial r} U\right )\right \vert _{r_{l}}^{r_{u} } -\left.\left ({w}^{2}{ \partial U \over \partial r} V \right )\right \vert _{r_{l}}^{r_{u} } +\int _{ r_{l}}^{r_{u} }{ \partial \over \partial r} \left ({w}^{2}{ \partial U \over \partial r} \right )V dr\right ] {}\\ \end{array}$$

and

$$\displaystyle\begin{array}{rcl} & & \int _{r_{l}}^{r_{u} }\left [u -\left (\lambda +{ \partial w \over \partial r} \right )w\right ]{ \partial V \over \partial r} Udr {}\\ & =& \left.\left \{\left [u -\left (\lambda +{ \partial w \over \partial r} \right )w\right ]UV \right \}\right \vert _{r_{l}}^{r_{u} } -\int _{r_{l}}^{r_{u} }{ \partial \over \partial r} \left \{\left [u -\left (\lambda +{ \partial w \over \partial r} \right )w\right ]U\right \}V dr, {}\\ \end{array}$$

we have

$$\displaystyle\begin{array}{rcl} \int _{r_{l}}^{r_{u} }\mathbf{L}_{r}V \,Udr& =& \int _{r_{l}}^{r_{u} }\mathbf{L}_{r}^{{\ast}}U\,V dr +{ 1 \over 2} \left [\left.\left ({w}^{2}{ \partial V \over \partial r} U\right )\right \vert _{r_{l}}^{r_{u} } -\left.\left ({w}^{2}{ \partial U \over \partial r} V \right )\right \vert _{r_{l}}^{r_{u} }\right ] {}\\ & & +\,\left.\left \{\left [u -\left (\lambda +{ \partial w \over \partial r} \right )w\right ]UV \right \}\right \vert _{r_{l}}^{r_{u} }. {}\\ \end{array}$$

Consequently, \(\mathbf{L}_{r}^{{\ast}}\) is called the adjoint operator to L r . Because \(w(r_{l},t) = w(r_{u},t) = 0\) when the conditions (5.45) and (5.46) hold, we arrive at

$$\displaystyle{ \int _{r_{l}}^{r_{u} }\mathbf{L}_{r}V \,Udr =\int _{ r_{l}}^{r_{u} }\mathbf{L}_{r}^{{\ast}}U\,V dr + \left.\left \{\left [u -\left (\lambda +{ \partial w \over \partial r} \right )w\right ]UV \right \}\right \vert _{r_{l}}^{r_{u} }. }$$
(10.3)

For simplicity, let us consider the case:

$$\displaystyle{ \left \{\begin{array}{ll} u(r_{l},t) - w(r_{l},t){ \partial w(r_{l},t) \over \partial r} > 0, \\ u(r_{u},t) - w(r_{u},t){ \partial w(r_{u},t) \over \partial r} < 0.\end{array} \right. }$$
(10.4)

It is clear that when u(r l , t) and u(r u , t) are bounded and the condition (10.4) holds, \(u(r_{l},t) - w(r_{l},t){ \partial w(r_{l},t) \over \partial r}\) and \(u(r_{u},t) - w(r_{u},t){ \partial w(r_{u},t) \over \partial r}\) must also be bounded even if \({ \partial w(r_{l},t) \over \partial r}\) or \({ \partial w(r_{u},t) \over \partial r}\) is unbounded because of \({ \partial {w}^{2}(r_{l},t) \over \partial r} \geq 0\) and \({ \partial {w}^{2}(r_{u},t) \over \partial r} \leq 0\).Footnote 1 In this case, in order for \({ \partial U \over \partial t} = \mathbf{L}_{r}^{{\ast}}U\) to have a unique solution, two boundary conditions are needed in addition to an initial condition. Therefore, we may add two boundary conditions on U(r, t). Let us choose

$$\displaystyle{U(r_{l},t) = U(r_{u},t) = 0,\mbox{ }0 \leq t \leq T_{max}^{{\ast}}.}$$

Under this choice, equality (10.3) becomes

$$\displaystyle{ \int _{r_{l}}^{r_{u} }\mathbf{L}_{r}V \,Udr =\int _{ r_{l}}^{r_{u} }\mathbf{L}_{r}^{{\ast}}U\,V dr. }$$
(10.5)

Therefore,

$$\displaystyle\begin{array}{rcl} & &{ d \over dt} \int _{r_{l}}^{r_{u} }V Udr =\int _{ r_{l}}^{r_{u} }{ \partial (V U) \over \partial t} dr =\int _{ r_{l}}^{r_{u} }\left ({ \partial V \over \partial t} U + V{ \partial U \over \partial t} \right )dr {}\\ & =& \int _{r_{l}}^{r_{u} }(-\mathbf{L}_{r}V \,U + \mathbf{L}_{r}^{{\ast}}U\,V )dr = 0, {}\\ \end{array}$$

from which, we further have

$$\displaystyle{\int _{r_{l}}^{r_{u} }V (r,0;{T}^{{\ast}})U(r,0)dr =\int _{ r_{l}}^{r_{u} }V (r,{T}^{{\ast}};{T}^{{\ast}})U(r,{T}^{{\ast}})dr.}$$

Suppose we choose

$$\displaystyle{U(r,0) =\delta (r - {r}^{{\ast}}),\mbox{ }r_{ l} \leq r \leq r_{u}.}$$

Then, noticing \(V (r,{T}^{{\ast}};{T}^{{\ast}}) = 1\), we arrive at

$$\displaystyle{ V ({r}^{{\ast}},0;{T}^{{\ast}}) =\int _{ r_{l}}^{r_{u} }U(r,{T}^{{\ast}})dr. }$$
(10.6)

Consequently, for any function λ(r, t), if U(r, t) is the solution of the problem

$$\displaystyle{ \left \{\begin{array}{ll} { \partial U \over \partial t} = \mathbf{L}_{r}^{{\ast}}U, &r_{l} \leq r \leq r_{u},\quad 0 \leq t \leq T_{max}^{{\ast}}, \\ U(r,0) =\delta (r - {r}^{{\ast}}), &r_{l} \leq r \leq r_{u}, \\ U(r_{l},t) = U(r_{u},t) = 0,\quad &0 \leq t \leq T_{max}^{{\ast}}, \end{array} \right. }$$
(10.7)

and V (r, t; T  ∗ ) is the solution of the problem (5.47), then condition (10.6) holds.

Let today’s time be t = 0, today’s short-term interest rate be r  ∗ , and the prices of zero-coupon bonds with a face value Z = 1 and with various maturities T  ∗  be \(\overline{V }({T}^{{\ast}})\). AssumeFootnote 2 λ(r, t) = λ(t) to be such a function that the solution U(r, T  ∗ ) of the problem (10.7) satisfies (10.6) with \(V ({r}^{{\ast}},0;{T}^{{\ast}}) = \overline{V }({T}^{{\ast}})\). Then, the solution V (r, t; T  ∗ ) of the problem (5.47) at r = r  ∗  and t = 0 gives today’s price of the zero-coupon bond with maturity T  ∗  on the market. Consequently, matching \(\lambda (r,t)\) with the zero-coupon bond price curve can be reduced to finding λ(t) such that U(r, T  ∗ ) satisfies Eq. (10.6) with \(V ({r}^{{\ast}},0;{T}^{{\ast}}) = \overline{V }({T}^{{\ast}})\).

From Eq. (10.6), we can derive another equivalent relation that can also be used to determine λ(t). Differentiating (10.6) with respect to T  ∗  yields

$$\displaystyle\begin{array}{rcl} & &{ \partial V ({r}^{{\ast}},0;{T}^{{\ast}}) \over \partial {T}^{{\ast}}} =\int _{ r_{l}}^{r_{u} }{ \partial U(r,{T}^{{\ast}}) \over \partial {T}^{{\ast}}} dr \\ & =& \int _{r_{l}}^{r_{u} }\mathbf{L}_{r}^{{\ast}}U(r,{T}^{{\ast}})dr \\ & =& \int _{r_{l}}^{r_{u} }\left \{{ \partial \over \partial r} \left ({ 1 \over 2} {w}^{2}{ \partial U \over \partial r} \right ) -{ \partial \over \partial r} \left \{\left [u -\left (\lambda (t) +{ \partial w \over \partial r} \right )w\right ]U\right \} - rU\right \}dr \\ & =& -\int _{r_{l}}^{r_{u} }rU(r,{T}^{{\ast}})dr {}\end{array}$$
(10.8)

because

$$\displaystyle{w(r_{l},{T}^{{\ast}}) = w(r_{ u},{T}^{{\ast}}) = U(r_{ l},{T}^{{\ast}}) = U(r_{ u},{T}^{{\ast}}) = 0.}$$

From this relation we can further have

$$\displaystyle\begin{array}{rcl} & &{ {\partial }^{2}V ({r}^{{\ast}},0;{T}^{{\ast}}) \over \partial {{T}^{{\ast}}}^{2}} = -\int _{r_{l}}^{r_{u} }r{ \partial U(r,{T}^{{\ast}}) \over \partial {T}^{{\ast}}} dr {}\\ & =& -\int _{r_{l}}^{r_{u} }r\mathbf{L}_{r}^{{\ast}}U(r,{T}^{{\ast}})dr {}\\ & =& -\int _{r_{l}}^{r_{u} }{\Biggl (r{ \partial \over \partial r} \left ({ 1 \over 2} {w}^{2}{ \partial U \over \partial r} \right ) - r{ \partial \over \partial r} \left \{\left [u -\left (\lambda (t) +{ \partial w \over \partial r} \right )w\right ]U\right \} - {r}^{2}U\Biggr )}dr {}\\ \end{array}$$
$$\displaystyle\begin{array}{rcl} & =& -\left.\left [{ r \over 2} {w}^{2}{ \partial U \over \partial r} \right ]\right \vert _{r_{l}}^{r_{u} } +\int _{ r_{l}}^{r_{u} }{ 1 \over 2} {w}^{2}{ \partial U \over \partial r} dr + \left.\left \{r\left [u -\left (\lambda (t) +{ \partial w \over \partial r} \right )w\right ]U\right \}\right \vert _{r_{l}}^{r_{u} } \\ & & -\int _{r_{l}}^{r_{u} }\left [u -\left (\lambda (t) +{ \partial w \over \partial r} \right )w\right ]Udr +\int _{ r_{l}}^{r_{u} }{r}^{2}Udr \\ & =& \int _{r_{l}}^{r_{u} }\left ({ 1 \over 2} {w}^{2}{ \partial U \over \partial r} +{ \partial w \over \partial r} wU\right )dr +\lambda (t)\int _{r_{l}}^{r_{u} }wUdr +\int _{ r_{l}}^{r_{u} }({r}^{2} - u)Udr \\ & =&{ 1 \over 2} \int _{r_{l}}^{r_{u} }{ \partial ({w}^{2}U) \over \partial r} dr +\lambda (t)\int _{r_{l}}^{r_{u} }wUdr +\int _{ r_{l}}^{r_{u} }({r}^{2} - u)Udr \\ & =& \lambda (t)\int _{r_{l}}^{r_{u} }wUdr +\int _{ r_{l}}^{r_{u} }({r}^{2} - u)Udr. {}\end{array}$$
(10.9)

Consequently, λ(t) satisfies the equation:

$$\displaystyle{ \lambda ({T}^{{\ast}})\int _{ r_{l}}^{r_{u} }wU(r,{T}^{{\ast}})dr +\int _{ r_{l}}^{r_{u} }({r}^{2} - u)U(r,{T}^{{\ast}})dr ={ {\partial }^{2}V ({r}^{{\ast}},0;{T}^{{\ast}}) \over \partial {{T}^{{\ast}}}^{2}}. }$$
(10.10)

Here we have shown that from the condition (10.6) we can have the condition (10.10). In order to show that they are equivalent, we also need to show that from the condition (10.10) we can have the condition (10.6). From the derivation procedure of the expressions (10.8) and (10.9), we know that when U(r, t) is the solution of the problem (10.7), the following is true:

$$\displaystyle\begin{array}{rcl} \int _{r_{l}}^{r_{u} }{ \partial U(r,{T}^{{\ast}}) \over \partial {T}^{{\ast}}} dr& =& -\int _{r_{l}}^{r_{u} }rU(r,{T}^{{\ast}})dr, {}\\ -\int _{r_{l}}^{r_{u} }r{ \partial U(r,{T}^{{\ast}}) \over \partial {T}^{{\ast}}} dr& =& \lambda (t)\int _{r_{l}}^{r_{u} }wUdr +\int _{ r_{l}}^{r_{u} }({r}^{2} - u)Udr. {}\\ \end{array}$$

When the condition (10.10) holds, we have

$$\displaystyle{-\int _{r_{l}}^{r_{u} }r{ \partial U(r,{T}^{{\ast}}) \over \partial {T}^{{\ast}}} dr ={ {\partial }^{2}V ({r}^{{\ast}},0;{T}^{{\ast}}) \over \partial {{T}^{{\ast}}}^{2}}.}$$

From this relation we can have

$$\displaystyle\begin{array}{rcl}{ \partial V ({r}^{{\ast}},0;{T}^{{\ast}}) \over \partial {T}^{{\ast}}} -{ \partial V ({r}^{{\ast}},0;0) \over \partial {T}^{{\ast}}} & =& \int _{0}^{{T}^{{\ast}} }{ {\partial }^{2}V ({r}^{{\ast}},0;{T}^{{\ast}}) \over \partial {{T}^{{\ast}}}^{2}} d{T}^{{\ast}} {}\\ & =& -\int _{0}^{{T}^{{\ast}} }\int _{r_{l}}^{r_{u} }r{ \partial U(r,{T}^{{\ast}}) \over \partial {T}^{{\ast}}} drd{T}^{{\ast}} {}\\ & =& -\int _{r_{l}}^{r_{u} }r\left [U(r,{T}^{{\ast}}) - U(r,0)\right ]dr {}\\ & =& \int _{r_{l}}^{r_{u} }{ \partial U(r,{T}^{{\ast}}) \over \partial {T}^{{\ast}}} dr + {r}^{{\ast}}, {}\\ \end{array}$$

which can be reduced into

$$\displaystyle{{ \partial V ({r}^{{\ast}},0;{T}^{{\ast}}) \over \partial {T}^{{\ast}}} =\int _{ r_{l}}^{r_{u} }{ \partial U(r,{T}^{{\ast}}) \over \partial {T}^{{\ast}}} dr}$$

because \({ \partial V ({r}^{{\ast}},0;0) \over \partial {T}^{{\ast}}} = -{r}^{{\ast}}\). From the relation just obtained we further have

$$\displaystyle\begin{array}{rcl} V ({r}^{{\ast}},0;{T}^{{\ast}}) - V ({r}^{{\ast}},0;0)& =& \int _{ 0}^{{T}^{{\ast}} }{ \partial V ({r}^{{\ast}},0;{T}^{{\ast}}) \over \partial {T}^{{\ast}}} d{T}^{{\ast}} {}\\ & =& \int _{0}^{{T}^{{\ast}} }\int _{r_{l}}^{r_{u} }{ \partial U(r,{T}^{{\ast}}) \over \partial {T}^{{\ast}}} drd{T}^{{\ast}} {}\\ & =& \int _{r_{l}}^{r_{u} }\left [U(r,{T}^{{\ast}}) - U(r,0)\right ]dr {}\\ & =& \int _{r_{l}}^{r_{u} }U(r,{T}^{{\ast}})dr - 1, {}\\ \end{array}$$

which can be reduced into

$$\displaystyle{V ({r}^{{\ast}},0;{T}^{{\ast}}) =\int _{ r_{l}}^{r_{u} }U(r,{T}^{{\ast}})dr}$$

because V (r  ∗ , 0; 0) = 1. This completes our proof. Hence, instead of finding λ(t) such that the condition (10.6) holds, we may also find λ(t) such that the condition (10.10) is satisfied.

Now we discuss how to find λ(t) from condition (10.10). From Sect. 5.4,Footnote 3 the value of λ(t) for \(t \in \left [0,{T}^{{\ast}}\right ]\) is determined by the portion of the zero-coupon bond price curve on \(\left [0,{T}^{{\ast}}\right ]\). Suppose we already have the solution of problem (10.7) and the value of λ(t) for \(t \in \left [0,{T}^{{\ast}}-\epsilon \right ],\epsilon\) being a small positive number. In order to find the value of λ(t) for \(t \in \left ({T}^{{\ast}}-\epsilon,{T}^{{\ast}}\right ],\) we need to guess the value of λ(t) for \(t \in \left ({T}^{{\ast}}-\epsilon,{T}^{{\ast}}\right ]\) and continue to solve the problem (10.7) from T  ∗  − ε to T  ∗  and check the condition (10.10) at any time in \(\left ({T}^{{\ast}}-\epsilon,{T}^{{\ast}}\right ]\). As soon as the condition (10.10) holds, we have the value of λ(t) on \(\left ({T}^{{\ast}}-\epsilon,{T}^{{\ast}}\right ]\). Such a procedure is performed from a very small T  ∗ , gradually increasing, to \({T}^{{\ast}} = T_{max}^{{\ast}}\), and λ(t) can be found for \(t \in [0,T_{max}^{{\ast}}]\). This procedure is easy and faster, compared with the procedure of determining λ(t) by solving the problem (5.47) if the same mesh sizes are used.

The initial-boundary value problem (10.7) is well-posed because the condition (10.4) holds. If

$$\displaystyle{ \left \{\begin{array}{ll} u(r_{l},t) - w(r_{l},t){ \partial w(r_{l},t) \over \partial r} = 0, \\ u(r_{u},t) - w(r_{u},t){ \partial w(r_{u},t) \over \partial r} = 0, \end{array} \right. }$$
(10.11)

then from the relation (10.3), we can still obtain the relation (10.5) without specifying the values for U(r l , t) and U(r u , t). In this case, instead of the problem (10.7), U(r, t) is the solution of the following well-posed initial value problem

$$\displaystyle{ \left \{\begin{array}{ll} { \partial U \over \partial t} = \mathbf{L}_{r}^{{\ast}}U, &r_{l} \leq r \leq r_{u},\quad 0 \leq t \leq T_{max}^{{\ast}}, \\ U(r,0) =\delta (r - {r}^{{\ast}}),\quad &r_{l} \leq r \leq r_{u},\end{array} \right. }$$
(10.12)

and we can still derive the conditions (10.6) and (10.10) from the relation (10.5). For more complicated cases, the following treatment can be used. At any point on the lower boundary r = r l , when

$$\displaystyle{u(r_{l},t) - w(r_{l},t){ \partial w(r_{l},t) \over \partial r} > 0,}$$

we choose U(r l , t) = 0; whereas

$$\displaystyle{u(r_{l},t) - w(r_{l},t){ \partial w(r_{l},t) \over \partial r} = 0,}$$

we do not specify any value for U(r l , t) as a boundary condition. For the upper boundary, the situation is similar. Under such a treatment, the conditions (10.6) and (10.10) still hold.

1.2 Numerical Methods for the Inverse Problem

Again, let \(\overline{V }({T}^{{\ast}})\) denote today’s zero-coupon bond curve for bonds with a face value Z = 1. Suppose that the values of K zero-coupon bonds with maturities \(T_{1}^{{\ast}},T_{2}^{{\ast}},\cdots \,,T_{K}^{{\ast}}\) are \(V _{T_{1}^{{\ast}}},V _{T_{2}^{{\ast}}},\cdots \,,V _{T_{K}^{{\ast}}}\), which can be obtained from the market. Assume \(T_{K}^{{\ast}} = T_{max}^{{\ast}}\) and \(0 < T_{1}^{{\ast}} < \cdots < T_{K}^{{\ast}}\). Let today’s time be \(T_{0}^{{\ast}}\) and \(T_{0}^{{\ast}} = 0\). Clearly, \(\overline{V }(T_{0}^{{\ast}}) = 1\) and \({ \partial \overline{V }(T_{0}^{{\ast}}) \over \partial {T}^{{\ast}}} = -{r}^{{\ast}}\), where r  ∗  is today’s short-term interest rate. Based on the data, we can generate a zero-coupon bond price curve \(\overline{V }({T}^{{\ast}})\) on \([0,T_{max}^{{\ast}}]\) by the cubic spline interpolation described in Sect. 6.1.1. Because \({ \partial \overline{V }(T_{0}^{{\ast}}) \over \partial {T}^{{\ast}}} = -{r}^{{\ast}}\), at the left end we require this condition instead of assuming \({ {\partial }^{2}\overline{V }(T_{0}^{{\ast}}) \over \partial {{T}^{{\ast}}}^{2}} = 0\). At the right end, we assume the function \(\overline{V }({T}^{{\ast}})\) to be a polynomial of degree two on \([T_{K-1}^{{\ast}},T_{K}^{{\ast}}]\) instead of assuming \({ {\partial }^{2}\overline{V }(T_{M}^{{\ast}}) \over \partial {{T}^{{\ast}}}^{2}} = 0\). Using the method described in Sect. 6.1.1 for the modified case, we can determine these polynomials on all the subintervals \([T_{k}^{{\ast}},T_{k+1}^{{\ast}}]\), \(k = 0,1,\cdots \,,K - 1\). As soon as we have the zero-coupon bond curve, we can determine λ(t) by solving inverse problems.

First, let us discuss how to solve the inverse problem (5.47). When λ(t) is given on [0, T  ∗ ], the partial differential equation can be discretized by the difference scheme (7.12). Hence, for any T  ∗ , as long as λ(t) is given on [0, T  ∗ ], we can calculate V (r, 0; T  ∗ ) from \(V (r,{T}^{{\ast}};{T}^{{\ast}})\). Assume that we have obtained λ(t) on [0, T  ∗  − Δt] from the value \(\overline{V }(t)\) on [0, T  ∗  − Δt]. We guess λ(T  ∗ ), assume λ(t) to be a linear function on \([{T}^{{\ast}}- \Delta t,{T}^{{\ast}}]\), and solve problem (5.47) from t = T  ∗  to t = 0. Check if \(V ({r}^{{\ast}},0;{T}^{{\ast}}) = \overline{V }({T}^{{\ast}})\). If it is true, we find λ(t) on [T  ∗  − Δt, T  ∗ ]; if not, we adjust λ(T  ∗ ) until we find a value λ(T  ∗ ) such that \(V ({r}^{{\ast}},0;{T}^{{\ast}}) = \overline{V }({T}^{{\ast}})\). This procedure can start from T  ∗  = Δt and continue successively until \({T}^{{\ast}} = T_{max}^{{\ast}}\). At T  ∗  = Δt, if only λ(Δt) is given, we cannot define a linear function on [0, Δt]. From the condition (10.10), we see that λ(0) can be determined by

$$\displaystyle{ \lambda (0) ={ { {\partial }^{2}\overline{V }(0) \over \partial {{T}^{{\ast}}}^{2}} -{ {r}^{{\ast}}}^{2} + u({r}^{{\ast}},0) \over w({r}^{{\ast}},0)}. }$$
(10.13)

Now let us discuss how to solve problem (10.7). For the domain \([r_{l},r_{u}] \times [0,T_{max}^{{\ast}}]\), we take the following partition: \(r_{m} = r_{l} + m\Delta r\), m = 0, 1, ⋯ , M, t n = nΔt, n = 0, 1, ⋯ , N, where \(\Delta r = (r_{u} - r_{l})/M\) and \(\Delta t = T_{max}^{{\ast}}/N\), M, N being integers. Let \(U_{m}^{n}\) and \({\lambda }^{n+1/2}\) be the approximate values of \(U(r_{m},{t}^{n})\) and \(\lambda ({t}^{n+1/2})\), and \({\overline{V }}^{n}\) denote \(\overline{V }({t}^{n})\). We also represent \(U_{m}^{n}\), m = 0, 1, ⋯ , M by \(\{U_{m}^{n}\}\). On this partition, the problem (10.7) and the condition (10.10) can be discretized as follows.

Because the initial condition in the problem (10.7) is a Dirac delta function, we discretize the partial differential equation there by the following “conservative” scheme:

$$\displaystyle\begin{array}{rcl} & &{ U_{m}^{n+1} - U_{m}^{n} \over \Delta t} {}\\ & =&{ 1 \over 4\Delta r} \left [{\left (\bar{w}_{m+1/2}^{n+1/2}\right )}^{2}\left ({ U_{m+1}^{n+1} - U_{ m}^{n+1} \over \Delta r} +{ U_{m+1}^{n} - U_{m}^{n} \over \Delta r} \right )\right. {}\\ & & \qquad -\left.{\left (\bar{w}_{m-1/2}^{n+1/2}\right )}^{2}\left ({ U_{m}^{n+1} - U_{ m-1}^{n+1} \over \Delta r} +{ U_{m}^{n} - U_{m-1}^{n} \over \Delta r} \right )\right ] {}\\ & & -\left [\bar{u}_{m+1/2}^{n+1/2} -\left ({\lambda }^{n+1/2} +{ w_{m+1}^{n+1/2} - w_{ m}^{n+1/2} \over \Delta r} \right )\bar{w}_{m+1/2}^{n+1/2}\right ] {}\\ & & \qquad \times { U_{m+1}^{n+1} + U_{m}^{n+1} + U_{m+1}^{n} + U_{m}^{n} \over 4\Delta r} {}\\ & & +\left [\bar{u}_{m-1/2}^{n+1/2} -\left ({\lambda }^{n+1/2} +{ w_{m}^{n+1/2} - w_{ m-1}^{n+1/2} \over \Delta r} \right )\bar{w}_{m-1/2}^{n+1/2}\right ] {}\\ & & \qquad \times { U_{m}^{n+1} + U_{m-1}^{n+1} + U_{m}^{n} + U_{m-1}^{n} \over 4\Delta r} {}\\ & & -{ r_{m} \over 2} (U_{m}^{n+1} + U_{ m}^{n}), {}\\ & & \quad \quad m = 1,2,\cdots \,,M - 1, {}\\ \end{array}$$

where \(\bar{w}_{m+1/2}^{n+1/2} = (w_{m+1}^{n+1/2} + w_{m}^{n+1/2})/2\) and \(\bar{u}_{m+1/2}^{n+1/2} = (u_{m+1}^{n+1/2} + u_{m}^{n+1/2})/2\). These equations can be rewritten as

$$\displaystyle\begin{array}{rcl} a_{m}U_{m-1}^{n+1} + b_{ m}U_{m}^{n+1} + c_{ m}U_{m+1}^{n+1}& & = -a_{ m}U_{m-1}^{n} + (2 - b_{ m})U_{m}^{n} - c_{ m}U_{m+1}^{n}, \\ & & m = 1,2,\cdots \,,M - 1, {}\end{array}$$
(10.14)

where

$$\displaystyle\begin{array}{rcl} a_{m}& =&{ -\Delta t \over 4\Delta {r}^{2}} {\left (\bar{w}_{m-1/2}^{n+1/2}\right )}^{2} {}\\ & & -{ \Delta t \over 4\Delta r} \left [\bar{u}_{m-1/2}^{n+1/2} -\left ({\lambda }^{n+1/2} +{ w_{m}^{n+1/2} - w_{ m-1}^{n+1/2} \over \Delta r} \right )\bar{w}_{m-1/2}^{n+1/2}\right ], {}\\ b_{m}& =& 1 +{ \Delta tr_{m} \over 2} +{ \Delta t \over 4\Delta {r}^{2}} \left [{\left (\bar{w}_{m+1/2}^{n+1/2}\right )}^{2} +{ \left (\bar{w}_{ m-1/2}^{n+1/2}\right )}^{2}\right ] {}\\ & & +{ \Delta t \over 4\Delta r} \left [\bar{u}_{m+1/2}^{n+1/2} -\left ({\lambda }^{n+1/2} +{ w_{m+1}^{n+1/2} - w_{ m}^{n+1/2} \over \Delta r} \right )\bar{w}_{m+1/2}^{n+1/2}\right ] {}\\ & & -{ \Delta t \over 4\Delta r} \left [\bar{u}_{m-1/2}^{n+1/2} -\left ({\lambda }^{n+1/2} +{ w_{m}^{n+1/2} - w_{ m-1}^{n+1/2} \over \Delta r} \right )\bar{w}_{m-1/2}^{n+1/2}\right ], {}\\ c_{m}& =&{ -\Delta t \over 4\Delta {r}^{2}} {\left (\bar{w}_{m+1/2}^{n+1/2}\right )}^{2} {}\\ & & +{ \Delta t \over 4\Delta r} \left [\bar{u}_{m+1/2}^{n+1/2} -\left ({\lambda }^{n+1/2} +{ w_{m+1}^{n+1/2} - w_{ m}^{n+1/2} \over \Delta r} \right )\bar{w}_{m+1/2}^{n+1/2}\right ]. {}\\ \end{array}$$

From the boundary conditions in the problem (10.7), we have

$$\displaystyle{ U_{0}^{n+1} = U_{ M}^{n+1} = 0. }$$
(10.15)

When the coefficients in the set of equations (10.14) are known, the sets of equations (10.14) and (10.15) consist of a linear system for \(U_{0}^{n+1},U_{1}^{n+1},\) \(\cdots \,,U_{M}^{n+1}\).

The initial condition in the problem (10.7) can be approximated by

$$\displaystyle{ U_{m}^{0} = \left \{\begin{array}{ll} { 1 \over \Delta r} \left [1 -{ {r}^{{\ast}} \over \Delta r} + \mbox{ int}\left ({ {r}^{{\ast}} \over \Delta r} \right )\right ],\quad &m = \mbox{ int}\left ({ {r}^{{\ast}} \over \Delta r} \right ), \\ { 1 \over \Delta r} \left [{ {r}^{{\ast}} \over \Delta r} -\mbox{ int}\left ({ {r}^{{\ast}} \over \Delta r} \right )\right ], &m = \mbox{ int}\left ({ {r}^{{\ast}} \over \Delta r} \right ) + 1, \\ 0, &\mbox{ otherwise}, \end{array} \right. }$$
(10.16)

where int(x) is the integer part of the number x, and we assume \({r}^{{\ast}}\in [r_{l} + \Delta r,r_{u} - \Delta r]\). As it can be seen, we here approximate the function δ(r − r  ∗ ) in the following way. We let the sum of the two values on the point with \(m = \mbox{ int}\left ({ {r}^{{\ast}} \over \Delta r} \right )\) and the point with \(m = \mbox{ int}\left ({ {r}^{{\ast}} \over \Delta r} \right ) + 1\) be equal to \({ 1 \over \Delta r}\) and their ratio is inversely proportional to their distances to r  ∗ . On any other point, let the value be equal to zero.

By the trapezoidal rule (see Sect. 6.1.3), the condition (10.10) can be approximated by

$$\displaystyle{ \begin{array}{l} {\lambda }^{n+1/2}\Delta r\left [{ 1 \over 4} w_{0}^{n+\frac{1} {2} }\left (U_{0}^{n+1} + U_{0}^{n}\right ) + \frac{1} {2}\sum \limits _{m=1}^{M-1}w_{m}^{n+\frac{1} {2} }\left (U_{m}^{n+1} + U_{m}^{n}\right )\right. \\ \qquad \qquad \qquad \left.+{ 1 \over 4} w_{M}^{n+\frac{1} {2} }\left (U_{M}^{n+1} + U_{M}^{n}\right )\right ] \\ +{ \Delta r \over 4} \left [{(r_{0}^{n+\frac{1} {2} })}^{2} - u_{0}^{n+\frac{1} {2} }\right ]\left (U_{0}^{n+1} + U_{0}^{n}\right ) \\ +{ \Delta r \over 2} \sum \limits _{m=1}^{M-1}\left [{(r_{m}^{n+\frac{1} {2} })}^{2} - u_{m}^{n+\frac{1} {2} }\right ]\left (U_{m}^{n+1} + U_{m}^{n}\right ) \\ +{ \Delta r \over 4} \left [{(r_{M}^{n+\frac{1} {2} })}^{2} - u_{M}^{n+\frac{1} {2} }\right ]\left (U_{M}^{n+1} + U_{M}^{n}\right ) ={ {\partial }^{2}\overline{V }({t}^{n+\frac{1} {2} }) \over \partial {{T}^{{\ast}}}^{2}}. \end{array} }$$
(10.17)

Here we approximate \(U_{m}^{n+1/2}\) by \(\frac{1} {2}(U_{m}^{n} + U_{ m}^{n+1})\) for m = 0, 1, ⋯ , M.

From the expression (10.16), we can have \(\{U_{m}^{0}\}\). Therefore, we can have the following procedure for \(n = 0,1,\cdots \,,N - 1\) successively. Suppose we already have \(\{U_{m}^{n}\}\). GuessingFootnote 4 \({\lambda }^{n+1/2}\), we can obtain \(\{U_{m}^{n+1}\}\) by solving the system consisting of Eqs. (10.14) and (10.15). Then, we check if Eq. (10.17) holds. If not, we need to find a new guess by solving \({\lambda }^{n+1/2}\) from Eq. (10.17) or by other iteration methods, and obtain new \(\{U_{m}^{n+1}\}\) and check again; if it is, we find the value \({\lambda }^{n+1/2}\). When this procedure is done for \(n = 0,1,\cdots \,,N - 1\) successively, we find the values for \({\lambda }^{n+1/2}\), \(n = 0,1,\cdots \,,N - 1\). Another condition that can be used to determine \({\lambda }^{n+1/2}\) is condition (10.6). The advantage of using condition (10.6) is to let the value of the zero-coupon bonds be exactly equal to the data from the market. In this case, we have to design an iteration method to find the next iterative value of \({\lambda }^{n+1/2}\). It is clear that if the problem (10.7) needs to be replaced by the problem (10.12), the procedure above is almost the same.

For the method based on the problem (5.47), in order to do one iteration to determine λ(t), we need to integrate the partial differential equation n + 1 times from t n + 1 to t 0. For the method based on the problem (10.7), in order to do the same thing, we need to integrate the partial differential equation only once from t n to t n + 1. Therefore, we pay more attention to the method based on the problem (10.7). The only complication is that the computation based on the problem (10.7) involves the Dirac delta function. This requires us to use more grid points in the r-direction. In order for a function λ(t) to be used in practice, we have to check whether or not the computed zero-coupon bond values are matched with the real market data well enough. If the formulation (5.47) is adopted, then such a condition is used directly when λ(t) is determined. Thus, no further check is needed for this case. However, when the formulation (10.7) is used, theoretically the computed zero-coupon bond values should be consistent with the real market data if the condition (10.6) or the condition (10.10) holds. Because there exists numerical error, this fact will be true only if very large M is used. Thus between these two methods, which has a better performance is not clear.

1.3 Numerical Results on Market Prices of Risk

In this subsection, we give two examples on numerical results of inverse problems and the only results obtained by the method of solving the problem (10.7) are given. As an example, we take the following short-term interest rate model:

$$\displaystyle{dr = ({r}^{{\ast}{\ast}}- r)dt + r(0.2 - r)dX,\quad r_{ l} = 0 \leq r \leq r_{u} = 0.2,}$$

where r  ∗ ∗  is a constant between r l and r u , and r  ∗ ∗  = 0. 05345 in these examples given here. This model satisfies conditions (5.45) and (5.46), so these partial differential equation problems we are going to solve are well-posed.

Example 1. Suppose today’s bond prices are given by the exponential function \(100\mathrm{{e}}^{-0.05345{T}^{{\ast}} }\). According to this function, we can use the method given in the last subsection to find the market price of risk λ(t). In Fig. 10.1, the function λ(t) is shown. As soon as we have the market price of risk, we can compute the bond price by solving the bond equation. In Table 10.1, we list both the numerical results and the values from the given function. From the table, we see that the difference is on the third decimal place, which means that the inverse problem has been solved quite accurately. In order to do this computation, a 1, 000 ×1, 000 mesh was used.

Fig. 10.1
figure 1

The market price of risk λ(t)

Table 10.1 Comparison between given and computed bond prices

Example 2. From the market, we obtained the data on the short-term interest rate and the zero-coupon bond prices with maturities 0.5, 1, 2, 3, 5, 7, 10, 15, 20, and 25 years on November 30, 1995. Using the data, we generate a bond price function by the cubic spline interpolation described in Sect. 6.1.1. In Fig. 10.2, the data are given by “ ∘ ,” and the function is shown by a solid curve. Using the bond price function, we find the market price of risk, which is shown in Fig. 10.3. This function is not as smooth as the market price of risk given in Fig. 10.1. From the condition (10.10), we see that λ(t) is closely related to the second derivative of today’s bond curve. For this case, the second derivative of bond prices is not smooth (see Fig. 10.4), so the market price of risk has the shape shown in Fig. 10.3. Using the market price of risk, we can compute the bond price by solving the bond equation. In Table 10.2, both the computed bond prices and the bond prices on the market are listed. Their difference is also very small, which means that the inverse problem has been solved successfully even if the market data are used.

Fig. 10.2
figure 2

Prices of today’s bonds

Fig. 10.3
figure 3

The market price of risk λ(t)

Fig. 10.4
figure 4

The second derivative of today’s bond prices

Table 10.2 Comparison between market and computed bond prices

2 Numerical Results of One-Factor Models

In order to price interest rate derivatives, the market price of risk for the short-term interest rate and today’s short-term interest rate r  ∗  must be given. In this section, the market price of risk is given numerically and is based on the data from November 30, 1995. Today’s short-term interest rate is assumed to take the value of the short-term interest rate on that day, namely, r  ∗  = 0. 05345. Also, we suppose today’s time t to be zero.

First, let us briefly discuss how to price bond options. Suppose that we need to find today’s price of a T-year option with an exercise price E on a N-year bond that has a face value Z = 1 and a coupon rate k. Set \(T_{b} = T + N\), and let \(V _{b}(r,t;T_{b})\) and V (r, t) be the prices of the bond and the option, respectively. What we need to find is V (r  ∗ , 0). In order to do this, we first need to find \(V _{b}(r,T;T_{b})\) for \(r \in [r_{l},r_{u}]\) by solving the problem (5.48):

$$\displaystyle{\left \{\begin{array}{ll} { \partial V _{b} \over \partial t} +{ 1 \over 2} {w}^{2}{ {\partial }^{2}V _{b} \over \partial {r}^{2}} + (u -\lambda w){ \partial V _{b} \over \partial r} - rV _{b} + k = 0,\quad &r_{l} \leq r \leq r_{u},\quad t \leq T_{b}, \\ V _{b}(r,T_{b};T_{b}) = 1, &r_{l} \leq r \leq r_{u} \end{array} \right.}$$

from t = T b to t = T < T b . Based on the function \(V _{b}(r,T;T_{b})\), we then obtain V (r, 0) by solving the problem (5.49):

$$\displaystyle{\left \{\begin{array}{ll} { \partial V \over \partial t} +{ 1 \over 2} {w}^{2}{ {\partial }^{2}V \over \partial {r}^{2}} + (u -\lambda w){ \partial V \over \partial r} - rV = 0,\quad &r_{l} \leq r \leq r_{u},\quad t \leq T, \\ V (r,T) =\max \left (V _{b}(r,T;T_{b}) - E,0\right ), &r_{l} \leq r \leq r_{u} \end{array} \right.}$$

from t = T to t = 0. When the market price of risk is given numerically, the problems (5.48) and (5.49) have to be solved numerically, and the scheme (7.12) or a modified scheme (7.6) can be adopted. The modified scheme (7.6) is a scheme that is the same as the scheme (7.6) for any interior point and the same as the scheme (7.12) for the boundary points. In Table 10.3, the numerical results of the prices on 40 bond options are listed. There, the exercise price E is equal to 0.95 and 1, and the bond pays coupons continuously with a coupon rate k = 0. 055. The expiries of the options are 0.25, 0.5, 0.75, and 1 year and the life spans of bonds are 0.5, 1, 2, 3, and 5 years.

Table 10.3 Prices of bond options with E = 0. 95, 1 and k = 0. 055

Pricing a cap is done in the following way. Consider a N-year cap and suppose that money is paid quarterly. As pointed out in Sect. 5.5, the cap is a sum of 4N − 1 caplets in this case and the maturities of the bonds associated with the 4N − 1 caplets are \(t_{k} = k/4\), k = 2, 3, ⋯ , 4N. Let us call the bond with maturity t k the kth bond, and its value is denoted by V bk (r, t). In order to have the value of the kth bond, we solve the problem (5.63):

$$\displaystyle{\left \{\begin{array}{ll} { \partial V _{bk} \over \partial t} +{ 1 \over 2} {w}^{2}{ {\partial }^{2}V _{bk} \over \partial {r}^{2}} + (u -\lambda w){ \partial V _{bk} \over \partial r} - rV _{bk} = 0,\quad &r_{l} \leq r \leq r_{u}, \\ &t_{k-1} \leq t \leq t_{k}, \\ V _{bk}(r,t_{k}) = \left (1 + r_{c}/4\right )Q, &r_{l} \leq r \leq r_{u}. \end{array} \right.}$$

After we have all the values of the bonds, we can obtain the total value of the 4N − 1 caplets by solving the problem (5.64):

$$\displaystyle{\left \{\begin{array}{ll} { \partial V _{c} \over \partial t} +{ 1 \over 2} {w}^{2}{ {\partial }^{2}V _{c} \over \partial {r}^{2}} + (u -\lambda w){ \partial V _{c} \over \partial r} - rV _{c} & \\ \qquad +\sum \limits _{ k=2}^{4N}\max \left (Q - V _{bk}(r,t_{k-1}),0\right )\delta (t - t_{k-1}) = 0,& \\ &r_{l} \leq r \leq r_{u},\quad {t}^{{\ast}}\leq t \leq t_{4N-1}, \\ V _{c}(r,t_{4N-1}) = 0, &r_{l} \leq r \leq r_{u}. \end{array} \right.}$$

The value \(V _{c}({r}^{{\ast}},{t}^{{\ast}})\) gives the premium of the cap.

The way to solve (5.63) and (5.64) numerically is similar to the way to solve (5.48), namely, by using the scheme (7.12) or modified (7.6). The only difference is that in the problem (5.64) there exist the Dirac delta functions. In this case, the treatment of the Dirac delta function is simple: after \(V _{c}(r,t_{k-1}^{+})\) is obtained, we should let \(V _{c}(r,t_{k-1}^{-}) = V _{c}(r,t_{k-1}^{+}) +\max \left (Q - V _{bk}(r,t_{k-1}),0\right )\) and then continue the computation by using the scheme (7.12) or modified (7.6). We take Q = 100, N = 5 years, and r c  = 0, 0. 002, 0. 004, ⋯ , 0. 2 and find these values of caps numerically.Footnote 5 The values of caps as a function of r c are plotted in Fig. 10.5. The curve resembles a price curve of a put option, that is, the price is a decreasing function of r c and changes rapidly near \(r_{c} = {r}^{{\ast}} = 0.05345\).

Fig. 10.5
figure 5

Prices of caps

The way to price floors is similar to the way to price caps. For the floor rate r f  ∈ [0, 0. 2], the floor prices are shown in Fig. 10.6. Their parameters are the same as the caps. The floor resembles a call option, that is, the price is an increasing function of r f and changes rapidly near \(r_{f} = {r}^{{\ast}} = 0.05345\). As soon as we have the prices of a cap with a cap rate r c and a floor with a floor rate r f , the difference between them is the price of a collar for the pair of r c and r f . If the price of a cap is equal to the price of a floor, then the price of the collar with this pair of r c and r f is zero. In Table 10.4, eight such pairs of r c and r f are listed. That is, on November 30, 1995, the price of a collar with one of these pairs of r c and r f should be zero. In Table 10.4, the corresponding prices of caps and floors are also shown.

Fig. 10.6
figure 6

Prices of floors

Table 10.4 Pairs of caps and floors with the same values

Now let us discuss how to price swaps and swaptions, including both European and American swaptions. Let \(V _{s}(r,t;r_{s},T)\) be the value of an N-year swap with a swap rate r s at time t when it is initiated at time T, t ≥ T. Here, the notation is a little different from the notation used in Chap. 5: the time of the swap being initiated, T, is explicitly given in the notation as a parameter because when American swaptions are priced, many swaps with different initial times are involved. As it is described in Sect. 5.5.2, the procedure of determining European swaption price is divided into two steps. The first step is to determine the value of swap with r se as the swap rate for all \(r \in [r_{l},r_{u}]\), \(V _{s}(r,t;r_{se},T)\), and the second step is to obtain the payoff of swaption and to find the value of swaption. In order to get \(V _{s}(r,t;r_{se},T)\), we need to solve the problem (5.61):

$$\displaystyle{\left \{\begin{array}{ll} { \partial V _{s} \over \partial t} +{ 1 \over 2} {w}^{2}{ {\partial }^{2}V _{s} \over \partial {r}^{2}} + (u -\lambda w){ \partial V _{s} \over \partial r} - rV _{s}& \\ & -{ Qr_{se} \over 2} \sum \limits _{k=1}^{2N}\delta (t - T - k/2) + Q\delta (t - T) = 0, \\ &r_{l} \leq r \leq r_{u},\mbox{ }T \leq t \leq T + N, \\ V _{s}(r,T + N) = -Q, &r_{l} \leq r \leq r_{u}. \end{array} \right.}$$

After we obtain \(V _{s}(r,T;r_{se},T)\), using

$$\displaystyle{V _{so}(r,T) =\max \left (V _{s}(r,T;r_{se},T),0\right ),}$$

we can get the payoff of the swaption and then in order to find the value of swaption we need to solve the problem (5.62):

$$\displaystyle{\left \{\begin{array}{ll} { \partial V _{so} \over \partial t} +{ 1 \over 2} {w}^{2}{ {\partial }^{2}V _{so} \over \partial {r}^{2}} + (u -\lambda w){ \partial V _{so} \over \partial r} - rV _{so} = 0,&r_{l} \leq r \leq r_{u},\mbox{ }t \leq T, \\ V _{so}(r,T) =\max \left (V _{s}(r,T;r_{se},T),0\right ), &r_{l} \leq r \leq r_{u}\\ \end{array} \right.}$$

from t = T to t = 0. \(V _{so}({r}^{{\ast}},0)\) gives today’s value of the European swaption.

For an American swaption, its value V so (r, t) at any time t ∈ [0, T] must be greater than or equal to \(\max \left (V _{s}(r,t;r_{se},t),0\right )\):

$$\displaystyle{ V _{so}(r,t) \geq \max \left (V _{s}(r,t;r_{se},t),0\right ). }$$
(10.18)

Therefore, in order to obtain V so (r, t), we need to solve the following linear complementarity problem:

$$\displaystyle{ \left \{\begin{array}{l} \min {\biggl ( -{ \partial V _{so} \over \partial t} -{ 1 \over 2} {w}^{2}{ {\partial }^{2}V _{so} \over \partial {r}^{2}} - (u -\lambda w){ \partial V _{so} \over \partial r} + rV _{so},\;\biggr.} \\ {\biggl.V _{so}(r,t) -\max \left (V _{s}(r,t;r_{se},t),0\right )\biggr )} = 0, \\ V _{so}(r,T) =\max \left (V _{s}(r,T;r_{se},T),0\right ),\end{array} \right. }$$
(10.19)

where t ∈ [0, T] and \(r \in [r_{l},r_{u}]\). In order to have \(V _{s}(r,t;r_{se},t)\), we need to solve (5.61) with T = t from t + N to t when V so (r, t) for time t needs to be determined. Of course, this LC problem can also be formulated as a free-boundary problem. Readers are asked to write down the free-boundary problem for this case as an exercise.

The problems (5.62) and (10.19) can be solved by the scheme (7.12) or modified (7.6). In Table 10.5, we list some numerical results on European and American swaptions. The exercise swap rates r se are 0.05335, 0.05423, 0.05506, 0.05712 for N = 2, 3, 5, 10, respectively. The other parameters are given in the table.

Table 10.5 Prices of European and American swaptions with Q = 100

3 Pricing Derivatives with Multi-Factor Models

3.1 Determining Models from the Market Data

In Sect. 5.6, a three-factor interest rate model was proposed. In this section, we will discuss implicit finite-difference methods for the three-factor interest rate derivative problems and some other related problems. In order to use that model to price an interest rate derivative, we need to know how to find the payoff of the derivative and to determine those coefficients in the partial differential equation (5.83). In this subsection, we will discuss these two problems, and the next subsection is devoted to implicit finite-difference methods.

Suppose we want to price a half-year option on five-year swaps with an exercise swap rate r se . Assume the day we want to price the swaption (the option on swaps) to be denoted as t = 0. Thus, according to the notation given in Sect. 5.5.2, T = 0. 5 and N = 5. 

First, let us discuss how to determine the final value. On the market, the prices of 3-month, 6-month, 1-year, 2-year, 3-year and 5-year zero-coupon bonds are given every day. Set

$$\displaystyle{T_{1}^{{\ast}} = 0.25,\;T_{ 2}^{{\ast}} = 0.5,\;T_{ 3}^{{\ast}} = 1,\;T_{ 4}^{{\ast}} = 2\;,T_{ 5}^{{\ast}} = 3,\;\mbox{ and }\;T_{ 6}^{{\ast}} = 5,}$$

let Z i denote the price of the bond with maturity \(T_{i}^{{\ast}}\), and define

$$\displaystyle{S_{i} = Z_{i}/T_{i}^{{\ast}},\quad i = 1,2,\cdots \,,6.}$$

Suppose we have these values on a period of L days and let S i, l stand for the value of S i at the lth day, l = 1, 2, ⋯ , L. By \(b_{i}^{2}\) and \(b_{i}b_{j}\rho _{i,j}\), we denote the variance of S i and the covariance between S i and S j , respectively. From statistics, we know that \(b_{i}^{2}\) and ρ i, j can be estimated by

$$\displaystyle\begin{array}{rcl} b_{i}^{2}& =& \frac{1} {L - 1}\sum \limits _{l=1}^{L}{\left (S_{ i,l} - \frac{1} {L}\sum \limits _{l=1}^{L}S_{ i,l}\right )}^{2} {}\\ & =& \frac{1} {L - 1}\left [\sum \limits _{l=1}^{L}{\left (S_{ i,l}\right )}^{2} - \frac{1} {L}{\left (\sum \limits _{l=1}^{L}S_{ i,l}\right )}^{2}\right ] {}\\ \end{array}$$

and

$$\displaystyle\begin{array}{rcl} \rho _{ij}& =& \frac{\sum \limits _{l=1}^{L}\left (S_{i,l} -{ 1 \over L} \sum \limits _{l=1}^{L}S_{i,l}\right )\left (S_{j,l} -{ 1 \over L} \sum \limits _{l=1}^{L}S_{j,l}\right )} {\sqrt{\left [\sum \limits _{l=1 }^{L }{\left (S_{i,l } - 1 L\sum \limits _{l=1}^{L}S_{i,l}\right )}^{2} \times \sum \limits _{l=1}^{L}{\left (S_{j,l} - 1 L\sum \limits _{l=1}^{L}S_{j,l}\right )}^{2}\right ]}} {}\\ & =& \frac{\sum \limits _{l=1}^{L}\left (S_{i,l}S_{j,l}\right ) -{ 1 \over L} \left (\sum \limits _{l=1}^{L}S_{i,l} \times \sum \limits _{l=1}^{L}S_{j,l}\right )} {\sqrt{\left [\sum \limits _{l=1 }^{L }{\left (S_{i,l } \right ) }^{2 } - 1 L{\left (\sum \limits _{l=1}^{L}S_{i,l}\right )}^{2}\right ]\left [\sum \limits _{l=1}^{L}{\left (S_{j,l}\right )}^{2} - 1 L{\left (\sum \limits _{l=1}^{L}S_{j,l}\right )}^{2}\right ]}}. {}\\ \end{array}$$

Using the data for the period from January 4, 1982, to February 15, 2002, we obtain

$$\displaystyle\begin{array}{rcl} \mathbf{B}& =& \left [\begin{array}{cccc} b_{1}^{2} & b_{1}b_{2}\rho _{1,2} & \cdots &b_{1}b_{6}\rho _{1,6} \\ b_{1}b_{2}\rho _{1,2} & b_{2}^{2} & \cdots &b_{2}b_{6}\rho _{2,6}\\ \vdots & \vdots & \ddots & \vdots \\ b_{1}b_{6}\rho _{1,6} & b_{2}b_{6}\rho _{2,6} & \cdots & b_{6}^{2} \end{array} \right ] {}\\ & =& 1{0}^{-3}\left [\begin{array}{cccccc} 0.4644&0.4758&0.4637&0.4224&0.3776&0.2993\\ 0.4758 &0.4916 &0.4818 &0.4413 &0.3956 &0.3145 \\ 0.4637&0.4818&0.4760&0.4392&0.3952&0.3161\\ 0.4224 &0.4413 &0.4392 &0.4109 &0.3724 &0.3014 \\ 0.3776&0.3956&0.3952&0.3724&0.3392&0.2766\\ 0.2993 &0.3145 &0.3161 &0.3014 &0.2766 &0.2289 \end{array} \right ].{}\\ \end{array}$$

By the QR method given in Sect. 6.2.4 or other methods, we can find the eigenvalues and the unit eigenvectors of B. As soon as we have them, B can be rewritten as

$$\displaystyle{\mathbf{B} ={ \mathbf{A}}^{T }\mathbf{C}\mathbf{A},}$$

where

$$\displaystyle{\mathbf{A} = \left [\begin{array}{rrrrrr} 0.4366& 0.4533& 0.4479& 0.4151& 0.3745& 0.3011\\ - 0.5426 & - 0.3546 & - 0.0918 & 0.2650 & 0.4190 & 0.5706 \\ - 0.5871& 0.1231& 0.5461& 0.2779& - 0.0121& - 0.5143\\ - 0.3980 & 0.6808 & 0.0016 & - 0.4305 & - 0.1994 & 0.3912 \\ 0.1082& - 0.4337& 0.7019& - 0.4366& - 0.1869& 0.2864\\ - 0.0031 & 0.0448 & 0.0113 & - 0.5516 & 0.7806 & - 0.2902 \end{array} \right ]}$$

and

$$\displaystyle{\begin{array}{l} \mathbf{C} = 1{0}^{-3} \times \mbox{ diag }(2.366,0.04109,0.003240, \\ 3.953 \times 1{0}^{-4},1.996 \times 1{0}^{-4},4.498 \times 1{0}^{-5}). \end{array} }$$

Because the last three components of C are very small compared with the first three components, the six random variables, S 1, S 2, ⋯ , S 6, almost depend on only three variables. Because

$$\displaystyle{\left \vert \begin{array}{ccc} a_{1,1} & a_{1,4} & a_{1,6} \\ a_{2,1} & a_{2,4} & a_{2,6} \\ a_{3,1} & a_{3,4} & a_{3,6} \end{array} \right \vert = \left \vert \begin{array}{rrr} 0.4366&0.4151& 0.3011\\ - 0.5426 &0.2650 & 0.5706 \\ - 0.5871&0.2779& - 0.5143 \end{array} \right \vert \approx -0.3822\neq 0,}$$

we can choose \(S_{1},S_{4},\) and S 6 as the three independent components, which will be denoted by \(S_{i_{1}},S_{i_{2}}\), and \(S_{i_{3}}\) in what follows. From Sect. 5.6.2, we know that the values of S i , \(i\neq i_{1},i_{2}\), and i 3, are uniquely determined by Eq. (5.67) for a given set of \(S_{i_{1}},S_{i_{2}}\), and \(S_{i_{3}}\) when A is found and \(S_{i}^{{\ast}},i = 1,2,\cdots \,,6\), are specified.Footnote 6 Based on the six values of S 1, S 2, ⋯ , S 6, a zero-coupon bond curve with a maximum maturity \(T_{\max }^{{\ast}} = 5\) can be found by using the cubic spline interpolation. Assume that for the period \(t \in \left [0,T\right ] = \left [0,0.5\right ]\), \(S_{i}^{{\ast}}\) are constants, for example, are equal to the values of zero-coupon bonds at t = 0. Thus, the possible zero-coupon bond curves for any \(t \in \left [0,T\right ]\) are the same, i.e.,

$$\displaystyle{\bar{Z}\left ({T}^{{\ast}};Z_{ i_{1}},Z_{i_{2}},Z_{i_{3}},t\right ) =\bar{ Z}\left ({T}^{{\ast}};Z_{ i_{1}},Z_{i_{2}},Z_{i_{3}},0\right ).}$$

Here in order to indicate the dependence of the zero-coupon bond curves on \(Z_{i_{1}},Z_{i_{2}},Z_{i_{3}},\) instead of \(\bar{Z}\left ({T}^{{\ast}};t\right )\), we use \(\bar{Z}\left ({T}^{{\ast}};Z_{i_{1}},Z_{i_{2}},Z_{i_{3}},t\right ).\) As soon as we have a zero-coupon bond curve, using the expression (5.55) with \(r_{s} = r_{se}\):

$$\displaystyle{Q\left [1 - Z\left (T;T + N\right ) -{ r_{se} \over 2} \sum \limits _{k=1}^{2N}Z\left (T;T + k/2\right )\right ],}$$

we can determine the value of a swap with an exercise rate r se . Here, Q is the notional principal and \(Z(T;T + k/2) =\bar{ Z}(k/2;Z_{i_{1}},Z_{i_{2}},Z_{i_{3}},T) =\bar{ Z}(k/2;Z_{i_{1}},Z_{i_{2}},Z_{i_{3}},0)\). Therefore, the final value of a swaption is

$$\displaystyle{ Q\max \left (1 -\bar{ Z}\left (N;Z_{i_{1}},Z_{i_{2}},Z_{i_{3}},0\right ) -\frac{r_{se}} {2} \sum \limits _{k=1}^{2N}\bar{Z}\left (k/2;Z_{ i_{1}},Z_{i_{2}},Z_{i_{3}},0\right ),\;0\right ). }$$
(10.20)
Fig. 10.7
figure 7

Comparison between the market data and the theoretical values of zero-coupon bonds

Before discussing how to determine the coefficients in the partial differential equation, we would like to give some information about how these zero-coupon bond curves generated above are close to the real zero-coupon bond curves. Suppose that one day, the prices of zero-coupon bonds are

$$\displaystyle{ \left \{\begin{array}{lll} Z_{1} = 0.9811,\quad &Z_{2} = 0.9559,\quad &Z_{3} = 0.9047, \\ Z_{4} = 0.7979,\quad &Z_{5} = 0.7068,\quad &\mbox{ and }\quad Z_{6} = 0.5475,\end{array} \right. }$$
(10.21)

which correspond to the following interest rates:

$$\displaystyle{\left \{\begin{array}{lll} r_{1} = 0.0776,\quad &r_{2} = 0.0923,\quad &r_{3} = 0.1027, \\ r_{4} = 0.1161,\quad &r_{5} = 0.1191,\quad &\mbox{ and }\quad r_{6} = 0.1242.\end{array} \right.}$$

Here, r i is associated with Z i by the following expression:

$$\displaystyle{Z_{i} ={ \left (1 + r_{i}/2\right )}^{-2N_{i} },}$$

where N i is the maturity of the ith zero-coupon bond. From this set of data, we can determine a class of zero-coupon bond curves with \(Z_{i_{1}},Z_{i_{2}},Z_{i_{3}}\) as parameters. For any day in the period from January 4, 1982, to February 15, 2002, we take the values of \(Z_{i_{1}},Z_{i_{2}},Z_{i_{3}}\) as input and find a zero-coupon bond curve from the class. From the zero-coupon bond curve, we obtain the values of Z i , \(i\neq i_{1},i_{2}\), and i 3, and the differences between the values determined from the curve and the values from the original market data. We do this for every day. The average value of the differences divided by (1 − Z i ), \(i\neq i_{1},i_{2}\), and i 3, is 0.005. The same thing to the swap rate and to the value of the swaption on a 5-year swap with r se  = 0. 1225 is also done. The maximum difference between the swap rates from the market curve and the model curve is 0.0004 (4 basis points), and the average difference is 0.00008 (0.8 basis points). The average error of the swaption value is 0.02 if the notional principal is 100. Therefore, we may conclude that these zero-coupon bond curves reflect the market situation.

Now let us discuss how to determine the coefficients in the partial differential equation. Suppose that derivative securities depend on \(Z_{i_{1}},Z_{i_{2}},Z_{i_{3}}\), and t. Let

$$\displaystyle{ \left \{\begin{array}{l} \xi _{1} ={ Z_{i_{1}} - Z_{i_{1},l} \over 1 - Z_{i_{1},l}}, \\ \xi _{2} ={ Z_{i_{2}} - Z_{i_{2},l} \over Z_{i_{1}} - Z_{i_{2},l}}, \\ \xi _{3} ={ Z_{i_{3}} - Z_{i_{3},l} \over Z_{i_{2}} - Z_{i_{3},l}}, \end{array} \right. }$$
(10.22)

where \(Z_{i_{1},l},Z_{i_{2},l}\), and \(Z_{i_{3},l}\) are minimums of \(Z_{i_{1}},Z_{i_{2}},Z_{i_{3}}\) and we set \(Z_{i_{1},l} = 0.9597\), \(Z_{i_{2},l} = 0.7209\), and \(Z_{i_{3},l} = 0.4332\), which are a little less than the observed minimums 0.9634, 0.7463, and 0.4847, respectively. From Sect. 5.6.3, we know that the value of a derivative security, \(V \left (\xi _{1},\xi _{2},\xi _{3},t\right )\), satisfies the problem (5.83), where coefficients depends on \(r,\tilde{\sigma }_{1},\tilde{\sigma }_{2},\tilde{\sigma }_{3},\tilde{\rho }_{1,2},\tilde{\rho }_{1,3},\tilde{\rho }_{2,3}\) besides ξ 1, ξ 2, and ξ 3. Therefore, in order to use that equation, we have to know \(r,\tilde{\sigma }_{1},\tilde{\sigma }_{2},\tilde{\sigma }_{3},\tilde{\rho }_{1,2},\tilde{\rho }_{1,3},\) and \(\tilde{\rho }_{2,3}\). It is clear that r can be determined by the slope of zero-coupon bond curves at the left end, i.e.,

$$\displaystyle{ r\left (\xi _{1},\xi _{2},\xi _{3},t\right ) = -\frac{\partial \bar{Z}} {\partial {T}^{{\ast}}}\left (0;Z_{i_{1}},Z_{i_{2}},Z_{i_{3}},0\right ), }$$
(10.23)

where

$$\displaystyle{ \left \{\begin{array}{l} Z_{i_{1}} = Z_{i_{1},l} +\xi _{1}\left (1 - Z_{i_{1},l}\right ), \\ Z_{i_{2}} = Z_{i_{2},l} +\xi _{2}\left [Z_{i_{1},l} +\xi _{1}\left (1 - Z_{i_{1},l}\right ) - Z_{i_{2},l}\right ], \\ Z_{i_{3}} = Z_{i_{3},l} +\xi _{3}\left \{Z_{i_{2},l} +\xi _{2}\left [Z_{i_{1},l} +\xi _{1}\left (1 - Z_{i_{1},l}\right ) - Z_{i_{2},l}\right ] - Z_{i_{3},l}\right \}. \end{array} \right. }$$
(10.24)

As we know, for \(\tilde{\sigma }_{1},\tilde{\sigma }_{2},\tilde{\sigma }_{3}\) we need to require the condition (5.85):

$$\displaystyle{\left \{\begin{array}{l} \tilde{\sigma }_{1}\left (0,\xi _{2},\xi _{3},t\right ) =\tilde{\sigma } _{1}\left (1,\xi _{2},\xi _{3},t\right ) = 0, \\ \tilde{\sigma }_{2}\left (\xi _{1},0,\xi _{3},t\right ) =\tilde{\sigma } _{2}\left (\xi _{1},1,\xi _{3},t\right ) = 0, \\ \tilde{\sigma }_{3}\left (\xi _{1},\xi _{2},0,t\right ) =\tilde{\sigma } _{3}\left (\xi _{1},\xi _{2},1,t\right ) = 0. \end{array} \right.}$$

Let us assume \(\tilde{\sigma }_{i}\) to be in the form

$$\displaystyle{ \tilde{\sigma }_{i}\left (\xi _{1},\xi _{2},\xi _{3},t\right ) =\tilde{\sigma } _{i}\left (\xi _{i}\right ) =\tilde{\sigma } _{i,0} \frac{1 -{\left (1 - 2\xi _{i}\right )}^{2}} {1 - p_{i}{\left (1 - 2\xi _{i}\right )}^{2}},\mbox{ }i = 1,2,3, }$$
(10.25)

where \(\tilde{\sigma }_{i,0}\) and p i are positive constants, and \(p_{i} \in \left (0,1\right )\). It is clear that in this case, condition (5.85) is fulfilled. On each day, we have the values of \(Z_{i_{1}},Z_{i_{2}},Z_{i_{3}}\). Because \(\xi _{1},\xi _{2},\xi _{3}\) are defined by the formula (10.22), we can also have the values of \(\xi _{1},\xi _{2},\xi _{3}\) every day. Therefore, we can find \(\tilde{\sigma }_{i}\left (\xi _{i}\right )\) from the data on the market using the method described in Sect. 6.3.2 with

$$\displaystyle{g\left (\xi _{i}\right ) = \frac{1 -{\left (1 - 2\xi _{i}\right )}^{2}} {1 - p_{i}{\left (1 - 2\xi _{i}\right )}^{2}}\quad \mbox{ and }\quad N = 0.}$$

For \(\tilde{\rho }_{1,2},\tilde{\rho }_{1,3}\), and \(\tilde{\rho }_{2,3}\), there is no requirement. We assume that they are constant and that the value can also be obtained using the method described in Sect. 6.3.2.

Taking \(p_{1} = p_{2} = p_{3} = 0.8\) and using the data on the market for the period between January 4, 1982, and February 15, 2002, we obtain

$$\displaystyle{\tilde{\sigma }_{1,0} = 0.09733,\quad \tilde{\sigma }_{2,0} = 0.08622,\quad \tilde{\sigma }_{3,0} = 0.08148}$$

and

$$\displaystyle{\tilde{\rho }_{1,2} = 0.5682,\quad \tilde{\rho }_{1,3} = 0.4996,\quad \tilde{\rho }_{2,3} = 0.8585.}$$

3.2 Numerical Methods and Results

From Sect. 5.6, we know that for a European swaption, \(V (\xi _{1},\xi _{2},\xi _{3},t)\) satisfies the problem (5.83):

$$\displaystyle{\left \{\begin{array}{l} { \partial V \over \partial t} + \mathbf{L}_{3\xi }V = 0\quad \mbox{ on }\tilde{\Omega } \times [0,T], \\ V (\xi _{1},\xi _{2},\xi _{3},T) = V _{T}\left (Z_{i_{1}}(\xi _{1}),Z_{i_{2}}(\xi _{1},\xi _{2}),Z_{i_{3}}(\xi _{1},\xi _{2},\xi _{3})\right )\quad \mbox{ on }\tilde{\Omega }, \end{array} \right.}$$

where \(\tilde{\Omega }\) is the domain [0, 1] ×[0, 1] ×[0, 1] in the \((\xi _{1},\xi _{2},\xi _{3})\)-space, L 3ξ is defined by

$$\displaystyle\begin{array}{rcl} \mathbf{L}_{3\xi }& =& \frac{1} {2}\tilde{\sigma }_{1}^{2} \frac{{\partial }^{2}} {\partial \xi _{1}^{2}} + \frac{1} {2}\tilde{\sigma }_{2}^{2} \frac{{\partial }^{2}} {\partial \xi _{2}^{2}} + \frac{1} {2}\tilde{\sigma }_{3}^{2} \frac{{\partial }^{2}} {\partial \xi _{3}^{2}} {}\\ & & +\tilde{\sigma }_{1}\tilde{\sigma }_{2}\tilde{\rho }_{1,2} \frac{{\partial }^{2}} {\partial \xi _{1}\partial \xi _{2}} +\tilde{\sigma } _{1}\tilde{\sigma }_{3}\tilde{\rho }_{1,3} \frac{{\partial }^{2}} {\partial \xi _{1}\partial \xi _{3}} +\tilde{\sigma } _{2}\tilde{\sigma }_{3}\tilde{\rho }_{2,3} \frac{{\partial }^{2}} {\partial \xi _{2}\partial \xi _{3}} {}\\ & & +b_{1} \frac{\partial } {\partial \xi _{1}} + b_{2} \frac{\partial } {\partial \xi _{2}} + b_{3} \frac{\partial } {\partial \xi _{3}} - r {}\\ \end{array}$$

and \(Z_{i_{1}}(\xi _{1})\), \(Z_{i_{2}}(\xi _{1},\xi _{2})\), \(Z_{i_{3}}(\xi _{1},\xi _{2},\xi _{3})\) are given by expression (10.24). For b 1, b 2, and b 3 we have expression (5.86):

$$\displaystyle{\left \{\begin{array}{lll} b_{1} & =&{ rZ_{i_{1}} \over 1 - Z_{i_{1},l}}, \\ b_{2} & =&{ r\left (Z_{i_{2}} - Z_{i_{1}}\xi _{2}\right ) \over Z_{i_{1}} - Z_{i_{2},l}} -{ \tilde{\sigma }_{1}\tilde{\sigma }_{2}\tilde{\rho }_{1,2}\left (1 - Z_{i_{1},l}\right ) \over Z_{i_{1}} - Z_{i_{2},l}}, \\ b_{3} & =&{ r\left (Z_{i_{3}} - Z_{i_{2}}\xi _{3}\right ) \over Z_{i_{2}} - Z_{i_{3},l}} -{ \tilde{\sigma }_{1}\tilde{\sigma }_{3}\tilde{\rho }_{1,3}\xi _{2}\left (1 - Z_{i_{1},l}\right ) \over Z_{i_{2}} - Z_{i_{3},l}} -{ \tilde{\sigma }_{2}\tilde{\sigma }_{3}\tilde{\rho }_{2,3}\left (Z_{i_{1}} - Z_{i_{2},l}\right ) \over Z_{i_{2}} - Z_{i_{3},l}} \end{array} \right.}$$

and r is given by the formula (10.23).

Let

$$\displaystyle{\tau = T - t\quad \mbox{ and }\quad \overline{V }(\xi _{1},\xi _{2},\xi _{3},\tau ) = V (\xi _{1},\xi _{2},\xi _{3},T-\tau ),}$$

the above problem becomes

$$\displaystyle{ \left \{\begin{array}{l} { \partial \overline{V } \over \partial \tau } = \mathbf{L}_{3\xi }\overline{V }\quad \mbox{ on }\tilde{\Omega } \times [0,T], \\ \overline{V }(\xi _{1},\xi _{2},\xi _{3},0) = V _{T}\left (Z_{i_{1}}(\xi _{1}),Z_{i_{2}}(\xi _{1},\xi _{2}),Z_{i_{3}}(\xi _{1},\xi _{2},\xi _{3})\right )\quad \mbox{ on }\tilde{\Omega }. \end{array} \right. }$$
(10.26)

In the last subsection, we discussed how to determine the final value \(V _{T}\left (Z_{i_{1}}(\xi _{1}),Z_{i_{2}}(\xi _{1},\xi _{2}),Z_{i_{3}}(\xi _{1},\xi _{2},\xi _{3})\right )\) for a swaption, which is given by the expression (10.20), and find r, \(\tilde{\sigma }_{1}\), \(\tilde{\sigma }_{2}\), \(\tilde{\sigma }_{3}\), \(\tilde{\rho }_{1,2}\), \(\tilde{\rho }_{1,3}\), \(\tilde{\rho }_{2,3}\), \(Z_{i_{1},l}\), \(Z_{i_{2},l}\), and \(Z_{i_{3},l}\) from the market. Therefore, we have everything we need in order to solve (10.26) numerically.

Suppose that M, L, I, and N are given integers. Let \(\Delta \xi _{1} = 1/M\), \(\Delta \xi _{2} = 1/L\), \(\Delta \xi _{3} = 1/I\), and \(\Delta \tau = T/N\) and u m, l, i n be an approximate value of \(\overline{V }\) at \(\xi _{1} = m\Delta \xi _{1}\), \(\xi _{2} = l\Delta \xi _{2}\), \(\xi _{3} = i\Delta \xi _{3}\), and τ = nΔτ. Here, m = 0, 1, ⋯ , M, l = 0, 1, ⋯ , L, i = 0, 1, ⋯ , I and n = 0, 1, ⋯ , N.

The partial differential equation in the problem (10.26) is discretized at \(\tau = (n + 1/2)\Delta \tau\), \(n = 0,1,\cdots \,,N - 1\). At any point, the partial derivative with respect to t is discretized by the central difference:

$$\displaystyle{{ \partial \overline{V }_{m,l,i}^{n+1/2} \over \partial \tau } \approx { u_{m,l,i}^{n+1} - u_{m,l,i}^{n} \over \Delta \tau }.}$$

At any interior point, in \(\tilde{\Omega }\), first- and second-order partial derivatives with respect to ξ i are approximated by central schemes. For example,

$$\displaystyle{{ \partial \overline{V }_{m,l,i}^{n+1/2} \over \partial \xi _{1}} \approx { 1 \over 2} \left ({ u_{m+1,l,i}^{n+1} - u_{m-1,l,i}^{n+1} \over 2\Delta \xi _{1}} +{ u_{m+1,l,i}^{n} - u_{m-1,l,i}^{n} \over 2\Delta \xi _{1}} \right )}$$

and

$$\displaystyle{{ {\partial }^{2}\overline{V }_{m,l,i}^{n+1/2} \over \partial \xi _{1}^{2}} \approx { 1 \over 2} \left ({ u_{m+1,l,i}^{n+1} - 2u_{m,l,i}^{n+1} + u_{m-1,l,i}^{n+1} \over \Delta \xi _{1}^{2}} +{ u_{m+1,l,i}^{n} - 2u_{m,l,i}^{n} + u_{m-1,l,i}^{n} \over \Delta \xi _{1}^{2}} \right ).}$$

Mixed second-order partial derivatives are discretized by the central finite-difference for mixed partial derivatives. For example,

$$\displaystyle\begin{array}{rcl}{ {\partial }^{2}\overline{V }_{m,l,i}^{n+1/2} \over \partial \xi _{1}\partial \xi _{2}} & \approx &{ 1 \over 2} \left ({ u_{m+1,l+1,i}^{n+1} - u_{m+1,l-1,i}^{n+1} - u_{m-1,l+1,i}^{n+1} + u_{m-1,l-1,i}^{n+1} \over 4\Delta \xi _{1}\Delta \xi _{2}} \right. {}\\ & & \left.+{ u_{m+1,l+1,i}^{n} - u_{m+1,l-1,i}^{n} - u_{m-1,l+1,i}^{n} + u_{m-1,l-1,i}^{n} \over 4\Delta \xi _{1}\Delta \xi _{2}} \right ). {}\\ \end{array}$$

At the boundary ξ 1 = 0, because \(\tilde{\sigma }_{1} = 0\), only \({ \partial \over \partial \xi _{1}}\), \({ \partial \over \partial \xi _{2}}\), \({ \partial \over \partial \xi _{3}}\), \({ {\partial }^{2} \over \partial \xi _{2}^{2}}\), \({ {\partial }^{2} \over \partial \xi _{3}^{2}}\), and \({ {\partial }^{2} \over \partial \xi _{2}\partial \xi _{3}}\) appear in the partial differential equation. In this case, we can always deal with \({ \partial \over \partial \xi _{1}}\) by the second-order one-sided scheme:

$$\displaystyle{{ \partial \overline{V }_{0,l,i}^{n+1/2} \over \partial \xi _{1}} \approx { 1 \over 2} \left ({ -u_{2,l,i}^{n+1} + 4u_{1,l,i}^{n+1} - 3u_{0,l,i}^{n+1} \over 2\Delta \xi _{1}} +{ -u_{2,l,i}^{n} + 4u_{1,l,i}^{n} - 3u_{0,l,i}^{n} \over 2\Delta \xi _{1}} \right )}$$

because of b 1 ≥ 0 at ξ 1 = 0. If ξ 1 = 0, ξ 2≠0, ξ 2≠1, ξ 3≠0, and ξ 3≠1, then \({ \partial \over \partial \xi _{2}}\), \({ \partial \over \partial \xi _{3}}\), \({ {\partial }^{2} \over \partial \xi _{2}^{2}}\), \({ {\partial }^{2} \over \partial \xi _{3}^{2}}\), and \({ {\partial }^{2} \over \partial \xi _{2}\partial \xi _{3}}\) can still be discretized by central schemes. If ξ 1 = 0, ξ 3≠0, ξ 3≠1, and ξ 2 = 0 or ξ 2 = 1, then both \(\tilde{\sigma }_{1}\) and \(\tilde{\sigma }_{2}\) are equal to zero and only \({ \partial \over \partial \xi _{1}}\), \({ \partial \over \partial \xi _{2}}\), \({ \partial \over \partial \xi _{3}}\), and \({ {\partial }^{2} \over \partial \xi _{3}^{2}}\) are left. The treatment of \({ \partial \over \partial \xi _{1}}\), \({ \partial \over \partial \xi _{3}}\), and \({ {\partial }^{2} \over \partial \xi _{3}^{2}}\) is unchanged, and \({ \partial \over \partial \xi _{2}}\) is approximated by the second-order one-sided differences. For example, at ξ 2 = 1, we can use the following approximation:

$$\displaystyle\begin{array}{rcl}{ \partial \overline{V }_{m,L,i}^{n+1/2} \over \partial \xi _{2}} & \approx &{ 1 \over 2} \left ({ 3u_{m,L,i}^{n+1} - 4u_{m,L-1,i}^{n+1} + u_{m,L-2,i}^{n+1} \over 2\Delta \xi _{2}} \right. {}\\ & & \left.+{ 3u_{m,L,i}^{n} - 4u_{m,L-1,i}^{n} + u_{m,L-2,i}^{n} \over 2\Delta \xi _{2}} \right ) {}\\ \end{array}$$

because of b 2 ≤ 0 at ξ 2 = 1. If ξ 1 = 0, ξ 2 = 0 or 1, and ξ 3 = 0 or 1, then \(\tilde{\sigma }_{1} =\tilde{\sigma } _{2} =\tilde{\sigma } _{3} = 0\) and only \({ \partial \over \partial \xi _{1}}\), \({ \partial \over \partial \xi _{2}}\), and \({ \partial \over \partial \xi _{3}}\) are left. In this case, all of them need to be dealt with by proper one-sided second-order differences.

For the other boundaries, the situations are similar. All the approximations have a second-order accuracy. In order for the truncation error of the finite-difference equations to have a second-order accuracy, all the coefficients need to take values at the point: \(\xi _{1} = m\Delta \xi _{1}\), \(\xi _{2} = l\Delta \xi _{2}\), \(\xi _{3} = i\Delta \xi _{3}\), and \(\tau = (n + 1/2)\Delta \tau\), and the term \(r\overline{V }\) should be approximated by

$$\displaystyle{{ 1 \over 2} \left (r_{m,l,i}^{n+1}u_{ m,l,i}^{n+1} + r_{ m,l,i}^{n}u_{ m,l,i}^{n}\right ).}$$

The number of the finite-difference equations for the time level \(\tau = (n + 1/2)\Delta \tau\) is \((M + 1) \times (L + 1) \times (I + 1)\). If all the values \(u_{m,l,i}^{n}\) are known, the number of unknowns \(u_{m,l,i}^{n+1}\) is equal to the number of the equations. Thus, \(u_{m,l,i}^{n+1}\) can be determined by the system. It is clear that this system is linear. This system is quite large and usually solved by iteration methods, for example, by successive over relaxation described in Sect. 6.2.2 because iteration methods need less memory space and are usually more efficient than direct methods for this case. The initial condition \(\overline{V }(\xi _{1},\xi _{2},\xi _{3},0) = V _{T}\left (Z_{i_{1}}(\xi _{1}),Z_{i_{2}}(\xi _{1},\xi _{2}),Z_{i_{3}}(\xi _{1},\xi _{2},\xi _{3})\right )\) gives \(u_{m,l,i}^{0}\). Thus, the computation can start with n = 0 and continue for \(n = 1,2,\cdots \,,N - 1\) successively. Finally, we obtain \(u_{m,l,i}^{N}\), the price of the derivative security at time t = 0.

This problem can also be solved by explicit schemes. If the partial differential equation is discretized at τ = nΔτ and the time derivative is approximated by the forward finite-difference, then we have an explicit scheme. In this case, Δτ should be small enough so that the stability of computation is guaranteed.

For American swaptions, the value must be greater than or equal to the constraint. In the model here, the value of the constraint does not depend on t and equals to condition (10.20). Therefore, for American swaptions, the method needs to be modified in the following way. At each time step, we should choose the maximum between the computed value by the PDE and the constraint (10.20) as the value of an American swaption.

Consider an American swaption with r se  = 0. 1225, T = 0. 5, and N = 5. We want to have the price of the swaption today. Suppose that the prices of zero-coupon bonds today are given by the expression (10.21), then we can use the numerical methods described here to find the price of the American swaption value. Its value today for ξ 1 = 0. 25, 0. 5, 0. 75, 0 ≤ ξ 2 ≤ 1, and 0 ≤ ξ 3 ≤ 1 is shown by the right three graphs in Fig. 10.8. There, the circles are the approximate locations of the free boundary. The final value is also plotted on the left-hand side for comparison. We can see that the derivative of the final value is discontinuous and that for the solution at t = 0 it is continuous. The result shown in this figure is obtained by the implicit scheme. When for \(\tilde{\sigma }_{i}\), i = 1, 2, 3 and \(\tilde{\rho }_{i,j}\), i, j = 1, 2, 3, we use more complicated expressions, the procedure of evaluating the interest rate derivatives is the same. For the details of the procedure and more results, see [96].

Fig. 10.8
figure 8

The price of a swaption

4 Problems

  1. 1.

    Define

    $$\displaystyle{\mathbf{L}_{r} ={ \partial \over \partial r} \left [f_{1}(r,t){ \partial \over \partial r} \right ] - f_{2}(r,t){ \partial \over \partial r} + f_{3}(r,t).}$$
    1. (a)

      Find an operator \(\mathbf{L}_{r}^{{\ast}}\) such that

      $$\displaystyle{\int _{r_{l}}^{r_{u} }\mathbf{L}_{r}V \,Udr =\int _{ r_{l}}^{r_{u} }\mathbf{L}_{r}^{{\ast}}U\,V dr + \left.\left [f_{ 1}\left (U{ \partial V \over \partial r} - V{ \partial U \over \partial r} \right ) - f_{2}V U\right ]\right \vert _{r_{l}}^{r_{u} }.}$$

      This operator is called the conjugate operator of L r .

    2. (b)

      Suppose

      $$\displaystyle{{ \partial V \over \partial t} = -\mathbf{L}_{r}V,\quad { \partial U \over \partial t} = \mathbf{L}_{r}^{{\ast}}U,\quad f_{ 1}(r_{l},t) = f_{1}(r_{u},t) = 0,}$$

      and

      $$\displaystyle{U(r_{l},t) = U(r_{u},t) = 0.}$$

      Show

      $$\displaystyle{\int _{r_{l}}^{r_{u} }U(r,t)V (r,t)dr = constant.}$$
    3. (c)

      Let \(U(r,0) =\delta (r - {r}^{{\ast}})\) and V (r, T  ∗ ) = 1. Prove that there is the following relation:

      $$\displaystyle{V ({r}^{{\ast}},0;{T}^{{\ast}}) =\int _{ r_{l}}^{r_{u} }U(r,{T}^{{\ast}})dr.}$$

      Here \(V \left (r,t;{T}^{{\ast}}\right )\) stands for the solution \(V \left (r,t\right )\) with \(V \left (r,{T}^{{\ast}}\right ) = 1\).

  2. 2.

    Assume that U(r, t) is the solution of the problem

    $$\displaystyle{\left \{\begin{array}{ll} { \partial U \over \partial t} = \mathbf{L}_{r}^{{\ast}}U, &r_{l} \leq r \leq r_{u},\quad 0 \leq t \leq T_{max}^{{\ast}}, \\ U(r,0) =\delta (r - {r}^{{\ast}}), &r_{l} \leq r \leq r_{u}, \\ U(r_{l},t) = U(r_{u},t) = 0,\quad &0 \leq t \leq T_{max}^{{\ast}},\end{array} \right.}$$

    where

    $$\displaystyle{\mathbf{L}_{r}^{{\ast}} ={ \partial \over \partial r} \left (f_{1}(r,t){ \partial \over \partial r} \right ) +{ \partial \over \partial r} \left (f_{2}(r,t)\right ) - r,\quad f_{1}(r_{u},t) = f_{1}(r_{l},t) = 0.}$$
    1. (a)

      Define \(V ({r}^{{\ast}},0;{T}^{{\ast}}) = \int _{r_{l}}^{r_{u} }U(r,{T}^{{\ast}})dr\), where \({T}^{{\ast}}\in [0,T_{\max }^{{\ast}}].\) Show that we can have such an expression:

      $$\displaystyle{{ {\partial }^{2}V ({r}^{{\ast}},0;{T}^{{\ast}}) \over \partial {{T}^{{\ast}}}^{2}} =\int _{ r_{l}}^{r_{u} }F\left (f_{1},f_{2},r\right )Udr.}$$

      and find the concrete expression of \(F\left (f_{1},f_{2},r\right )\).

    2. (b)

      Show that the solution of the problem

      $$\displaystyle{\left \{\begin{array}{ll} { {\partial }^{2}V ({r}^{{\ast}},0;{T}^{{\ast}}) \over \partial {{T}^{{\ast}}}^{2}} = \int _{r_{l}}^{r_{u} }F\left (f_{1},f_{2},r\right )Udr, \\ { \partial V ({r}^{{\ast}},0;0) \over \partial {T}^{{\ast}}} = -{r}^{{\ast}}, \\ V ({r}^{{\ast}},0;0) = 1.\end{array} \right.}$$

      is \(V ({r}^{{\ast}},0;{T}^{{\ast}}) = \int _{r_{l}}^{r_{u} }U(r,{T}^{{\ast}})dr\).

  3. 3.

    *Consider the following problem

    $$\displaystyle{\left \{\begin{array}{ll} { \partial U \over \partial t} ={ \partial \over \partial r} \left [f_{1}(r,t){ \partial U \over \partial r} \right ] +{ \partial \over \partial r} \left [f_{2}\left (r,t,\lambda (t)\sqrt{f_{1}}\right )U\right ] + f_{3}(r,t)U,& \\ &r_{l} \leq r \leq r_{u},\quad 0 \leq t, \\ U(r,0) =\delta (r - {r}^{{\ast}}), &r_{l} \leq r \leq r_{u}, \\ U(r_{l},t) = 0, &0 \leq t, \\ U(r_{u},t) = 0, &0 \leq t,\end{array} \right.}$$

    where

    $$\displaystyle{f_{1}\left (r,t\right ) \geq 0\quad \mbox{ and}\quad f_{1}\left (r_{l},t\right ) = f_{1}\left (r_{u},t\right ) = 0,}$$

    and

    $$\displaystyle{f_{2}\left (r_{l},t,\lambda (t)\sqrt{f_{1 } (r_{l }, t)}\right ) < 0,\quad f_{2}\left (r_{u},t,\lambda (t)\sqrt{f_{1 } (r_{u }, t)}\right ) > 0.}$$

    Here, λ(t) is a unknown function with a known λ(0). We want to find such a function λ(t) that

    $$\displaystyle{\int _{r_{l}}^{r_{u} }U(r,t)dr = f(t)\quad \quad \mbox{ for any }t \in [0,T_{max}^{{\ast}}],}$$

    where f(t) is a given function with f(0) = 1. Design a second-order numerical method for this purpose.

  4. 4.

    *Design a numerical method for finding the market price of risk by using the bond equation directly and taking the prices of today’s zero-coupon bonds with various maturities as input.

  5. 5.

    Design an implicit second-order accurate finite-difference method based on the bond equation to solve the European bond option problem.

  6. 6.

    Design an explicit first-order accurate finite-difference method based on the bond equation to solve a cap problem.

  7. 7.

    What is the difference between the numerical methods for a cap problem and for a floor problem if the bond equation is adopted.

  8. 8.

    Design an implicit second-order accurate finite-difference method based on the bond equation to solve the European swaption problem.

  9. 9.

    What is the difference between the numerical methods for the European swaption problem and for the American swaption problem formulated as a linear complementarity problem if the bond equation is adopted.

  10. 10.

    Assume that the prices of American swaptions are the solutions of the following linear complementarity problem:

    $$\displaystyle{\left \{\begin{array}{l} \min {\biggl ( -{ \partial V _{so} \over \partial t} -{ 1 \over 2} {w}^{2}{ {\partial }^{2}V _{so} \over \partial {r}^{2}} - (u -\lambda w){ \partial V _{so} \over \partial r} + rV _{so},\;\biggr.} \\ \qquad {\biggl.V _{so}(r,t) -\max \left (V _{s}(r,t;r_{se},t),0\right )\biggr )} = 0, \\ V _{so}(r,T) =\max \left (V _{s}(r,T;r_{se},T),0\right ),\end{array} \right.}$$
    Table 10.6 Problems and sections

    where t ∈ [0, T] and \(r \in [r_{l},r_{u}]\) and \(V _{s}(r,t;r_{se},t)\) is the price of the swap. Suppose that the price of the swap has been found and assume that there is only one free boundary. Formulate this problem as a free-boundary problem and briefly describe how to solve the free-boundary problem by an implicit second-order finite-difference method.

  11. 11.

    *Briefly describe how to solve a European swaption problem numerically by using the three-factor interest rate model.

  12. 12.

    Briefly describe how to determine the value of a bond option by using the three-factor interest rate model for both European and American cases.

  13. 13.

    Briefly describe how to determine the value of a cap by using the three-factor interest rate model.

5 Projects

General Requirements

(A) :

Submit a code or codes in C or C \({}^{++}\) that will work on a computer the instructor can get access to. At the beginning of the code, write down the name of the student and indicate on which computer it works and the procedure to make it work.

(B) :

Each code should use an input file to specify all the problem parameters and the computational parameters for each computation and an output file to store all the results. In an output file, the name of the student, all the problem parameters, and the computational parameters should be given, so that one can know what the results are and how they were obtained. The input file should be submitted with the code.

(C) :

For each case, two results are required. One result is on a 20 × 24 mesh, and the accuracy of the other result will be specified individually. (The error of the solution on a 20 × 24 mesh might be quite large.)

(D) :

Submit results in form of tables. When a result is given, always provide the problem parameters and the computational parameters.

  1. 1.

    Implicit Method (7.6) with Modification at the Boundaries for European bond Options and Swaptions. Suppose

    $$\displaystyle{dr = (0.05345 - r)dt + r(0.2 - r)dX,\quad r_{l} = 0 \leq r \leq r_{u} = 0.2}$$

    and λ(t) has been found and is given as a function in C. Also, assume that today’s short-term interest rate is 0.05345. Write a code to calculate European bond options and a code to calculate European swaptions.

    • For European bond options, give results for the case: E = 0. 95, 1, k = 0. 055, T = 0. 25, 0. 5, and \(T_{b} - T = 1,2\). The requirement on the accuracy of the other result is 0.0001, and the mesh used should be as coarse as possible.

    • For swaptions, give the results for the cases: Q = 100, N = 5, 10, T = 0. 5, 1, 2, r se  = 0. 05507 for N = 5, and r se  = 0. 05766 for N = 10. The requirement on the accuracy of the other result is 0.001, and the mesh used should be as coarse as possible.