Методы Рунге - Кутта
|
||||||||||
Наиболее эффективными и часто встречаемыми методами
решениями задачи Коши являются методы
Рунге - Кутта. Они основаны на аппроксимации искомой функции у(х)
в пределах каждого шага многочленом, который получен при
помощи разложения функции у(х) в окрестности шага h каждой i-ой точки в ряд
Тейлора:
Усекая ряд Тейлора в различных точках и отбрасывая
правые члены ряда, Рунге и Кутта получали различные методы для определения
значений функции у(х) в каждой узловой
точке. Точность каждого метода определяется отброшенными членами ряда. Метод Рунге - Кутта 1-го порядка (метод
Эйлера)
Отбросим в (12.4) члены ряда, содержащие h2, h3, h4:. Тогда Так как Получим формулу Эйлера:
Так как точность методов
Рунге-Кутта определяется отброшенными членами ряда (12.4), то точность метода Эйлера на каждом шаге составляет Алгоритм метода Эйлера можно
построить в виде двух программных модулей: основной программы и подпрограммы
ELER, реализующей метод.
Здесь (x,y) -при вводе
начальная точка, далее текущие значения табличной функции, h -шаг интегрирования
дифференциального уравнения, b -конец интервала интегрирования. Рассмотрим геометрический смысл метода
Эйлера. Формула Эйлера имеет вид: где Тогда формула Эйлера принимает вид: где
В результате в методе Эйлера
на графике
(рис 12.10) вся искомая функция y(x) на участке [a,b] аппроксимируется ломаной линией, каждый отрезок
которой на шаге h линейно аппроксимирует искомую функцию. Поэтому метод Эйлера получил еще название метода ломаных. В методе Эйлера наклон касательной
в пределах каждого шага считается постоянным и равным значению производной в
начальной точке шага xi. В действительности
производная, а, значит, и тангенс угла наклона касательной к кривой y(x) в
пределах каждого шага меняется. Поэтому в точке xi+h
наклон касательной не должен быть равен наклону в точке xi.
Следовательно, на каждом шаге вносится погрешность. Первый отрезок ломаной действительно касается
искомой интегральной кривой y(x) в точке (x0,y0). На последовательных же шагах
касательные проводятся из точек (xi,yi), подсчитанных
с погрешностью. В результате с каждым шагом ошибки накапливаются. Основной недостаток метода
Эйлера - систематическое накопление ошибок. Поэтому метод
Эйлера рекомендуется применять для решения
дифференциальных уравнений при малых значениях шага интегрирования h. Метод Рунге - Кутта 2-го порядка (модифицированный метод Эйлера)
Отбросим в (12.4) члены ряда, содержащие h3, h4, h5:. Тогда
Чтобы сохранить член ряда, содержащий h2, надо
определить вторую производную y"(xi).Ее
можно аппроксимировать разделенной разностью 2-го порядка Подставляя это выражение в (12.6), получим Окончательно, модифицированная или уточненная
формула Эйлера имеет вид:
Как видно, для определения функции y(x) в точке i+1
необходимо знать значение правой части дифференциального уравнения f(xi+1, yi+1)
в этой точке, для определения которой необходимо знать предварительное значение
yi+1. Для определения предварительного значения yi+1
воспользуемся формулой Эйлера. Тогда все вычисления на каждом шаге по
модифицированной или уточненной формуле Эйлера будем выполнять в два этапа: На первом этапе вычисляем предварительное значение На втором этапе уточняем значение y=i+1 по
модифицированной или уточненной формуле Эйлера Точность метода определяется отброшенными членами
ряда Тейлора (12.4), т.е. точность уточненного или модифицированного
метода Эйлера на каждом шаге Рассмотрим геометрический смысл модифицированного
метода Эйлера. Так как то модифицированную формулу Эйлера можно представить в виде: где
Здесь P1 - накопленная ошибка в (i+1)й точке по методу Эйлера, P2 - накопленная ошибка в (i+1)й точке по модифицированному методу Эйлера. Как видно из
рис.12.11, в первой половине каждого шага, то есть на участке [xi, xi+h/2], искомая функция y(x)
аппроксимируется прямой, которая выходит из точки (xi,
yi) под углом, тангенс которого Во второй половине этого же шага, т.е. на участке [xi + h/2,xi + h], искомая функция y(x) аппроксимируется
прямой, которая выходит из точки с координатами под углом, тангенс которого В результате в модифицированном
методе Эйлера функция у(х) на каждом шаге
аппроксимируется не одной прямой, а двумя. Алгоритм модифицированного
метода Эйлера можно построить в виде двух программных модулей: основной
программы и подпрограммы МELER, реализующей метод
(рис. 12.13).
Здесь (x,y) -при вводе
начальная точка, далее текущие значения табличной функции, h -шаг интегрирования
дифференциального уравнения, b -конец интервала интегрирования. Метод Рунге - Кутта 4-го порядка
Самое большое распространение из всех численных
методов решения дифференциальных уравнений с помощью ЭВМ
получил метод Рунге-Кутта 4-го порядка. В литературе он
известен как метод Рунге-Кутта. В этом методе на каждом шаге интегрирования
дифференциальных уравнений искомая функция y(x) аппроксимируется рядом Тейлора
(12.4), содержащим члены ряда с h4: В результате ошибка на каждом шаге имеет порядок h5. Для сохранения членов ряда, содержащих h2,h3,h4
необходимо определить вторую y", третью y"' и четвертую y(4) производные функции y(x). Эти производные аппроксимируем разделенными разностями второго, третьего и четвертого
порядков соответственно. В результате для получения значения функции yi+1 по
методу Рунге-Кутта выполняется следующая последовательность вычислительных
операций: Вывод формулы не приведен. Предоставляется
возможность вывод формул выполнить самостоятельно. Алгоритм метода Рунге-Кутта (4-го порядка) можно
построить в виде двух программных модулей: основной программы и подпрограммы Rk4,
реализующей метод
(рис 12.14).
Здесь (x,y) -при вводе
начальная точка, далее текущие значения табличной функции, h -шаг интегрирования
дифференциального уравнения, b -конец интервала интегрирования. |
||||||||||