Quadratic Finite Element and Preconditioning for Options Pricing in ...

1 downloads 0 Views 395KB Size Report
at the accuracy level of 0.1 cent for the barrier option example tested in the ... Stochastic volatility jump diffusion, barrier option, partial integro-differential equa-.
Quadratic Finite Element and Preconditioning for Options Pricing in the SVCJ Model∗ Ying-Ying Zhang†

Hong-Kui Pang‡

Liming Feng§

Xiao-Qing Jin¶

This version 12/31/2011, Journal of Computational Finance

Abstract. We consider option pricing problems in the stochastic volatility jump diffusion model with correlated and contemporaneous jumps in both the return and the variance processes (SVCJ). The option value function solves a partial integro-differential equation (PIDE). We discretize this PIDE in space by the quadratic FE method and integrate the resulting ordinary differential equation in time by an implicit-explicit Euler based extrapolation scheme. The coefficient matrix of the resulting linear systems is block penta-diagonal with penta-diagonal blocks. The preconditioned biconjugate gradient stabilized (PBiCGSTAB) method is used to solve the linear systems. According to the structure of the coefficient matrix, several preconditioners are implemented and compared. The performance of preconditioning techniques for solving block-tridiagonal systems resulting from the linear FE discretization of the PIDE is also investigated. The combination of the quadratic FE for spatial discretization, the extrapolation scheme for time discretization, and the PBiCGSTAB method with an appropriate preconditioner is found to be very efficient for solving the option pricing problems in the SVCJ model. Compared to the standard second order linear finite element method combined with the popular successive over-relaxation (SOR) linear system solver, the proposed method reduces computational time by about twenty times at the accuracy level of 1 cent and more than fifty times at the accuracy level of 0.1 cent for the barrier option example tested in the paper. Key words. Stochastic volatility jump diffusion, barrier option, partial integro-differential equation, quadratic finite element, preconditioning, BiCGSTAB, modified incomplete LU preconditioner, block circulant preconditioner AMS subject classifications. 91B28, 62P05, 35K15, 65F10, 65M06, 91B70, 47B35

1

Introduction

Option contracts are actively traded on many exchanges around the world, as well as in the global over-the-counter market. It is well known that the widely used Black-Scholes-Merton option pricing ∗ The research was partially supported by research grants UL020/08-Y2/MAT/JXQ01/FST and UL020/08Y3/MAT/JXQ01/FST from University of Macau. † College of Mathematics and Statistics, Chongqing University, Chongqing, China. E-mail: [email protected] ‡ School of Mathematical Sciences, Xuzhou Normal University, Xuzhou, China. E-mail: [email protected]. This author was supported by Xuzhou Normal University Science Foundation under grant 11XLR28 § Department of Industrial and Enterprise Systems Engineering, University of Illinois at Urbana-Champaign, 104 S Mathews Ave, Urbana, IL 61801, E-mail: [email protected]. This author was supported by the National Science Foundation under grants CMMI-0927367 and CMMI-1029846 ¶ Department of Mathematics, University of Macau, Macao, China. E-mail: [email protected]

1

2 model [7, 40] understates the likelihood of extreme price movements in financial markets and can not explain the volatility smile and term structure effects observed in option markets [46]. The Black-Scholes-Merton model assumes that the price of the underlying asset on which option contracts are written is governed by a geometric Brownian motion and hence does not jump, and that the volatility parameter is a constant. Many alternative models have been studied that relax these restrictive assumptions. In one class of such models, the volatility is allowed to be stochastic. More specifically, in a local volatility model [17, 20], the volatility is a function of the underlying asset price and time. In a stochastic volatility model [1, 27, 30, 31, 33, 52], the volatility is governed by a separate stochastic process that is usually correlated to the asset price process. In another class of alternative models, the asset price is governed by a jump diffusion [36, 41] or pure jump L´evy process [4, 8, 10, 21, 38] and hence is allowed to jump. These alternative models have distributions with tails that are fatter than the normal distribution underlying the Black-Scholes-Merton model and fit empirical financial time series data as well as implied volatilities observed in option markets better. However, while jump diffusion or pure jump L´evy models can produce sufficient smile effects for short term contracts, they usually lead to too flat smiles for long term contracts. On the other hand, while diffusion based stochastic volatility models are able to produce enough smile effects for long term contracts, they usually lead to not steep enough smiles for short term contracts due to their diffusion nature [3, 45]. It is thus natural to combine stochastic volatility and jumps to model the dynamics of the underlying asset price (see for example [5, 19]). In [5], the instantaneous variance is modeled by a mean reverting Cox-Ingersoll-Ross (CIR) process [16]. Jumps are allowed in the asset price. [3] finds that adding jumps in the asset price process improves the pricing performance of the model. In [19], jumps are allowed in both the asset price and variance processes. [22] examines this model and finds strong evidence for jumps in both the asset price and the variance of S&P 500 index. It is therefore interesting to develop efficient methods for options valuation in stochastic volatility jump diffusion models. European vanilla option prices can often be computed efficiently using Fourier transform methods [9, 37, 23]. However, the valuation of options with more complex payoff structures and possibly early exercise features often requires numerically solving partial integro-differential equations (PIDE’s) or inequalities [32, 28, 29, 14, 2, 24, 26]. [25] considers options pricing in the stochastic volatility jump diffusion model of [19] with correlated and contemporaneous jumps in the asset return and variance processes (SVCJ). The PIDE is discretized in space using the linear finite element (FE) method. This leads to a system of ordinary differential equations (ODE). In solving the ODE system, [25] treats the diffusion component implicitly for stability and the jump component explicitly for numerical efficiency, and proposes an extrapolation method based on the implicit-explicit (IMEX) Euler scheme. The resulting linear system of equations is then solved using the successive over-relaxation (SOR) method. [25] shows that the extrapolation scheme is very efficient compared to commonly used first and second order schemes. However, the method overall is still time consuming due to the large size of the linear systems required to achieve a desirable accuracy. Moreover, the solution of the linear systems using SOR is inefficient. In this paper, we propose methods that greatly reduce the computational cost for the solution of the PIDE associated with options valuation in stochastic volatility jump diffusion models. We illustrate the methods by considering the SVCJ model. We notice that the performance of the procedure described in [25] is affected by two factors: (1) the size of the linear system of equations; (2) fast solution of the linear systems. As for (1), the size of the linear systems is determined by the spatial discretization method. When a second order linear FE method is used, reasonably small spatial step sizes are necessary. To reduce the size of the linear systems, more accurate spatial discretization

3 methods are required. We adopt a quadratic FE method that is fourth order accurate [43, 44]. As for (2), we utilize the special structure of the coefficient matrix of the resulting linear systems and propose a preconditioned bi-conjugate gradient stabilized (PBiCGSTAB) method [47, 49]. A block circulant (BC) preconditioner [11, 12], an incomplete LU (ILU) preconditioner, a modified ILU (MILU) preconditioner [47], as well as a Schur complement preconditioner [13] are considered. Compared to SOR, PBiCGSTAB greatly reduces the number of iterations and CPU time of solving the linear systems. Moreover, PBiCGSTAB avoids choosing a relaxation parameter as required in SOR, which is generally not easy. The paper is organized as follows. In Section 2, we briefly review the SVCJ model and the corresponding PIDE formulation for options valuation. In Section 3, we introduce the quadratic FE spatial discretization. The integration in time of the resulting ODE system using the extrapolation method [25] is presented in Section 4. Preconditioning techniques for the resulting linear systems are discussed in Section 5. Section 6 presents computational results and demonstrates efficiency gains resulting from the combination of quadratic FE, extrapolation, and preconditioning techniques. Concluding remarks are given in Section 7.

2

The SVCJ model and the corresponding PIDE

We are given a complete filtered probability space (Ω, F, F, P) with an equivalent martingale measure P, where the filtration F = {Ft : t ≥ 0} satisfies the usual conditions. Let St denote the price of a certain asset at time t, and Vt the instantaneous variance of the asset at t. Consider the log process Xt = ln(St /K), where K is a given scalar, which is usually taken as the strike price of an option of interest. In the SVCJ model, (Xt , Vt ) is governed by the following two dimensional stochastic differential equation under the equivalent martingale measure P:  √ dXt = µ − 21 Vt− dt + Vt− dBt1 + dJtX , √ dVt = κ (θ − Vt− ) dt + ζ Vt− dBt2 + dJtV ,  where B 1 and B 2 are two correlated standard Brownian motions with correlation ρD , Jt = JtX , JtV is a R × R+ –valued compound Poisson process with intensity λ > 0 and bi-variate jump sizes (ZnX , ZnV ) with n ≥ 1, κ is the rate of mean reversion, θ is the long-run variance level, and ζ is the volatility-ofvolatility parameter. Jump sizes in the variance process are exponential with mean ν. Conditional on a jump of size z v in the variance, the jump size in Xt is normal with mean µJ + ρJ z v and standard deviation s1 , where µJ is the unconditional mean of ZnX and ρJ defines the correlation between jumps in return and variance. The parameter µ = r1 − q1 + λ[1 − (1 − νρJ )−1 exp(µJ + s21 /2)] is fixed so that the discounted gain process is a martingale. Here r1 is the risk-free interest rate and q1 is the continuous yield that the underlying asset is paying. As in  [25], we consider the process Yt = (Vt −θ)/θ Y X Y and denote the jump sizes in Y by Zn , n ≥ 1. Zn , Zn has the following joint probability density " # y x − µ − ρ θz y )2 θ θz (z J J p(z x , z y ) = p exp − − , z x ∈ R, z y ≥ 0. ν 2s21 ν 2πs21 The infinitesimal generator of the two dimensional Markov process (Xt , Yt ) is given by   1 ∂2f ∂2f ζ2 ∂2f 1 ∂f ∂f Gf (x, y) = θ (y + 1) 2 + ρD ζ (y + 1) + (y + 1) 2 + µ − θ (y + 1) − κy 2 ∂x ∂x∂y 2θ ∂y 2 ∂x ∂y Z ∞Z ∞ +λ [f (x + z x , y + z y ) − f (x, y)] p(z x , z y )dz y dz x . −∞

0

4 Consider a European vanilla or barrier option with maturity T > 0. We assume that the option value at time τ ∈ [0, T ] has the form V (τ, x, y) and solves the following PIDE [15]: ∂V + GV − r1 V = 0, ∂τ

τ ∈ [0, T ), (x, y) ∈ Ω,

with terminal condition V (T, x, y) = ψ (x, y) , (x, y) ∈ Ω. ψ(x, y) is the option payoff function. It is usually a function of x only. For a call option with strike price K, ψ(x) = K(ex − 1)+ , where x+ = max(x, 0); for a put option, ψ(x) = K(1 − ex )+ . The domain Ω depends on the nature ¯ and upper of the option contract. For example, for a double barrier option with lower barrier L ¯ ¯ ¯ barrier U , Ω = (x, x) × (0, +∞), where x = ln(L/K), x = ln(U /K). For a down-and-out option, Ω = (x, +∞) × (0, +∞). For an up-and-out option, Ω = (−∞, x) × (0, +∞). For a vanilla contract, Ω = R × (0, +∞). For numerical implementation, we localize the original problem to a bounded domain (x, x) × (y, y) and still denote it by Ω, and impose an appropriate Dirichlet condition in its complement Ωc : V (τ, x, y) = R(x, y), (x, y) ∈ Ωc . Again, the choice of R depends on the option contract to be priced. As in [25], for a double barrier option, or a down-and-out put option, or an up-and-out call option, we use R = 0. For a European vanilla option, or a down-and-out call option, or a up-and-out put option, we use R = ψ. For future convenience, we separate the differential and integral components in the infinitesimal generator G. We also transform the terminal value problem into an initial value problem by defining U (t, x, y) = V (T − t, x, y). Then U (t, x, y) solves the following PIDE: ∂U − AU − BU = 0, ∂t

t ∈ (0, T ], (x, y) ∈ Ω,

(2.1)

with initial condition U (0, x, y) = ψ(x, y), (x, y) ∈ Ω and Dirichlet condition U (t, x, y) = R(x, y), (x, y) ∈ Ωc , t ∈ [0, T ], where 1 ∂2U ∂2U ζ2 ∂2U AU = θ (y + 1) + ρ ζ (y + 1) + (y + 1) D 2 ∂x2 ∂x∂y 2θ ∂y 2   1 ∂U ∂U + µ − θ (y + 1) − κy − (r1 + λ) U, 2 ∂x ∂y Z ∞Z ∞ BU = λ U (t, x + z x , y + z y ) p(z x , z y )dz y dz x . −∞

3

0

Spatial discretization: quadratic FE

In the following, we consider the finite element discretization of the PIDE (2.1). For convenience, we consider u = U − R (x, y) so that u vanishes in Ωc . By multiplying the PIDE by a test function v and integrating over Ω, we obtain the variational formulation of the PIDE below:   ∂u , v + a (u, v) − b (u, v) + a (R, v) − b (R, v) = 0, ∂t (3.1) (u (0, ·, ·) , v) = (ψ − R, v) ,

5 R where (u, v) = Ω u (x, y) v (x, y) dxdy is the inner product in L2 (Ω). The two bilinear forms a (·, ·) and b (·, ·) in the SVCJ model are   Z x¯ Z y¯ h 1 ∂u ∂v ∂u ∂v ∂u ∂v ζ 2 ∂u ∂v a (u, v) = (y + 1) θ + ρD ζ + ρD ζ + 2 ∂x ∂x ∂y ∂x ∂x ∂y θ ∂y ∂y x y ¯ ¯    i ζ 2 ∂u ρD ζ θ θ ∂u + κy + v− µ− − − y v + (r1 + λ) uv dydx, (3.2) 2θ ∂y 2 2 2 ∂x Z x¯ Z y¯ Z ∞ Z ∞ u (t, x + z x , y + z y ) v (x, y) p(z x , z y )dz y dz x dydx. b (u, v) = λ x ¯

y ¯

−∞

0

More details on the variational formulation can be found in [6, 39, 50]. Feng and Linetsky 2008 [25] applies a linear FE spatial discretization to the variational formulation (3.1) and obtains an ODE system. It uses an IMEX Euler based extrapolation scheme to integrate the ODE system and obtains a sequence of linear systems. The coefficient matrix of the linear systems is block tri-diagonal with tri-diagonal blocks. The second order linear FE method is usually sufficient for one dimensional jump diffusion models. It is, however, often not fast enough for the SVCJ model due to the extra dimension. In this paper, we exploit the fourth order quadratic FE method [43, 44]. We follow Chapter 2 of [43] and construct the quadratic finite element basis functions as below. Let ψi , 1 ≤ i ≤ 3, be defined on [−1, 1] as follows: 1 ψ1 (ξ) = ξ(ξ − 1), 2

ψ2 (ξ) = 1 − ξ 2 ,

1 ψ3 (ξ) = ξ(ξ + 1). 2

Note that ψ1 (ξ) takes value 1 at ξ = −1, and 0 at ξ = 0, 1. ψ2 (ξ) takes value 1 at ξ = 0, and 0 at ξ = −1, 1. ψ3 (ξ) takes value 1 at ξ = 1, and 0 at ξ = −1, 0. Recall that the domain of the PIDE after localization is Ω = (x, x) × (y, y). For (x, x ¯) and a positive integer m ≥ 1, let hx = (¯ x−x)/m. Denote ¯ ¯ xi = x + ihx /2 for 0 ≤ i ≤ 2m. One dimensional quadratic FE basis functions φhx ,1 , . . . , φhx ,2m−1 on ¯ (x, x) are then defined as follows: φhx ,2i−1 (x) = ψ2 (2(x − x2i−1 )/hx )1[x2i−2 ,x2i ] (x),

1 ≤ i ≤ m,

φhx ,2i (x) = ψ3 (2(x − x2i−1 )/hx )1[x2i−2 ,x2i ] (x) + ψ1 (2(x − x2i+1 )/hx )1(x2i ,x2i+2 ] (x),

1 ≤ i ≤ m − 1,

where 1A (x) is an indicator function which takes value 1 if x ∈ A and 0 otherwise. Note that for any 1 ≤ i ≤ 2m − 1, φhx ,i takes value 1 at xi and zero at all other nodes. See Figure 1 for an illustration. Similarly, for (y, y ¯) and a positive integer n ≥ 1, let hy = (¯ y−y)/n and yj = y + jhy /2, 0 ≤ j ≤ 2n. ¯ dimensional¯ rectangular quadratic Define φhy ,j , 1 ¯≤ j ≤ 2n − 1, in the same way as above. The two FE basis functions then take the form φij (x, y) = φhx ,i (x) φhy ,j (y) ,

1 ≤ i ≤ 2m − 1, 1 ≤ j ≤ 2n − 1.

For simplicity of notation, we have omitted hx , hy from the subscript of φij . Note that φij equals one at node (xi , yj ) and zero at all other nodes. The (2m − 1) × (2n − 1) nodes in Ω = (x, x ¯) × ¯ (y, y ¯) are arranged as follows: (x1 , y1 ), (x1 , y2 ), . . . , (x1 , y2n−1 ), (x2 , y1 ), (x2 , y2 ), . . . , (x2 , y2n−1 ), . . . , ¯ (x 2m−1 , y1 ), (x2m−1 , y2 ), . . . , (x2m−1 , y2n−1 ). We then seek a FE approximation u ˜ to the solution u of the variational formulation (3.1) as a linear combination of the FE basis functions with time-dependent coefficients: u ˜ (t, x, y) =

2m−1 X 2n−1 X i=1

j=1

ui,j (t) φij (x, y) .

(3.3)

6

(a) 2 1.5

ψ

1

ψ (ξ) 1

ψ2(ξ)

ψ3(ξ)

0.5 0 −1

0

1

−0.5 −1 −1.5

−1

−0.5

0 ξ

0.5

1

1.5

(b) 2 1.5

φ

1

φ1

φ2

φ3

φ4

φ5

φ6

φ7

x1

x2

x3

x4

x5

x6

x7

0.5 0

x0

x8

−0.5 −1

0

2

4

6

8

10

x

Figure 1: One dimensional quadratic FE basis functions φ1 , φ2 , · · · , φ2m−1 on (x, x) (illustrated with m = 4, x0 = x, x8 = x). φi ’s are constructed from ψ1,2,3 on (−1, 1). Each φi takes value 1 at node xi and zero at all other nodes. A function that vanishes outside of (x, x) is approximated by a linear combination of φi ’s. Note that u ˜(t, x, y) is zero in Ωc by construction and hence automatically satisfies the vanishing Dirichlet condition. Let u(t) = (u1,1 (t) , . . . , u1,2n−1 (t) , u2,1 (t) , . . . , u2,2n−1 (t) , . . . , u2m−1,1 (t) , . . . , u2m−1,2n−1 (t))> be the [(2m − 1) (2n − 1)]-dimensional vector of the time-dependent coefficients to be determined. Substituting (3.3) into (3.1) and letting the test function v run through the set of all basis functions {φij (x, y)}1≤i≤2m−1, 1≤j≤2n−1 , we obtain the following [(2m − 1) (2n − 1)]-dimensional system of ODEs: M u0 (t) + Au(t) − Bu(t) + f = 0, t ∈ (0, T ], (3.4) M u (0) = c. Here u0 (t) = du(t)/dt, M , A, B are [(2m − 1)(2n − 1)] × [(2m −h 1)(2ni− 1)] matrices, f and c are (i,k) [(2m − 1) (2n − 1)]-dimensional vectors. More specifically, M = mjl is called the mass matrix. h i (i,k) (i,k) The (j, l)th entry of the (i, k)th block of M is given by mjl = (φkl , φij ). A = ajl is called the h i (i,k) (i,k) (i,k) stiffness matrix with ajl = a (φkl , φij ). B = bjl is called the jump matrix with bjl = b (φkl , φij ). f = (fij ) is called the force vector with fij = a (R, φij ) − b (R, φij ). c = (cij ) with cij = (ψ − R, φij ) is associated with the initial condition of the variational formulation.

7 The entries of M can be computed in closed form: Z x¯ Z y¯ (φkl , φij ) = φhx ,k (x) φhy ,l (y) φhx ,i (x) φhy ,j (y) dydx x

y ¯

Z¯ x¯

φhy ,l (y) φhy ,j (y) dy,

x ¯

where

y ¯

  8hx /15,      4hx /15,   Z x¯  hx /15, φhx ,k (x) φhx ,i (x) dx =  x   ¯  −hx /30,      0,

The integral

R y¯

Xm

y ¯

y ¯

Z

φhx ,k (x) φhx ,i (x) dx ·

=

i = k,

i is odd,

i = k,

i is even,

|i − k| = 1, |i − k| = 2, i is even, others.

φhy ,l (y) φhy ,j (y) dy is computed similarly. Let

 8 1 1 4   1  1 − = 2    

 1 − 21 8 1 1 4 1 − 12

1 − 12 8 1 1 4 1

     ∈ R(2m−1)×(2m−1)    1

(illustrated with m = 4).

8

1 1 Then M = Xm ⊗ Xn · 15 hx · 15 hy , where “⊗” denotes the tensor product. It is symmetric and block penta-diagonal with penta-diagonal blocks:

 M1  M3      M=      

M4



M2 M 4 M6 M3 M 1 M4 M5 M 3 M2 M4 M 6 M3 M1 M 4 M5 M3 M 2

            M4  

(illustrated with m = 4),

(3.5)

M 3 M1 where M3 = M4 =

1 1 1 hx · hy · Xn ∈ R(2n−1)×(2n−1) , M1 = 8M3 , M2 = 4M3 , M5 = M6 = − M3 , 15 15 2

with a total of 25 nonzero diagonals. To compute A, we need to compute a(φkl , φij ) for i, k = 1, . . . , 2m − 1 and j, l = 1, . . . , 2n − 1, with the bilinear form defined in (3.2). Closed form expressions for the entries of A are available, but highly complex. They can be found in [51]. However, the integrands in a(φkl , φij ) are polynomials with the highest order terms x4 y 4 and x3 y 5 . For such integrands, the 3 × 3 Gaussian quadrature (tensor product of three-point Gaussian quadrature rules for each coordinate) is exact and easier to

8 implement. See [48] page 156 for the Gaussian quadrature rule. Also, the matrix A is block pentadiagonal with penta-diagonal blocks. It can be verified that A has the following structure with a total of 25 nonzero diagonals:   A1 A4   A3 A2 A4 A6      A3 A1 A4       A5 A3 A2 A4 A6 (3.6) A=   (illustrated with m = 4),     A3 A1 A4      A5 A3 A2 A4    A3 A1 where the blocks Ai (1 ≤ i ≤ 6) are (2n − 1) × (2n − 1) penta-diagonal matrices. The entries of B are calculated by Z x¯ Z y¯ Z ∞ Z ∞ φhx ,i (x) φhy ,j (y) φhx ,k (x + z x ) φhy ,l (y + z y ) p(z x , z y )dz y dz x dydx. b (φkl , φij ) = λ x ¯

y ¯

−∞

0

It is easy to verify from the definition  B0,1 B−1,1  B1,1 B0,2   B2,1 B1,2    B2,2 B =  B3,1  . .. ..  .    B2m−3,1 B2m−2,1 B2m−3,2 where each block is of the following  b0,1 b−1,1  b1,1 b0,2   0 b1,2    b2,2 Bq,p =  0  .. ..  . .    0 0 0

that B has the following structure: B−2,1 B−1,2 B0,1

B−3,1 B−2,2 B−1,1

B1,1

B0,2

··· ···

B−(2m−3),1



B−(2m−2),1 B−(2m−3),2

      ,     

.. . ..

.

..

.

..

.

B0,2 B1,2

···

B−1,2 B0,1

(3.7)

form: b−2,1 b−1,2 b0,1

b−3,1 b−2,2 b−1,1

b1,1

b0,2

··· ···

b−(2n−3),1

b−(2n−2),1 b−(2n−3),2 .. .

..

.

..

.

···

..

.

b0,2 b1,2

b−1,2 b0,1

       ,     

(3.8)

where q = − (2m − 2), . . . , 2m − 2, p = 1, 2. The entries above also depend on q and p. We have omitted subscripts here to ease notations. Direct computation of b (φkl , φij ) by the above four dimensional integral is time consuming. Note that b (φkl , φij ) = (Bφkl , φij ). We follow [25] and approximate Bφkl (x, y) by its finite element interpolant: ∞ ∞ X X Bφkl (x, y) ≈ Bφkl (xr , ys ) φrs (x, y). r=−∞ s=−∞

9 Then i+2 X

b (φkl , φij ) = (Bφkl , φij ) ≈

j+2 X

(Bφkl ) (xr , ys ) (φrs , φij ) .

r=i−2 s=j−2

Therefore we only need to compute (Bφkl ) (xr , ys ), which involves double integrals only. The double integrals are computed numerically using 4×4 Gaussian quadrature (see [48] page 156 for the Gaussian quadrature rule). As for the force vector f , we approximate R by its FE interpolant: R (x, y) ≈

∞ X

∞ X

Rkl φkl ,

k=−∞ l=−∞

where Rkl = R (xk , yl ). Then a(R, φij ) is approximated by a(R, φij ) ≈

j+2 i+2 X X

Rkl a(φkl , φij ),

k=i−2 l=j−2

and b(R, φij ) is approximated by b(R, φij ) ≈

∞ X

∞ X

k=−∞ l=−∞

i+(2m−2)

j+(2n−2)

X

X

Rkl b(φkl , φij ) ≈

Rkl b(φkl , φij ).

k=i−(2m−2) l=j−(2n−2)

Here we have truncated the infinite sum since b(φkl , φij ) are negligible for |k − i| ≥ 2m − 1 or |l − j| ≥ 2n − 1 due to the exponential decay of the jump size probability density p (z x , z y ). a(φkl , φij ) and b(φkl , φij ) are then computed in the same way as before. Finally, for the vector c = (cij ), we need to compute cij = (ψ − R, φij ). In most of option pricing applications, both ψ and R are only functions of x. The above double integral can then be reduced to a simple integral that is the same as the one in [25]. It can be computed accurately using a multiple point Gaussian quadrature (we used m−point in our implementation).

4

Temporal discretization: IMEX Euler scheme and extrapolation

The quadratic FE spatial discretization in the previous section leads to a stiff ODE (3.4). As in [25], we treat the diffusion term implicitly for stability and the jump term explicitly for computational efficiency. In particular, we use the extrapolation scheme. Divide the time interval [0, T ] into N equal subintervals, each with a length k = T /N . Denote ui = u(ik) for 0 ≤ i ≤ N . Then the IMEX Euler scheme for (3.4) proceeds as follows: M u0 = c, (M + kA)ui = (M + kB)ui−1 − kf ,

1 ≤ i ≤ N.

(4.9)

Although very easy to implement, this scheme is only first order accurate. However, the error of the above has the following expansion: u(T ) − uN = c1 k + c2 k 2 + · · · ,

10 where cj ’s are vectors that are independent of k (see [18, 25] and references cited therein). It is thus intuitive to execute (4.9) for different N ’s and then extrapolate to remove the lower order error terms. More specifically, we solve (4.9) for k1 = T /N1 , . . . , ks+1 = T /Ns+1 to obtain s + 1 Euler approximations T1,1 ≡ uN1 , . . . , Ts+1,1 ≡ uNs+1 . An extrapolated approximation Ts+1,s+1 is then obtained by Ti,j−1 − Ti−1,j−1 Ti,j = Ti,j−1 + , 2 ≤ i ≤ s + 1, 2 ≤ j ≤ i. (Ni /Ni−j+1 ) − 1 The error estimate for Ts+1,s+1 is O(k1 k2 · · · ks+1 ). In practice, the so called harmonic sequence (N1 , . . . , Ns+1 ) = (1, . . . , s + 1) is often taken [18, 25]. We thus obtain an accurate approximation using only N1 + · · · + Ns+1 = (s + 1)(s + 2)/2 = Ns Euler steps. When the option maturity T is large, we divide the interval [0, T ] into a few smaller segments, and then apply the extrapolation scheme over each segment. More details can be found in [25].

5

Preconditioning techniques for the resulting linear systems

Feng and Linetsky 2008 [25] uses SOR to solve the resulting linear systems, which arise from the linear FE and extrapolation discretization of the PIDE (2.1). However, SOR is often too slow. Moreover, it is not straightforward to determine the optimal relaxation parameter. In the present paper, we employ a Krylov subspace method to solve the resulting linear systems (4.9). Specifically, we adopt the bi-conjugate gradient stabilized (BiCGSTAB) method due to the nonsymmetry of the coefficient matrix in (4.9). In order to accelerate the convergence rate of the BiCGSTAB method, preconditioning techniques are used.

5.1

ILU type preconditioners

By (3.5) and (3.6), both M and A are very sparse and have the same sparsity structure. So is the coefficient matrix M + kA of (4.9). Therefore, it is natural to consider ILU (incomplete LU) type preconditioners, which are efficient for sparse linear systems and have been studied intensively in the past several decades; see [47] and the references cited therein. Many kinds of ILU preconditioner have been proposed. In this paper, we consider two extensively used ones. The first one is the so-called ILU(0) preconditioner where the factors L and U take nonzero values only at the nonzero positions of the coefficient matrix and hence keep the sparsity patterns of the coefficient matrix. The second one is the MILU (modified incomplete LU) preconditioner where any discarded elements on a row are lumped together and added to the corresponding diagonal position of factor U .

5.2

Block circulant preconditioner

We also notice that, due to the block Toeplitz-like structure of M and A, block circulant (BC) preconditioner [12, 34, 35, 42] may also be efficient for the linear systems (4.9). For the convenience of the readers who are not familiar with fast iterative Toeplitz solvers, in the following, we give a brief introduction of the BC preconditioner. The definition of the BC preconditioner is given as follows [12]. Let n o ˜ Fm ≡ (Fm ⊗ In )∗ Λ ˜ mn (Fm ⊗ In ) | Λ ˜ mn ∈ D ˜ m,n . M

11 ˜ m,n is the set of all m × m Here Fm is an m × m Fourier matrix, In is an n × n identity matrix, and D ˜ block diagonal matrices with n × n blocks. We note that MFm is the set of all BC matrices. Then the BC preconditioner c˜Fm (Amn ) of Amn (an m × m block matrix with n × n blocks) is defined to be the minimizer of min kWmn − Amn kF , ˜F Wmn ∈M m

where k·kF denotes the Frobenius norm. By this definition, one can easily derive the following explicit expression of c˜Fm (Amn ) c˜Fm (Amn ) = (Fm ⊗ In )∗ δ˜ [(Fm ⊗ In ) Amn (Fm ⊗ In )∗ ] (Fm ⊗ In ) ,

(5.1)

where δ˜ [(Fm ⊗ In ) Amn (Fm ⊗ In )∗ ] is an m×m block diagonal matrix (with n×n blocks) whose block diagonal is equal to the block diagonal of the matrix (Fm ⊗ In ) Amn (Fm ⊗ In )∗ . However, constructing the BC preconditioner directly by (5.1) is too expensive. [11, 12] give a useful formula for constructing c˜Fm (Amn ). Let   0 1  1 0      . .  . E=  0 1   .. . . . . . .   .  . . . 0 ··· 0 1 0 m×m and (Amn )p,q denote the (p, q)th block of Amn . Then the BC preconditioner c˜Fm (Amn ) of Amn is given by (see the formula (5.16) in [12])   m−1 X X 1 E j ⊗ c˜Fm (Amn ) = (Amn )p,q  . (5.2) m j=0

p−q≡j(mod m−1)

Let Q = M + kA. According to the formula (5.2), the BC preconditioner of (4.9) has the following form   mQ1 +(m−1)Q2 2m−2 m−2 m−2 2m−2 Q Q 0 Q Q 2m−1 2m−1 4 2m−1 6 2m−1 5 2m−1 3   .. .. .. mQ1 +(m−1)Q2   m−2 2m−2 . . . Q Q   2m−1 3 2m−1 2m−1 5   . . . .   m−2 .. .. .. .. Q 0   5 2m−1 c˜F2m−1 (Q) =  , . . . .   m−2 .. .. .. .. 0 Q   6 2m−1   . . . mQ1 +(m−1)Q2   m−2 2m−2 .. .. .. Q Q 6 4   2m−1 2m−1 2m−1 mQ1 +(m−1)Q2 2m−2 m−2 m−2 2m−2 0 2m−1 Q4 2m−1 Q6 2m−1 Q5 2m−1 Q3 2m−1 where the blocks Qi = Mi + kAi (1 ≤ i ≤ 6). Since Qi (1 ≤ i ≤ 6) are all (2n − 1) × (2n − 1) penta-diagonal matrices (see (3.5) and (3.6)), one can find a permutation matrix P such that P ∗ c˜F2m−1 (Q) P = (Wi,j )(2n−1)×(2n−1)

(5.3)

is a block penta-diagonal matrix, where each block Wi,j is an (2m − 1) × (2m − 1) circulant matrix. Let Wi,j (:, 1) denote the first column of the matrix Wi,j . It is known that Wi,j can be

12 diagonalized by the Fourier matrix F2m−1 [12, 34, 35, 42], i.e., Wi,j Λi,j = diag (F2m−1 · Wi,j (:, 1)). Thus we obtain  Λ1,1 Λ1,2 Λ1,3  .. ..  Λ2,1 Λ2,2 . .   ∗ ∗ . . . .. .. .. P c˜F2m−1 (Q) P = I ⊗ F2m−1  Λ3,1   .. ..  . . Λ2n−2,2n−3 Λ2n−1,2n−3 Λ2n−1,2n−2

∗ = F2m−1 Λi,j F2m−1 , where



Λ2n−3,2n−1 Λ2n−2,2n−1 Λ2n−1,2n−1

     (I ⊗ F2m−1 )    (5.4)

= I⊗

∗ F2m−1





P DP (I ⊗ F2m−1 ) ,

where D = diag (D1 , D2 , . . . , D2m−1 ) is a block diagonal matrix with penta-diagonal blocks, and [Dk ]i,j = [Λi,j ]k,k , i.e., the (i, j)th entry of Dk is equal to the (k, k)th entry of Λi,j . Therefore, the BC matrix c˜F2m−1 (Q) can be constructed as  ∗ ∗ c˜F2m−1 (Q) = P I ⊗ F2m−1 P DP (I ⊗ F2m−1 ) P ∗ . (5.5) By (5.3), (5.4), and (5.5), we see that to construct the BC preconditioner c˜F2m−1 (Q), we only need to work out the block diagonal matrix D, which requires 5 (2n − 1) − 6 FFTs of length (2m − 1). Once  −1 the block diagonal matrix D is obtained, then the multiplication c˜F2m−1 (Q) v for some vector v can be computed efficiently by FFTs with O ((2n − 1) · (2m − 1) log(2m − 1)) operations.

5.3

Schur complement preconditioner

We also notice that after a suitable permutation, the coefficient matrix of (4.9) can be transformed to a 2 × 2 block matrix with each block being block Toeplitz. This 2 × 2 block structure inspires us to consider a Schur complement preconditioner [13]. By permuting all odd block rows and we obtain a 2 × 2 block matrix  Q1   Q1           ˜ ˜  ˜ = Q1 Q2 = Q  ˜3 Q ˜4  Q   Q3 Q4   Q3     

odd block columns of Q = M + kA to the upper left corner,

..

Q4



Q3 Q4

           .          

Q3

. Q1

..

.

..

.

Q1

Q4 Q3

Q2 Q6 Q5 Q2

Q4 ..

.

..

..

.

.

Q3 Q4

..

.

..

.

Q6

Q5

Q2

(5.6)

Obviously, solving (4.9) is equivalent to solving the permuted systems ˜ ui = b ˜ i−1 , Q˜

1 ≤ i ≤ N,

(5.7)

13 ˜ is given by (5.6), u ˜ i−1 are the corresponding permuted vectors of ui and bi−1 = where Q ˜ i and b ˜ has the factorization (M + kB) ui−1 − kf respectively. Note that Q    ˜1 Q ˜2 I 0 Q ˜ Q = ˜ ˜ −1 , Q3 Q1 I 0 S˜ ˜4 − Q ˜ 3Q ˜ −1 Q ˜ 2 is the Schur complement of where I denotes a corresponding identity matrix and S˜ = Q 1 ˜ ˜ Q1 in Q. Then we consider a Schur complement preconditioner (see [13]) which is given by    ˜1 Q ˜2 I 0 Q PS = ˜ ˜ −1 , (5.8) Q3 Q1 I 0 Sˆ ˜ Let H = Sˆ−1 S. ˜ By simple calculation, the preconditioned coefficient where Sˆ is an approximation of S. matrix of (5.7) is reduced to   ˜ −1 Q ˜ 2 (I − H) I Q −1 ˜ 1 PS Q = . 0 H ˜ are This expression indicates that at least (2n − 1)m eigenvalues of the preconditioned matrix PS−1 Q −1 ˜ equal to 1 and other eigenvalues of PS Q are included in the spectrum of H. Obviously, if the matrix ˜ then the matrix H will be very close to the identity matrix, Sˆ is a very good approximation of S, and consequently the preconditioner PS would be a very good preconditioner and would lead to a fast convergence rate. However, in general, it is not easy to construct a high quality approximation   to  ˜ ˜ ˜ ˜4 the Schur complement S. Here we simply approximate S by c˜Fm−1 Q4 since the matrix c˜Fm−1 Q h  i−1 ˜4 is easily constructed and the multiplication c˜Fm−1 Q v for some vector v can be computed efficiently by FFTs; see Section 5.2.

5.4

Matrix vector multiplication

When solving the linear systems (4.9), we need to compute the product of the matrix B and a certain vector v. According to (3.7) and (3.8), B is a dense matrix. Direct computation of the multiplication Bv is expensive. Notice that the block structure of B is the same as those of M and A. Thus, similar to Section 5.3, by permuting all odd block rows and odd block columns of B to the upper left corner, we obtain a 2 × 2 block matrix   B1 B2 B3 B4 with each block Br (r = 1, 2, 3, 4) being a block Toeplitz matrix. By suitablehpermutations, the block i ˜r such that (B ˜r )i,j Br (r = 1, 2, 3, 4) can be turned to a Toeplitz block matrix B = [(Br )k,l ]i,j , k,l h i ˜r )i,j ˜r . By the form of (3.8), we see where (B refers to the (k, l)th entry of the (i, j)th block of B k,l

˜r (r = 1, 2, 3, 4) has the same block structure as that of B. Therefore, that the Toeplitz block matrix B ˜r to a 2 × 2 block matrix by the similar permutation as for B, we can permute B   ˜r1 B ˜r2 B ˜r3 B ˜r4 B with each block being block Toeplitz with Toeplitz blocks (BTTB). In summary, by suitable permutations, we can transform B into a 4 × 4 block matrix with each block being a BTTB matrix. Hence the multiplication Bv can be computed in O (mn log mn) operations by carrying out the BTTB matrixvector multiplications [12, 34, 35, 42].

14

6

Numerical experiments

In this section, we demonstrate the effectiveness of the quadratic FE discretization and preconditioning techniques for solving the PIDE (2.1). In particular, we compare the following four methods (the extrapolation scheme is used in the time discretization in all methods): • linear FE + SOR1 ; • linear FE + PBiCGSTAB with various preconditioners; • quadratic FE + SOR; • quadratic FE + PBiCGSTAB with various preconditioners. All numerical experiments are carried out in MATLAB 7.11 (R2010b) on a PC with the configuration: Intel(R) Xeon(R) CPU W3520 2.67GHz and 6 GB RAM. We expect further speedups when C++ is used. In the following, we first consider pricing a European vanilla put option to show that the proposed methods work. In this case, the Fourier transform method of [19] can be used to produce accurate benchmark prices. We then consider a European style knock-out double-barrier put (DBP) option ¯ and an upper barrier U ¯ . For such options, efficient numerical solution of PIDEs with a lower barrier L becomes necessary. In either case, ψ(x, y) = K(1 − ex )+ . Our method can be naturally extended to call options and single barrier options. A knock-out double barrier option is knocked out and becomes valueless when the underlying asset price crosses either the lower or upper barrier prior to the option ¯ ¯ /K). We localize along the variance axis by and x ¯ = ln(U maturity. In this case, x = ln(L/K), ¯ selecting a large enough y ¯ < ∞ and let R(x, y) = 0. For the European vanilla put, we also localize the x−axis to a finite interval [x,¯ x] and let R(x, y) = ψ(x, y). Parameter values used in our numerical ¯ experiments are given in Table 1. Model parameters λ, ν, µJ , s1 , ρD , ρJ , ζ, κ, θ are taken from [25]. Ω is the computational domain, G is the approximation domain (we are interested in option prices for (x, y) pairs that are in the approximation domain), mLF E and nLF E (mQF E and nQF E ) are the numbers of elements of the linear FE (quadratic FE) discretization in (x, x ¯) and (y, y ¯) respectively, ¯ tol is the relative residual tolerance for solving the linear systems using BICG,  ¯is the local error tolerance used in the extrapolation scheme, and smax is the maximum number of extrapolation stages used in the extrapolation scheme (see [25] for details of the extrapolation scheme). The approximation domain G = (ln 0.8, ln 1.2)×[0, 3] corresponds to (80, 120) in the underlying asset price and [20%, 40%] in the volatility2 . Tables 2-4 display numerical results for pricing the European vanilla and double barrier put options. The column labeled “Matrix size” refers to (mLF E − 1)(nLF E − 1) for the linear FE method and (2mQF E − 1)(2nQF E − 1) for the quadratic FE method. The column labeled “Error” is the maximum norm pricing error, which is estimated at 488 pairs in the approximation domain G: x = −0.2:0.05:0.15, y = 0:0.05:3. The maximum norm pricing error is particularly relevant in financial engineering as the worst case pricing error estimate. “SOR” stands for the successive over relaxation method with relaxation parameter 1 (Gauss-Seidel). “BC”, “ILU”, “MILU”, and “Schur” 1

We choose the relaxation parameter w = 1 in the SOR method (which is equivalent to the Gauss-Seidel method) since there is not an easy way to determine the optimal relaxation parameter. 2 Since Yt =p(Vt − θ)/θ and Vt = σt2 , the asset price S, the volatility σ, x, and y have the following relationships: S = Kex , σ = θ (y + 1).

15

Table 1: Parameter values used in numerical experiments. Model and option parameters

λ = 4, ν = 0.02, µJ = −0.04, s1 = 0.06, ρD = −0.5, ρJ = −0.5, ζ = 0.1, κ = 4, θ = 0.04, T = 0.5, r1 = 5%, q1 = 2%, K = 100 European vanilla put option

Domain LFE QFE

 Ω = (x, x ¯) × y, y ¯ = (−1.5, 0.8) × (−1, 11) , ¯ ¯ [y , y G = (xG , x ¯G ) × G ¯G ] = (ln 0.8, ln 1.2) × [0, 3] , ¯ mLF E = [46, 92,¯ 184], nLF E = [240, 480, 960],  = 10−4 , smax = 14, tol SOR = 10−8 , tol ILU = tol BC = tol M ILU = 10−9 , mQF E = [23, 46, 92], nQF E = [120, 240, 480],  = 10−6 , smax = 14, tol SOR = 10−10 , tol Schur = tol ILU = tol BC = tol M ILU = 10−11 ¯ = 80, U ¯ = 120) European DBP option (L

Domain LFE QFE

 Ω = (x, x ¯) × y, y ¯ = (ln 0.8, ln 1.2) × (−1, 11) , ¯ ¯ [y , y G = (xG , x ¯G ) × G ¯G ] = (ln 0.8, ln 1.2) × [0, 3] , ¯ mLF E = [8, 16, ¯32, 64], nLF E = [240, 480, 960, 1920],  = 10−4 , smax = 14, tol SOR = 10−8 , tol ILU = tol BC = tol M ILU = 10−10 , mQF E = [4, 8, 16, 32], nQF E = [120, 240, 480, 960],  = 10−6 , smax = 14, tol SOR = 10−10 , tol Schur = tol ILU = tol M ILU = 10−11 , tol BC = 10−12

refer to the corresponding preconditioners, respectively. Note that in the implementation, we generate ILU(0) and MILU preconditioners by the MATLAB command “ilu”. The input parameter is set to be “setup.type=’nofill’” for the ILU(0) preconditioner and “setup.type=’nofill’ and setup.milu=’row’” for the MILU preconditioner. “CPU” and “Iter” refer to the total CPU time in seconds and the average iteration number for solving the linear system in each time step. The “*” indicates that the MILU preconditioner performs very poorly and leads to absurd option prices. Table 2 shows the performance of our method for pricing European vanilla options. We observe that the option prices we obtain by numerically solving PIDEs are accurate. They match well the benchmark prices produced using the Fourier transform method. The MILU preconditioner is the most efficient in general, and the BC preconditioner also works very well. However, the latter is more reliable. It works well for very large linear systems where the MILU preconditioner fails. Table 2: Numerical results for pricing the European vanilla put option by the quadratic FE method. Matrix size

Error

10755 43589 175497

2 × 10−3 1 × 10−4 8 × 10−6

SOR CPU Iter 27.1 54.6 302.4 179.2 4212.5 677.8

Schur CPU Iter 14.7 23.8 156.4 65.3 1593.9 160.2

ILU CPU Iter 5.0 24.0 51.5 64.2 622.4 167.0

BC CPU Iter 9.3 15.2 47.3 20.0 308.5 27.8

MILU CPU Iter 4.6 21.2 31.8 37.7 ∗ ∗

In the following, we consider the double barrier put option and compare the linear and quadratic finite element methods as well as various preconditioners. The benchmark prices are computed with a large enough computational domain (Ω = (ln 0.8, ln 1.2) × (−1, 11)), a fine enough grid (m = 64 and n = 1920), and using the quadratic FE method with the BC preconditioner. Tables 3 and 4 display

16 the numerical results. The first two columns exhibit the high order accuracy and the reduction in the size of the linear systems when the quadratic FE method is used. In Figure 2, we plot the pricing error in terms of the spatial discretization step size to illustrate the convergence of the linear and quadratic finite element methods. The remaining columns in the tables exhibit the reduction in computational time when the PBiCGSTAB method is used to solve the linear systems. We observe the following: (1) Appropriate preconditioning is very important. For the linear finite element method, the first three rows in Table 3 show that the computation time is reduced by 4-14 times when one uses MILU instead of SOR. For the quadratic finite element method, the first three rows in Table 4 exhibit a reduction of 5-19 times in computational time. (2) When SOR is used, the quadratic finite element method reduces computational time by about 5 times to achieve accuracy levels of around 1 cent and 0.1 cent. When MILU is used, it reduces computational time by 3-4 times to achieve 1 cent and 0.1 cent accuracy levels. (3) In combination, at around 1 cent accuracy level, the quadratic finite element method with MILU preconditioning is about 22 times faster than the standard method with linear finite element and SOR. At around 0.1 cent accuracy level, the new method is about 55 times faster than the standard method. Table 3: Numerical results for pricing the European DBP option by the linear FE method. Matrix size

Error

1673 7185 29729 120897

3 × 10−2 8 × 10−3 2 × 10−3 5 × 10−4

SOR CPU Iter 1.5 29.1 20.1 106.9 286.1 413.1 4405.7 1647.2

ILU CPU Iter 0.4 17.9 3.6 51.9 41.3 137.4 417.7 326.0

BC CPU Iter 0.9 10.8 4.2 16.2 27.9 25.2 198.0 44.0

MILU CPU Iter 0.4 17.5 2.3 32.2 20.1 63.9 ∗ ∗

Table 4: Numerical results for pricing the European DBP option by the quadratic FE method. Matrix size

Error

1673 7185 29729 120897

9 × 10−3 1 × 10−3 4 × 10−5 3 × 10−6

SOR CPU Iter 4.3 39.6 55.4 143.6 815.9 556.9 41227.0 2206.7

Schur CPU Iter 2.8 18.3 27.9 52.0 295.2 131.7 2721.1 294.5

ILU CPU Iter 0.9 17.3 7.9 49.0 91.3 130.0 943.9 309.5

BC CPU Iter 1.9 14.3 10.8 20.5 70.4 32.5 494.6 57.2

MILU CPU Iter 0.9 17.6 5.2 29.5 43.9 59.8 ∗ ∗

As in the European vanilla case, the MILU preconditioner is the most efficient. The BC preconditioner, however, is more robust and reliable. For example, in Table 4, when the quadratic FE method with mQF E = 32 and nQF E = 960 is used, the MILU preconditioner leads to negative option prices while the BC preconditioner still works well. Table 5 presents sample option prices for the 6-month European DBP option in the SVCJ model. They are obtained by quadratic interpolations [44, 51] of the numerical option prices, which are calculated by using the quadratic FE and the BC preconditioner with mQF E = 32 and nQF E = 960.

7

Concluding remarks

We exploit the quadratic FE method with preconditioning techniques to price European style options in the SVCJ model. The value function for a European vanilla or barrier option solves a PIDE. After the

17

−1

10

−2

Maximum error on G

10

−3

10

−4

10

−5

10

linear FE quadratic FE

−6

10

−3

10

−2

−1

10

10

0

10

hx

Figure 2: Pricing error for European DBP option in the SVCJ model. Table 5: Sample option prices of the 6-month European DBP option in the SVCJ model.

σ = 25% σ = 30% σ = 35%

S = 85 0.91647 0.71691 0.55408

S = 90 1.38793 1.13393 0.90386

S = 95 1.53088 1.29116 1.05423

S = 100 1.43097 1.23679 1.02932

S = 105 1.16810 1.02832 0.86849

S = 110 0.80979 0.72211 0.61632

S = 115 0.40794 0.36664 0.31499

quadratic FE spatial discretization of a variational formulation of the PIDE, we obtain an ODE system. An IMEX Euler based extrapolation scheme is used to integrate this ODE system. The coefficient matrix of the resulting linear systems is block penta-diagonal with penta-diagonal blocks. We employ the PBiCGSTAB method to solve the linear systems. Various preconditioners, including ILU(0), MILU, BC, and Schur complement preconditioners, are tested. Numerical comparisons between the quadratic FE method and the linear FE method as well as among the above preconditioners are presented. Numerical results show that the quadratic FE method coupled with the extrapolation scheme and the PBiCGSTAB method with an appropriate preconditioner is very efficient.

References [1] Y. Achdou and N. Tchou, Variational analysis for the Black and Scholes equation with stochastic volatility, ESAIM: M2AN, Vol. 36 (2002), pp. 373–395. [2] Almendral, A., and C. W. Oosterlee, 2007, “Accurate evaluation of European and American options under the CGMY process,” SIAM Journal on Scientific Computing, 29(1), 93-117. [3] G. Bakshi, C. Cao, and Z. Chen, Empirical performance of alternative option pricing models, Journal of Finance, Vol. 52 (1997), pp. 2003–2049. [4] O. Barndorff-Nielsen, Process of normal inverse Gaussian type, Finance and Stochastics, Vol. 2 (1998), pp. 41–68. [5] D. Bates, Jumps and stochastic volatility: exchange rate processes implicit in Deutsche Mark options, Review of Financial Studies, Vol. 9 (1996), pp. 69–107.

18 [6] A. Bensoussan and J. Lions, Impulse Control and Quasi-Variational Inequalities, Gauthier-Villars, Paris, 1984. [7] F. Black and M. Scholes, The pricing of options and corporate liabilities, Journal of Political Economy, Vol. 81 (1973), pp. 637–654. [8] P. Carr, H. Geman, D. Madan, and M. Yor, The fine structure of asset returns: an empirical investigation, Journal of Business, Vol. 75 (2002), pp. 305–332. [9] P. Carr and D. Madan, Option valuation using the fast Fourier transform, Journal of Computational Finance, Vol. 2 (1999), pp. 61–73. [10] P. Carr and L. Wu, Finite moment log stable process and option pricing, Journal of Finance, Vol. 58 (2003), pp. 753–777. [11] R. Chan and X. Jin, A family of block preconditioners for block systems, SIAM Journal on Scientific and Statistical Computing, Vol. 13 (1992), pp. 1218–1235. [12] R. Chan and X. Jin, An Introduction to Iterative Toeplitz Solvers, SIAM, Philadelphia, 2007. [13] W. Ching, M. Ng, and Y. Wen, Block diagonal and Schur complement preconditioners for block Toeplitz systems with small size blocks, SIAM Journal on Matrix Analysis and Applications, Vol. 29 (2007), pp. 1101–1119. [14] Cont, R., and E. Voltchkova, 2006, “Finite difference methods for option pricing in jump-diffusion and exponential Levy models,” SIAM Journal of Numerical Analysis, 43(4), 1596-1626. [15] R. Cont and P. Tankov, Financial Modeling with Jump Processes, Chapman & Hall/CRC, London, 2004. [16] J. Cox, J. Ingersoll, and S. Ross, A theory of the term structure of interest rates, Econometrica, Vol. 53 (1985), pp. 385–407. [17] E. Derman and I. Kani, Riding on a smile, Risk, Vol. 7 (1994), pp. 32–39. [18] P. Deuflhard, Recent progress in extrapolation methods for ordinary differential equations, SIAM Review, Vol. 27 (1985), pp. 505–535. [19] D. Duffie, J. Pan, and K. Singleton, Transform analysis and asset pricing for affine jump diffusions, Econometrica, Vol. 68 (2000), pp. 1343–1376. [20] B. Dupire, Pricing with a smile, Risk, Vol. 7 (1994), pp. 18–20. [21] E. Eberlein, U. Keller, and K. Prause, New insights into smile, mispricing, and value at risk: the hyperbolic model, Journal of Business, Vol. 71 (1998), pp. 371–405. [22] B. Eraker, M. Johannes, and N. Polson, The impact of jumps in volatility and returns, Journal of Finance, Vol. 58 (2003), pp. 1269–1300. [23] Fang, F., and C. W. Oosterlee, 2008, “A novel pricing method for European Options based on Fourier-Cosine Series Expansions,” SIAM Journal on Scientific Computing, 31(2), 826-848. [24] Feng, L., P. Kovalov, V. Linetsky, and M. Marcozzi, 2008, “Variational methods in derivatives pricing,” Handbooks in Operations Research and Management Science, Vol 15, Financial Engineering, J.R. Birge and V. Linetsky, Editors, Elsevier, Amsterdam, 301-342.

19 [25] L. Feng and V. Linetsky, Pricing options in jump diffusion models: an extrapolation approach, Operations Research, Vol. 56 (2008), pp. 304–325. [26] Feng, L., V. Linetsky, J.-L. Morales, and J. Nocedal, 2011, “On the solution of complementarity problems arising in American options pricing,” Optimization Methods and Software, 26(4-5), 813-825. [27] J. Fouque, G. Papanicolaou, and K. Sircar, Derivatives in Financial Markets with Stochastic Volatility, Cambridge University Press, Cambridge, 2000. [28] d’Halluin, Y., P. A. Forsyth, and G. Labahn, 2004, “A penalty method for American options with jump diffusion processes,” Numerische Mathematik, 97, 321-352. [29] d’Halluin, Y., P. A. Forsyth, and K. R. Vetzal, 2005, “Robust numerical methods for contingent claims under jump diffusion processes,” IMA Journal on Numerical Analysis, 25, 87-112. [30] S. Heston, A closed form solution for options with stochastic volatility with applications to bond and currency options, Review of Financial Studies, Vol. 6 (1993), pp. 327–343. [31] N. Hilber, A. Matache, and C. Schwab, Sparse wavelet methods for option pricing under stochastic volatility, Journal of Computational Finance, Vol. 8 (2005), pp. 1–42. [32] Hirsa, A., and D. B. Madan, 2003, “Pricing American Options Under Variance Gamma,” Journal of Computational Finance, 7(2), 63-80. [33] J. Hull and A. White, The pricing of options on assets with stochastic volatilites, Journal of Finance, Vol. 42 (1987), pp. 281–300. [34] X. Jin, Developments and Applications of Block Toeplitz Iterative Solvers, Kluwer Academic Publishers, Dordrecht; and Science Press, Beijing, 2002. [35] X. Jin, Preconditioning Techniques for Toeplitz Systems, Higher Education Press, Beijing, 2010. [36] S. Kou, A jump diffusion model for option pricing, Management Science, Vol. 48 (2002), pp. 1086–1101. [37] R. Lee, Option pricing by transform methods: extensions, unification, and error control, Journal of Computational Finance, Vol. 7 (2004), pp. 51–86. [38] D. Madan, P. Carr, and E. Chang, The variance gamma process and option pricing, European Finance Review, Vol. 2 (1998), pp. 79–105. [39] A. Matache, T. von Petersdorff, and C. Schwab, Fast deterministic pricing of options on L´evy driven assets, Mathematical Modeling and Numerical Analysis, Vol. 38 (2004), pp. 37–72. [40] R. Merton, Theory of rational option pricing, Bell Journal of Economics and Management Science, Vol. 4 (1973), pp. 141–183. [41] R. Merton, Option pricing when underlying stock returns are discontinuous, Journal of Financial Economics, Vol. 3 (1976), pp. 125–144. [42] M. Ng, Iterative Methods for Toeplitz Systems, Oxford University Press, Oxford, 2004. [43] C. Pozrikidis, Introduction to Finite and Spectral Element Methods Using Matlab, Chapman & Hall/CRC, London, 2005.

20 [44] N. Rambeerich, D. Tangman, A. Gopaul, and M. Bhuruth, Exponential time integration for fast finite element solutions of some financial engineering problems, Journal of Computational and Applied Mathematics, Vol. 224 (2009), pp. 668–678. [45] R. Rebonato, Volatility and Correlation: the Perfect Hedger and the Fox, 2nd edition, John Wiley & Sons, Hoboken, 2004. [46] M. Rubinstein, Implied binomial trees, Journal of Finance, Vol. 49 (1994), pp. 771–818. [47] Y. Saad, Iterative Methods for Sparse Linear Systems, 2nd edition, SIAM, Philadelphia, 2003. [48] Stoer, J., and R. Bulirsch, 1993, “Introduction to Numerical Analysis,” Second Edition, SpringerVerlag, Berlin. [49] van der Vorst, H. A., 1992, “BI-CGSTAB: A fast and smoothly converging variant of BI-CG for the solution of nonsymmetric linear systems,” SIAM Journal on Scientific and Statistical Computing, 13(2), 631-644. [50] X. Zhang, Numerical analysis of American option pricing in a jump diffusion model, Mathematics of Operations Research, Vol. 22 (1997), pp. 668–690. [51] Y. Zhang, Preconditioning Techniques for a Family of Toeplitz-Like Systems with Financial Applications, Doctoral Dissertation, University of Macau, Macao, 2010. Available at http://netfiles.uiuc.edu/fenglm/www/pdf/Zhang 2010 Thesis.pdf. [52] R. Zvan, P. Forsyth, and K. Vetzal, Penalty methods for American options with stochastic volatility, Journal of Computational and Applied Mathematics, Vol. 91 (1998), pp. 199–218.