Схема Рунге-Кутта для СДУ с стохастическим членом

Andrey56

Имеется система дифференциальных уравнений:
 [math]\[\left\{\begin{array}{lcl}\frac{dx}{dt}&=&f_1(x,y,z\\  \frac{dy}{dt}&=&f_2(x,y,z\\  \frac{dz}{dt}&=&f_3(x,y,z)+\xi(t).  \end{array}\right. \][/math]
где [math]$\xi(t)$[/math] - белый шум: [math]$\langle\xi(t)\xi(t+\tau)\rangle=2D\delta(\tau)$[/math].
Решаю методом Рунге-Кутта 2-го порядка:
[math]  \[     \begin{split}       x_{n+1}=x_n+\frac{1}{2}h(k_1^x+k_2^x\\       y_{n+1}=y_n+\frac{1}{2}h(k_1^y+k_2^y\\       z_{n+1}=z_n+\frac{1}{2}h(k_1^z+k_2^z)+\sqrt{2Dh}\phi,\\     \end{split}  \]  [/math]
где [math]$h$[/math] - шаг сетки, [math]$\phi$[/math] - случайная величина, распределенная по гауссову закону с нулевым средним и дисперсией единица, соответствующие коэффициенты:
 [math]$k_1^x = f_1(x_n, y_n,z_n\quad{}k_1^y = f_2(x_n, y_n,z_n\quad{}k_1^z = f_3(x_n, y_n,z_n)$[/math]
 [math]\[           \begin{split}             k_2^x=f_1(x_n+h k_1^x, y_n+h k_1^y,z_n+h k_1^z+\sqrt{2Dh}\phi\\             k_2^y=f_2(x_n+h k_1^x, y_n+h k_1^y,z_n+h k_1^z+\sqrt{2Dh}\phi\\             k_2^z=f_3(x_n+h k_1^x, y_n+h k_1^y,z_n+h k_1^z+\sqrt{2Dh}\phi).\\           \end{split}  \][/math]
Численный результат отличается для рассматриваемого мной случая где-то в 3-4 раза от аналитической формулы, которая, впрочем, получена при некоторых приближениях. Однако, схема была проверена на некоторой упрощенной модели и показала хорошее соответствие результатов.
У меня вопрос: правильно ли я составил схему?
У меня сомнения в коэффициентах при [math]$\phi$[/math].
 

sverum

У меня сомнения в коэффициентах при .
Как ты определяешь интеграл от белого шума?

Andrey56

в каком смысле?

Andrey56

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

seregaohota

при уменьшении шага что происходит - точность увеличивается? а так да, первая мысль про белый шум - как ты его учитываешь

Andrey56

при уменьшении шага точность увеличивается, но не настолько, что принципиально меняет расхождение с аналитикой.
Белый шум учитывается через величину [math]$\phi$[/math], которая является гауссовой.

sverum

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

sashok01

Вместо [math]$\sqrt{2Dh}$[/math] везде нужно писать [math]$\sqrt{2D}h$[/math], это раз. Во-вторых, белый шум лучше включить в функцию [math]$f_3$[/math], т.е. везде писать не [math]$f_3(x,y,z)$[/math], а [math]$g_3(x,y,z,t)$[/math] - тогда и [math]$k_1^z$[/math] будет равен [math]$f_3(x,y,z)+\sqrt{2D}\phi(t)$[/math], и [math]$k_2^z$[/math] будет равен [math]$f_3(x_n+hk_1^x,y_n+hk_1^y,z_n+hk_1^z)$[/math]. Еще вроде бы ошибка есть - если [math]$z_{n+1}$[/math] должен быть равен [math]$z_n + \cfrac12h(k_1^z+k_2^z)$[/math], то тогда у тебя член со случайной величиной в этом месте тоже должен делиться на два.
АПД. Для сходимости схем рунге-кутта нужна гладкость правой части системы дифференциальных уравнений. В случае с белым шумом гладкости очевидно нет. Не знаю, повлияет это на что-нибудь или нет. Для проверки того, влияет или нет, можно попробовать выбирать различное начальное псевдослучайное число в программной реализации и смотреть на результат, одинаковый или нет.

Andrey56

Вместо [math]$\sqrt{2Dh}$[/math] везде нужно писать [math]$\sqrt{2D}h$[/math], это раз. Во-вторых, белый шум лучше включить в функцию [math]$f_3$[/math], т.е. везде писать не [math]$f_3(x,y,z)$[/math], а [math]$g_3(x,y,z,t)$[/math] - тогда и [math]$k_1^z$[/math] будет равен [math]$f_3(x,y,z)+\sqrt{2D}\phi(t)$[/math], и [math]$k_2^z$[/math] будет равен [math]$f_3(x_n+hk_1^x,y_n+hk_1^y,z_n+hk_1^z)$[/math]. Еще вроде бы ошибка есть - если [math]$z_{n+1}$[/math] должен быть равен [math]$z_n + \cfrac12h(k_1^z+k_2^z)$[/math], то тогда у тебя член со случайной величиной в этом месте тоже должен делиться на два.
АПД. Для сходимости схем рунге-кутта нужна гладкость правой части системы дифференциальных уравнений. В случае с белым шумом гладкости очевидно нет. Не знаю, повлияет это на что-нибудь или нет. Для проверки того, влияет или нет, можно попробовать выбирать различное начальное псевдослучайное число в программной реализации и смотреть на результат, одинаковый или нет.
то, что ты описал является формальным обобщением схемы рунге-кутта для уравнений без стохастики на стохастические уравнение - ты предлагаешь белый шум рассматривать просто как регулярную компоненту. Этого, вообще говоря, делать нельзя.

sashok01

ну а почему так, как делаешь ты, можно? по сути ты делаешь все так же, только с другими коэффициентами при случайной величине.

Andrey56

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

wendy8

Рекомендую по теме Peter E. Kloeden, Eckhard Platen, "Numerical Solution of Stochastic Differential Equations” | 1995 | ISBN: 0387540628, 3540540628 | 636 pages
Ещё у них есть книжка поновее, попроще и более компоориентированная: Numerical Solution of SDE Through Computer Experiments By Peter Eris Kloeden, Eckhard Platen, Henri Schurz | 2003 | 306 Pages | ISBN: 3540570748
Вторая без проблем гуглится. Думаю, первую тоже можно при желании нарыть.
P.S. Готовые схемы там тоже есть, разных порядков точности.

sashok01

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

Andrey56

Рекомендую по теме Peter E. Kloeden, Eckhard Platen, "Numerical Solution of Stochastic Differential Equations” | 1995 | ISBN: 0387540628, 3540540628 | 636 pages
Ещё у них есть книжка поновее, попроще и более компоориентированная: Numerical Solution of SDE Through Computer Experiments By Peter Eris Kloeden, Eckhard Platen, Henri Schurz | 2003 | 306 Pages | ISBN: 3540570748
Вторая без проблем гуглится. Думаю, первую тоже можно при желании нарыть.
P.S. Готовые схемы там тоже есть, разных порядков точности.
Благодарю. Первую книгу знаю, она слишком математизированная. А вторую не видел. Пролистал - оказалась полезной )
Оставить комментарий
Имя или ник:
Комментарий: