- •1.1. Основные этапы решения задач с помощью эвм
- •1.2. Погрешности результатов численного решения задач
- •1.3. Основные требования к алгоритмам и программному обеспечению
- •2.1. Метод дихотомии (деления отрезка пополам)
- •2.2. Метод хорд
- •2.3. Метод простой итерации
- •2.4. Метод Ньютона
- •2.5. Модификации метода Ньютона
- •3.1. Основные понятия вычислительной линейной алгебры
- •3.2. Некоторые точные методы решения слау
- •3.3. Итерационные методы решения слау
- •3.4. Вычисление собственных значений матрицы
- •4.1. Постановка задачи интерполяции
- •4.2. Полиномиальная интерполяция. Формула Лагранжа
- •4.3. Разделенные разности и интерполяционная формула Ньютона
- •4.4. Кусочно-полиномиальная интерполяция
- •4.4. Программы решения задач интерполяции с помощью Matlab
- •5.1. Численное дифференцирование
- •5.2. Погрешности методов численного дифференцирования
- •5.3. Численное интегрирование. Простейшие методы
- •5.4. Метод Ньютона-Котеса и его модификация
- •5.5. Методы Монте-Карло
- •6.1. Решение пере- и недоопределенных слау
- •6.2. Примеры решение переопределенной слау методом наименьших квадратов Пусть
- •6.3. Метод наименьших квадратов для регрессионного анализа
- •Задание к главе 6
- •7.1. Методы решения задачи Коши
- •7.2. Методы Рунге-Кутта решения задачи Коши
- •7.3. Решение краевой задачи для оду
- •Задания к главе 7
- •8.1. Решения дифференциальных уравнений первого порядка
- •8.2. Решения дифференциальных уравнений параболического типа
- •8.3. Решение дифференциальных уравнений эллиптического типа
- •8.4. Решение дифференциальных уравнений гиперболического типа
1.3. Основные требования к алгоритмам и программному обеспечению
Реальный вычислительный алгоритм складывается из двух частей: абстрактного алгоритма, формулируемого в общепринятых математических терминах, и программы, записанной на одном из алгоритмических языков и предназначенной для реализации на ЭВМ.
К вычислительным алгоритмам, предназначенным для широкого использования, предъявляется ряд весьма жестких требований.
Корректность. Алгоритм называется корректным, если соблюдены три условия. Первое – после выполнения конечного числа элементарных операций любые входные данные преобразуются в результат (выходные данные). Второе – полученный результат устойчив по отношению к малым возмущениям входных данных. Это означает, что результат непрерывным образом зависит от входных данных при условии, что отсутствует вычислительная погрешность. Отсутствие такой устойчивости делает алгоритм непригодным для использования на практике. Третье – результат обладает вычислительной устойчивостью, т.е. вычислительная погрешность стремиться к нулю при стремлении к нулю погрешности численного метода. Если не выполняется хотя бы одно из этих условий, то алгоритм называют некорректным.
Обусловленность. Отражает чувствительность результата работы к малым, но совершенно неизбежным ошибкам округления. Вычислительный алгоритм называют хорошо обусловленным, если малые относительные погрешности округления приводят к малой относительной погрешности результата, и плохо обусловленным, если вычислительная погрешность может быть недопустимо большой.
Экономичность – это число элементарных операций, необходимых для реализации алгоритма. Часто это требование формулируется как требование максимальной быстроты исполнения алгоритма, что особенно важно при массовых расчетах.
Точность означает, что алгоритм должен давать решение задачи с заданной или приемлемой точностью.
К настоящему времени выработан также и ряд требований к программной реализации вычислительных алгоритмов для длительного и широкого использования.
Надежность программы означает, что она не содержит ошибок и вычисляет именно тот результат, для которого она предназначена.
Работоспособность (робастность) включает в себя надежность и предполагает, что программа способна выявлять недопустимые исходные данные, обнаруживать критические для задачи или алгоритма ситуации.
Переносимость (портабельность) означает, что программа может работать на различных ЭВМ без изменения или с незначительными изменениями. Желательно, чтобы любая характеристика ЭВМ, используемая в программе, либо вычислялась самой программой, либо задавалась пользователем.
Поддерживаемость – это прежде всего требование легкости модификации, т.е. существование возможности внесения в программу изменений с минимальной вероятностью появления ошибок, она должна быть составлена максимально просто, ясно и логично. Зачастую разобраться в плохо составленной программе бывает гораздо сложнее, чем написать новую. Данное требование также включает и хорошую документацию (описание) программы.
К сожалению, указанные требования к вычислительным алгоритмам и программам являются во многом противоречивыми. Так, удовлетворение, например, требования робастности может привести к тому, что программа станет неэкономичной. Более того, фактически все требования к программам вступают в противоречие с экономичностью, выраженной через затраты машинного времени.
2. решение трансцендентных уравнений
Очень часто в прикладных задачах требуется решить уравнение вида
, (2.1)
где – неизвестная переменная. При этом функция может быть полиномом, элементарной или специальной функцией, область определения значения корней может быть ограничена или не ограничена. Будем считать, что функция непрерывна вместе со своими производными в области, где ищется решение. Типичным примером необходимости такого рода решений служит дисперсионное уравнение в теории распространения волн.
Численное решение уравнения вида (2.1) предполагает выполнение двух этапов. На первом этапе, определяется количество корней уравнения в искомом интервале значений переменной . Лучше всего этот этап реализовывать не программным, а интерактивным образом (построить график и визуально определить количество корней и их местонахождение). Искомый корень следует изолировать, выбрав интервал, на котором он является единственным. Такой интервал называют интервалом изоляции корня. На втором этапе определяется этот изолированный корень. Напомним, что корнем уравнения (2.1) называется такое значение переменной , при котором уравнение обращается в тождество.
Для нахождения решения уравнения (2.1) существует множество методов, далее рассматриваются некоторые из них.