Принципы построения программ с автоматическим выбором шага

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

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

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

Вычисляем величину, соответствующую отрезку. Если оказалось, то вычисляем приближённое значение и полагаем. Мы получили приближённое значение величины. В случае полагаем, в противном случае полагаем. Мы готовы к следующему шагу. Если оказалось, то принимаем за новое значение величины и возвращаемся к исходной позиции: вычислено значение интеграла и задан шаг. Начальные условия для применения процедуры: Процедура должна также иметь блок окончания работы: если оказалось, что, то следует положить. Установилась практика брать. Другая процедура, которую можно назвать вертикальной, определяется заданием числа и заключается в следующем.

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

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