Степенные ряды для средних — различия между версиями
WikiSysop (обсуждение | вклад) (Новая страница: «{| width="100%" | width="40%"|Логистическое уравнение << ! width="20%"|Оглавление …») |
WikiSysop (обсуждение | вклад) |
||
(не показано 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)...
Приведём первые три члена разложения:
Аналогично для дисперсии процесса :
Подобным образом получаются разложения для моментов произвольного порядка. Выражения несколько упрощаются, если в качестве начального условия выбирается точка детерминированного асимптотического равновесия . При в этом случае решение не зависит от времени. В стохастической системе оно должно проэволюционировать к значению: Поэтому зависимость от времени существует:
Графики разложений () различного порядка (от до ) для среднего (слева) и волатильности (справа) имеют вид:

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