Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
krav.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
3.45 Mб
Скачать

Методы прогноза и коррекции

Отличительной чертой метода Рунге-Кутта является то, что при вычислении следующей точки (xm+1, ym+1) используется только информация о точке (xm, ym), но не о предыдущих. В методах 2-го и высших порядков приходится вычислять значение функции в одной или нескольких промежуточных точках. Это представляется нерациональным, т.к. если процесс интегрирования уже продвинулся на несколько шагов, то к нашим услугам имеется дополнительная информация, для использования которой вообще не нужно вычислять никаких функций, – информация о предыдущих точках решения. Так как в методе Рунге-Кутта информация о предыдущих точках не используется, и так как для метода Рунге-Кутта отсутствуют достаточно простые способы оценки ошибки, то целесообразно было бы рассмотреть некоторые дополнительные методы решения дифференциального уравнения.

Отличительное свойство этих методов, что с их помощью нельзя начать решение уравнения, т.к. необходимо использовать информацию о предыдущих точках решения. Чтобы начать решение уравнения, имея только одну точку, определяемую начальным условием, или для того, чтобы изменить h, необходим метод типа Рунге-Кутта. Поэтому приходится использовать разумное сочетание этих двух методов.

Те методы, которые мы собираемся рассматривать, известны под общим названием методов прогноза и корректировки. Как ясно из названия, вначале “предсказывается” значение ym+1, а затем используется тот или иной метод его “корректировки”. Естественно, что после этого можно использовать ту же самую формулу для вторичной корректировки уже однажды скорректированного значения ym+1. Этот итерационный процесс можно повторять сколько угодно раз, но в дальнейшем мы увидим, что из соображений эффективности целесообразно уменьшить число итераций, выбирая должным образом шаг интегрирования.

Среди множества возможных формул прогноза и коррекции выберем по одному примеру, применимому ко многим практическим задачам.

Для прогноза используем формулу 2-го порядка

ym+1(0) = ym-1 + 2h f(xm, ym), (30)

где (0) означает исходное приближение к ym+1, т.е. предсказанное значение. Непосредственно из написанной формулы следует, что с её помощью нельзя вычислить y2, т.к. для вычисления y1 потребовалась бы точка, расположенная перед начальной точкой y0. Чтобы начать решение с помощью метода прогноза и коррекции, часто используют метод Рунге-Кутта.

Можно подумать, что если для предсказания точки (xm+1, ym+1) используется метод Эйлера, то информация о точке (xm–1, ym–1) не потребуется. Это оказывается нецелесообразным, потому что при использовании метода Эйлера слишком велика ошибка приближения. Именно использование информации о предыдущих точках без вычисления значений функции позволяет классифицировать метода прогноза и коррекции как многоступенчатые методы решения дифференциального уравнения.

Геометрически предсказание сводится к тому, что находится угол наклона касательной в точке (xm, ym) (L1 на рис. 6). После этого через (xm–1, ym–1) проводится прямая L || L1. Предсказанное значение ym+1(0) будет расположено в точке P.

L1

L

P

(xm+1, ym+1(0))

y = y(x)

xm–1 xm xm+1

h h

Теперь требуется некоторый метод коррекции предсказанного значения. Так как нам приближённо известна величина ym+1, то можно вычислить наклон касательной в точке (xm+1, ym+1(0)). Это касательная L2 тангенс угла наклона L1 = f(xm, ym). Мы усредняем тангенсы углов наклона L1 и L2 и получаем L3. Наконец проводим через точку (xm, ym) линию L || L3 и точка пересечения этой линии с ординатой x=xm+1 даёт приближение к ym+1.

L2

(xm+1, ym+1(0))

(xm+1, ym+1(1))

L3

L

L1

xm–1 xm xm+1

Назовём это приближение скорректированным значением ym+1(1). Вычислить это скорректированное значение можно по формуле

ym+1(1) = ym + h/2 [f(xm, ym) + f(xm+1, ym+1(0))].

Можно попытаться найти новое, по-видимому, ещё лучшее приближение к ym+1, используя значение ym+1(1) и корректируя снова. В общем случае i-е приближение к ym+1 вычисляется по формуле

ym+1(i) = ym + h/2 [f(xm, ym) + f(xm+1, ym+1(i-1))] (31)

для i=1,2,3...

Итерационный процесс прекращается, когда

|ym+1(i+1) – ym+1(i)| < (32)

для некоторого > 0

Описанный метод коррекции похож на исправленный метод Эйлера (формулы 10-12). Основная разница заключается в том, что в роли прогноза был использован метод Эйлера и отсутствовала итерационная процедура, здесь же используется более точная формула (31).

Возникает вопрос, удастся ли удовлетворить условию (32), т.е. сходится ли процесс вообще.

Для ответа на вопрос заметим, что имеет место равенство

ym+1(i+1) – ym+1(i) = h/2(f/y) [f(xm+1, ym+1(i)) – f(xm+1, ym+1(i–1))]

Используя теорему о среднем значении получаем

ym+1(i+1) – ym+1(i) = h/2(f/y) [ym+1(i) – ym+1(i–1)] (33)

где f/y вычислено при x=xm+1, и при некотором y, лежащем между ym+1(i+1) и ym+1(i).

Предположим, что f/y – ограничена, т.е. можно найти такое M, что

|f/y| < M,

тогда из (33) следует, что

|ym+1(i+1) – ym+1(i)| < M h/2 |ym+1(i) – ym+1(i–1)|

Аналогично

|ym+1(i) – ym+1(i–1)| < (M h/2)2 |ym+1(i–1) – ym+1(i–2)|

... и так далее приходим к

|ym+1(i+1) – ym+1(i)| < (M h/2)i |ym+1(1) – ym+1(0)| (34)

Таким образом, если выбрать величину h < 2/M, то разница между последовательным скорректированным значением стремится к нулю и процесс сходится.

Мы доказали, что последовательные значения ym+1(i) сходятся к некоторому определённому значению, но вовсе не обязательно к точному решению уравнения. Разница между тем и другим представляет собой ошибку приближения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]