11.2. Погрешности
Рассмотрим источники погрешностей, возникающие при численной аппроксимации искомой функции. Таких источников три:
1. Погрешность округления обусловлена ограничениями представления чисел в используемой ЭВМ, так как для любой из них число значащих цифр, запоминаемых и используемых в вычислениях, ограничено.
2. Погрешность усечения связана с тем, что для аппроксимации
функции вместо бесконечных рядов используются лишь несколько первых членов. Этот обычный для численных методов прием, являющийся источником погрешностей, целиком зависит от применяемых методов решения и не зависит от характеристик самой ЭВМ.
3. Погрешность распространения является результатом накопления погрешностей, появившихся на предыдущих этапах расчета. Так как ни один приближенный метод не может дать совершенно точных результатов, то любая возникшая в ходе вычислений погрешность сохраняется на последующих стадиях расчета.
Указанные источники погрешностей являются причиной ошибок двух типов:
1. Локальная ошибка - сумма погрешностей, вносимых в вычислительный процесс на каждом шаге вычислений.
2. Глобальная ошибка - разность между вычисленным и точным значением величины на каждом этапе реализации численного алгоритма, определяющая суммарную погрешность, накопившуюся с момента начала вычислений.
11.3. Одношаговые методы решения задачи Коши
Одношаговые методы предназначены для решения дифференциальных уравнений первого порядка вида
(11.2)
где y' = dy/dx, при начальном условии y(x0) = y0. С помощью этих методов вычисляют последовательные значения y, соответствующие дискретным значениям независимой переменной x.
11.3.1. Метод Эйлера
Это простейший метод решения задачи Коши, позволяющий интегрировать дифференциальные уравнения первого порядка. Его точность невелика, и поэтому на практике им пользуются сравнительно редко. Однако на основе этого метода легче понять алгоритм других, более эффективных методов.
Метод Эйлера основан на разложении функции y(x) в ряд Тейлора в окрестности точки x0:
(11.3)
Если приращение h мало, то члены, содержащие значение h во второй или более высоких степенях, являются малыми величинами более высоких порядков и ими можно пренебречь. Тогда
,
(11.4)
где y'(x0) находится из дифференциального уравнения путем подстановки в него начального условия. Таким образом можно получить приближенное значение зависимой переменной при малом смещении h от начальной точки. Этот процесс можно продолжить, используя соотношение
,
где n
= 1, 2, 3, …
(11.5)
и делая любое количество шагов.
Графическая интерпретация метода Эйлера показан на рис.11.1.
Ошибка метода имеет порядок h2, так как члены, содержащие h во второй и более высоких степенях, стоящие в ряде Тейлора, отбрасываются.
Рис. 11.1
11.3.2. Модифицированный метод Эйлера
Хотя тангенс угла
наклона касательной к истинной кривой
в исходной точке известен и равен
,
он изменяется в соответствии с изменением
независимой переменной. Поэтому в точке
x0
+ h
наклон касательной уже не таков,
каким он был в точке x0.
Следовательно, при сохранении начального
наклона касательной на всем интервале
h
в результаты вычислений вносится
погрешность.
Рис. 11.2
Точность метода Эйлера можно существенно повысить, улучшив аппроксимацию производной. Это можно сделать, используя среднее значение производной в начале и конце интервала. В модифицированном методе Эйлера сначала вычисляется значение функции в следующей точке по методу Эйлера:
,
(11.6)
которое затем используется для вычисления приближенного значения
производной в конце интервала f(xn +1, y*n +1). Вычислив среднее значение этих производных, можно найти более точное значение yn +1:
(11.7)
Этот прием иллюстрируется рис.11.2. Принцип, на котором основан модифицированный метод Эйлера, можно пояснить по-другому. Для этого вернемся к разложению функции в ряд Тейлора (11.3):
Cохранив член с h2 и отбросив члены более высоких порядков, можно повысить точность. Однако чтобы сохранить член с h2, надо знать вторую производную y''(x), которую можно аппроксимировать конечной разностью:
(11.8)
Подставив это выражение в ряд Тейлора с отброшенными членами второго порядка, получим:
,
(11.9)
что совпадает с полученным выражением (11.7)
Этот метод является методом второго порядка, так как в нем используется член ряда Тейлора, содержащий h2. Ошибка на каждом шаге имеет порядок h3. Для повышение точности приходится делать дополнительные вычисления y*n + 1. Более высокая точность может быть достигнута при аппроксимации производной путем сохранения большего числа членов ряда Тейлора. Эта идея лежит в основе методов Рунге-Кутта.
