<<
>>

6. Интегрирование с переменным шагом. Автоматический выбор шага интегрирования.

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

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

Имея в распоряжении способы (53), (54), (71), (73) оценки погрешности метода, величину шага интегрирования можно выбирать автоматически в процессе счета.

6.1. Алгоритм выбора с помощью удвоения и деления шага пополам. Пусть rn+1 —оценка локальной погрешности метода на шаге h, допущенной при вычислении приближенного значения решения yn+1 в точке xn + h. Если оценка превосходит некоторую наперед заданную границу e:

, (90)

то считается, что значение yn+1 решения не удовлетворяет предписанной точности и шаг h объявляется неприемлемым. Полученная точка xn + h и значение yn+1 исключаются из рассмотрения. Выбирается новое значение шага

,

и вновь по той же формуле Рунге-Кутта вычисляется значение решения в точке yn+1 в новой точке xn + h(1). Если опять выполняется условие (90), то шаг снова делится пополам, и вычисления повторяются. Так происходит до тех пор, пока при какой-то величине шага hn оценка локальной погрешности не станет меньше e:

.

(91)

После этого считается, что решение дифференциального уравнения продолжено до точки xn+1 = xn + hn. Дальнейшее интегрирование производится из точки xn+1 с шагом hn+1, который выбирается описанным ниже способом.

Если оценка локальной погрешности на шаге hn = xn+1 —xn удовлетворяет неравенству

, (92)

где K —некоторая константа, то считается, что достигнута точность, значительно превышающая заданную, и шаг интегрирования удваиваются:

.

Если выполняется неравенство

, (93)

то считается, что полученное в точке xn+1 решение удовлетворяет заданной точности и шаг интегрирования остается без изменения:

.

Таким образом, на тех участках изменения независимой переменной, где достигается высокая точность приближенного решения, шаг интегрирования возрастает, а там, где точность не достигается, шаг интегрирования сокращается до необходимых для ее достижения значений. Тем самым обеспечивается выбор величины шага в зависимости от характера поведения решения дифференциального уравнения. Константа K обычно полагается равной , где n —порядок используемой оценки локальной погрешности метода. Обычно n = s + 1, а s —порядок формулы численного интегрирования.

6.2. Выбор максимальной для заданной точности длины шага.

Так как оценка rn+1 локальной погрешности метода равна с точностью до членов более высокого порядка малости главному члену локальной погрешности метода, то в силу (9)

.

(94)

Если оценка rn+1 погрешности превосходит заданную границу e:

,

то считается, что значение yn+1 решения не удовлетворяет предписанной точности и шаг h объявляется неприемлемым. Полученная точка xn+h и значение yn+1 исключаются из рассмотрения. В этом случае новый размер шага выбирается не последовательным делением пополам, а с помощью соотношения:

,

где a находится из условия выполнения равенства

. (96)

Из (94), (96) следует, что

. (97)

Здесь a < 1 и новое значение шага

(98)

меньше предыдущего.

Если первоначальная оценка rn+1 локальной погрешности метода не превосходит заданную границу e:

,

то считается, что полученное приближение yn+1 к решению удовлетворяет заданной точности и значение xn+h независимой переменной принимается в качестве следующего узла xn+1 интегрирования. Дальнейшее интегрирование осуществляется из точки xn+1 с шагом he, который определяется с помощью соотношения (98). Теперь a ? 1 и he ? h.

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

В действительности берется несколько меньшая, чем определяется с помощью (98), величина шага:

.

(99)

Это делается для того, чтобы избежать тех шагов, на которых не достигается требуемая точность.

6.3. Использование различных характеристик точности.

Автоматический выбор шага интегрирования имеет важный аспект, о котором надо помнить при практической реализации алгоритма на ЭВМ. Дело в том, что для достижения заданной точности может (в зависимости от алгоритма выбора шага) происходить большое число делений пополам шага интегрирования или величина a, вычисляемая по формуле (97), оказывается настолько малой, что вновь определяемая длина шага h не вызывает изменения независимой переменной, т.е. в условиях машинной арифметики выполняется равенство

. (100)

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

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

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

Более гибким является использование меры погрешности. Мерой погрешности приближенного значения y называется величина m, определяемая соотношением:

(106)

где P —некоторое фиксированное положительное число.

Другим эффективным средством может служить ограничение на число последовательных делений шага интегрирования, совершаемых в одной точке, или ограничение снизу на величину шага интегрирования. Если после значительного уменьшения шага в одной точке (например, 106 раз) точность по-прежнему не достигается, то, как правило, это свидетельствует о том, что явный метод типа Рунге-Кутта не подходит для решения данной задачи.

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

Для системы уравнений с проверкой на точность могут вычисляться либо все компоненты решения, либо некоторые из них, в частности одна компонента. При этом контроль точности может вестись поеомпонентно или по норме. Если контроль ведется покомпонентно, то для различных компонент могут использоваться как различные характеристики точности (абсолютная, относительная погрешности, мера погрешности), так и разные допустимые значения погрешности.

Контроль точности по норме означает, что контролируется некоторая норма оценки погрешности . Часто используются нормы:

,

,

.

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

<< | >>
Источник: Решение обыкновенных дифференциальных уравнений. 2017

Еще по теме 6. Интегрирование с переменным шагом. Автоматический выбор шага интегрирования.: