Как мы уже знаем, возможность использования переменного шага необходима для обеспечения допустимой величины локальной погрешности, что весьма важно при сложном поведении функции f. Мы предлагаем следующий алгоритм выбора шага.
Пусть — допустимая величина локальной погрешности. Нам необходимо подобрать такой шаг интегрирования , который бы обеспечивал заданную величину локальной погрешности для метода Рунге − Кутты порядка р.
Итак, выполняем интегрирование на шаге h, и на двух шагах h/2. В результате получаем два решения , по которым затем вычисляем величину локальной погрешности на шаге h, используя главный член погрешности (3.26):
Тогда новый шаг определяем по формуле
(3.29) |
которая фактически получается из оценок
Далее обычно применяют экстраполяцию (3.27), с тем чтобы дополнительно повысить точность численного решения.
Следует заметить, если поведение решения довольно гладкое, то оценку (3.29) можно применять не для текущего, а для следующего шага, т.е. использовать формулу
(3.30) |