Borrar filtros
Borrar filtros

Spectral Methods in Matlab

7 visualizaciones (últimos 30 días)
A Basu
A Basu el 2 de Nov. de 2017
Hi, 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. Please suggest me 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); % price values
yi=max(K-xi,0); % Put 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');

Respuestas (0)

Categorías

Más información sobre Financial Toolbox en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by