Milsteinova metoda - Milstein method
v matematika, Milsteinova metoda je technika pro přibližné numerické řešení a stochastická diferenciální rovnice. Je pojmenován po Grigori N. Milstein který metodu poprvé publikoval v roce 1974.[1][2]
Popis
Zvažte autonomní To stochastická diferenciální rovnice:
s počáteční stav , kde znamená Wienerův proces, a předpokládejme, že chceme tento SDE vyřešit v určitém časovém intervalu. Pak Milsteinova aproximace ke skutečnému řešení je Markovův řetězec definováno takto:
- rozdělit interval do stejné podintervaly šířky :
- soubor
- rekurzivně definovat pro podle:
kde označuje derivát z s ohledem na a:
jsou nezávislé a identicky distribuované normální náhodné proměnné s očekávaná hodnota nula a rozptyl . Pak bude přibližný pro a zvyšuje se získá lepší aproximaci.
Všimněte si, že když tj. difúzní člen nezávisí na , tato metoda je ekvivalentní s Metoda Euler – Maruyama.
Milsteinovo schéma má slabé i silné pořadí konvergence, , který je lepší než Metoda Euler – Maruyama, který má zase stejné slabé pořadí konvergence, , ale horší silný řád konvergence, .[3]
Intuitivní odvození
U tohoto odvození se podíváme pouze na geometrický Brownův pohyb (GBM), jehož stochastická diferenciální rovnice je dána vztahem:
se skutečnými konstantami a . Použitím Je to lemma dostaneme:
Řešení GBM SDE tedy je:
kde
Viz numerické řešení je uvedeno výše pro tři různé trajektorie.[4]

Počítačová implementace
Následující Krajta kód implementuje Millnerovu metodu a používá ji k řešení SDE popisující Geometrický Brownův pohyb definovaný
1 # - * - kódování: utf-8 - * - 2 # Milsteinova metoda 3 4 num_sims = 1 # Jeden příklad 5 6 # Jedna sekunda a tisíc bodů mřížky 7 t_init = 0 8 t_end = 1 9 N = 1000 # Vypočítejte 1000 bodů mřížky10 dt = plovák(t_end - t_init) / N11 12 ## Počáteční podmínky13 y_init = 114 mu = 315 sigma = 116 17 18 # dw Náhodný proces19 def dW(delta_t):20 "" "" Náhodné vzorkování normální rozdělení "" "21 vrátit se np.náhodný.normální(loc=0.0, měřítko=np.čtv(delta_t))22 23 # vektory k vyplnění24 ts = np.divný(t_init, t_end + dt, dt)25 ys = np.nuly(N + 1)26 ys[0] = y_init27 28 # Smyčka29 pro _ v rozsah(num_sims):30 pro i v rozsah(1, ts.velikost):31 t = (i - 1) * dt32 y = ys[i - 1]33 # Milsteinova metoda34 ys[i] = y + mu * dt * y + sigma* y* dW(dt) + 0.5* sigma**2 * (dW(dt)**2 - dt)35 plt.spiknutí(ts, ys)36 37 # Spiknutí38 plt.xlabel(„čas“)39 plt.mřížka()40 h = plt.ylabel("y")41 h.set_rotation(0)42 plt.ukázat()
Viz také
Reference
- ^ Mil'shtein, G. N. (1974). „Přibližná integrace stochastických diferenciálních rovnic“. Teoriya Veroyatnostei i ee Primeneniya (v Rusku). 19 (3): 583–588.
- ^ Mil’shtein, G. N. (1975). "Přibližná integrace stochastických diferenciálních rovnic". Teorie pravděpodobnosti a její aplikace. 19 (3): 557–000. doi:10.1137/1119062.
- ^ V. Mackevičius, Úvod do stochastické analýzy, Wiley 2011
- ^ Umberto Picchini, SDE Toolbox: simulace a odhad stochastických diferenciálních rovnic pomocí Matlabu. http://sdetoolbox.sourceforge.net/
Další čtení
- Kloeden, P.E., & Platen, E. (1999). Numerické řešení stochastických diferenciálních rovnic. Springer, Berlín. ISBN 3-540-54062-8.CS1 maint: více jmen: seznam autorů (odkaz)