Лекция 9 (1014395), страница 2
Текст из файла (страница 2)
Одношаговые методы предназначены для решения дифференциальных уравнений первого порядка вида , где
, при первоначальном условии
. С помощью этих методов вычисляют последовательные значения у, соответствующие дискретным значениям независимой переменной х.
Метод Эйлера
Это простейший метод решения задачи Коши, позволяющий интегрировать дифференциальные уравнения первого порядка. Его точность невелика, и поэтому на практике им пользуются сравнительно редко. Однако на основе этого метода легче понять алгоритм других, более эффективных методов.
Метод Эйлера основан на разложении y в ряд Тейлора в окрестности х0:
Если h мало, то члены, содержащие h во второй или более высоких степенях, являются малыми более высоких порядков и ими можно пренебречь.
Тогда:
Значение находим из дифференциального уравнения
и начальное условие Y(X0)=Y0 , подставив в него начальное условие. Таким образом, можно получить приближенное значение зависимой переменной при малом смещении h от начальной точки. Этот процесс можно продолжить, используя соотношение:
, и делая сколько угодно много шагов.
Графически метод Эйлера показан на рисунке. Ошибка метода имеет порядок ft2, так как члены, содержащие h во второй и более высоких степенях, отбрасываются.
Модифицированный метод Эйлера
Хотя тангенс угла наклона касательной к истинной кривой в исходной точке известен и равен у’ (х0), он изменяется в соответствии с изменением независимой переменной. Поэтому в точке x0+h наклон касательной уже не таков, каким он был в точке х0. Следовательно, при сохранении начального наклона касательной на всем интервале h в результаты вычислений вносится погрешность. Точность метода Эйлера можно существенно повысить, улучшив аппроксимацию производной. Это можно сделать, например, используя среднее значение производной в начале и конце интервала. В модифицированном методе Эйлера сначала вычисляется значение функции в следующей точке по методу Эйлера:
Которое используется для вычисления приближенного значения производной в конце интервала . Вычислив среднее между значением производной и ее значением в начале интервала, найдем более точное значение
:
Этот прием иллюстрируем на рисунке.
Принцип, на котором основан модифицированный метод Эйлера, можно пояснить и иначе. Для этого вернемся к разложению функции в ряд Тейлора:
Кажется очевидным, что, сохранив член с h2 и отбросив члены более высоких порядков, можно повысить точность. Однако чтобы сохранить член с h2 , надо знать вторую производную . Её можно аппроксимировать конечной разностью:
Подставив это выражение в ряд Тейлора с отброшенными членами второго порядка, найдем , что совпадает с ранее полученным выражением.
Этот метод является методом второго порядка, так как в нем используется член ряда Тейлора, содержащий h2. Ошибка на каждом шаге при использовании этого метода, имеет порядок h3. За повышение точности приходится расплачиваться дополнительными затратами машинного времени, необходимыми для вычисления . Более высокая точность может быть достигнута, если пользователь готов потратить дополнительное машинное время на лучшую аппроксимацию производной путем сохранения большего числа членов ряда Тейлора. Эта же идея лежит в основе методов Рунге — Кутта.
Методы Рунге — Кутта
Чтобы удержать в ряде Тейлора член n-го порядка, необходимо каким-то образом вычислить n-ю производную зависимой переменной. При использовании модифицированного метода Эйлера для получения второй производной в конечно-разностной форме достаточно было знать наклоны кривой на концах рассматриваемого интервала. Чтобы вычислить третью производную в конечно-разностном виде, необходимо иметь значения второй производной, по меньшей мере, в двух точках. Для этого необходимо дополнительно определить наклон кривой в некоторой промежуточной точке интервала h, т. е. между xn и xn+1. Очевидно, чем выше порядок вычисляемой производной, тем больше дополнительных вычислений потребуется внутри интервала. Метод Рунге — Кутта дает набор формул для расчета координат внутренних точек, требуемых для реализации этой идеи. Так как существует несколько способов расположения внутренних точек и выбора относительных весов для найденных производных, то метод Рунге — Кутта в сущности объединяет целое семейство методов решения дифференциальных уравнений первого порядка. Наиболее распространенным из них является метод, при котором удерживаются все члены, включая h4. Это метод четвертого порядка точности, для которого ошибка на шаге имеет порядок h5. Расчеты при использовании этого классического метода производятся по формуле:
Где
Метод Эйлера и его модификация по сути дела являются методами Рунге — Кутта первого и второго порядка соответственно. По сравнению с ними метод Рунге — Кутта имеет важное преимущество, так как обеспечивает более высокую точность, которая с лихвой оправдывает дополнительное увеличение объема вычислений. Более высокая точность метода Рунге— Кутта часто позволяет увеличить шаг интегрирования h. Допустимая погрешность на шаге определяет его максимальную величину. Чтобы обеспечить высокую эффективность вычислительного процесса, величину h следует выбирать именно из соображений максимальной допустимой ошибки на шаге. Такой выбор часто осуществляется автоматически и включается как составная часть в алгоритм, построенный по методу Рунге — Кутта.
Относительную точность одношаговых методов продемонстрируем на следующем примере.
Пример
Пусть требуется решить уравнение , при начальном условии y(0)= 1, 0 < x < 1 и h = 0, 1. Это — линейное уравнение, имеющее следующее точное решение:
Которое поможет нам сравнить относительную точность, обеспечиваемую разными методами.
Результаты расчета представлены в приведенной ниже таблице, из которой хорошо видны преимущества метода Рунге — Кутта по сравнению с обычным и модифицированным методами Эйлера.
xn | Метод Эйлера | Модифицированный метод Эйлера | Метод Рунге — Кутта | Точное решение |
0,0 | 1,0000 | 1,0000 | 1,0000 | 1 ,0000 |
0,1 | 1,2000 | 1,2210 | 1,2221 | 1,2221 |
0,2 | 1 ,4420 | 1 ,4923 | 1 ,4977 | 1 ,4977 |
0,3 | 1 ,7384 | 1,8284 | 1 ,8432 | 1 ,8432 |
0,4 | 2,1041 | 2,2466 | 2,2783 | 2,2783 |
0,5 | 2,5569 | 2,7680 | 2,8274 | 2,8274 |
0,6 | 3,1183 | 3,4176 | 3,5201 | 3,5202 |
0,7 | 3,8139 | 4,2257 | 4,3927 | 4,3928 |
0,8 | 4,6747 | 5,2288 | 5.4894 | 5,4895 |
0,9 | 5,7376 | 6,4704 | 6,8643 | 6,8645 |
1,0 | 7,0472 | 8,0032 | 8,5834 | 8,5836 |
Методы Рунге — Кутта для системы дифференциальных уравнений
Любую из формул Рунге — Кутта можно использовать для решения систем дифференциальных уравнений и, следовательно, для решения дифференциальных уравнений более высоких порядков, так как любое дифференциальное уравнение n-го порядка можно свести к n дифференциальным уравнениям первого порядка. Например, в дифференциальном уравнении второго порядка:
Можно принять z=dy/dx. Тогда dzldx=d2y/dx2 и получаем два уравнения первого порядка:
Задача Коши в этом случае содержит два начальных условия: .
Формулы Рунге — Кутта для рассматриваемого случая имеют вид:
Где:
Здесь:
Общая характеристика одношаговых методов
Всем одношаговым методам присущи определенные общие черты:
-
Чтобы получить информацию в новой точке, надо иметь данные лишь в одной предыдущей точке. Это свойство можно назвать «самостартованием» (self-starting behavior).
-
В основе всех одношаговых методов лежит разложение функции в ряд Тейлора, в котором сохраняются члены, содержащие h в степени до k включительно. Целое число k называется порядком метода. Погрешность на шаге имеет порядок k+1.
-
Все одношаговые методы не требуют действительного вычисления производных — вычисляется лишь сама функция, однако могут потребоваться ее значения в нескольких промежуточных точках. Это влечет за собой, конечно, дополнительные затраты времени и усилий.
-
Свойство «самостартования» позволяет легко менять величину шага h.
Методы прогноза и коррекции
В этих методах для вычисления положения новой точки используется информация о нескольких ранее полученных точках. Для этого применяются две формулы, называемые соответственно формулами прогноза и коррекции. Схемы алгоритмов для всех таких методов примерно одинаковы, а сами методы отличаются лишь формулами.
Далее представлена схема алгоритма метода прогноза и коррекции для решения дифференциального уравнения вида y'(x)=f(x, у).
Так как в рассматриваемых методах используется информация о нескольких ранее полученных точках, то в отличие от одношаговых методов они не обладают свойством «самостартования». Поэтому, прежде чем применять метод прогноза и коррекции, приходится вычислять исходные данные с помощью какого-либо одношагового метода. Часто для этого прибегают к методу Рунге — Кутта. Вычисления производят следующим образом. Сначала по формуле прогноза и исходным значениям переменных определяют значение Верхний индекс (0) означает, что прогнозируемое значение является одним из последовательности значений yn+1, располагающихся в порядке возрастания точности. По прогнозируемому значению
с помощью приведенного выше дифференциального уравнения находят производную
.