![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Устойчивость и неустойчивость алгоритмов
Поскольку в системе чисел с плавающей точкой нарушаются основные законы арифметики, то при реализации алгоритмов на ЭВМ большую роль играет порядок организации вычислений, а именно: результат вычислений может сильно зависеть от порядка. Алгоритм, в котором погрешность, допущенная в начальных данных или допускаемая при вычислениях, с каждым шагом не увеличивается или увеличивается незначительно, называется устойчивым. В противном случае, если погрешность существенно увеличивается от шага к шагу, алгоритм называется неустойчивым. Чаще всего неустойчивость алгоритма связана с итерационными процессами, когда результат получается посредством последовательности итераций, причем на каждой итерации в качестве исходных данных используются значения, полученные на предыдущей итерации. Существуют неустойчивые алгоритмы, не связанные с итерационными процессами. Пример. Известно, что ряд Тейлора для функции
сходится для всех
Шаг 1. Задать Шаг 2. Шаг 3. Если то вычисления закончены, результат - иначе переход на шаг 2.
Проверка на шаге 3 учитывает то обстоятельство, что машинная арифметика является приближенной. Выражение Таблица1 –
Пример. Необходимо вычислить При вычислении интеграла по частям получим:
т.е. Предположим, что вычисления проводятся в системе чисел с плавающей точкой, для которой
Поскольку для любого
т.е. ошибка в Преобразуем формулу (10) эквивалентным образом:
Теперь на каждом шаге вычислений ошибка в Оценим значения
а это значит, что
Таким образом, если в качестве стартового значения для вычислений в соответствии с формулой (20) взять, например,
то начальная ошибка, допущенная при этом в (30), не превосходит в соответствии с (25) Вычисления, проведенные по ормуле (20), приведут к следующему результату:
что говорит об устойчивости алгоритма (20).
|