Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМП Интегралы.doc
Скачиваний:
3
Добавлен:
07.05.2019
Размер:
478.21 Кб
Скачать

4. Численное интегрирование по заданной точности

Для вычисления интеграла (1) по заданной точности зад нам нужна формула для вычисления текущей (достигнутой) погрешности. При этом, имеющиеся формулы (8), как отмечалось, нам не годятся. Для этого используют следующую целесообразную идею, называемую "принцип двойного просчета", которая заключается в следующем.

Очевидно, что точность растет с увеличением числа шагов n.

Возьмём вначале достаточно малое число n = 4. Вычислим при этом n значение интеграла и обозначим его как S0. Удвоим число n = 2*n и снова вычислим значение интеграла S, если разница между S и S0 достаточна мала, значит мы достигли требуемой точности, в противном случае повторим снова удвоим n и вычислим новое S. Как только разница между S и S0 станет меньше зад, значит мы достигли требуемой точности и алгоритм надо остановить, в противном случае эти операции надо повторять. Таким образом, для оценки текущей погрешности (и остановки алгоритма) мы выбрали величину

тек = | S - S0 |, (9)

где S0 и S - старое и новое (при удвоенном n) значение интеграла.

Для оценки качества нашей программы будем использовать фактическую погрешность (критерий истины), которую мы будем вычислять по формуле (6) как разницу между истинным значением интеграла Iт по формуле Ньютона-Лейбница (с учетом данной нам для контрольного примера - первообразной F(x)) и приближенным значением S.

факт = | Iт - S |, (10)

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

Таблица переменных

Переменная

примечание

в алг.

в прог.

Значение интеграла по Ньютону-Лейбницу

Iт

контрольный пример

Число отрезков

n

n

Заданная погрешность

зад

ez

Текущая погрешность

тек

et

Фактическая погрешность

факт

ef

Старое значение интеграла

S0

S0

Новое значение интеграла

S

S

Очевидно также, что в процессе удвоения n и расчетов интеграла, надо сохранить текущее приближенное значение интеграла S в "старой" ячейке S0. Таким образом, алгоритм численного интегрирования функции по заданной погрешности зад, будет иметь вид (рис. 5).

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