1 SCHEMA D’EULER EXPLICITE 1
M´
ethodes Num´
eriques pour les EDP en Finances - ENSTA - M2 - S1-1
TP 3: Options Americaines
18 Novembre 2008
On cherche une approximation num´erique de la fonction put am´ericain p=p(t, s),
(t, s)∈Ω := (0, T )×(0, Smax) solution du syst`eme d’in´equation aux d´eriv´ees par-
tielles suivant:
min(∂tp+Ap, p −ϕ) = 0,dans Ω,(1a)
p(t, Smax) = 0, t ∈(0, T ),(1b)
p(0, s) = ϕ(s) (1c)
avec Av:= −σ2
2s2∂s,sv−rs ∂sv+rv. o`u σ, r, K sont des constantes strictement
positives. Pour les applications num´eriques on prendra les param`etres financiers
suivant: K= 100, Smax = 200, T= 1, σ= 0.2 et r= 0.1. On consid`erera deux
payoff ϕ1ou ϕ2pour les tests: Payoff classique (payoff=1):
ϕ1(x) := (K−x)+
et un payoff cr´eneau (payoff=2):
ϕ2(x) := K
21K
2≤x≤K(x)
(i.e. ϕ2(x) = K
2pour K
2≤x≤Ket ϕ2(x) = 0 sinon).
1 Schema d’Euler Explicite
On reprend les notations des precedents TP: maillage sj=jh,j= 0,...,M + 1,
h=Smax/(M+ 1), et tn=nδt, 0 ≤n≤N,δt =T/N. On cherche Pn
june
approximation de P(tn, sj). On choisi de travailler avec comme inconnue le vecteur
Pn:=
Pn
0
.
.
.
Pn
I
.
On consid`ere le sch´ema explicite d´ecentr´e `a droite (sch´ema EE), i.e.:
min Pn+1
j−Pn
j
δt +σ2
2s2
j
−Pn
j−1+2Pn
j−Pn
j+1
h2−rsj
Pn
j+1−Pn
j
h+rP n
j, P n+1
j−φ(sj)= 0.
0≤j≤M,
Pn+1
M+1 = 0
2 UN SCH ´
EMA D’EULER IMPLICITE 2
pour n= 0,...,N −1 (et aussi par convention Pn
−1= 0). On note Ala matrice de
discr´etisation de A, de taille M+ 1, t.q.
(AP )j:= +σ2
2s2
j
−Pj−1+ 2Pj−Pj+1
h2−rsj
Pj+1 −Pj
h+rPj,0≤j≤M,
(avec la convention P−1= 0). NB: Aest la mˆeme matrice que pour le sch´ema aux
diff´erences finies d´ecentr´e `a droite de l’option europ´enne correspondante.
Notons aussi gle vecteur de composantes gj:= ϕ(sj). On obtient alors l’´ecriture
´equivalente du schema (EE), dans RM+1:
min(Pn+1 −Pn
δt +AP n, P n+1 −g) = 0, n = 0,...,N −1,(2)
P0=g.
(le ”min” ´etant pris composante par composante). On v´erifie enfin que l’it´eration
principale s’´ecrit aussi
Pn+1 = max(Pn−δtAP n, g).
•T´el´echarger le programme tp3.sci `a compl`eter. Il s’agit du programme du
pr´ec´edent TP. Il y a quelques modifications sur la partie graphique puisqu’on ne
poss`ede plus la solution exacte ici. Pour simplifier on travaille avec des matrices
pleines (TYPE=FULL).
•Modifier la variable METHODE `a la valeur ’EE-AMER’ (calcul pour l’option am´ericaine),
et programmer le schema (EE) correspondant.
•V´erifier que le programme donne une solution stable avec les param`etres M=20 et
N=20, mais qu’il y a un probl`eme de stabilit´e avec d’autres param`etres (par ex. M=50
avec N=20).
2 Un sch´ema d’Euler Implicite
On d´esire programmer le sch´ema d’Euler Implicite (EI) en temps qui s’´ecrit na-
turellement comme suit:
min(Pn+1 −Pn
δt +AP n+1, P n+1 −g) = 0, n = 0,...,N −1,(3)
P0=g.
Posons B=I+δtA et b=Pn: pour chaque n, on doit trouver xsolution du syst`eme
non lin´eaire
min(Bx −b, x −g) = 0.(4)
On prendra alors Pn+1 =x. On propose de tester deux algorithmes pour r´esoudre
(4).
2 UN SCH ´
EMA D’EULER IMPLICITE 3
2.1 Algorithme de Brennan et Schwartz - ou ”m´ethode UL”
Il existe une m´ethode directe pour r´esoudre min(Bx−b, x−g) = 0, lorsque la solution
cherch´ee a un ”profil” particulier.1L’id´ee est d’´ecrire une d´ecomposition de type
B=UL (L: matrice triangulaire inf´erieure et U: matrice triangulaire sup´erieure
avec Uii = 1), et d’esp´erer avoir l’´equivalence
min(ULx −b, x −g) = 0 ⇔min(Lx −U−1b, x −g) = 0.
Enfin, on utilise que la deuxi`eme ´ecriture poss`ede une r´esolution explicite simple:
(i) r´esolution de c=U−1b: algorithme de mont´ee;
(ii) r´esolution de min(Lx −c, x −g) = 0: algorithme de descente projet´ee.
•D´efinir METHODE==’EI-AMER-UL’ dans votre fichier principal.
•Programmer la d´ecomposition B=UL d’une matrice tridiagonale Bquelconque:
On pourra t´el´echarger le fichier ul_q.sci (et le renommer en ul.sci), puis compl´eter
la fonction function [U,L]=ul(B). Tester la d´ecomposition sur la matrice B:=
I+δtA dans le cas M= 10.
On pourra pour cela introduire dans la boucle principale un test `a la premi`ere
it´eration n=0:
case METHODE==’EI-AMER-UL’
if n==0
getf ul.sci; // loading functions
// Here decompose B=UL and test the decomposition
end
...
•Programmer l’algorithme de descente et de descente projet´ee (compl´eter les fonc-
tions descente et descente_p dans ul.sci). Tester la fonction descente.
•Programmer le schema en utilisant les algorithmes de mont´ee (fourni) et de de-
scente projet´ee. Tester la m´ethode avec N= 20, M+ 1 = 50 (Payoff classique)
V´erifier on resoud bien min(Bx −b, x −g) = 0 `a chaque it´eration en temps. Pour
cela on pourra rajouter un affichage de || min(Bx −b, x −g)||∞apr`es le calcul du
nouveau Pdans l’it´eration principale:
Pold=P;
P=...
1Dans le cas du put am´ericain `a 1 actif et pour une approche par ´el´ements finis, voir la R´ef. Jail-
let, Lamberton, Lapeyre, 1990. L’algorithme a ´et´e initialement introduit par Brennan et Schwartz
pour une approche par ´el´ements finis.
3 UNE M ´
ETHODE DE SPLITTING 4
err=norm(min(B*P-Pold,P-P0(s)));
printf(’Verif: min(B x- b, x-g)= %f\n’, err);
•Reprendre le test avec le payoff particulier correspondant `a ϕ2. V´erifier dans ce
cas qu’on n’a pas min(Bx −b, x −g)6= 0 (d`es n= 0).
2.2 Une m´ethode de Newton
On veut appliquer une m´ethode de type Newton pour resoudre F(x) = 0 avec
F(x) := min(Bx −b, x −g).
On consid`ere l’algorithme suivant: it´erer sur k≥0 (x0point de d´epart `a choisir)
xk+1 =xk−F′(xk)−1F(xk),
jusqu’`a ce que F(xk) = 0 (ou encore xk+1 =xk). On prendra la d´efinition suivante
de F′(xk) (ligne par ligne):
F′(xk)i,j := Bi,j if (Bxk−b)i≤(xk−g)i,
δi,j otherwise.
•Fixer le paramˆetre SCHEMA=’EI-AMER-N’.
•Programmer l’algorithme en compl´etant la fonction se trouvant dans newton_q.sci
(fichier `a t´el´echarger et `a renommer en newton.sci).
•Tester la m´ethode avec N= 20, M= 50 avec le Payoff classique ϕ1.
•Tester avec le payoff particulier ϕ2, v´erifier que la m´ethode fonctionne encore.
NB. Il existe d’autres m´ethodes `a peu pr`es ´equivalentes: M´ethode ”Primale-Duale”,
m´ethode d’it´eration sur les politiques, algorithme de Howard.
3 Une m´ethode de splitting
On propose une m´ethode simplifi´ee:
Calculer Pn+1,(1) t.q. Pn+1,(1) −Pn
δt +AP n+1,(1) = 0,(5)
Calculer Pn+1 t.q. Pn+1 = max(Pn+1,(1), g) (6)
•Programmer cette m´ethode (SCHEMA=EI-SPLIT). Quel avantage voyez-vous par
rapport `a la m´ethode de Howard ?
•Proposer une variante de type Crank-Nicolson.
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!