5Simulation systems Лекция 7-9 ОДУ (1014124), страница 4
Текст из файла (страница 4)
(5.2.14)
Который показывает, что в такой упрощенной модели при заданных начальной скорости и угле запуска траектория зависит только от сопротивления воздуха и силы земного притяжения.
Теперь наша задача заключается в решении уравнений (5.2.11) с начальными условиями (5.2.5) и (5.2.13). Мы в дальнейшем будем использовать условия (5.2.13), поскольку они как частный случай включают условия (5.2.12). В том тривиальном случае, когда отсутствуют как сила тяги, так и сопротивление воздуха, эти уравнения допускают явное решение. Однако при любом сколько-нибудь реальном задании плотности воздуха
и силы тяги такое решение оказывается невозможным и возникает необходимость в приближенном численном решении.
Для численного решения удобно преобразовать два уравнения второго порядка (5.2.11) в систему четырех уравнений первого порядка. Дифференцируя соотношения:
(5.2.15)
Имеем:
(5.2.16)
Подставляя теперь (5.2.15) и (5.2.16) в уравнения (5.2.11) и разрешая последние относительно и
, получаем:
(5.2.17)
(5.2.18)
Уравнения (5.2.17) и (5.2.18) вместе с (5.2.15) составляют систему четырех уравнений первого порядка относительно функций х, у, и
. Начальные условия по-прежнему задаются соотношениями (5.2.5) и (5.2.13).
Примером также может служить задача о свободных колебаниях тела, подвешенного на пружине. Движение такого тела описывается дифференциальным уравнением, в котором независимой переменной является время t. Если дополнительные условия заданы в виде значений перемещения и скорости при t = 0, то имеем задачу Коши. Для той же механической системы можно сформулировать и краевую задачу. В этом случае одно из условий должно состоять в задании перемещения по истечении некоторого промежутка времени. В краевых задачах в качестве перемещений часто выступает длина. Известным примером такого рода является дифференциальное уравнение, описывающее деформацию упругого стержня.
В этом случае граничные условия обычно задаются на обоих концах стержня.
Итак, задача Коши формулируется следующим образом:
Пусть дано дифференциальное уравнение и начальное условие
. Требуется найти функцию Y(X), удовлетворяющую как указанному уравнению, так и начальному условию.
Обычно численное решение этой задачи получают, вычисляя сначала значение производной, а затем, задавая малое перемещение X и переходя к новой точке X1=X0+h. Положение новой точки определяется по наклону кривой, вычисленному с помощью дифференциального уравнения. Таким образом, график численного решения представляет собой последовательность коротких прямолинейных отрезков, которыми аппроксимируется истинная кривая Y=f(X). Сам численный метод определяет порядок действий при переходе от данной точки кривой к следующей. Поскольку численное решение задачи Коши широко применяется в различных областях науки и техники, то оно в течение многих лет было объектом пристального внимания, и число разработанных для него методов очень велико. Коротко рассмотрим наиболее из распространенных методик:
-
Одношаговые методы, в которых для нахождения следующей точки на кривой Y=f(X), требуется информация лишь об одном предыдущем шаге. Одношаговыми являются метод Эйлера и методы Рунге-Кутта.
-
Методы прогноза и коррекции (многошаговые), в которых для отыскания следующей точки кривой Y=f(X), требуется информация более, чем об одной из предыдущих точек. Чтобы получить достаточно точное численное значение, часто прибегают к итерации. К числу таких методов относятся методы Милна, Адамса - Башфорта и Хеминга. Особняком стоят разностные методы, редко используемые для решения задач Коши. Прежде, чем перейти к общим характеристикам методов остановимся на источниках погрешностей, связанных с численной аппроксимацией. Таких источников три:
-
Погрешность округления обусловлена ограничениями на представление чисел в используемой ЭВМ, так как для любой из них число значащих цифр, запоминаемых и используемых в вычислениях, ограничено.
-
Погрешность усечения связана с тем, что для аппроксимации функции вместо бесконечных рядов часто используются лишь несколько первых их членов.
-
Погрешность распространения является результатом накопления погрешностей, появившихся на предыдущих этапах счета.
Указанные три источника погрешностей являются причиной наблюдаемых ошибок двух типов:
-
Локальная ошибка - сумма погрешностей, вносимых в вычислительный процесс на каждом шаге вычислений
-
Глобальная ошибка - разность между вычисленным и точным значением величины на каждом этапе реализации численного алгоритма, определяющая суммарную погрешность, накопившуюся с момента начала вычислений
3.4.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 следует выбирать именно из соображений максимальной допустимой ошибки на шаге. Такой выбор часто осуществляется автоматически и включается как составная часть в алгоритм, построенный по методу Рунге — Кутта.
Относительную точность одношаговых методов продемонстрируем на следующем примере.