- •Вместо введения: о погрешностях при решении прикладных задач
- •Глава I. Численные методы решения уравнений
- •§ 1. Задача локализации корней
- •Ограничение корней
- •Локализация корней
- •Простейший (грубейший) алгоритм локализации корней:
- •§ 2. Понятие об итерационных методах уточнения корней
- •Метод деления пополам (метод вилки)
- •§ 3. Методы хорд и касательных
- •Метод хорд для монотонных выпукло-вогнутых функций
- •Метод касательных для монотонных выпукло-вогнутых функций
- •§ 4. Метрические и банаховы пространства. Теорема о неподвижной точке
- •Матричные нормы
- •§ 5. Метод простой итерации
- •§ 6. Применение метода простой итерации к решению
- •Условие h([; ]) [; ] :
- •Глава II. Вычисления в линейной алгебре
- •§ 1. Метод Гаусса и его улучшения для повышения точности решения
- •§ 2. Метод простой итерации и метод Зейделя
- •§ 3. Подготовка к применению метода простой итерации
- •§ 4. Проблема собственных значений
- •Глава III. Численное интегрирование
- •§ 1. Метод прямоугольников
- •§ 2. Метод трапеций
- •§ 3. Метод Симпсона (параболическое интерполирование)
- •Глава IV. Некоторые методы аппроксимации функций
- •§ 1. Интерполяционный многочлен Лагранжа
- •§ 2. Интерполяционный многочлен Ньютона
- •§ 3. Метод наименьших квадратов
- •Глава V. Некоторые методы численного решения дифференциальных уравнений
- •Приложение: Сводка характеристик численных методов
- •Характеристики метода:
- •Характеристики метода:
- •Характеристики метода:
- •Характеристики метода:
- •Характеристики метода:
Глава II. Вычисления в линейной алгебре
Речь пойдёт, в основном, о решении систем линейных уравнений вида A·X = b с квадратной невырожденной матрицей A M(n, F). Такие системы можно решать методом Гаусса, который состоит, как известно из курса алгебры, в последовательном приведении расширенной матрицы (A | b) системы A·X = b к каноническому ступенчатому виду. В случае квадратной невырожденной матрицы A каноническая матрица выглядит просто: (In | X), где In – единичная (nn)-матрица, а X – решение системы уравнений.
Вычислительные проблемы с методом Гаусса обусловлены двумя основными обстоятельствами. Первое обстоятельство: метод Гаусса требует достаточно много алгебраических операций. Оценим количество операций. Для обнуления остальных n – 1 элементов каждого столбца за счёт главного элемента этого столбца необходимо:
– произвести одно деление (вычислить обратный элемент к главному),
– выполнить 2·(n – 1)·k умножений (умножить все k ненулевых элементов строки главного элемента на вычисленный обратный и на обнуляемый элемент),
– произвести (n – 1)·k сложений (прибавить k ненулевых элементов сроки главного элемента к каждой из остальных строк).
Таким образом, всего требуется 1 + (n – 1)·[2·k + k] операций в каждом столбце, а всего для приведения (nn)-матрицы к каноническому виду потребуется n делений, = (n – 1)2·n умножений и вполовину меньше сложений, т.е. n + 1,5·(n – 1)2·n операций. Видно, что общее количество операций имеет порядок n3. При выполнении большого объёма вычислений общая погрешность может значительно возрастать (даже погрешность суммы оценивается как сумма погрешностей). Значит, метод Гаусса даёт не точное, а лишь приближённое решение системы линейных уравнений, точность которого может быть далека от заданной предельной погрешности вычислений.
Второе обстоятельство связано с тем, что для близкой к вырожденной матрицы A решение системы A·X = b может быть неустойчивым. Это значит, что достаточно малые изменения коэффициентов системы (погрешности) могут привести к существенным изменениям решения. Такая матрица А называется плохо обусловленной. Например, для системы точным решением будет . Если же допустить абсолютную погрешность 0,01 в коэффициенте 6,29, то система имеет решение . Таким образом : абсолютная погрешность увеличилась в 10 раз.
Таким образом, при решении систем линейных уравнений необходимо учитывать перечисленные факторы и повышать точность решений.
§ 1. Метод Гаусса и его улучшения для повышения точности решения
Рассмотрим решение системы по методу Гаусса в среде Excel. Конечно, малый размер решаемой системы не позволяет сделать погрешность вычислений слишком большой, но даже приведённый пример показывает, что вектор-невязка = A·X – b становится ненулевым: величины его компонент превышают границу погрешности компьютера.
Вычисления оформлены естественным образом: над матрицей последовательно производятся элементарные преобразования строк с соответствующими главными элементами. Последние два столбца содержат контрольные суммы: столбец первоначально содержит суммы элементов в столбцах x, y, z и в столбце свободных членов, затем с этими суммами производятся те же элементарные преобразования строк, что и со всей расширенной матрицей. В столбце S на каждом шаге вычисляются суммы элементов столбцов x, y, z и столбца свободных членов. Элементы столбца S не должны существенно отличаться от элементов столбца : в рассмотренном примере они практически совпадают. Столбец решений системы выделен зелёным, а вектор невязки – жёлтым. Выбор главных элементов отмечен голубым цветом.
Для уменьшения погрешностей вычисления рекомендуется выбирать главными элементами элементы матрицы с наибольшими модулями. Например, для решённого выше примера вычисления модифицируются так:
Даже этот пример показывает, что компоненты вектора невязки уменьшились по абсолютной величине.
По величине компонент вектора невязки нельзя судить о допущенной в ходе вычислений погрешности решения системы. Найденное решение можно улучшить, если учесть невязку: вместо точного решения X0 системы A·X = b было найдено приближённое решение X, удовлетворяющее равенству A·X = b + . Поэтому можно записать X = X0 + X1 и получить A·X = = b + A·(X0 + X1) = b + A·X1 = – систему уравнений для вектора X1 , решив которую, найдём более точное приближение для решения X = X0 + X1 . Вектор X1 (или его норма) и определяет величину погрешности. Например, для предыдущего решения уточнение приведёт к следующим вычислениям:
которые уже позволяют судить о допущенной погрешности, имеющей порядок 10–8. При необходимости подобные улучшения могут проводиться несколько раз. Для данного примера, как показывает следующая таблица, произведённые улучшения несущественны, поскольку точность вычисления в среде Excel и так достаточно высока.