Skip to content
All library documents

Laguerre Spectral Methods for European Put Option Pricing

Article Quant Q&A · Author: user2536176

Summary

The document presents a numerical approach to valuing a European put by discretizing the Black-Scholes operator on Laguerre nodes. It forms first- and second-derivative matrices, builds a spatial operator from the interest rate, volatility, spot-price grid, and derivatives, then advances the option values backward in time with a trapezoidal-style update. The payoff is initialized as the strike minus spot, floored at zero, and boundary contributions are included in the time stepping.

The question concerns how to keep the plotted range and boundary conditions stable as the number of nodes changes. The supplied implementation shows how the current grid, interior nodes, and boundary terms enter the calculation, but it does not provide a resolution to that issue. In particular, the domain represented by Laguerre nodes and the boundary treatment need deliberate scaling or a fixed-domain formulation if results across node counts are to be compared. No convergence study or pricing results are included.

Key ideas

  • The Black-Scholes pricing operator can be discretized with Laguerre differentiation matrices.
  • The European put payoff provides the terminal values for a backward time-stepping scheme.
  • The implementation incorporates boundary terms when solving for interior option values.
  • Node count can affect the sampled domain and plotted range, so comparisons require a consistent domain treatment.

Tags

Full text
# Spectral Analysis for European Put Options


# Spectral Analysis for European Put Options












I am trying to implement the spectral analysis on European Put Options. My code is designed to change the number of nodes(basis functions) accordingly, but the boundary condition and thus the range of the plots are dependent on the number of nodes used in the program. I am trying to have the same range and the boundary conditions independent of the N (nodes). Below is a current implementation of my code. Any suggestion on how should I make the boundary conditions independent of the N.

```
K=40;     % Strike price
v=0.02;   % volatility
r=0.03;   % rate
T=1;      % time to maturity
nt=15;   % time intervals
N=30;     % number of nodes
M=3;      %  number of derivatives required
b=1;      % scaling parameter in Laguerre differentiation
% The function [x, DM] = lagdif(N, M, b) computes the
%  differentiation matrices D1, D2, ..., DM on Laguerre points.
%
[x, DM] = laguerredif(N, M, b); 
D1=DM(:,:,1);  % 1-st derivative matrix
D2=DM(:,:,2);  % 2-nd derivative matrix
i=2:N-1; 
I=speye(N);          % unit matrix
X=spdiags(x,0,N,N);  % matrix with x values
X2=X.^2;             % x^2 matrix
H=r*I-r*X*D1-0.5*v*X2*D2; % H operator from Black-Shcholes equation
A=H(i,i);            
xi=x(i);             % spot price values
yi=max(K-xi,0);      %  Put value for European 
h=-T/nt;             % time step
t=T:h:0;             % backward scheme for time (from T to 0)
b=H(i,N)*K;          % Boundary condition
[l,u]=lu(I(i,i)-0.5*h*A); % LU decomposition
for it=2:length(t) 
    % solving Matrix equation using LU decomposition 
    % on every time step
b1=H(i,1)*K*exp(-r*(T-t(it)));      
yi=u\(l\(yi+0.5*h*(A*yi+b+b1)));
b=b1;
end
plot(xi,yi,'-o');    % plot for option values vs spot price
```

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.