Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Рна ПК ТТ ПиУ 2009.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.67 Mб
Скачать

7.2.2 Методы Рунге-Кутты

Наибольше распространение при решении обыкновенных дифференциальных уравнений получил методы Рунге-Кутты.

В методах Рунге-Кутты более высокого порядка точности смещение из

точки (xi,yi), в точку (xi+1,yi+1) происходит не сразу, а через промежуточные точки (внутренние для интервала [хii+1]), в каждой из которых определяется направление касательной. В результате смещение выполняется вдоль некоторого усредненного направления. Методы Рунге-Кутты дает набор формул для расчета координат внутренних точек, требуемых для реализации этой идеи. Так как существует несколько способов расположения внутренних точек и выбора относительных весов для найденных производных, то метод Рунге-Кутты, в сущности, объединяет целое семейство методов решения дифференциальных уравнений первого порядка, которым можно отнести метод Эйлера и его модификации.

Наиболее распространенным является метод Рунге-Кутты четвертого порядка точности, для которого ошибка на шаге имеет порядок h5.

В этом методе значения величины yi+1 рассчитывается по формуле

yi+1=yi+h (K1+2K2+2K3+K4)/6, (7.6)

где K1=f (x i, yi),

K2=f (xi+ h /2,yi+ h k1/2),

K3=f (xi+ h /2, yi+ h k2/2),

K4=f (xi+h, yi+ h k3).

Метод Рунге-Кутты применим к системам уравнений первого порядка, а также к уравнениям любого порядка, которые можно свести к системам уравнений первого порядка путем замены переменных.

Так для уравнения второго порядка метод Рунге-Кутты имеет следующий алгоритм. Исходное уравнение задачи Коши

y´´= f (x, y, y´) (7.7)

с начальными условиями y0 = у(х0) и y´0 = y´ (х0) преобразуется к системе двух уравнений

y´= z = g (x, y, y´), при y´0 = y´ (х0) = z (х0) = z0

z´= f (x, y, y´) при y0 = у(х0). (7.8)

Далее

уi+1 = уi + К, (7.9)

где К = h (К1 + 2К2 +2К3 + К4)/6 ,

К1 = g (x i, y i, z i), К2 = g (x i + h/2, yi + К1h/2, z i + L1h/2),

К3 = g (x i + h/2, yi + К2h/2, z i + L2h/2), К4 = g (x i + h, y i + К3h, z i + L3h),

z i+1 = z i + L , (7/10)

где L = h (L 1 + 2 L 2 + 2L 3 + L 4)/6 ,

L 1 = f (x i, y i, z i), L 2 = f (x i + h/2, yi + К1h/2, zi + L1h/2),

L 3 = f (x i + h/2, yi + К2h/2, zi + L2h/2), L 4 = f (x i + h, yi + К3h, z i + L3h).

Метод Рунге-Кутты обладает достаточно высокой точностью, легко программируется. С помощью этого метода можно начинать решение – он самостартующий, так как нужно знать одно значение yi. Величину шага можно изменять на любом этапе вычислений. К недостаткам метода можно отнести большие затраты времени, так как в каждой точке функция рассчитывается четыре раза, и сложность определения ошибки метода.

Погрешность метода Рунге-Кутты на одном шаге сетки равна Mh5, но поскольку на практике М оценить сложно, пользуются правилами Рунге удвоения шага. Выполняют расчет функции уi+1(1) в точке хi+1 методом Рунге-Кутты четвертого порядка точности с шагом h, а затем рассчитывают этим же методом уi+1(2) в точке хi+1 с шагом h/2. По полученным значениям функции определяют погрешность

δ=Σаii+1(1)- уi+1(2) )/15 (7.11)

Если δ > ε, где ε – заданная точность, то шаг уменьшают вдвое. Если

δ < ε – результаты счета с шагом h достаточно точные. Если δ < ε/50 – шаг удваивают.