Степенные ряды для средних — различия между версиями

Материал из synset
Перейти к: навигация, поиск
(Новая страница: «{| width="100%" | width="40%"|Логистическое уравнение << ! width="20%"|Оглавление …»)
 
 
(не показано 5 промежуточных версий этого же участника)
Строка 7: Строка 7:
  
  
 +
Решение обыкновенного дифференциального уравнения можно представлять в виде ряда по степеням <math>\textstyle t</math>. Аналогично будем поступать и в стохастическом случае, однако в ряд разложим непосредственно средние величины.
 +
 +
<math>\textstyle \bullet</math> Для уравнения Ито:
 +
 +
:<center><math>dx = a(x, t)\,dt + b(x, t)\,\delta W</math></center>
 +
 +
возьмём первую итерацию от начального условия <math>\textstyle x_0=x(t_0)</math>:
 +
 +
:<center><math>x = x_0 + a(x_0, t_0) \, (t-t_0) + b(x_0, t_0)\, \varepsilon \sqrt{t-t_0}.</math></center>
 +
 +
Учитывая <math>\textstyle \left\langle \varepsilon\right\rangle =0</math> и <math>\textstyle \left\langle \varepsilon^2\right\rangle =1</math>, вычислим, с точностью до линейного приближения по <math>\textstyle t-t_0</math>, среднее значение и среднее квадрата:
 +
 +
:<center><math>
 +
\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^2_0 + \bigl[2x_0\cdot a(x_0, t_0)+b^2(x_0,t_0)\bigr]\cdot (t-t_0) + ... \end{array}
 +
</math></center>
 +
 +
 +
Соответственно, дисперсия процесса в этом приближении будет равна <math>\textstyle \sigma^2_x(t) = b^2(x_0, t_0)\cdot (t-t_0) + ..</math>. Чтобы получить дальнейшие члены разложения, воспользуемся динамическим уравнением для средних.
 +
 +
<math>\textstyle \bullet</math> Для определённости рассмотрим логистическое уравнение:
 +
 +
:<center><math>dx = x\cdot (1-x)\, dt + \sqrt{2\gamma}\cdot x\,\delta W.</math></center>
 +
 +
В этом случае:
 +
 +
<center><math>
 +
\begin{array}{lcl} \left\langle x\right\rangle &=& x_0 + x_0\,(1-x_0)\cdot t + f\, t^2 + ... \\ \left\langle x^2\right\rangle &=& x^2_0 + 2\bigl[x^2_0(1-x_0) + \gamma\,x^2_0 \bigr]\, t + ...
 +
\end{array}
 +
</math></center>
 +
 +
Найдём коэффициент <math>\textstyle f</math>. Для этого подставим разложения в уравнение для среднего:
 +
 +
:<center><math>\dot{\left\langle x\right\rangle } = \left\langle x\right\rangle - \left\langle x^2\right\rangle ,</math></center>
 +
 +
ограничившись первым порядком по <math>\textstyle t</math>:
 +
 +
:<center><math>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^2_0\bigr]\,t +...,</math></center>
 +
 +
откуда:
 +
 +
:<center><math>\frac{2}{x_0}\, f = 1-(3+2\gamma)x_0+2x^2_0.</math></center>
 +
 +
Аналогично находятся следующие коэффициенты разложения.
 +
 +
<math>\textstyle \bullet</math> Найдём рекуррентные соотношения для произвольного члена разложения. Выбирая в [[Динамическое уравнение для средних|(3.3)]], функцию <math>\textstyle F(x)=x^n</math>, запишем систему связанных дифференциальных уравнений:
 +
 +
:<center><math>\dot{\left\langle x^n\right\rangle } = \left(n + n\,(n-1)\gamma\right)\, \left\langle x^n\right\rangle - n \left\langle x^{n+1}\right\rangle ,</math></center>
 +
 +
Разложим средние в степенной ряд:
 +
 +
:<center><math>\left\langle x^n\right\rangle \;=\; x^n_0\left[1 + f_{n,1}\, t + f_{n,2}\, t^2 + ... \right] \;=\; x^n_0\,\left[1 + \sum^\infty_{k=1} f_{n,k}\, t^k \right].</math></center>
 +
 +
Подставляя его в уравнение для средних и приравнивая коэффициенты при одинаковых степенях <math>\textstyle t</math>, получаем при <math>\textstyle k=1,2,...</math> систему рекуррентных уравнений (<math>\textstyle f_{n,0}=1</math>):
 +
 +
:<center><math>k\,f_{n,k} = n\, (1 + (n-1)\gamma) \,f_{n, k-1} - n x_0 \,f_{n+1, k-1}.</math></center>
 +
 +
На системе аналитических расчётов Matematica фирмы Wolfram Research, Inc. вычисления среднего с точностью до <math>\textstyle t^5</math> можно записать так:
 +
 +
\cppsrc{src/math_t.cpp} \\ \\ Первые две строки представляют собой рекурсивное определение функции <math>\textstyle f</math>. Затем в цикле Do происходит суммирование разложения по <math>\textstyle t</math>. Последняя строка осуществляет вывод результата, сгруппированного в виде множителей при <math>\textstyle t^n</math>, к каждому из которых применяется операция упрощения.
 +
 +
Заметим, что для большого числа членов разложения более быстрой будет нерекурсивная реализация программы:
 +
 +
\cppsrc{src/math_t2.cpp} \\ \\ где в двойном цикле по <math>\textstyle k</math> и <math>\textstyle n</math> происходит явное вычисление коэффициентов <math>\textstyle f_{n,k}</math>. Хотя и рекурсивную реализацию можно ускорить, написав: f[n\_, k\_]:=f[n,k]=(n/k)<math>\textstyle *</math>...
 +
 +
Приведём первые три члена разложения:
 +
<center>
 +
<math>
 +
\begin{array}{lcl} \left\langle \frac{x}{x_0}\right\rangle &=& 1 + \bigl[1-x_0\bigr]\, t + \bigl[1-(3+2\gamma)x_0+2x^2_0\bigr]\,\frac{t^2}{2!} \\ &+& \bigl[1 - (7 + 10 \gamma + 4\gamma^2)\,x_0 + (12 + 16 \gamma)\, x_0^2 - 6 x_0^3\bigr]\,\frac{t^3}{3!} + ...
 +
\end{array}
 +
</math>
 +
</center>
 +
Аналогично для дисперсии процесса <math>\textstyle \sigma^2_x(t)=\left\langle x^2\right\rangle -\left\langle x\right\rangle ^2</math>:
 +
 +
:<center><math>\frac{\sigma^2_x(t)}{2\gamma x^2_0} = t + \bigl[4+2\gamma - 6 x_0\bigr]\frac{t^2}{2!} + \bigl[12 + 12\gamma + 4\gamma^2 - (48 \gamma + 46) x_0 + 38 x_0^2\bigr]\frac{t^3}{3!} + ...</math></center>
 +
 +
Подобным образом получаются разложения для моментов произвольного порядка. Выражения несколько упрощаются, если в качестве начального условия выбирается точка детерминированного асимптотического равновесия <math>\textstyle x_0=1</math>. При <math>\textstyle \gamma=0</math> в этом случае решение не зависит от времени. В стохастической системе оно должно проэволюционировать к значению: <math>\textstyle x_0 \to \left\langle x\right\rangle _\infty = 1 - \gamma. </math> Поэтому зависимость от времени существует:
 +
<center>
 +
<math>
 +
\begin{array}{lcl} \frac{\left\langle x\right\rangle - 1}{2\gamma} = &-& \frac{t^2}{2!} + (3-2\gamma) \, \frac{ t^3}{3!} - (7-38 \gamma+4\gamma^2) \, \frac{t^4}{4!} \\ &+&(15-334 \gamma+284 \gamma^2- 8\gamma^3) \, \frac{t^5}{5!}\\ &-&(31-2146 \gamma+7012 \gamma^2- 1848\gamma^3 + 16\gamma^4) \, \frac{t^6}{6!}+ ...
 +
\end{array}
 +
</math>
 +
</center>
 +
Графики разложений (<math>\textstyle \gamma=1/2</math>) различного порядка (от <math>\textstyle k=1</math> до <math>\textstyle k=10</math>) для среднего (слева) и волатильности (справа) имеют вид:
 +
 +
<center>[[File:logistic_t.png]]</center>
 +
 +
Подобные степенные разложения часто являются асимптотическими рядами и хорошо работают только при малых временах. Однако их сходимость можно улучшать при помощи различных методов, например, аппроксимацией Падэ.
 +
 +
<math>\textstyle \bullet</math> Естественно, можно строить разложения не только в виде ряда по <math>\textstyle t</math>. Достаточно универсальным является ''метод последовательных приближений''. Его идея в следующем. Выберем некоторые функции <math>\textstyle \phi_{n, 0}(t)</math>, являющиеся нулевым приближением для <math>\textstyle \left\langle x^n\right\rangle </math>, так, что <math>\textstyle \phi_{n, 0}(0)=x^n_0</math>. Подставляя их в правые части уравнений для средних, получаем дифференциальные уравнения. Решая их, мы найдём более точное приближение для функции <math>\textstyle \left\langle x^n\right\rangle =\phi_{n, 1}(t)</math>. При повторении этой процедуры будет получаться всё более точное выражение для средних. При этом на каждой итерации необходимо использовать начальное условие <math>\textstyle \phi_{n, k}(0)=x^n_0</math>. Чем удачнее выбор <math>\textstyle \phi_{n, 0}(t)</math>, тем быстрее будут сходиться к точному значению последовательные приближения, и тем шире диапазон <math>\textstyle t</math> для их применимости.
 +
 +
Рассмотрим логистическое уравнение:
 +
 +
:<center><math>\dot{\left\langle x^n\right\rangle } = n\left(1 + (n-1)\,\gamma\right)\, \left\langle x^n\right\rangle - n \left\langle x^{n+1}\right\rangle .</math></center>
 +
 +
В простейшем случае можно выбрать <math>\textstyle \phi_{n,0}(t)=x^n_0</math>. Тогда в первом приближении:
 +
 +
:<center><math>\dot{\phi}_{n,1} = n\left(1+(n-1)\,\gamma\right)\, x^n_0 - n x^{n+1}_0,</math></center>
 +
 +
откуда:
 +
 +
:<center><math>\phi_{n,1} = x^n_0 + x^n_0 \cdot \left[ 1 + n(1-x_0) + n(n-1)\,\gamma \right] t,</math></center>
 +
 +
и т.д. В результате снова получаются степенные ряды по <math>\textstyle t</math>, в которых коэффициенты разложения единым образом выражаются через <math>\textstyle n</math> для любого <math>\textstyle \left\langle x^n\right\rangle </math>.
 +
 +
Другой вариант выбора нулевого приближения <math>\textstyle \phi_{n,0}=x^n_0\, e^{-nt}</math>. В этом случае:
 +
 +
:<center><math>\phi_{n,1} = x^n_0 + x^n_0 \cdot \left[ 1+ (n-1)\,\gamma \right] \left(1-e^{-nt}\right) - \frac{n}{n+1}\, x^{n+1}_0 \left(1-e^{-2nt}\right).</math></center>
 +
 +
В качестве нулевого приближения можно выбрать решение детерминированного уравнения. Тогда последовательно получаемые приближения окажутся рядами по величине волатильности стохастического шума <math>\textstyle \gamma</math>.
  
 
----
 
----
Строка 12: Строка 121:
 
  | width="40%"|[[Логистическое уравнение]] <<  
 
  | width="40%"|[[Логистическое уравнение]] <<  
 
  ! width="20%"|[[Стохастический мир|Оглавление]]  
 
  ! width="20%"|[[Стохастический мир|Оглавление]]  
  | width="40%" align="right"| >> [[Степенные ряды для средних]]
+
  | width="40%" align="right"| >> [[Квазидетерминированное приближение]]
 
|}
 
|}
 
----
 
----
 
[[Стохастический мир]] - простое введение в стохастические дифференциальные уравнения
 
[[Стохастический мир]] - простое введение в стохастические дифференциальные уравнения

Текущая версия на 18:02, 15 марта 2010

Логистическое уравнение << Оглавление >> Квазидетерминированное приближение


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

Для уравнения Ито:

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

Учитывая и , вычислим, с точностью до линейного приближения по , среднее значение и среднее квадрата:


Соответственно, дисперсия процесса в этом приближении будет равна . Чтобы получить дальнейшие члены разложения, воспользуемся динамическим уравнением для средних.

Для определённости рассмотрим логистическое уравнение:

В этом случае:

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

ограничившись первым порядком по :

откуда:

Аналогично находятся следующие коэффициенты разложения.

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

Разложим средние в степенной ряд:

Подставляя его в уравнение для средних и приравнивая коэффициенты при одинаковых степенях , получаем при систему рекуррентных уравнений ():

На системе аналитических расчётов Matematica фирмы Wolfram Research, Inc. вычисления среднего с точностью до можно записать так:

\cppsrc{src/math_t.cpp} \\ \\ Первые две строки представляют собой рекурсивное определение функции . Затем в цикле Do происходит суммирование разложения по . Последняя строка осуществляет вывод результата, сгруппированного в виде множителей при , к каждому из которых применяется операция упрощения.

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

\cppsrc{src/math_t2.cpp} \\ \\ где в двойном цикле по и происходит явное вычисление коэффициентов . Хотя и рекурсивную реализацию можно ускорить, написав: f[n\_, k\_]:=f[n,k]=(n/k)...

Приведём первые три члена разложения:

Аналогично для дисперсии процесса :

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

Графики разложений () различного порядка (от до ) для среднего (слева) и волатильности (справа) имеют вид:

Logistic t.png

Подобные степенные разложения часто являются асимптотическими рядами и хорошо работают только при малых временах. Однако их сходимость можно улучшать при помощи различных методов, например, аппроксимацией Падэ.

Естественно, можно строить разложения не только в виде ряда по . Достаточно универсальным является метод последовательных приближений. Его идея в следующем. Выберем некоторые функции , являющиеся нулевым приближением для , так, что . Подставляя их в правые части уравнений для средних, получаем дифференциальные уравнения. Решая их, мы найдём более точное приближение для функции . При повторении этой процедуры будет получаться всё более точное выражение для средних. При этом на каждой итерации необходимо использовать начальное условие . Чем удачнее выбор , тем быстрее будут сходиться к точному значению последовательные приближения, и тем шире диапазон для их применимости.

Рассмотрим логистическое уравнение:

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

откуда:

и т.д. В результате снова получаются степенные ряды по , в которых коэффициенты разложения единым образом выражаются через для любого .

Другой вариант выбора нулевого приближения . В этом случае:

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


Логистическое уравнение << Оглавление >> Квазидетерминированное приближение

Стохастический мир - простое введение в стохастические дифференциальные уравнения