1.4. Устойчивость и сложность алгоритма (по памяти, по времени)
Пусть для изучения некоторого объекта построена его математическая модель, которая и подлежит изучению средствами вычислительной математики.
Например, математической моделью малых колебаний маятника может оказаться следующая задача:
,
y(0) = 0, (1.14)
где y(t) – отклонение маятника в момент времени t.
При изучении гармонических колебаний с помощью этой математической модели, т. е. задачи Коши (1.14), некоторую пользу может принести знание физической сущности моделируемого физического объекта. В данной задаче, например, можно предвидеть, что решение носит колебательный (периодический) характер. Однако математическая модель (1.14) после ее построения становится самостоятельным объектом, для изучения которого можно применять любые математические средства, в том числе и те, которые не имеют никакого отношения к физическому происхождению задачи. Это сильно расширяет возможности исследователя. Так, например, значение решения задачи (1.14) в заданной момент времениt = z, т. е. представление числа в виде десятичной дроби с заданным числом знаков, можно осуществить с помощью ряда
воспользовавшись его частичной суммой.
Между тем представление функции в виде степенного ряда, использованное нами, не имеет никакого физического смысла.
Для численного решения какой-либо задачи на компьютере возможны различные численные методы, или различные алгоритмы. Однако из них могут быть много лучше других.
В этой книге мы изложим хорошие алгоритмы для многих часто встречающихся классов задач, а пока объясним, чем могут различаться алгоритмы.
Пусть для вычисления решения y некоторой задачи по входным данным, совокупность которых обозначим X, имеются алгоритмы , , которые дают приближения,. При этом может оказаться следующее.
Алгоритм может быть точнее алгоритма , т. е.
.
Например, будем вычислять по формуле вида
(1.15)
Примем за алгоритм, отвечающий n =1, а за алгоритм, отвечающий n =2. Очевидно, что
.
2. Алгоритмы обладают одинаковой точностью, но вычисление требует много больше арифметических действий, чем вычисление.
Пусть, например, требуется найти
при х = 0,99. За примем алгоритм, осуществляющий вычисления прямо по заданной формуле, возводя0,99 поочередно в степени 1, 2, …, 1023 и складывая. В качестве примем алгоритм, осуществляющий вычисление по формуле
По точности алгоритмы совпадают (оба абсолютно точно), но первый требует гораздо больше арифметических операций.
А именно, вычисляя последовательно придется проделать 1022 умножения. В то же время при вычислении требуется всего10 умножений:
.
3. Алгоритмы обладают одинаковой точностью, но вычислительно устойчив, анеустойчив.
Например, для вычисления с заданной точностьювоспользуемся суммой
(1.16)
где выбирается так, чтобы выполнялось неравенство
,
Приняв вычисления этой суммы за алгоритм . Если, то
.
При n = 5, и
Очевидно, что вычисления по этой формуле слабо реагируют на погрешности округления при вычисления каждого из слагаемых, а поэтому алгоритм в данном случае вычислительно устойчив.
Пусть ; например,х = 100. Тогда для достижения требуемой точности число n должно удовлетворять неравенству:
из которого для n заведомо выполнено неравенство n > 48. Но при вычислении суммы (16) первые ее члены будут очень большими. Малая относительная погрешность при их вычислении дает большую абсолютную погрешность, и алгоритм вычислительно неустойчив.
Укажем устойчивый алгоритм . Записываем заданноех в виде , (, l целое). Тогда
,
Этот алгоритм по устойчивости совпадает с алгоритмом для.
4. Алгоритм может быть сходящимся или расходящимся.
Пусть требуется вычислить . Воспользуемся рядом
(1.17)
и положим
Получим метод вычисления , зависящий от номера n как от параметра.
Если , то , т. е. погрешность алгоритма с ростом n стремится к нулю. Но если x > 1, то , так как ряд (1.17) имеет радиус сходимостиr =1. В этом случае алгоритм непригоден для вычислений.
В книге мы познакомимся и с некоторыми другими характеристиками алгоритмов. Встретятся алгоритмы вычисления или требующие последовательного выполнения операций, самонастраивающиеся на специфику входных данных или учитывающие ее лишь отчасти алгоритмы логически простые или более сложные.
Лекция № 3
2. ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫ
Численные методы решения задач линейной алгебры в значительной степени объединяет система понятий и идентичность подходов к решению задач.
Сначала приводятся численные методы решения систем линейных алгебраических уравнений. В линейной алгебре эту задачу называют первой основной задачей. К ней примыкают задачи вычисления определителей и элементов обратной матрицы, которые иногда называют второй и третьей основными задачами линейной алгебры.
Далее излагаются численные методы уточнения корней нелинейных уравнений. В общем случае такие уравнения не имеют аналитических формул для своих корней или эти формулы слишком громоздки и неудобны для практического использования. В частности, в начале 19 века было доказано, что нелинейные уравнения выше четвертой степени неразрешимы в радикалах даже при использовании радикалов произвольной степени. Используемые численные методы уточнения корней нелинейных уравнений можно условно разделить на две группы. К первой группе относятся методы, которые назовем универсальными в том смысле, что в принципе они пригодны для отыскания корней уравнений любого вида. Эти методы носят итерационный характер. Подробно рассмотрены метод дихотомии (деления пополам), метод простой инерции, метод Ньютона и две его модификации: метод секущих и метод Ньютона с постоянным значением производной. Кратко дан метод парабол.
Для системы нелинейных уравнений приведено обобщение методов простой итерации, метода итераций Зейделя и метода Ньютона в приложении к одному нелинейному уравнению.
- Министерство образования и науки Российской Федерации
- Оглавление
- Лекция № 1
- 1. Особенности математических вычислений, реализуемых на эвм: теоретические основы численных методов: погрешности вычислений
- 1.1. Дискретизация
- 1.3. Погрешность
- 1.4. Устойчивость и сложность алгоритма (по памяти, по времени)
- 2.1. Основные понятия линейной алгебры. Классификация методов решения
- 2.2. Метод исключения Гаусса. Вычисление определителя и обратной матрицы методом исключения
- 2.3. Численные методы решения линейных уравнений
- 2.3.1. Метод прогонки
- 2.3.2. Итерационные методы
- 3.1. Решение нелинейных уравнений
- 3.1.1. Метод половинного деления
- 3.1.2. Метод простой итерации
- 3.1.3. Метод Ньютона
- 3.1.4. Метод секущих
- 3.1.5. Метод парабол
- 3.2. Методы решения нелинейных систем уравнений
- 4.1.Функция и способы ее задания
- 4.2 Основные понятия теории приближения функций
- 4.3 Интерполяция функций
- 4.3.1 Интерполирование с помощью многочленов
- 4.3.2 Погрешность интерполяционных методов
- 4.3.3 Интерполяционный многочлен Лагранжа
- 4.3.4 Конечные разности
- 4.3.5 Интерполяционные многочлены Стирлинга и Бесселя
- 4.3.6 Интерполяционные многочлены Ньютона
- 4.3.7 Разделенные разности
- 4.3.8 Интерполяционный многочлен Ньютона для произвольной сетки узлов
- 4.3.9 Итерационно-интерполяционный метод Эйткина
- 4.3.10 Интерполирование с кратными узлами
- 4.4 Равномерное приближение функций. Приближение методом наименьших квадратов
- 5.1. Численное дифференцирование
- 5.2. Формулы численного интегрирования
- 5.3. Решение обыкновенных дифференциальных уравнений. Метод конечных разностей для численного решения дифференциальных уравнений
- Интегрирование дифференциальных уравнений с помощью степенных рядов
- 5.4. Преобразование Фурье
- 5.4.1 Применения преобразования Фурье
- 5.4.2 Разновидности преобразования Фурье Непрерывное преобразование Фурье
- Ряды Фурье
- Дискретное преобразование Фурье
- Оконное преобразование Фурье
- Другие варианты
- 5.4.3 Интерпретация в терминах времени и частоты
- 5.4.4 Таблица важных преобразований Фурье
- Библиографический список