Metody quasi-Monte Carlo
Michał Balcerek
Wstęp do matematyki finansów
5.12.2018
Notacja
Dla D = [0, 1)d, niech ~x = [x1, . . . , xd]T ∈ D niech h~0, ~xdf
= [0, x1) × . . . × [0, xd)
oznacza d wymiarowy prostokąt w D, „zakotwiczony” w ~0.
Zakładamy też, żeh
~0,~0
= ∅.
Celem jest przybliżenie całki Id =
Z
D
f (~x )d~x poprzez
1 n
n
X
j =1
f (~tj) dla konkretnie wybranych liczb ~t1, . . . , ~tn.
Dyskrepancja
Definicja (Dyskrepancja)
Dyskrepancją (z gwiazdką) danego zbioru n punktów ~tj ∈ [0, 1)d, 1 ≤ j ≤ n nazywamy wielkość
DISC∗d(~t1, . . . , ~tn) = sup
~ x ∈D
|DISCd(~x ; ~t1, . . . , ~tn)|, gdzie
DISCd(~x ; ~t1, . . . , ~tn) = x1. . . xd−
#n
j : ~tj ∈h
~0, ~xo
n .
Ponieważ x1. . . xd jest d -wymiarową objętością prostokąta h
~0, ~x , dyskrepancja pokazuje jak dobrze danych n punktów aproksymuje objętość tych prostokątów.
Twierdzenie 1 (Nierówność Koksamy-Hlawki) Jeśli f ∈ C2(D) to błąd metody quasi-Monte Carlo
QMCd ,n(f ) = 1 n
n
X
j =1
f (~tj)
dla aproksymacji całki Id =R
Df (~x )d~x szacuje się przez
|Id− QMCd ,n(f )| ≤ DISC∗d(~t1, . . . , ~tn) · C (d , f ).
Ciągi o niskiej dyskrepancji
Definicja
Ciąg nieskończony ~t1, ~t2, . . . nazywamy ciągiem o niskiej dyskrepancji jeśli istnieje Cd > 0 taka, że dla wszystkich n
DISC∗d(~t1, . . . , ~tn) ≤ Cdlndn n .
Istnieje bardzo dużo efektywnych konstrukcji ciągów punktów o niskiej dyskrepancji. Jednym z nich jest ostatnio poznany ciąg Van der Corputa.
Ciągi Haltona
Jednowymiarowy ciąg Van der Corputa {ψb(k)}k≥0 jest podstawą konstrukcji wielu ciągów w wyższych wymiarach d . Jedna z nich prowadzi do ciągu Haltona { ~hk}k≥0, dla którego k-ty elementy wynosi
h~k = [ψb1(k), ψb2(k), . . . , ψbd(k)]T, k = 0, 1, . . . . Liczby b1, . . . , bd są tu bazami. Wybór b1, . . . , bd jest jak najbardziej istotny. Zwykle, by uniknąć pewnych problemów, za liczby b1, . . . , bd wybiera się pierwsze d liczb pierwszych.
Ciągi Haltona
k ψ2(k) ψ3(k)
0 0 0
1 1/2 1/3
2 1/4 2/3
3 3/4 1/9
4 1/8 4/9
5 5/8 7/9
6 3/8 2/9
7 7/8 5/9
8 1/16 8/9
9 9/16 1/27
10 5/16 10/27 11 13/16 19/27
Tablica 1: Ciąg Haltona: ~h2= [ψ2(k), ψ3(k)]T.
Rysunek 1:Rzut 1 i 2 współrzędnej ciągu Haltona na płaszczyznę.
Narysowane 12 pierwszych elementów ciągu.
Rysunek 2:Rzut 1 i 2 współrzędnej ciągu Haltona na płaszczyznę.
Narysowane 100 pierwszych elementów ciągu.
Rysunek 3:Rzut 1 i 2 współrzędnej ciągu Haltona na płaszczyznę.
Narysowane 1000 pierwszych elementów ciągu.
Rysunek 4:Rzut 29 i 30 współrzędnej ciągu Haltona na płaszczyznę.
Narysowane 1000 pierwszych elementów ciągu.
Przestępne ciągi Haltona
By pozbyć się niektórych problemów rozważa się przestępne ciągi Haltona (leaped Halton sequence { ~xk}k≥1, dla którego k-ty elementy wynosi
~
xk = [ψb1(k`), ψb2(k`), . . . , ψbd(k`)]T, k = 0, 1, . . . , dla pewnej liczby naturalnej ` ≥ 2. Wskazane jest też by ` było względnie pierwsze z liczbami b1, . . . , bd.
Rysunek 5:Rzut 29 i 30 współrzędnej przestępnego ciągu Haltona na płaszczyznę. Porównanie parametrów ` = 3, 107, 127.
Rysunek 6:Rzut 29 i 30 współrzędnej przestępnego ciągu Haltona na płaszczyznę. Parametr ` = 3.
Rysunek 7:Rzut 29 i 30 współrzędnej przestępnego ciągu Haltona na płaszczyznę. Parametr ` = 107.
Rysunek 8:Rzut 29 i 30 współrzędnej przestępnego ciągu Haltona na płaszczyznę. Parametr ` = 127.