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

4.5.2.5 Метод Рунге-Кутта

Наиболее распространенным в практике интегрирования обычных дифференциальных уравнений есть методы Рунге-Кутта разнообразного порядка точности. Преимуществом этих методов есть то, что при их использовании не надо вычислять производные выше первого порядка, а их главный недостаток - значительный объем вычислений на каждом шаге. К методам Рунге-Кутта относятся метод Эйлера - метод Рунге-Кутта первого порядка точности; модифицированный метод Эйлера и метод Эйлера-Коши - метод Рунге-Кутта второго порядка.

Метод Рунге-Кутта четвертого порядка точности - один из наиболее применяемых методов интегрирования дифференциальных уравнений. Вообще его называют просто "методом Рунге-Кутта". Этот метод описывается системой пяти уравнений:

Yi+1=Yi+h/6*(K1+2K2+2K3+K4)

(4.45)

где K1=f(Xi,Yi)

(4.46)

K2=f(Xi+h/2,Yi+hK1/2)

(4.47)

K3=f(Xi+h/2,Yi+hK2/2)

(4.48)

K4=f(Xi+h,Yi+hK3)

(4.49)

Интегрирование по методу Рунге-Кутта заключается в следующем. Для любой і-ой точки (i=1, 2, .. , n-1) по (4.46) - (4.49) вычисляют значения Кj (j=1, 2, 3, 4). Потом по (4.45) последовательно определяют значения Yi (i=1, 2, .., n).

4.5.3. Многоступенчатые методы

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

Отличительной особенностью методов Рунге-Кутта есть то, что при расчете следующей точки (Xi+1,Yi+1) используется информация только о точке (Xi,Yi).

В методах второго порядка и выше приходится высчитывать значения функции в одной или нескольких промежуточных точках. Это не всегда рационально, поскольку, если процесс интегрирования уже продвинулся на несколько шагов, то уже располагаем той дополнительной информацией (о предшествующих точках решения), для использования которой не нужно вычислять значения функций. Методы прогноза и коррекции отличаются тем свойством, что с их помощью невозможно начать решение дифференциального уравнения, так как в них необходимо использовать информацию о предшествующих точках решения. Для начала решения уравнения, имея только одну точку, определенную первоначальным условием, необходимо использовать методы типа Рунге-Кутта. Из названия метода понятно, что сначала "прогнозируется" значение

Y(0)i+1 =Yi-1+2hf(Xi,Yi),

(4.50)

где верхний индекс (0) означает начальное приближение к Yi+1, то есть прогнозируемое значение. Из (4.50) видно, что с ее помощью невозможно вычислить Yi. Поэтому для вычисления Yi используется метод Рунге-Кутта. Все следующие точки будут вычисляться с использованием информации о предшествующих точках решения без дополнительных вычислений значения функции. Это позволяет классифицировать методы прогноза и коррекции как многоступенчатые методы решения дифференциальных уравнений.

Алгоритм решения уравнения методом прогноза и коррекции следующий.

По (4.50) вычисляется прогнозируемое значение Y(0)i+1. Геометрически предсказание сводится к тому, что находим угол наклона касательной в точке (Xi,Yi) (прямая L1 на рис.4.22). После этого через точку (Xi-1,Yi-1) проводится прямая L'1, параллельная L1.

Рис.4.22 Рис.4.23

Прогнозируемое значение Yi+1 будет расположено там, где прямая L'1 пересечет ординату X=Xi+1. Теперь требуется некоторый метод коррекции прогнозированного значения. Исходя из того, что величина Y(0)i+1 известна, можно вычислить наклон касательной в точке (Xi+1,Yi+1). Эта касательная отображена на рис.4.23 и обозначена L2. Прямая L'1 на рис.4.23 представляет собой то же, что и на рис.4.22. Усреднив тангенсы углов наклона линий L'1 и L2, получаем линию L-(с чертой). Через точку (Xi,Yi) проводим прямую L, параллельную L-(с чертой). Точка пересечения этой линии с ординатой X=Xi+1 дает новое приближение к Yi+1. Назовем это приближение скорректированным значением Y(1)и+1. Вычислить это скорректированное значение можно по формуле

Y(1)i+1=Yi+h/2*[f(Xi,Yi)+f(Xi+1,Y(0)i+1)]

(4.51)

Можно найти новое, возможно, еще лучше всего приближение к Yi+1, используя найденное значение Yi+1 и корректируя снова. В общем случае, k-тое приближение к Yi+1 исчисляется по формуле:

Y(k)i+1=Yi+h/2[(f(Xi,Yi)+f(Xi+1,Y(k-1)i+1)]

(4.52)

для k=1,2,3,... . Итерационный процесс завершается, если

|Y(k+1)i+1–Y(k)i+1|<

(4.53)

Выбирая шаг для метода прогноза и коррекции, необходимо пользоваться следующим эмпирическим правилом: минимальный объем вычислений (и минимальные затраты машинного времени) достигаются при числе итераций, которое равняется 2. Другими словами, шаг интегрирования нужно выбирать так, чтобы условие (4.53) выполнялась после двух итераций. При большем числе итераций шаг h необходимо уменьшать.

Пример

Используя метод прогноза и коррекции, найти с точностью =0.001 значения Y=Y(2) и Y=Y(3) решения Y=Y(X) дифференциального уравнения (4.42) с начальным условием Y(0)=0. Шаг h=1.

Принимая во внимание то, что для использования формулы (4.50) необходимая информация о двух точках, то значение Y1=Y(1) возьмем из предшествующего примера, вычисленного с помощью метода Эйлера-Коши, Y1=0.0486. Теперь по формуле (4.50) вычислим прогнозируемое значение в точке Y(0)2:

Y(0)2=Y0+2hf(X1,Y1)=0+210.0473=0.0972.

Коррекцию оптимального значения выполним по формуле (4.51).

Первое приближение:

Y(1)2=Y1+h/2[f(X1,Y1)+f(X2,Y(0)2)]=0.0486+1/2(0.0473+0.0446)=0.0944.

Второе приближение:

Y(2)2=Y1+h/2[f(X1,Y1)+f(X2,Y(1)2)]=0.0486+1/2(0.0473+0.0446)=0.0946.

Проверка выполнения условия (4.53):

|Y(2)2-Y(1)2|<.

В связи с тем, что условие (4.53) выполняется, то принимаем Y2 =0.0946.

Далее по (4.50) вычисляем прогноз в точке Y3:

Y(0)3=Y1+2hf(X2,Y2)=0.0486+210.0446=0.1378

Коррекцию полученного значения выполним по формуле (4.51).

Первое приближение:

Y(1)3=Y2+h/2[f(X2,Y2)+f(X3,Y(0)3)]=0.0946+1/2(0.0446+0.0421)=0.1380.

Второе приближение:

Y(2)3=Y2+h/2[f(X2,Y2)+f(X3,Y(1)3)]=0.0946+1/2(0.0446+0.0421)=0.1380.

Проверка выполнения условия (4.53): |Y(2)3-Y(1)3|<.

В связи с тем, что условие (4.53) выполняется, то принимаем Y=0.1380. Метод прогноза и коррекции более точный, чем ранее рассмотренные методы второго порядка точности.

Каждое ОДУ 2-го порядка и выше равносильно системе ОДУ 1-го порядка:

, что позволяет применять описанные методы для их решения.