Jump to content

метод Мильштейна

В математике метод Мильштейна представляет собой метод приближенного численного решения стохастического дифференциального уравнения . Он назван в честь Григория Н. Мильштейна , который впервые опубликовал его в 1974 году. [1] [2]

Описание

[ редактировать ]

Рассмотрим автономное Ито стохастическое дифференциальное уравнение : с начальным состоянием , где обозначает винеровский процесс , и предположим, что мы хотим решить это СДУ на некотором интервале времени . Тогда приближение Мильштейна к истинному решению это цепь Маркова определяется следующим образом:

  • разделить интервал в равные подинтервалы ширины :
  • набор
  • рекурсивно определять для к: где обозначает производную относительно и: являются независимыми и одинаково распределенными нормальными случайными величинами с нулевым математическим ожиданием и дисперсией. . Затем будет приближаться для и увеличение даст лучшее приближение.

Обратите внимание, что когда , т. е. диффузионный член не зависит от , этот метод эквивалентен методу Эйлера–Маруямы .

Схема Мильштейна имеет как слабый, так и сильный порядок сходимости. , что превосходит метод Эйлера–Маруямы , который, в свою очередь, имеет такой же слабый порядок сходимости, , но уступает сильному порядку сходимости, . [3]

Интуитивный вывод

[ редактировать ]

Для этого вывода мы будем рассматривать только геометрическое броуновское движение (GBM), стохастическое дифференциальное уравнение которого имеет вид: с реальными константами и . Используя лемму Ито, получаем:

Таким образом, решение GBM SDE: где

См. численное решение, представленное выше для трех различных траекторий. [4]

Численное решение только что представленного стохастического дифференциального уравнения: дрейф в два раза превышает коэффициент диффузии.

Компьютерная реализация

[ редактировать ]

Следующий код Python реализует метод Мильштейна и использует его для решения СДУ, описывающего геометрическое броуновское движение, определяемое формулой

# -*- coding: utf-8 -*-
# Milstein Method

import numpy as np
import matplotlib.pyplot as plt


class Model:
    """Stochastic model constants."""
    μ = 3
    σ = 1


def dW(Δt):
    """Random sample normal distribution."""
    return np.random.normal(loc=0.0, scale=np.sqrt(Δt))


def run_simulation():
    """ Return the result of one full simulation."""
    # One second and thousand grid points
    T_INIT = 0
    T_END = 1
    N = 1000 # Compute 1000 grid points
    DT = float(T_END - T_INIT) / N
    TS = np.arange(T_INIT, T_END + DT, DT)

    Y_INIT = 1

    # Vectors to fill
    ys = np.zeros(N + 1)
    ys[0] = Y_INIT
    for i in range(1, TS.size):
        t = (i - 1) * DT
        y = ys[i - 1]
        dw = dW(DT)

        # Sum up terms as in the Milstein method
        ys[i] = y + \
            Model.μ * y * DT + \
            Model.σ * y * dw + \
            (Model.σ**2 / 2) * y * (dw**2 - DT)

    return TS, ys


def plot_simulations(num_sims: int):
    """Plot several simulations in one image."""
    for _ in range(num_sims):
        plt.plot(*run_simulation())

    plt.xlabel("time (s)")
    plt.ylabel("y")
    plt.grid()
    plt.show()


if __name__ == "__main__":
    NUM_SIMS = 2
    plot_simulations(NUM_SIMS)

См. также

[ редактировать ]
  1. ^ Мильштейн, Г. Н. (1974). «Приближенное интегрирование стохастических дифференциальных уравнений» . Теория вероятностей и ее применения . 19 (3): 583–588.
  2. ^ Мильштейн, Г. Н. (1975). «Приближенное интегрирование стохастических дифференциальных уравнений». Теория вероятностей и ее приложения . 19 (3): 557–000. дои : 10.1137/1119062 .
  3. ^ В. Мацкявичюс, Введение в стохастический анализ , Wiley, 2011 г.
  4. ^ Умберто Пиккини, SDE Toolbox: моделирование и оценка стохастических дифференциальных уравнений с помощью Matlab. http://sdetoolbox.sourceforge.net/

Дальнейшее чтение

[ редактировать ]
  • Клоден П.Е. и Платен Э. (1999). Численное решение стохастических дифференциальных уравнений . Шпрингер, Берлин. ISBN  3-540-54062-8 . {{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f11d24541475e3cf0b8da464bc86ceff__1701192540
URL1:https://arc.ask3.ru/arc/aa/f1/ff/f11d24541475e3cf0b8da464bc86ceff.html
Заголовок, (Title) документа по адресу, URL1:
Milstein method - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)