Лекция 14.
Уточненный метод Эйлера
Метод Эйлера для расчета дифференциальных уравнений имеет небольшую точность
расчета. Как было показано ранее (см.
Лекцию 10. Численные методы интегрирования дифференциальных уравнений. Метод Эйлера),
точность расчета у него зависит от размера шага линейно, зависимость точности
от шага первой степени. То есть, чтобы увеличить точность в 10 раз, надо
уменьшить шаг в 10 раз. На практике интересуются более совершенными методами.
Вопрос стоит так: можно ли увеличить точность на порядок, но при этом
сэкономить на количестве вычислений? Да, такие методы есть. Модифицированный
метод Эйлера имеет точность второго порядка. В методе Эйлера производная
берется в начале шага и по ней прогнозируется движение системы на конец шага,
считая, что во время шага производная неизменна. То есть в течение всего шага
производная считается той, какой она была в самом начале шага. Это основной
источник неточности.
Улучшение метода состоит в том, что берется производная не в начале шага, а как
промежуточное или среднее на разных участках одного шага. В разных вариантах
метода вычисляют несколько производных в разных частях шага и усредняют их.
Конечно, в этом случае число вычислений увеличивается, но не в десятки
раз, а вот точность возрастает на порядок, в этом и состоит выигрыш.
Пусть, как и прежде (см.
Лекцию 10. Численные методы интегрирования дифференциальных уравнений. Метод Эйлера),
требуется решить уравнение
y' = f(x, y, t).
Идея уточненного метода Эйлера состоит в том, что производную вычисляют не в
i-ой
точке, а между двумя соседними точками:
i
и
i + 1.
Данная процедура состоит из следующих шагов:
- в точке
i
вычисляют значение производной:
f(xi, yi, t);
- делают пол-шага и вычисляют значение функции на середине отрезка:
yi + 1/2 = yi + f(xi, yi, t) · Δt/2;
- в точке
i + 1/2
вычисляют производную:
f(xi + 1/2, yi + 1/2, t + Δt/2);
- делается полный шаг из точки
i
в точку
i + 1
по значению уточненной производной:
yi + 1 =yi + f(xi + 1/2, yi + 1/2, t + Δt/2) · Δt;
- значение
t
увеличивается:
t := t + Δt.
Вся процедура повторяется сначала.
Данный метод обладает точностью
Ο2(h),
то есть на порядок выше, чем метод Эйлера, при увеличении числа вычислений
всего в 2 раза.
На
рис. 14.1
показано, какой будет ошибка
ε
(расхождение между реальным и вычисленным теоретическим значением), если шаг
делается по значению производной, вычисленной в точке
i, как это делается в методе Эйлера.
Эта ошибка может быть достаточно велика!
|
Рис. 14.1. Движение реальной и расчетной системы по методу Эйлера и расхождение между ними (ошибка) |
На
рис. 14.2
показано, как по значению производной, вычисленной в точке
i,
делается полшага до точки
t + Δt/2
(направление производной показано линией A). И в точке
t + Δt/2
вычисляют новую производную. Касательная в точке
t + Δt/2
будет другой линия B. Ее наклон равен производной в точке
t + Δt/2.
|
Рис. 14.2. Уточнение значения производной внутри шага расчета |
Далее переносят линию B обратно в точку
t.
Это соответствует тому, что из точки
t
снова делается, но уже полный, шаг
Δt
до точки
t + Δt
по направлению, соответствующему линии C
(рис. 14.3).
Линия C параллельна B. То есть значение производной в точке
t
берется искусственно равным производной в точке
t + Δt/2.
Ошибка расчета (см.
ε1)
во многих случаях при этом уменьшается.
|
Рис. 14.3. Движение реальной системы и системы, рассчитанной модифицированным методом Эйлера, и расхождение между ними (ошибка). На рисунке для сравнения показан результат, вычисленный по методу Эйлера |
Существует другой вариант модифицированного метода Эйлера, когда производную
для того, чтобы сделать шаг из точки
i,
берут не в
i-ой
точке и не в
i + 1/2,
а как среднее арифметическое двух производных: производной в точке
i
(направление производной показано на
рис. 14.4
линией A)
и производной в точке
i + 1
(направление производной показано линией B).
Направление «средней» производной показано линией C.
|
Рис. 14.4. Расчет движения системы по среднему значению производной на шаге |
|