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

возьмём первую итерацию от начального условия
:

Учитывая
и
, вычислим, с точностью до линейного приближения по
, среднее значение и среднее квадрата:
![{\displaystyle {\begin{array}{lcl}\left\langle x\right\rangle &=&x_{0}+a(x_{0},t_{0})\cdot (t-t_{0})+...\\\left\langle x^{2}\right\rangle &=&x_{0}^{2}+{\bigl [}2x_{0}\cdot a(x_{0},t_{0})+b^{2}(x_{0},t_{0}){\bigr ]}\cdot (t-t_{0})+...\end{array}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d6c0ffa3cc54d0b2fa5f67475b08fd1a5b25eb28)
Соответственно, дисперсия процесса в этом приближении будет равна
. Чтобы получить дальнейшие члены разложения, воспользуемся динамическим уравнением для средних.
Для определённости рассмотрим логистическое уравнение:

В этом случае:
Найдём коэффициент
. Для этого подставим разложения в уравнение для среднего:

ограничившись первым порядком по
:
![{\displaystyle x_{0}\cdot (1-x_{0})+2\,f\,t+...=x_{0}\cdot (1-x_{0})+x_{0}{\bigl [}1-(3+2\gamma )x_{0}+2x_{0}^{2}{\bigr ]}\,t+...,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/595f6cab988cb7dcefacb09ca03a1ded3b7bbb6b)
откуда:

Аналогично находятся следующие коэффициенты разложения.
Найдём рекуррентные соотношения для произвольного члена разложения. Выбирая в (3.3), функцию
, запишем систему связанных дифференциальных уравнений:

Разложим средние в степенной ряд:
![{\displaystyle \left\langle x^{n}\right\rangle \;=\;x_{0}^{n}\left[1+f_{n,1}\,t+f_{n,2}\,t^{2}+...\right]\;=\;x_{0}^{n}\,\left[1+\sum _{k=1}^{\infty }f_{n,k}\,t^{k}\right].}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1e2a89fe183f5cc1c40c51c80c6b4eb84797ae1f)
Подставляя его в уравнение для средних и приравнивая коэффициенты при одинаковых степенях
, получаем при
систему рекуррентных уравнений (
):

На системе аналитических расчётов Matematica фирмы Wolfram Research, Inc. вычисления среднего с точностью до
можно записать так:
\cppsrc{src/math_t.cpp} \\ \\ Первые две строки представляют собой рекурсивное определение функции
. Затем в цикле Do происходит суммирование разложения по
. Последняя строка осуществляет вывод результата, сгруппированного в виде множителей при
, к каждому из которых применяется операция упрощения.
Заметим, что для большого числа членов разложения более быстрой будет нерекурсивная реализация программы:
\cppsrc{src/math_t2.cpp} \\ \\ где в двойном цикле по
и
происходит явное вычисление коэффициентов
. Хотя и рекурсивную реализацию можно ускорить, написав: f[n\_, k\_]:=f[n,k]=(n/k)
...
Приведём первые три члена разложения:
Аналогично для дисперсии процесса
:
![{\displaystyle {\frac {\sigma _{x}^{2}(t)}{2\gamma x_{0}^{2}}}=t+{\bigl [}4+2\gamma -6x_{0}{\bigr ]}{\frac {t^{2}}{2!}}+{\bigl [}12+12\gamma +4\gamma ^{2}-(48\gamma +46)x_{0}+38x_{0}^{2}{\bigr ]}{\frac {t^{3}}{3!}}+...}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2788ff64acce5823e1202fc22478f51b1950dd5d)
Подобным образом получаются разложения для моментов произвольного порядка. Выражения несколько упрощаются, если в качестве начального условия выбирается точка детерминированного асимптотического равновесия
. При
в этом случае решение не зависит от времени. В стохастической системе оно должно проэволюционировать к значению:
Поэтому зависимость от времени существует:
Графики разложений (
) различного порядка (от
до
) для среднего (слева) и волатильности (справа) имеют вид:
Подобные степенные разложения часто являются асимптотическими рядами и хорошо работают только при малых временах. Однако их сходимость можно улучшать при помощи различных методов, например, аппроксимацией Падэ.
Естественно, можно строить разложения не только в виде ряда по
. Достаточно универсальным является метод последовательных приближений. Его идея в следующем. Выберем некоторые функции
, являющиеся нулевым приближением для
, так, что
. Подставляя их в правые части уравнений для средних, получаем дифференциальные уравнения. Решая их, мы найдём более точное приближение для функции
. При повторении этой процедуры будет получаться всё более точное выражение для средних. При этом на каждой итерации необходимо использовать начальное условие
. Чем удачнее выбор
, тем быстрее будут сходиться к точному значению последовательные приближения, и тем шире диапазон
для их применимости.
Рассмотрим логистическое уравнение:

В простейшем случае можно выбрать
. Тогда в первом приближении:

откуда:
![{\displaystyle \phi _{n,1}=x_{0}^{n}+x_{0}^{n}\cdot \left[1+n(1-x_{0})+n(n-1)\,\gamma \right]t,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6aee404fd3b3602239bf46cf64dd227c7ad9ad22)
и т.д. В результате снова получаются степенные ряды по
, в которых коэффициенты разложения единым образом выражаются через
для любого
.
Другой вариант выбора нулевого приближения
. В этом случае:
![{\displaystyle \phi _{n,1}=x_{0}^{n}+x_{0}^{n}\cdot \left[1+(n-1)\,\gamma \right]\left(1-e^{-nt}\right)-{\frac {n}{n+1}}\,x_{0}^{n+1}\left(1-e^{-2nt}\right).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a934c2694be9d1d6819292b470b58a028321caa8)
В качестве нулевого приближения можно выбрать решение детерминированного уравнения. Тогда последовательно получаемые приближения окажутся рядами по величине волатильности стохастического шума
.
Стохастический мир - простое введение в стохастические дифференциальные уравнения