Участник:Максим: различия между версиями
Максим (обсуждение | вклад) Нет описания правки |
Максим (обсуждение | вклад) Нет описания правки |
||
| Строка 54: | Строка 54: | ||
Последовательность исполнения метода следующая: | Последовательность исполнения метода следующая: | ||
<math> 1. t_{k+1}=t_{k}+h </math> | <math> 1. t_{k+1}=t_{k}+h </math> | ||
<math> 2. k_1=f(t_k,X_k,Y_k,...)h,</math> | <math> 2. k_1=f(t_k,X_k,Y_k,...)h,</math> | ||
<math> m_1=g(t_k,X_k,Y_k,...)h,...,</math> | <math> m_1=g(t_k,X_k,Y_k,...)h,...,</math> | ||
<math> k_2=f(t_k+\frac{h}{2},X_k+\frac{k_1}{2},Y_k+\frac{m_1}{2},...)h,</math> | <math> k_2=f(t_k+\frac{h}{2},X_k+\frac{k_1}{2},Y_k+\frac{m_1}{2},...)h,</math> | ||
| Строка 66: | Строка 66: | ||
<math> k_3=f(t_k+\frac{h}{2},X_k+\frac{k_2}{2},Y_k+\frac{m_2}{2},...)h,</math> | <math> k_3=f(t_k+\frac{h}{2},X_k+\frac{k_2}{2},Y_k+\frac{m_2}{2},...)h,</math> | ||
<math> m_3=g(t_k+\frac{h}{2},X_k+\frac{k_2}{2},Y_k+\frac{m_2}{2},...)h,...,</math> | <math> m_3=g(t_k+\frac{h}{2},X_k+\frac{k_2}{2},Y_k+\frac{m_2}{2},...)h,...,</math> | ||
<math> k_4=f(t_k+h,X_k+k_3,Y_k+m_3,...)h,</math> | <math> k_4=f(t_k+h,X_k+k_3,Y_k+m_3,...)h,</math> | ||
| Строка 72: | Строка 72: | ||
<math> m_4=g(t_k+h,X_k+k_3,Y_k+m_3,...)h,...</math> | <math> m_4=g(t_k+h,X_k+k_3,Y_k+m_3,...)h,...</math> | ||
<math> 3. X_{k+1}=\frac{1}{6}(k_1+2k_2+2k_3+k_4),</math> | <math> 3. X_{k+1}=\frac{1}{6}(k_1+2k_2+2k_3+k_4),</math> | ||
<math> Y_{k+1}=\frac{1}{6}(m_1+2m_2+2m_3+m_4),...</math> | |||
Версия от 14:05, 24 ноября 2016
Свойства и структура алгоритма
Общее описание алгоритма
Ме́тод Ру́нге — Ку́тты 4-го порядка — важный итерационный метод численного решения систем обыкновенных дифференциальных уравнений. Он был разработан около 1900 года немецкими математиками К. Рунге и М. В. Куттой. Для численного решения системы на отрезке, на котором определена независимая переменная, задается сетка с некоторым маленьким шагом. Последовательно, на каждом шаге, вычисляем значения зависимых переменных через значения зависимых переменных на предыдущем шаге по формулам Рунге-Кутты.
Математическое описание алгоритма
Рассматривается следующая система ОДУ:
[math]\displaystyle{ \begin{align} X^'=f(t,X,Y,...)\\ Y^'=g(t,X,Y,...),... \end{align} }[/math]
и т.д.
с начальным условием [math]\displaystyle{ X(t_0)=X_0,Y(t_0)=Y_0,... }[/math]
Пусть h-шаг сетки, тогда имеем следующие формулы Рунге-Кутты численного решения системы:
[math]\displaystyle{ \begin{align} t_{k+1}=t_{k}+h\\ X_{k+1}=\frac{1}{6}(k_1+2k_2+2k_3+k_4),\\ Y_{k+1}=\frac{1}{6}(m_1+2m_2+2m_3+m_4),...,\\ k_1=f(t_k,X_k,Y_k,...)h,\\ m_1=g(t_k,X_k,Y_k,...)h,...,\\ k_2=f(t_k+\frac{h}{2},X_k+\frac{k_1}{2},Y_k+\frac{m_1}{2},...)h,\\ m_2=g(t_k+\frac{h}{2},X_k+\frac{k_1}{2},Y_k+\frac{m_1}{2},...)h,...,\\ k_3=f(t_k+\frac{h}{2},X_k+\frac{k_2}{2},Y_k+\frac{m_2}{2},...)h,\\ m_3=g(t_k+\frac{h}{2},X_k+\frac{k_2}{2},Y_k+\frac{m_2}{2},...)h,...,\\ k_4=f(t_k+h,X_k+k_3,Y_k+m_3,...)h,\\ m_4=g(t_k+h,X_k+k_3,Y_k+m_3,...)h,...\\ \end{align} }[/math]
Вычислительное ядро алгоритма
Вычислительное ядро метода Рунге-Кутты можно составить из множественных вычислений функций f,g,... и т.д.
Макроструктура алгоритма
Как и записано в предыдущем пункте основную часть метода составляют множественные вычисления значений функций от нескольких переменных f,g,... и т.д.
Схема реализации последовательного алгоритма
Последовательность исполнения метода следующая:
[math]\displaystyle{ 1. t_{k+1}=t_{k}+h }[/math]
[math]\displaystyle{ 2. k_1=f(t_k,X_k,Y_k,...)h, }[/math]
[math]\displaystyle{ m_1=g(t_k,X_k,Y_k,...)h,..., }[/math]
[math]\displaystyle{ k_2=f(t_k+\frac{h}{2},X_k+\frac{k_1}{2},Y_k+\frac{m_1}{2},...)h, }[/math]
[math]\displaystyle{ m_2=g(t_k+\frac{h}{2},X_k+\frac{k_1}{2},Y_k+\frac{m_1}{2},...)h,..., }[/math]
[math]\displaystyle{ k_3=f(t_k+\frac{h}{2},X_k+\frac{k_2}{2},Y_k+\frac{m_2}{2},...)h, }[/math]
[math]\displaystyle{ m_3=g(t_k+\frac{h}{2},X_k+\frac{k_2}{2},Y_k+\frac{m_2}{2},...)h,..., }[/math]
[math]\displaystyle{ k_4=f(t_k+h,X_k+k_3,Y_k+m_3,...)h, }[/math]
[math]\displaystyle{ m_4=g(t_k+h,X_k+k_3,Y_k+m_3,...)h,... }[/math]
[math]\displaystyle{ 3. X_{k+1}=\frac{1}{6}(k_1+2k_2+2k_3+k_4), }[/math]
[math]\displaystyle{ Y_{k+1}=\frac{1}{6}(m_1+2m_2+2m_3+m_4),... }[/math]