2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Решение системы ДУ метод Конечных разностей и Рунге-Кутты
Сообщение07.05.2014, 12:06 
Дана система ДУ в частных производных, которую предлагается решить гибридным методом конечных разностей и Рунге-Кутты 4 порядка.

$   \[\left\{\begin{array}{l}{\frac{\partial ^{2} u}{\partial t^{2} } =\frac{\partial ^{2} u}{\partial x^{2} } +\frac{\partial w}{\partial x} \frac{\partial ^{2} w}{\partial x^{2} } ;} \\ {\frac{\partial ^{2} w}{\partial t^{2} } +\varepsilon \frac{\partial w}{\partial t} =} \\ {=\frac{1}{\lambda ^{2} } \left\{-\frac{1}{12} \frac{\partial ^{4} w}{\partial x^{4} } +\frac{\partial ^{2} u}{\partial x^{2} } \frac{\partial w}{\partial x} +\frac{\partial u}{\partial x} \frac{\partial ^{2} w}{\partial x^{2} } +\frac{3}{2} (\frac{\partial w}{\partial x} )^{2} \frac{\partial ^{2} w}{\partial x^{2} } \right\}+q;} \end{array}\right. \, \, \, \, \, \,\]  $

Граничные условия системы ($x=0$, $x=a$) :
$w(0,t)=w(a,t)=u(0,t)=u(a,t)=w'_{x} (0,t)=w'_{x} (a,t)=0$;
Начальные условия:
$w(x,0)=\dot{w}(x,0)=u(x,0)=\dot{u}(x,0)=0.$

Частные производные по пространственной переменной $x$ заменим конечноразностными апппроксимациями:

$\\{u_{x} =\frac{u_{i+1} -u_{i-1} }{2c} ;} \\{w_{x} =\frac{w_{i+1} -w_{i-1} }{2c} ;} $
$\\{u_{xx} =\frac{u_{i+1} -2u_{i} +u_{i-1} }{c^{2} } ;} \\ {w_{xx} =\frac{w_{i+1} -2w_{i} +w_{i-1} }{c^{2} } ;} $
$\\{w_{xxxx} =\frac{w_{i+2} -4w_{i+1} +6w_{i} -4w_{i-1} +w_{i-2} }{c^{4} } ;} $

В результате получим систему:

$\left\{\begin{array}{l} {\ddot{u}_{t} =\frac{u_{i+1} -2u_{i} +u_{i-1} }{c^{2} } +\frac{w_{i+1} +w_{i-1} }{2c} \frac{w_{i+1} -2w_{i} +w_{i-1} }{c^{2} } ;} \\ {\ddot{w}_{t} +\varepsilon \dot{w}_{t} =\frac{1}{\lambda ^{2} } \left\{-\frac{1}{12} \frac{w_{i+2} -4w_{i+1} +6w_{i} -4w_{i-1} +w_{i-2} }{c^{4} } +\right. \frac{u_{i+1} -2u_{i} +u_{i-1} }{c^{2} } \frac{w_{i+1} -w_{i-1} }{2c} +} \\ {\frac{w_{i+1} -2w_{i} +w_{i-1} }{c^{2} } \frac{u_{i+1} -u_{i-1} }{2c} +\frac{3}{2} (\frac{w_{i+1} -w_{i-1} }{2c} )^{2} \left. \frac{w_{i+1} -2w_{i} +w_{i-1} }{c^{2} } \right\}+q;} \end{array}\right. $

Чтобы свести эту систему к системе ОДУ первого порядка сделаем замену переменных:

$\left\{\begin{array}{l}{\dot{u}_{t} ={u}_{1t};} \\ {\dot{u}_{1t} =\frac{u_{i+1} -2u_{i} +u_{i-1} }{c^{2} } +\frac{w_{i+1} +w_{i-1} }{2c} \frac{w_{i+1} -2w_{i} +w_{i-1} }{c^{2} } ;} \\ {\dot{w}_{t} ={w}_{1t};} \\ {\dot{w}_{1t}  =\frac{1}{\lambda ^{2} } \left\{-\frac{1}{12} \frac{w_{i+2} -4w_{i+1} +6w_{i} -4w_{i-1} +w_{i-2} }{c^{4} } +\right. \frac{u_{i+1} -2u_{i} +u_{i-1} }{c^{2} } \frac{w_{i+1} -w_{i-1} }{2c} +} \\ {\frac{w_{i+1} -2w_{i} +w_{i-1} }{c^{2} } \frac{u_{i+1} -u_{i-1} }{2c} +\frac{3}{2} (\frac{w_{i+1} -w_{i-1} }{2c} )^{2} \left. \frac{w_{i+1} -2w_{i} +w_{i-1} }{c^{2} } \right\}+q-\varepsilon {w}_{1t};} \end{array}\right. $

Теперь разобьем область дифференцирования сеткой $x_i = ci$,$ i \in \left[0..N_1 \right]$ $ t_j = hj$,$ j \in \left[0..2N_2 \right]$
Двойное количество шагов по $t$ нам необходим,потому что Метод Рунге-Кутты требует расчетов в точке $\frac{H}2$.
Из начальных условий известно, что при $t_{j=0}=0$, $u_i=w_i=u_{1i}=w_{1i}=0$.
Для $t_{j=1}=h$ приблизительное значение функций можно найти через разложение в ряд Тейлора:$ w(x,h)\approx w(x,0)+\dot{w}(x,0)=0$.

Казалось бы все замечательно, и теперь можно подниматься по сетке вверх, начиная с $t=2$ считать значения $u_i$,$w_i$, но метод Рунге-Кутты требует вычисления значений конечных разностей на слое $t+2h$, где мы еще не знаем значений функций. Получается эдакое зацикливание: чтобы узнать значение функций на шаге $t+2h$ мы должны воспользоваться методом Рунге-Кутты, а для того чтобы найти значение методом Рунге-Кутты, мы должны воспользоваться аппроксимацией через функци, которые еще не найдены.

Может быть у меня ошибка в понимании метода конечных разностей? Или необходимо использовать предварительную аппроксимацию слоя $t+2h$?

 
 
 
 Re: Решение системы ДУ метод Конечных разностей и Рунге-Кутты
Сообщение07.05.2014, 16:55 
Выложите формулы по которым вы считаете $u_i, w_i$, ну а вообще обычно если в формуле есть значения функций которые еще неизвестны, то нужно составить систему уравнений в которой роль неизвестных будут играть $u_i, w_i$.

 
 
 
 Re: Решение системы ДУ метод Конечных разностей и Рунге-Кутты
Сообщение07.05.2014, 22:19 
Slow

Классический метод Рунге-Кутты для систем ОДУ первого порядка:

$y_{p,i+1} = y_{p,i} + \frac{h}6\left[k_{p,1} + 2k_{p,2} + 2k_{p,3} + k_{p,4}\right]  $,

где $p$ - номер уравнения,

$k_{p,1} = y_{p,i}(t_{i},y_{1,i}, y_{2,i}, y_{3,i}, y_{4,i})$,

$k_{p,2} = y_{p,i}(t_{i}+\frac{h}{2},y_{1,i}+\frac{h}{2}k_{1,1}, y_{2,i}+\frac{h}{2}k_{2,1}, y_{3,i}+\frac{h}{2}k_{3,1}, y_{4,i}+\frac{h}{2}k_{4,1})$,

$k_{p,3} = y_{p,i}(t_{i}+\frac{h}{2},y_{1,i}+\frac{h}{2}k_{1,2}, y_{2,i}+\frac{h}{2}k_{2,2}, y_{3,i}+\frac{h}{2}k_{3,2}, y_{4,i}+\frac{h}{2}k_{4,2})$,

$k_{p,3} = y_{p,i}(t_{i}+h,y_{1,i}+hk_{1,2}, y_{2,i}+hk_{2,2}, y_{3,i}+hk_{3,2}, y_{4,i}+hk_{4,2})$,

$t_{i+1} = t_i + h$.

Обозначим для простоты записи значение функции в узлах сетки $\dot{y}_{1,i,j} = \dot{u}_{1t}$, $\dot{y}_{2,i,j} = \dot{w}_{1t}$, $\dot{y}_{3,i,j}=\dot{u}_{t}$, $\dot{y}_{4,i,j}=\dot{w}_{t}$. Тогда решение задачи я записываю так:

$y_{p,i,j+2} = y_{p,i,j} + \frac{h}3\left[k_{p,1} + 2k_{p,2} + 2k_{p,3} + k_{p,4}\right]  $,

где $p$ - номер уравнения,

$k_{p,1} = y_{p,i,j}(y_{1,i,j}, y_{2,i,j}, y_{3,i,j}, y_{4,i,j})$,

$k_{p,2} = y_{p,i,j+1}(y_{1,i,j}+hk_{1,1}, y_{2,i,j}+hk_{2,1}, y_{3,i,j}+hk_{3,1}, y_{4,i,j}+hk_{4,1})$,

$k_{p,3} = y_{p,i,j+1}(y_{1,i,j}+hk_{1,2}, y_{2,i,j}+hk_{2,2}, y_{3,i,j}+hk_{3,2}, y_{4,i,j}+hk_{4,2})$,

$k_{p,4} = y_{p,i,j+2}(y_{1,i,j}+2hk_{1,3}, y_{2,i,j}+2hk_{2,3}, y_{3,i,j}+2hk_{3,3}, y_{4,i,j}+2hk_{4,3})$.

Получается, что $w_i$ и $u_i$, использующиеся для записи системы ДУ - это значения табличных функций $w_{i,j}$ $u_{i,j}$ на слое $t = jh$

 
 
 
 Re: Решение системы ДУ метод Конечных разностей и Рунге-Кутты
Сообщение08.05.2014, 03:57 
$y_p_i_j$ это число или функция?

 
 
 
 Re: Решение системы ДУ метод Конечных разностей и Рунге-Кутты
Сообщение08.05.2014, 10:19 
Это функции.
Например,

$y_{1,i,2} = \dot{u}_{1t=2} =\frac{u_{i+1} -2u_{i} +u_{i-1} }{c^{2} } +\frac{w_{i+1} +w_{i-1} }{2c} \frac{w_{i+1} -2w_{i} +w_{i-1} }{c^{2}} $,

где $u_i$ и $w_i$ - это числовые значения функций $u$ и $w$ в точках сетки $i$,$2$.

 
 
 
 Re: Решение системы ДУ метод Конечных разностей и Рунге-Кутты
Сообщение08.05.2014, 16:26 
По обозначениям: обычно для обозначения производной по времени используют либо нижний индекс $u_t$, либо точку сверху, т.е не надо и то и то писать. В системе: почему у вас справа равенства есть индекс i, а слева нету? http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%A0%D1%83%D0%BD%D0%B3%D0%B5_%E2%80%94_%D0%9A%D1%83%D1%82%D1%82%D1%8B Посмотрите и сравните со своими формулами, а то кажется у вас метод Рунге-Кутты неправильно записан.

 
 
 
 Re: Решение системы ДУ метод Конечных разностей и Рунге-Кутты
Сообщение19.05.2014, 17:16 
Slow

Спасибо вам, что потратили время, и расспросили меня о задаче. Пока я писала ответ, поняла как должна выполняться работа.

Для каждого $t = 0..N_2$ необходимо одновременно находить коэффициенты для всех систем уравнений в точках $ i \in \left[0..N_1 \right]$.

 
 
 
 Re: Решение системы ДУ метод Конечных разностей и Рунге-Кутты
Сообщение19.05.2014, 18:54 

(Оффтоп)

Недавно я вот в этой теме придумал что-то кустарное на коленке для решения систем диффуров, а оказывается что и не совсем кустарное и не совсем я :-)

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group