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
2s2s,svrs ∂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) := (Kx)+
et un payoff cr´eneau (payoff=2):
ϕ2(x) := K
21K
2xK(x)
(i.e. ϕ2(x) = K
2pour K
2xKet ϕ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=t, 0 nN,δ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 scema explicite d´ecentr´e `a droite (sch´ema EE), i.e.:
min Pn+1
jPn
j
δt +σ2
2s2
j
Pn
j1+2Pn
jPn
j+1
h2rsj
Pn
j+1Pn
j
h+rP n
j, P n+1
jφ(sj)= 0.
0jM,
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
Pj1+ 2PjPj+1
h2rsj
Pj+1 Pj
h+rPj,0jM,
(avec la convention P1= 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 scema d’Euler Implicite
On d´esire programmer le scema 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(Bxb, xg) = 0, lorsque la solution
chercee 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 U1b, x g) = 0.
Enfin, on utilise que la deuxi`eme ´ecriture poss`ede une r´esolution explicite simple:
(i) r´esolution de c=U1b: algorithme de monee;
(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 monee (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 k0 (x0point de d´epart `a choisir)
xk+1 =xkF(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 (Bxkb)i(xkg)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 linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !