Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
379498_A09A4_sarycheva_o_m_lekcii_po_kursu_chis...doc
Скачиваний:
41
Добавлен:
09.11.2019
Размер:
1.69 Mб
Скачать

4.2. Способы повышения точности решении

Из соотношений (4.4) следует, что алгоритм работает, если , . Если оказалось, что какой-либо элемент, стоя­щий на главной диагонали , то вычисления нельзя продол­жать, Это неразумно и в случае, если близок к нулю. К тому же выводу приводит и анализ ошибок округления. В [8 ] показано, что для уменьшения последних величина . Для достижения этого, необходимо делать перестановки строк так, чтобы на диагонали оказывался всякий раз наибольший по абсолютной величине ко­эффициент при в результате будет выполнено требование .Такой способ часто называют методом главного элемента.

Рекомендуют иногда переставлять и столбцы, но при этом вычислительные затраты оказываются неадекватными тому выигрышу в точности, которого можно достичь.

Другим способом повышения точности является масштабирование уравнений и неизвестных. Идея метода состоит в следующем. Перемен­ные и величины правой части ; являются, как правило, реаль­ными (например, физическими) величинами, которые могут измеряться различными единицами. Если при рассмотрении коэффициентов уравне­ний мы обнаруживаем, что они на несколько порядков отличаются друг от друга разумно ввести масштабирование переменных, т.е. сделать замену одной переменной другой: , где -const

а - новая переменная. Пусть D - невырожденная диагональная матрица: Тогда x=D . Аналогично можно масштабировать вектор b с помощью матрицы . В результате получим новую систему уравнений

или окончательно после преобразований:

(4.6)

которую решают относительно .

Однако выбор нужного масштабирования очень сложен, если хо­тим получить алгоритм решения для произвольной линейной системы. В [8] приведен пример, когда при решении системы (4.6) на опреде­ленном этапе гауссова исключения новая система оказалась вырожден­ной, ввиду чего дальнейшее решение стало невозможным.

Третьим способом повышения точности решения системы линейных АУ является итерационное уточнение [7,8]. Пусть вектор - это решение системы (4.1), полученное методом Гаусса. Так как присутствует ошибка округления чисел в ЭВМ, то не даст точно зна­чение b , а будет иметь место невязка, которую необходимо вычис­лить с двойной точностью. Обозначим ее . Далее решаем систему с обычной точностью. Новое значение . Вычисляем с двойной точностью и снова реша­ем систему с обычной точностью и так до тех пор, пока не получим очередное значение , удовлетворяющее заданной точности. Можно показать, что итерационный процесс сходится тем быстрее, чем лучше обусловленность матрицы А [8].

Мы рассмотрели так называемые прямые (или точные) методы ре­шения линейных систем АУ - метод Гаусса и его модификации. Однако существуют так .же, как и для нелинейных систему АУ, итерационные методы. К ним относятся, например, методы Зейделя и наискорейшего спуска, которые изложены, например, в [3,4] и рассматриваются далее.