Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_Мат_Ч2.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.27 Mб
Скачать

Алгоритмы решения систем ду

При решении систем ДУ вида (6) с начальными условиями (7) приведенные выше формулы (9) – (12) приобретают векторный вид.

Для метода Эйлера:

. (15)

Для метода Эйлера-Коши:

(16)

Для метода Рунге-Кутта

(17)

Д ля того, чтобы решить ДУ или систему ДУ любым из известных методов, используя современные языки программирования, необходимо предварительно составить функцию вычисления правых частей ДУ по (13), т.е., вектора производных в заданной точке, в соответствии с приведенным алгоритмом.

Такая функция будет использоваться в функциях решения системы ДУ определенным методом, чаще всего – в функциях одного шага численного интегрирования.

Блок-схемы алгоритмов функций одного шага численного интегрирования методами Эйлера, Эйлера-Коши, Рунге-Кутта представлены ниже.

Обобщенный алгоритм программы решения системы ДУ на заданном интервале изменения аргумента может иметь вид, представленный на рисунке ниже.

Алгоритм одного шага численного интегрирования методом Эйлера

Алгоритм одного шага численного интегрирования методом Эйлера-Коши

Алгоритм одного шага численного интегрирования

методом Рунге-Кутта 4-го порядка

Обобщенный алгоритм решения системы ДУ методами Рунге-Кутта

Методы Рунге-Кутта с автоматическим выбором шага (АВШ)

Погрешность численного решения ДУ зависит от выбранного метода, от шага интегрирования и от кривизны функции.

Для обеспечения заданной точности за минимальное время путем оптимального выбора значения шага интегрирования, являющегося переменной величиной, используются алгоритмы с АВШ. Их смысл заключается в том, что на каждом интервале вычисления производятся с максимально возможным по условиям заданной точности шагом. При таком подходе на участках плавного изменения кривой шаг окажется больше, чем на участках ее резкого изменения при одинаковой погрешности результата.

Выбор такого оптимального шага – сложная алгоритмическая задача. На практике эту задачу решают весьма приближённо, используя алгоритмы с АВШ, которые составляются по следующему принципу.

Зная вектор и задаваясь значением шага , вычисляют и (то есть, значение вектора при половинном шаге на том же элементарном интервале интегрирования). Вычисляют

.

Если оказалось, что , то дробление прекращают, и в качестве результата вычислений принимают последнее значение функции при дробном значении шага. В противном случае вычисляют и т.д., т.е. продолжают дробление при двукратном уменьшении шага интегрирования.

Учитывая, что погрешность , начальное значение шага выбирают

.

Количество дроблений при правильно выбранном начальном шаге оказывается небольшим: так, при уменьшении шага интегрирования в 2 раза точность метода Эйлера ( ) возрастает в 4 раза, Эйлера-Коши – в 8 раз, Рунге-Кутта – в 32 раза.

Алгоритм одного шага численного интегрирования (например, методом Рунге-Кутта 4-го порядка) с АВШ представлен на рисунке ниже.

Алгоритм решения системы ДУ, использующий алгоритм одного шага численного интегрирования любым из методов Рунге-Кутта с АВШ может иметь вид, аналогичный представленному выше, за исключением одного момента. Алгоритм одного шага численного интегрирования с АВШ не предусматривает укрупнения шага при чрезмерной точности расчета, следовательно, на каждом следующем шаге численного интегрирования следует восстанавливать первоначальное значение переменной h. (Это реализуется само собой, если переменная h не является глобальной по отношению к функции run_kut_4_avsh; в противном случае должна быть предусмотрена ее локализация.)

Алгоритм одного шага численного интегрирования

методом Рунге-Кутта 4-го порядка с АВШ

Условием увеличения шага интегрирования можно принять

,

однако следует иметь в виду, что в алгоритмах, предусматривающих как дробление, так и увеличение шага, может возникнуть бесконечный итерационный процесс.

Для метода Рунге-Кутта 4-го порядка погрешность ограничения составляет

,

которая может быть использована для внесения окончательной поправки в решение ДУ.

Более эффективным условием для правильного выбора шага интегрирования метода Рунге-Кутта 4-го порядка является грубое, но весьма простое оценочное правило Коллатца, согласно которого, если

,

то шаг интегрирования следует уменьшать.

Более точно можно оценить точность, если вычислять всю таблицу несколько раз с разным значением шага: h, h/2, h/4 и т.д. с последующей оценкой погрешности между двумя соседними значениями максимальной погрешности .

Несмотря на кажущуюся громоздкость, с повышением порядка методов Рунге-Кутта для решения ДУ с одной и той же точностью требуется меньше времени за счет возможности выбора более крупного шага интегрирования.

Пример. Дано ДУ 2-го порядка

. (18)

Найти его частное решение для и на интервале при начальных условиях

; (19)

с точностью .

Решение.

Преобразуем данное уравнение в систему двух ДУ 1-го порядка, используя прием понижения порядка ДУ. Обозначив

, (20)

исходное ДУ запишем в виде:

.

Интегрируем последнее уравнение

,

и разрешаем его относительно производной:

. (21)

Уравнения (20), (21) представляют собой систему двух ДУ 1-го порядка в нормальной форме Коши. Для того, чтобы эту систему было удобно решить на ЭВМ, объединим зависимые переменные в одномерный массив. Для этого вводим новую переменную

, (22)

и запишем систему ДУ в виде:

(23)

Начальные условия по переменным и можно вывести, используя (19), из (21) и (22):

; . (24)

Решая систему (23) с начальными условиями (24) любым из известных методов, получим и . Искомые координаты и можно рассчитать по уравнениям: