Численные методы решения линейных уравнений примеры

Численные методы решения СЛАУ

Постановка задачи

Прикладные задачи, характерные для проектирования современных объектов новой техники, часто сводятся к многомерным в общем случае нелинейным уравнениям, которые решаются методом линеаризации, т.е. сведением нелинейных уравнений к линейным. В общем случае система [math]n[/math] уравнений с [math]n[/math] неизвестными записывается в виде

где [math]f_1,f_2,\ldots,f_n[/math] — функции [math]n[/math] переменных, нелинейные или линейные ( [math]x_i[/math] в функции [math]f_i[/math] входят в первых или частично в нулевых степенях). Здесь рассматривается частный случай задачи (1.1) — линейная неоднородная задача для систем линейных алгебраических уравнений (СЛАУ), которая сокращенно записывается в виде

где [math]A=(a_\in \mathbb^[/math] — действительная матрица размера [math](n\times n),

i,\,j[/math] — переменные, соответствующие номерам строк и столбцов (целые числа); [math]b=(b_1,\ldots,b_n)^T\in \mathbb^n[/math] — вектор-столбец размера [math](n\times1),

x=(x_1,\ldots,x_n)^T\in \mathbb^n[/math] — вектор-столбец неизвестных, [math]\mathbb^n[/math] — n-мерное евклидово пространство, верхний индекс [math]T[/math] здесь и далее обозначает операцию транспонирования. Требуется найти решение [math]x_<\ast>= (x_<\ast1>,\ldots, x_<\ast n>)^T\in \mathbb^n[/math] системы (1.2), подстановка которого в (1.2) приводит к верному равенству [math]Ax_<\ast>=b[/math] .

1. Из линейной алгебры известно, что решение задачи (1.2) существует и единственно, если детерминант матрицы [math]A[/math] отличен от нуля, т.е. [math]\det A \equiv |A|\ne0[/math] ( [math]A[/math] — невырожденная матрица, называемая также неособенной).

2. Поставленная задача часто именуется первой задачей линейной алгебры. Подчеркнем, что в ней входными (исходными) данными являются матрица [math]A[/math] и вектор [math]b[/math] , а выходными — вектор [math]x[/math] .

3. Задача (1.2) имеет следующие особенности:

а) задача линейная (все переменные [math]x_[/math] , входящие в систему, имеют степени не выше первой) и неоднородная [math](b\ne0)[/math] ;

б) количество уравнений равно количеству неизвестных (система замкнута);

в) количество уравнений для некоторых практических задач велико: k\cdot10^3

г) при больших [math]n[/math] использовать формулу [math]x=A^<-1>b[/math] не рекомендуется в силу трудностей нахождения обратной матрицы.

4. Важнейшим признаком любой математической задачи, который надо в первую очередь принимать во внимание при ее анализе и выборе метода решения, является ее линейность или нелинейность. Это связано с тем, что нелинейные задачи с вычислительной точки зрения являются наиболее трудными. Так, нелинейная задача (1.1) является достаточно сложной при числе уравнений [math]n[/math] , пропорциональном [math]10^2[/math] , а линейная задача — при [math]n[/math] , пропорциональном [math]10^6[/math] .

Число обусловленности

Характер задачи и точность получаемого решения в большой степени зависят от ее обусловленности, являющейся важнейшим математическим понятием, влияющим на выбор метода ее решения. Поясним это понятие на примере двумерной задачи: [math]\begina_<11>x_1+ a_<12>x_2=b_1,\\ a_<21>x_1+ a_<22>x_2=b_2.\end[/math] . Точным решением этой задачи является вектор [math]x_<\ast>= (x_<\ast1>, x_<\ast2>)^T[/math] , компоненты которого определяются координатами точки пересечения двух прямых, соответствующих уравнениям [math]a_<11>x_1+ a_<12>x_2=b_1,[/math] [math]a_<21>x_1+ a_<22>x_2=b_2[/math] (рис. 1.1,а).

На рис. 1.1,б применительно к трем наборам входных данных, заданных с некоторыми погрешностями и соответствующих различным системам линейных уравнений, иллюстрируется характер обусловленности системы. Если [math]\det A[/math] существенно отличен от нуля, то точка пересечения пунктирных прямых, смещенных относительно сплошных прямых из-за погрешностей задания [math]A[/math] и [math]b[/math] , сдвигается несильно. Это свидетельствует о хорошей обусловленности системы. При [math]\det A\approx0[/math] небольшие погрешности в коэффициентах могут привести к большим погрешностям в решении (плохо обусловленная задача), поскольку прямые близки к параллельным. При [math]\det A=0[/math] прямые параллельны или они совпадают, и тогда решение задачи не существует или оно не единственно.

Более строго обусловленность задачи характеризуется числом обусловленности [math]\nu(A)= \|A\|\cdot \|A^<-1>\|[/math] , где [math]\|A\|[/math] — норма матрицы [math]A[/math] , а [math]\|A^<-1>\|[/math] — норма обратной матрицы. Чем больше это число, тем хуже обусловленность системы (при [math]\nu(A)\approx 10^3\div 10^4[/math] система линейных алгебраических уравнений плохо обусловлена). В качестве нормы матрицы может быть принято число, являющееся максимальным из сумм (по модулю) элементов всех строк этой матрицы. Подчеркнем, что реализация хорошей или плохой обусловленности в корректной и некорректной задачах напрямую связана с вытекающей отсюда численной устойчивостью или неустойчивостью. При этом для решения некорректных задач обычно применяются специальные методы или математические преобразования этих задач к корректным.

В численном анализе используются два класса численных методов решения систем линейных алгебраических уравнений:

1. Прямые методы , позволяющие найти решение за определенное число операций. К прямым методам относятся: метод Гаусса и его модификации (в том числе метод прогонки), метод [math]LU[/math] — разложения и др.

2. Итерационные методы , основанные на использовании повторяющегося (циклического) процесса и позволяющие получить решение в результате последовательных приближений. Операции, входящие в повторяющийся процесс, составляют итерацию. К итерационным методам относятся: метод простых итераций, метод Зейделя и др.

Численные схемы реализации метода Гаусса

Рассмотрим частный случай решения СЛАУ — задачу нахождения решения системы линейных алгебраических уравнений

b=\beginb_1\\\vdots\\b_n\end[/math] столбцы размеров [math]n\times 1[/math] . Это означает, что число уравнений совпадает с числом неизвестных, т.е. [math]m=n[/math] . Предполагается, что выполняется условие [math]\det\equiv|A|\ne0[/math] . Тогда по теореме 5.1 решение системы (10.1) существует и единственно.

Согласно изложенному ранее, метод Гаусса содержит две совокупности операций, которые условно названы прямым ходом и обратным ходом.

Прямой ход состоит в исключении элементов, расположенных ниже элементов, соответствующих главной диагонали матрицы [math]A[/math] . При этом матрица [math]A[/math] с помощью элементарных преобразований преобразуется к верхней треугольной, а расширенная матрица [math](A\mid b)[/math] — к трапециевидной:

Заметим, что в отличие от общего подхода здесь не требуется приводить расширенную матрицу к упрощенному виду. Считается, что для реализации эффективных численных процедур достаточно свести проблему к решению системы с треугольной матрицей коэффициентов.

Обратный ход состоит в решении системы [math]\widetildex= \widetilde[/math] .

Алгоритм численного метода Гаусса

а) Положить номер шага [math]k=1[/math] . Переобозначить все элементы расширенной матрицы [math](A\mid b)[/math] через [math]a_^<(0)>,[/math] [math]i=1,\ldots,n;[/math] [math]j=1,\ldots,n+1[/math] ;

б) Выбрать ведущий элемент одним из двух способов.

Первый способ (схема единственного деления). Выбрать в качестве ведущего элемента [math]a_^<(k-1)>\ne0[/math] .

Второй способ (схема с выбором ведущего элемента). На k-м шаге сначала переставить [math](n-k+1)[/math] оставшихся уравнений так, чтобы наибольший по модулю коэффициент при переменной [math]x_k[/math] попал на главную диагональ, а затем выбрать в качестве ведущего элемента [math]a_^<(k-1)>[/math] .

в) каждый элемент строки, в которой находится ведущий элемент, поделить на него:

г) элементы строк, находящихся ниже строки с ведущим элементом, подсчитать по правилу прямоугольника, схематически показанного на рис. 10.1 (исключить элементы, стоящие ниже ведущего элемента).

Поясним алгоритм исключения на рис. 10.1. Пусть рассчитывается значение [math]a_^<(k)>[/math] на k-м шаге. Следует соединить элемент [math]a_^<(k-1)>[/math] с ведущим элементом [math]a_^<(k-1)>[/math] . Получена одна из диагоналей прямоугольника. Вторую диагональ образует соединение элементов [math]a_^<(k-1)>[/math] и [math]a_^<(k-1)>[/math] . Для нахождения значения [math]a_^<(k)>[/math] из его текущего значения [math]a_^<(k-1)>[/math] вычитается произведение элементов [math]a_^<(k-1)>[/math] и [math]a_^<(k-1)>[/math] , деленное на ведущий элемент;

д) если [math]k\ne n[/math] , то перейти к пункту «б», где вместо [math]k[/math] положить [math]k+1[/math] .

Если [math]k=n[/math] , завершить прямой ход. Получена расширенная трапециевидная матрица из элементов [math]a_^<(n)>[/math] , соответствующая [math]\bigl(\widetilde\mid \widetilde\bigr)[/math] .

1. Схема единственного деления имеет ограничение, связанное с тем, что ведущие элементы должны быть отличны от нуля. Одновременно желательно, чтобы они не были малыми по модулю, поскольку тогда погрешности при соответствующем делении будут большими. С этой точки зрения схема с выбором ведущего элемента является более предпочтительной.

2. По окончании прямого хода может быть вычислен определитель матрицы [math]A[/math] путем перемножения ведущих элементов.

3. В расчетных формулах все элементы расширенной матрицы обозначаются одним символом [math]a[/math] , так как они преобразуются по единым правилам.

4. Понятие нормы квадратной невырожденной матрицы позволяет исследовать влияние малых изменений правой части и элементов матрицы на решение систем линейных уравнений. Положительное число [math]A=\|A\|\cdot\|A^<-1>\|[/math] называется числом обусловленности матрицы . Существует и более общее определение числа обусловленности, применимое к вырожденным матрицам: [math]\operatornameA= \sup_\frac<\|Ax\|><\|x\|>: \inf_\frac<\|Ay\|><\|y\|>[/math] . Чем больше число обусловленности, тем сильнее ошибка в исходных данных сказывается на решении линейной системы. Если число [math]\operatornameA[/math] велико, система считается плохо обусловленной, т.е. решение системы может существенно изменяться даже при малых изменениях элементов матрицы [math]A[/math] и столбца свободных членов [math]b[/math] .

Пример 10.3. Найти число обусловленности матрицы системы [math]\beginx_1+10x_2=b_1,\\ 100x_1+1001x_2=1101. \end[/math] Решить систему при [math]b_1=11[/math] и [math]b_1=11,\!01[/math] , сравнить близость полученных решений.

По формуле (4.2) для матрицы [math]A=\begin 1&10\\ 100&1001 \end[/math] получаем [math]A^<-1>=\begin 1001&-10\\ -1000&1 \end[/math] . Тогда

В результате [math]\operatornameA= \|A\|\cdot\|A^<-1>\|=1101\cdot1011= 1’113’111[/math] . Очевидно, число обусловленности матрицы системы достаточно велико, поэтому система является плохо обусловленной.

При [math]b_1=11[/math] система имеет единственное решение [math]x_1=1,

x_2=1[/math] , а при [math]b_1=11,\!01[/math] , единственное решение [math]x_1=11,\!01,

x_2=0[/math] . Несмотря на малое различие в исходных данных: [math]\Delta b_1=|11-11,\!01|=0,\!01[/math] , полученные решения отличаются существенно: [math]\Delta x=\left\| \begin1\\1 \end— \begin 11,\!01\\0 \end \right\|_1=10,\!01[/math] , т.е. погрешность [math]\Delta x[/math] решения в 1001 раз больше погрешности [math]\Delta b_1[/math] правой части системы.

Таким образом, решение плохо обусловленной системы может существенно изменяться даже при малых изменениях исходных данных.

Пример 10.4. Решить систему линейных алгебраических уравнений методом Гаусса (схема единственного деления)

1. Прямой ход. Запишем расширенную матрицу и реализуем прямой ход с помощью описанных преобразований:

Согласно пункту 2 замечаний 10.2 определитель матрицы системы равен произведению ведущих элементов: [math]\det=2\cdot\frac<1><2>\cdot26=26[/math] .

Решая эту систему, начиная с последнего уравнения, находим: [math]x_3=3,

Пример 10.5. Методом Гаусса с выбором ведущего элемента по столбцам решить систему:

1. Прямой ход. Реализуем поиск ведущего элемента по правилу: на k-м шаге переставляются [math](n-k+1)[/math] оставшихся уравнений так, чтобы наибольший по модулю коэффициент при [math]x_k[/math] попал на главную диагональ:

Согласно пункту 2 замечаний 10.2 определитель матрицы системы равен произведению ведущих элементов:

Решая ее, последовательно получаем: [math]x_3=1,

Пример 10.6. Решить систему уравнений методом Гаусса единственного деления

В результате получено решение: [math]x_<\ast>= \begin 1&-1&0&1\end^T[/math] .

Метод прогонки для решения СЛАУ

Метод применяется в случае, когда матрица [math]A[/math] — трехдиагональная. Сформулируем общую постановку задачи.

Дана система линейных алгебраических уравнений с трехдиагональной матрицей [math]A[/math] . Развернутая запись этой системы имеет вид

которому соответствует расширенная матрица

Здесь первое и последнее уравнения, содержащие по два слагаемых, знак минус (–) при коэффициенте [math]\beta_i[/math] взят для более удобного представления расчетных формул метода.

Если к (10.2) применить алгоритм прямого хода метода Гаусса, то вместо исходной расширенной матрицы получится трапециевидная:

Учитывая, что последний столбец в этой матрице соответствует правой части, и переходя к системе, включающей неизвестные, получаем рекуррентную формулу:

Соотношение (10.3) есть формула для обратного хода, а формулы для коэффициентов [math]P_i,\,Q_i[/math] которые называются прогоночными , определяются из (10.2), (10.3). Запишем (10.3) для индекса [math]i-1\colon[/math] [math]x_=P_x_i+Q_[/math] и подставим в (10.2). Получим

Приводя эту формулу к виду (10.3) и сравнивая, получаем рекуррентные соотношения для [math]P_i,\,Q_i\colon[/math]

Определение прогоночных коэффициентов по формулам (10.4) соответствует прямому ходу метода прогонки.

Обратный ход метода прогонки начинается с вычисления [math]x_n[/math] . Для этого используется последнее уравнение, коэффициенты которого определены в прямом ходе, и последнее уравнение исходной системы:

Тогда определяется [math]x_n:[/math]

Остальные значения неизвестных находятся по рекуррентной формуле (10.3).

Алгоритм решения систем уравнений методом прогонки

Q_1=-\frac<\delta_1><\beta_1>[/math] (в (10.4) подставить [math]\alpha_1=0[/math] ).

2. Вычислить прогоночные коэффициенты: [math]P_2,Q_2;\,P_3,Q_3;\,\ldots;\,P_Q_[/math] по формулам (10.4).

2. Значения [math]x_,x_,\ldots,x_1[/math] определить по формуле (10.3):

1. Аналогичный подход используется для решения систем линейных алгебраических уравнений с пятидиагональными матрицами.

2. Алгоритм метода прогонки называется корректным, если для всех [math]i=1,\ldots,n,

\beta_i-\alpha_iP_\ne0[/math] , и устойчивым, если [math]|P_i| .

3. Достаточным условием корректности и устойчивости прогонки является условие преобладания диагональных элементов в матрице [math]A[/math] , в которой [math]\alpha_i\ne0[/math] и [math]\gamma_i\ne0[/math] [math](i=2,3,\ldots,n-1)\colon[/math]

и в (10.6) имеет место строгое неравенство хотя бы при одном [math]i[/math] .

4. Алгоритм метода прогонки является экономичным и требует для своей реализации количество операций, пропорциональное [math]n[/math] .

Пример 10.7. Дана система линейных алгебраических уравнений с трехдиагональной матрицей [math]A

\gamma_4=0)[/math] . Решить эту систему методом прогонки.

Данная система удовлетворяет условию преобладания диагональных элементов (10.3): в первом уравнении 3″>[math]5>3[/math] , во втором уравнении 3+1″>[math]6>3+1[/math] ; в третьем уравнении 1+2″>[math]4>1+2[/math] , в четвертом уравнении 1″>[math]3>1[/math] . Далее выполняем прямой и обратный ход, учитывая, что расширенная матрица имеет вид

1. Прямой ход. Вычислим прогоночные коэффициенты:

Подчеркнем, что [math]\beta_1=-5;

\beta_4=3[/math] , так как в (10.2) во втором слагаемом взят знак «минус»:

Подстановкой решения [math]x_<\ast>=\begin 1&1&1&1 \end^T[/math] в исходную систему убеждаемся, что задача решена верно. Для данного примера [math]\beta_i-\alpha_iP_\ne0,

i=1,2,3,4;[/math] [math]|P_i| , т.е. метод прогонки оказался корректным и устойчивым (см. пункт 3 замечаний 10.3).

Для наглядности представления информации исходные данные и результаты расчетов поместим в табл. 10.1, где в первых четырех колонках содержатся исходные данные, а в последних трех — полученные результаты.

Пример 10.8. Дана система линейных алгебраических уравнений с трехдиагональной матрицей [math]A[/math] , решить систему методом прогонки:

Результаты расчетов в прямом и обратном ходе занесены в табл. 10.2.

В результате получено решение: [math]x_<\ast>=\begin 1&2&3&4 \end^T[/math] . Заметим, что условие преобладания диагональных элементов в данном примере не выполнено, но алгоритм метода прогонки позволил получить точное решение. При этом обратим внимание на небольшой порядок системы и отсутствие погрешностей вычислений.

Пример 10.9. Решить методом прогонки систему уравнений

Расширенная матрица системы имеет вид [math]\begin2&1&0&0\!\!&\vline\!\!&4\\ 2&3&-1&-1\!\!&\vline\!\!&9\\ 0&1&-1&3\!\!&\vline\!\!&12\\ 0&0&1&-1\!\!&\vline\!\!&-4 \end[/math] .

1. Прямой ход. Вычислим прогоночные коэффициенты:

Получено решение системы: [math]x_<\ast>=\begin 1&2&-1&3 \end^T[/math] . Результаты расчетов приведены в табл. 10.3

Метод LU-разложения для решения СЛАУ

Рассмотрим ещё один метод решения задачи (10.1). Метод опирается на возможность представления квадратной матрицы [math]A[/math] системы в виде произведения двух треугольных матриц:

где [math]L[/math] — нижняя, a [math]U[/math] — верхняя треугольные матрицы,

С учётом (10.7) система [math]Ax=b[/math] представляется в форме

Решение системы (10.8) сводится к последовательному решению двух простых систем с треугольными матрицами. В итоге процедура решения состоит из двух этапов.

Прямой ход. Произведение [math]Ux[/math] обозначим через [math]y[/math] . В результате решения системы [math]Ly=b[/math] находится вектор [math]y[/math] .

Обратный ход. В результате решения системы [math]Ux=y[/math] находится решение задачи — столбец [math]x[/math] .

В силу треугольности матриц [math]L[/math] и [math]U[/math] решения обеих систем находятся рекуррентно (как в обратном ходе метода Гаусса).

Из общего вида элемента произведения [math]A=LU[/math] , а также структуры матриц [math]L[/math] и [math]U[/math] следуют формулы для определения элементов этих матриц:

Результат представления матрицы [math]A[/math] в виде произведения двух треугольных матриц (операции факторизации) удобно хранить в одной матрице следующей структуры:

Вычисления на k-м шаге метода LU-разложения удобно производить, пользуясь двумя схемами, изображенными на рис. 10.2.

1. Всякую квадратную матрицу [math]A[/math] , имеющую отличные от нуля угловые миноры

можно представить в виде LU-разложения, причем это разложение будет единственным. Это условие выполняется для матриц с преобладанием диагональных элементов, у которых

2. В результате прямого хода может быть вычислен определитель матрицы [math]A[/math] по свойствам определителя произведения матриц (теорема 2.2) и определителя треугольных матриц:

Алгоритм метода LU-разложение

1. Выполнить операцию факторизации исходной матрицы [math]A[/math] , применяя схемы (рис. 10.2) или формулы (10.9), и получить матрицы [math]L[/math] и [math]U[/math] .

2. Решить систему [math]L\cdot y=b[/math] .

3. Решить систему [math]U\cdot x=b[/math] .

Пример 10.10. Решить систему линейных алгебраических уравнений методом LU-разложения

1. Выполним операцию факторизации:

В результате получены две треугольные матрицы:

Согласно пункту 2 замечаний 10.4, определитель матрицы [math]A[/math] находится в результате перемножения диагональных элементов матрицы [math]L\colon\,\det=2\cdot0,\!5\cdot26=26[/math] .

2. Решим систему [math]L\cdot y=b[/math] :

\begin2y_1=16,\\ 3y_1+0,\!5y_2=10,\\ y_1+2,\!5y_2+26y_3=16. \end[/math] . Отсюда [math]\beginy_1=8,\\ y_2=(10-3\cdot8)\cdot2=-28,\\[4pt] y_3=\dfrac<16-8+70><26>=3.\end[/math]

3. Решим систему [math]U\cdot x=y:[/math]

\beginx_1+0,\!5x_2+2x_3=8,\\ x_2-10x_3=-28,\\ x_3=3.\end[/math] . Отсюда [math]\begin x_3=3,\\ x_2=-28+10\cdot3=2,\\ x_1=8-2\cdot3-0,\!5\cdot2=1. \end[/math]

Пример 10.11. Решить систему линейных алгебраических уравнений методом LU-разложения.

1. Выполним операцию факторизации:

2. Решим систему линейных уравнений [math]L\cdot y=b[/math] :

\begin3y_1=5,\\ -2y_1+y_2/3=0,\\ 2y_1-y_2/3+5y_3=15. \end[/math] . Отсюда [math]\beginy_1=5/3,\\ y_2=10,\\ y_3=3.\end[/math]

3. Решим систему [math]U\cdot x=y[/math] :

\begin x_1-x_2/3=5/3,\\ x_2+3x_3=10,\\ x_3=3;\end \Rightarrow

Пример 10.12. Решить систему линейных алгебраических уравнений методом LU-разложения

1. Выполним процедуру факторизации:

В результате получаем матрицы LU-разложения:

2. Решим систему уравнений [math]L\cdot y=b:[/math]

\begin2y_1=4,\\ 2y_1+2y_2=9,\\ y_2-y_3/3=12,\\ y_3+5y_4=-4,\end\!\!\! \Rightarrow

3. Решим систему уравнений [math]U\cdot x=y:[/math]

Отсюда записываем решение исходной системы уравнений: [math]x_<\ast>= \begin1&2&-1&3\end^T[/math] .

Метод квадратных корней для решения СЛАУ

При решении систем линейных алгебраических уравнений с симметрическими матрицами можно сократить объем вычислений почти вдвое.

Пусть [math]A[/math] — симметрическая квадратная матрица системы [math]Ax=b[/math] порядка [math]n[/math] . Решим задачу ее представления в виде

Находя произведение [math]U^T\cdot U[/math] , составим систему уравнении относительно неизвестных элементов матрицы [math]U:[/math]

Система имеет следующий вид:

Из первой строки системы находим

Из второй строки определяем

Из последней строки имеем [math]\textstyle=\sqrt-\sum\limits_^u_^2>>[/math] .

Таким образом, элементы матрицы [math]U[/math] находятся из соотношений

При осуществлении [math]U^TU[/math] -разложения симметрической матрицы могут возникать ситуации, когда [math]u_=0[/math] при некотором [math]i[/math] или подкоренное выражение отрицательно. Для симметрических положительно определенных матриц разложение выполнимо.

Если матрица [math]A[/math] представима в форме [math]U^TU[/math] , то система [math]Ax=b[/math] имеет вид [math]U^TUx=b[/math] . Решение этой системы сводится к последовательному решению двух систем с треугольными матрицами. В итоге процедура решения состоит их двух этапов.

1. Прямой ход. Произведение [math]Ux[/math] обозначается через [math]y[/math] . В результате решения системы [math]U^Ty=b[/math] находится столбец [math]y[/math] .

2. Обратный ход. В результате решения системы [math]Ux=y[/math] находится решение задачи — столбец [math]x[/math] .

Алгоритм метода квадратных корней

1. Представить матрицу [math]A[/math] в форме [math]A=U^T\cdot U[/math] , используя (10.10).

2. Составить систему уравнений [math]U^T\cdot y=b[/math] и найти [math]y[/math] .

3. Составить систему уравнений [math]U\cdot x=y[/math] и найти [math]x[/math] .

Найти решение системы уравнений методом квадратных корней

Решение. 1. Представим матрицу [math]A[/math] в форме [math]A=U^T\cdot U[/math] , используя (10.10):

при [math]i=1[/math] получаем [math]u_<11>= \sqrt>= \sqrt<2>\,,

при [math]i=2[/math] имеем

Таким образом, получили

2. Решим систему [math]U^T\cdot y=b[/math] :

3. Решим систему [math]U\cdot x=y[/math] :

В результате получили решение исходной системы [math]x_1=1,

Метод простых итераций для решения СЛАУ

Альтернативой прямым методам решения СЛАУ являются итерационные методы, основанные на многократном уточнении [math]x^<(0)>[/math] , заданного приближенного решения системы [math]A\cdot x=b[/math] . Верхним индексом в скобках здесь и далее по тексту обозначается номер итерации (совокупности повторяющихся действий).

Реализация простейшего итерационного метода — метода простых итераций — состоит в выполнении следующих процедур.

1. Исходная задача [math]A\cdot x=b[/math] преобразуется к равносильному виду:

где [math]\alpha[/math] — квадратная матрица порядка [math]n[/math] ; [math]\beta[/math] — столбец. Это преобразование может быть выполнено различными путями, но для обеспечения сходимости итераций (см. процедуру 2) нужно добиться выполнения условия [math]\|\alpha\| .

2. Столбец [math]\beta[/math] принимается в качестве начального приближения [math]x^<(0)>= \beta[/math] и далее многократно выполняются действия по уточнению решения, согласно рекуррентному соотношению

или в развернутом виде

3. Итерации прерываются при выполнении условия (где 0″>[math]\varepsilon>0[/math] — заданная точность, которую необходимо достигнуть при решении задачи)

1. Процесс (10.12) называется параллельным итерированием , так как для вычисления (k+1)-го приближения всех неизвестных учитываются вычисленные ранее их k-е приближения.

2. Начальное приближение [math]x^<(0)>[/math] может выбираться произвольно или из некоторых соображений. При этом может использоваться априорная информация о решении или просто «грубая» прикидка. При выполнении итераций (любых) возникают следующие вопросы:

а) сходится ли процесс (10.12), т.е. имеет ли место [math]x^<(k)>\to x_<\ast>[/math] , при [math]k\to\infty[/math] , где [math]x_<\ast>[/math] — точное решение?

б) если сходимость есть, то какова ее скорость?

в) какова погрешность найденного решения [math]x^<(k+1)>[/math] , т.е. чему равна норма разности [math]\bigl\|x^<(k)>-x_<\ast>\bigr\|[/math] ?

Ответ на вопросы о сходимости дают следующие две теоремы.

Теорема (10.1) о достаточном условии сходимости метода простых итераций. Метод простых итераций, реализующийся в процессе последовательных приближений (10.12), сходится к единственному решению исходной системы [math]Ax=b[/math] при любом начальном приближении [math]x^<(0)>[/math] со скоростью не медленнее геометрической прогрессии, если какая-либо норма матрицы [math]\alpha[/math] меньше единицы, т.е. [math]\|\alpha\|_s .

1. Условие теоремы 10.1, как достаточное, предъявляет завышенные требования к матрице [math]\alpha[/math] , и потому иногда сходимость будет, если даже [math]\|\alpha\|\geqslant1[/math] .

2. Сходящийся процесс обладает свойством «самоисправляемости», т.е. отдельная ошибка в вычислениях не отразится на окончательном результате, так как ошибочное приближение можно рассматривать, как новое начальное.

3. Условия сходимости выполняются, если в матрице [math]A[/math] диагональные элементы преобладают, т.е.

и хотя бы для одного [math]i[/math] неравенство строгое. Другими словами, модули диагональных коэффициентов в каждом уравнении системы больше суммы модулей недиагональных коэффициентов (свободные члены не рассматриваются).

4. Чем меньше величина нормы [math]\|\alpha\|[/math] , тем быстрее сходимость метода.

Теорема (10.2) о необходимом и достаточном условии сходимости метода простых итераций. Для сходимости метода простых итераций (10.12) при любых [math]x^<(0)>[/math] и [math]\beta[/math] необходимо и достаточно, чтобы собственные значения матрицы [math]\alpha[/math] были по модулю меньше единицы, т.е. [math]\bigl|\lambda_i(\alpha)\bigr| .

Замечание 10.7. Хотя теорема 10.2 дает более общие условия сходимости метода простых итераций, чем теорема 10.1, однако ею воспользоваться сложнее, так как нужно предварительно вычислить границы собственных значений матрицы [math]\alpha[/math] или сами собственные значения.

Преобразование системы [math]Ax=b[/math] к виду [math]x=\alpha x+\beta[/math] с матрицей [math]\alpha[/math] , удовлетворяющей условиям сходимости, может быть выполнено несколькими способами. Приведем способы, используемые наиболее часто.

1. Уравнения, входящие в систему [math]Ax=b[/math] , переставляются так, чтобы выполнялось условие (10.14) преобладания диагональных элементов (для той же цели можно использовать другие элементарные преобразования). Затем первое уравнение разрешается относительно [math]x_1[/math] , второе — относительно [math]x_2[/math] и т.д. При этом получается матрица [math]\alpha[/math] с нулевыми диагональными элементами.

Например, система [math]\begin-2,\!8x_1+x_2+4x_3=60,\\ 10x_1-x_2+8x_3=10,\\ -x_1+2x_2-0,\!6x_3=20\end[/math] с помощью перестановки уравнений приводится к виду [math]\begin10x_1-x_2+8x_3=10,\\ -x_1+2x_2-0,\!6x_3=20,\\-2,\!8x_1+x_2+4x_3=60, \end[/math] где

|4|>|-2,\!8|+|1|[/math] , т.е. диагональные элементы преобладают.

Выражая [math]x_1[/math] из первого уравнения, [math]x_2[/math] — из второго, а [math]x_3[/math] — из третьего, получаем систему вида [math]x=\alpha x+\beta:[/math]

Заметим, что [math]\|\alpha\|_1=\max\<0,\!9;\,0,\!8;\,0,\!95 \>=0,\!95 , т.е. условие теоремы 10.1 выполнено.

Проиллюстрируем применение других элементарных преобразований. Так, система [math]\begin4x_1+x_2+9x_3=-7,\\ 3x_1+8x_2-7x_3=-6,\\ x_1+x_2-8x_3=7\end[/math] путем сложения первого и третьего уравнений и вычитания из второго уравнения третьего уравнения преобразуется к виду с преобладанием диагональных элементов: [math]\begin 5x_1+2x_1+x_3=0,\\ 2x_1+7x_2+x_3=-13,\\ x_1+x_2-8x_3=7. \end[/math]

2. Уравнения преобразуются так, чтобы выполнялось условие преобладания диагональных элементов, но при этом коэффициенты [math]\alpha_[/math] не обязательно равнялись нулю.

Например, систему [math]\begin1,\!02x_1-0,\!15x_2=2,\!7,\\ 0,\!8x_1+1,\!05x_2=4 \end[/math] можно записать в форме [math]\beginx_1=-0,\!02x_1+0,\!15x_2+2,\!7,\\ x_2=-0,\!8x_1-0,\!05x_2+4,\end[/math] для которой [math]\|\alpha\|_1= \max\<0,\!17;\,0,\!85\>= 0,\!85 .

i,j=1,\ldots,n[/math] достаточно малы, условие сходимости выполняется.

Алгоритм метода простых итераций

1. Преобразовать систему [math]Ax=b[/math] к виду [math]x=\alpha x+\beta[/math] одним из описанных способов.

2. Задать начальное приближение решения [math]x^<(0)>[/math] произвольно или положить [math]x^<(0)>=\beta[/math] , а также малое положительное число [math]\varepsilon[/math] (точность). Положить [math]k=0[/math] .

3. Вычислить следующее приближение [math]x^<(k+1)>[/math] по формуле [math]x^<(k+1)>= \alpha x^<(k)>+\beta[/math] .

4. Если выполнено условие [math]\bigl\|x^<(k+1)>-x^<(k)>\bigr\| , процесс завершить и в качестве приближенного решения задачи принять [math]x_<\ast>\cong x^<(k+1)>[/math] . Иначе положить [math]k=k+1[/math] и перейти к пункту 3 алгоритма.

Методом простых итераций с точностью [math]\varepsilon=0,\!01[/math] решить систему линейных алгебраических уравнений:

Решение. 1. Так как [math]|2| , то условие (5.41) не выполняется. Переставим уравнения так, чтобы выполнялось условие преобладания диагональных элементов:

|10|>|2|+|2|[/math] . Выразим из первого уравнения [math]x_1[/math] , из второго [math]x_2[/math] , из третьего [math]x_3:[/math]

Заметим, что [math]\|\alpha\|_1= \ma\<0,\!2;\,0,\!3;\,0,\!4 \>=0,\!4 , следовательно, условие сходимости (теорема 10.1) выполнено.

2. Зададим [math]x^<(0>=\beta= \begin 1,\!2\\1,\!3\\1,\!4 \end[/math] . В поставленной задаче [math]\varepsilon= 0,\!01[/math] .

3. Выполним расчеты по формуле (10.12):

до выполнения условия окончания и результаты занесем в табл. 10.4.

4. Расчет закончен, поскольку выполнено условие окончания [math]\bigl\|x^<(k+1)>-x^ <(k)>\bigr\|=0,\!0027 .

Приближенное решение задачи: [math]x_<\ast>\cong \begin0,\!9996& 0,\!9995& 0,\!9993 \end^T[/math] . Очевидно, точное решение: [math]x_<\ast>=\begin 1&1&1 \end^T[/math] .

Приведем результаты расчетов для другого начального приближения [math]x^<(0)>=\begin 1,\!2&0&0 \end^T[/math] и [math]\varepsilon=0,\!001[/math] (табл. 10.5).

Приближенное решение задачи: [math]x_<\ast>\cong \begin 1,\!0001& 1,\!0001& 1,\!0001 \end^T[/math] .

Метод Зейделя для решения СЛАУ

Этот метод является модификацией метода простых итераций и в некоторых случаях приводит к более быстрой сходимости.

Итерации по методу Зейделя отличаются от простых итераций (10.12) тем, что при нахождении i-й компоненты (k+1)-го приближения сразу используются уже найденные компоненты (к +1) -го приближения с меньшими номерами [math]1,2,\ldots,i-1[/math] . При рассмотрении развернутой формы системы итерационный процесс записывается в виде

В каждое последующее уравнение подставляются значения неизвестных, полученных из предыдущих уравнений.

Теорема (10.3) о достаточном условии сходимости метода Зейделя. Если для системы [math]x=\alpha x+\beta[/math] какая-либо норма матрицы [math]\alpha[/math] меньше единицы, т.е. [math]\|\alpha\|_s , то процесс последовательных приближений (10.15) сходится к единственному решению исходной системы [math]Ax=b[/math] при любом начальном приближении [math]x^<(0)>[/math] .

Записывая (10.15) в матричной форме, получаем

где [math]L,\,U[/math] являются разложениями матрицы [math]\alpha:[/math]

Преобразуя (10.16) к виду [math]x=\alpha x+\beta[/math] , получаем матричную форму итерационного процесса метода Зейделя:

Тогда достаточное, а также необходимое и достаточное условия сходимости будут соответственно такими (см. теоремы 10.1 и 10.2):

1. Для обеспечения сходимости метода Зейделя требуется преобразовать систему [math]Ax=b[/math] к виду [math]x=\alpha x+\beta[/math] с преобладанием диагональных элементов в матрице а (см. метод простых итераций).

2. Процесс (10.15) называется последовательным итерированием , так как на каждой итерации полученные из предыдущих уравнений значения подставляются в последующие. Как правило, метод Зейделя обеспечивает лучшую сходимость, чем метод простых итераций (за счет накопления информации, полученной при решении предыдущих уравнений). Метод Зейделя может сходиться, если расходится метод простых итераций, и наоборот.

3. При расчетах на ЭВМ удобнее пользоваться формулой (10.16).

4. Преимуществом метода Зейделя, как и метода простых итераций, является его «самоисправляемость».

5. Метод Зейделя имеет преимущества перед методом простых итераций, так как он всегда сходится для нормальных систем линейных алгебраических уравнений, т.е. таких систем, в которых матрица [math]A[/math] является симметрической и положительно определенной. Систему линейных алгебраических уравнений с невырожденной матрицей [math]A[/math] всегда можно преобразовать к нормальной, если ее умножить слева на матрицу [math]A^T[/math] (матрица [math]A^TA[/math] — симметрическая). Система [math]A^TAx= A^Tb[/math] является нормальной.

Алгоритм метода Зейделя

1. Преобразовать систему [math]Ax=b[/math] к виду [math]x=\alpha x+\beta[/math] одним из описанных способов.

2. Задать начальное приближение решения [math]x^<(0)>[/math] произвольно или положить [math]x^<(0)>=\beta[/math] , а также малое положительное число [math]\varepsilon[/math] (точность). Положить [math]k=0[/math] .

3. Произвести расчеты по формуле (10.15) или (10.16) и найти [math]x^<(k+1)>[/math] .

4. Если выполнено условие окончания [math]\bigl\|x^<(k+1)>-x^<(k)>\bigr\| , процесс завершить и в качестве приближенного решения задачи принять [math]x_<\ast>\cong x^<(k+1)>[/math] . Иначе положить [math]k=k+1[/math] и перейти к пункту 3.

Пример 10.15. Методом Зейделя с точностью [math]\varepsilon=0,\!001[/math] решить систему линейных алгебраических уравнений:

1. Приведем систему [math]Ax=b[/math] к виду [math]x=\alpha x+\beta[/math] (см. пример 10.14):

Так как [math]\|\alpha\|_1=\max\<0,\!2;\,0,\!3;\,0,\!4 \>=0,\!4 , условие сходимости выполняется.

2. Зададим [math]x^<(0)>= \begin 1,\!2&0&0 \end^T[/math] . В поставленной задаче [math]\varepsilon=0,\!001[/math] .

Выполним расчеты по формуле (10.15): [math]\begin x_1^<(k+1)>=-0,\!1\cdot x_2^<(k)>-0,\!1\cdot x_3^<(k)>+1,\!2\,,\\[4pt] x_2^<(k+1)>=-0,\!2\cdot x_1^<(k+1)>-0,\!1\cdot x_3^<(k)>+1,\!3\,,\\[4pt] x_3^<(k+1)>=-0,\!2\cdot x_1^<(k+1)>-0,\!2\cdot x_2^<(k+1)>+1,\!4\,,\end\!\!\!\!\! (k=0,1,\ldots)[/math] и результаты занесем в табл. 10.6.

Очевидно, найденное решение [math]x_<\ast>= \begin 1&1&1 \end^T[/math] является точным.

4. Расчет завершен, поскольку выполнено условие окончания [math]\bigl\|x^<(k+1)>-x^<(k)>\bigr\|= 0,\!0004 .

Пример 10.16. Методом Зейделя с точностью [math]\varepsilon=0,\!005[/math] решить систему линейных алгебраических уравнений:

|5|>|-1|+|-2|[/math] , в данной системе диагональные элементы преобладают. Выразим из первого уравнения [math]x_1[/math] , из второго [math]x_2[/math] , из третьего [math]x_3:[/math]

2. Зададим [math]x^<(0)>= \begin 0&0&0 \end^T[/math] . В поставленной задаче [math]\varepsilon= 0,\!005[/math] .

k=0,1,\ldots[/math] и результаты занесем в табл. 10.7.

Очевидно, найденное решение [math]x_<\ast>= \begin 1&1&1 \end^T[/math] является точным.

4. Расчет завершен, поскольку выполнено условие окончания [math]\bigl\|x^<(k+1)>-x^<(k)>\bigr\|= 0,\!001 .

Численные методы решения систем линейных и нелинейных уравнений

В этом разделе приведены примеры решенных задач по теме нахождения корней систем уравнений (как линейных, так и нелинейных) численными методами. Для первой группы (системы линейных алгебраических уравнений, СЛАУ) обычно используют методы Гаусса, простой итерации, Якоби, Зейделя, релаксации. Для второй группы — метод Ньютона, простой итерации, скорейшего спуска. Большая часть из них разобраны в подробных примерах ниже.

Примеры приближенных решений систем уравнений онлайн

Задача 1. Решить систему линейных уравнений $Ax=b$ методом Зейделя.
Итерационными методами решение задачи найти с точностью $\varepsilon=10^<-3>$.
УКАЗАНИЕ. Для выполнения достаточного условия сходимости воспользоваться перестановкой строк в исходной системе уравнений.

Задача 2. 1) Решите систему линейных уравнений методом «Простой итерации» с точностью 0,001, предварительно оценив число достаточных для этого итераций:
2) Полученное решение используйте для вычисления невязки каждого уравнения.
3) Все полученные приближения решения системы привести в итоговом отчете.
4) Не забываем начинать отчет с формулировки задания.

Задача 3. 1) Методом Зейделя решите с точностью 0,001 систему линейных уравнений, приведя ее к виду с диагональным преобладанием, а затем к виду удобному для итераций.
2) Полученное решение используйте для вычисления невязки каждого уравнения.
3) Все полученные приближения решения системы привести в итоговом отчете.
4) Не забываем начинать отчет с формулировки задания.

Задача 4. Используя метод итераций, решите систему нелинейных уравнений с точностью до 0,001.

Задача 5. Используя метод Ньютона, решите систему нелинейных уравнений с точностью до 0,001.

Задача 6. Решить системы линейных уравнений с точностью до 0.001 методами простой итерации и Гаусса-Зейделя, предварительно проверив на сходимость.

Численные методы решения СЛАУ

Содержание:

При разработке любого численного метода решения какой-либо математической задачи возникает несколько общих проблем.

Первая проблема состоит в том, что теоретически корректный метод, приводящий к решению за конечное число операций, может оказаться плохим или вообще неприемлемым, если это конечное число операций окажется слишком большим.

Например, при решении СЛАУ с квадратной невырожденной матрицей порядка п по правилу Крамера необходимо вычислить определитель п-го порядка. При вычислении только одного из этих определителей „в лоб“, согласно определению 7.1, требуется — 1 арифметических операций. Таким образом, всего для решения системы требуется операций. Уже при это число имеет порядок . Даже при скорости операций в секунду потребуется не менее 30000 лет!

Вторая проблема связана с тем, что в практических задачах приходится иметь дело с неточными данными. При решении СЛАУ с квадратной матрицей требуется, чтобы определитель матрицы системы был отличен от нуля.

Однако нарушение этого условия, т.е. соотношение = 0, никогда не выполняется точно, так как коэффициенты СЛАУ содержат, вообще говоря, погрешности, и определитель можно вычислить лишь приближенно. При этом, если определитель мал по сравнению с коэффициентами системы, то небольшие погрешности могут приводить к существенному изменению решения.

По этой ссылке вы найдёте полный курс лекций по высшей математике:

Пример с решением 10.1.

Рассмотрим системы Решение первой них — х = 1, у = 0, решение второй — х = -9, у = 10. Как видим, изменение всего лишь одного коэффициента на 10% приводит к совсем другому результату.

Понять причину этого феномена проще всего с помощью геометрической интерпретации СЛАУ. Данные системы можно рассматривать как пары прямых на плоскости.

Тогда их решения изображаются точками пересечения этих пар прямых. В нашем случае прямые „почти параллельны» (рис. 10.1). Поэтому незначительное изменение положения одной из них приводит к большому смещению точки пересечения.

Говорят, что СЛАУ плохо обусловлена, если незначительные изменения ее коэффициентов могут привести к существенному изменению ее решения. Если этого не происходит, СЛАУ называют хорошо обусловленной.

Третья проблема, возникающая в процессе вычислений, также связана с погрешностями и вызвана тем, что вычисления при помощи компьютера или калькулятора выполняются лишь прямые и итерационные методы решения СЛАУ.

Возможно вам будут полезны данные страницы:

Мы остановимся на решении только таких СЛАУ, у которых матрица является квадратной и невырожденной. В этом случае система имеет решение, и притом единственное. Для его нахождения используются различные методы. Выбор метода решения СЛАУ определяет не только объем вычислений, но и точность получаемого этим методом результата.

Прямые методы решения СЛАУ выполняются за фиксированное число арифметических операций, не зависящее ни от значений коэффициентов, ни от требуемой точности вычислений (но зависящее, разумеется, от порядка системы). Если вычисления проводятся точно (например, в целых числах), то прямой метод всегда дает точное решение. Поэтому такие методы иногда называют точными. Пример точного метода (хотя и неприемлемого на практике для больших систем) — это правило Крамера.

Итерационные методы решения СЛАУ принципиально иные и априори строятся на том, что ответ в любом случае будет приближенным. Каждый итерационный метод сводится к построению последовательности столбцов , . которая в пределе дает решение СЛАУ. Каждый очередной столбец вычисляется на основе уже найденных и является более точным приближением искомого решения. Вычисление очередного столбца называют итерацией. В опре- деленный момент процесс прерывают, а последний полученный столбец принимают за приближенное решение данной СЛАУ.

Как уже отмечалось, прямые методы решения СЛАУ выполняются за фиксированное число шагов, зависящее для каждого конкретного прямого метода лишь от размеров системы. Точность получаемых при этом решений зависит как от свойств методов, так и от того, является СЛАУ хорошо обусловленной или нет. В некоторых случаях прямые методы могут давать неверные результаты.

Итерационные методы решения СЛАУ в сравнении с прямыми методами, как правило, более устойчивы к погрешностям вычислений. Это связано с тем, что при использовании итерационных методов ошибки вычислений, содержащиеся в — результате n-й итерации, могут компенсироваться при вычислении — следующей, итерации. Плохая обусловленность СЛАУ обычно приводит к тому, что замедляется сходимость последовательности к решению системы и увеличивается число итераций для обеспечения нужной точности решения.

Метод Гаусса

Рассмотрим квадратную СЛАУ с невырожденной матрицей А.

Если в методе решения этой СЛАУ, изложенном в 9.7, зафиксировать определенный порядок преобразований (а любой численный метод должен базироваться на точном порядке вычислений), то получится численный метод, известный как метод Гаусса исключения неизвестных (или просто метод Гаусса). Метод Гаусса имеет следующий алгоритм, состоящий из шага. Запишем расширенную матрицу системы

На первом шаге делим 1-ю строку расширенной матрицы на ее 1-й элементам и получаем новую строку

Верхние индексы в коэффициентах указывают на то, что соответствующий элемент расширенной матрицы СЛАУ был пересчитан на шаге метода Гаусса. Затем из каждой последующей строки вычитаем 1-ю, умноженную на коэффициент В результате получаем матрицу

На втором шаге делим 2-ю строку на ее диагональный элемент и получаем новую 2-ю строку расширенной матрицы. Затем из каждой последующей г-й строки вычитаем полученную строку с коэффициентом из 2-го столбца. В результате получаем матрицу

Процесс продолжаем до последней строки расширенной матрицы. На n-м шаге остается разделить последнюю строку на ее диагональный элемент , и мы получим матрицу

В результате выполненных преобразований приходим к СЛАУ, эквивалентной исходной. Матрица этой СЛАУ является верхней треугольной и имеет диагональные элементы, равные единице. На этом завершается первая часть алгоритма метода Гаусса, которую называют прямым ходом метода Гаусса.

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

На -м шаге (первый шаг обратного хода) вычитаем последнюю строку из всех предшествующих с коэффициентами из n-го столбца. Получаем матрицу

На -м шаге вычитаем-ю строку из всех предшествующих с коэффициентами из-го столбца. Получаем матрицу

Процесс продолжаем до 2-й строки. На последнем -м шаге вычтем из 1-й строки 2-ю с соответствующим коэффициентом и в результате получим расширенную матрицу вида где

столбец, представляющий собой искомое решение.

Последовательные шаги алгоритма могут быть сведены к серии формул (в них ):

• прямой ход • обратный ход

В приведенных формулах представление процесса вычисления как преобразования расширенной матрицы системы теряется. Двойной нижний индекс в буквенных обозначениях означает, что в процессе вычислений необходимо использовать двумерный массив.

Верхний индекс отражает лишь шаг процесса вычисления. Отметим, что коэффициенты вычисляемые в процессе прямого хода метода Гаусса, при обратном ходе непосредственно используются для определения решения системы, значит, никаких преобразований расширенной матрицы при обратном ходе вообще выполнять нет необходимости.

Метод прогонки

Рассмотрим СЛАУ с трехдиагоналъной матрицей Для СЛАУ с такой матрицей метод Гаусса упрощается. На каждом шаге прямого хода нужно пересчитывать только две строки: -ю. После прямого хода расширенная матрица СЛАУ будет иметь вид Элементы этой матрицы можно вычислить по формулам Обратный ход метода Гаусса также упрощается: Описанный алгоритм для решения СЛАУ с трехдиагональной матрицей называют методом прогонки.

Особенности метода Гаусса

Разумеется, изложенный в 10.3 метод пригоден только в том случае, если матрица СЛАУ невырождена (иначе единичная матрица в результате элементарных преобразований строк не получится). Но даже если это требование выполнено, мы можем на каком-то шаге получить нуль в качестве диагонального элемента, на который необходимо делить. Это может случиться даже на первом шаге.

Пример с решением 10.2.

К системе с расширенной матрицей

мы не можем непосредственно применить изложенный алгоритм и вынуждены предпринять дополнительные действия, например предварительно переставить на первое место 2-ю или 3-ю строку.

В практике численных методов диагональные элементы матрицы, на которые в методе Гаусса приходится делить, называют ведущими, или главными. При каких условиях ведущие элементы не обращаются в нуль?

Рассмотрим угловые миноры матрицы А системы, сосредоточенные в ее верхнем левом углу:

Теорема 10.1. СЛАУ может быть решена методом Гаусса тогда и только тогда, когда все угловые миноры матрицы А системы отличны от нуля.

Отметим, что элементарные преобразования прямого хода метода Гаусса являются также элементарными преобразованиями определителей В результате таких преобразований угловые миноры изменяются, но не меняются ранги соответствующих матриц. Это значит, что угловой минор k-ro порядка равен нулю тогда и только тогда, когда равен нулю угловой минор того же порядка верхней треугольной матрицы, полученной в результате прямого хода.

Но это возможно лишь в том случае, если один из ведущих элементов равен нулю. Наоборот, если все миноры , отличны от нуля, то и все ведущие элементы метода Гаусса являются ненулевыми.

Сформулированный критерий проверить трудно, может быть, не легче, чем решить саму систему. Поэтому он интересен, скорее, с теоретической точки зрения, чем с практической. Однако в одном важном случае выполнение критерия следует из вида матрицы. Говорят, что в матрице диагональные элементы преобладают, если для каждой строки с номером i выполняется неравенство т.е. каждый диагональный элемент по абсолютной величине превосходит сумму абсолютных величин всех остальных эле- ментов своей строки. Такие матрицы называют матрицами с диагональным преобладанием.

Отметим, что в матрице с диагональным преобладанием все диагональные элементы отличны от нуля. Действительно, если бы некоторый диагональный элемент ац матрицы равнялся нулю, то из (10.1) следовало бы неравенство

Теорема 10.2. Если в матрице А преобладают диагональные элементы, то все угловые миноры этой матрицы отличны от нуля.

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

Рассмотрим определитель у которого диагональные элементы преобладают. Тогда an /О и для его матрицы можно выполнить первый шаг метода Гаусса. В результате первого шага получим определитель с элементами Убедимся, что у нового определителя диагональные элементы также преобладают. Для этого оценим сумму модулей всех элементов строки, кроме 1-го (он равен нулю) и (он диагональный):

(используем преобладание строке)

(используем преобладание строке)

Итак, после первого шага прямого хода метода Гаусса преобладание диагональных элементов в матрице сохранилось. Используя разложение определителя по 1-му столбцу, приходим к определителю -го порядка с преобладанием диагональных элементов, который является минором определителя соответствующим единице в верхнем левом углу. Доказательство завершается методом математической индукции по порядку определителя. Для определителей первого порядка, т.е. чисел, утверждение теоремы очевидно.

При транспонировании матрицы ее угловые миноры транспонируются и потому сохраняют свое значение. Поэтому если к системе с данной матрицей применим метод Гаусса, то он применим и к системам с транспонированной матрицей. Другими словами, метод Гаусса применим к системам, в матрицах которых диагональные элементы являются преобладающими в столбцах.

  • Если метод Гаусса не проходит, т.е. один из угловых миноров обращается в нуль, то в алгоритм приходится включать дополнительные действия, например перестановку строк. С дополнительной перестановкой строк метод Гаусса можно применять к любым системам с невырожденной матрицей, и он будет давать правильное решение в предположении, что все вычисления выполняются точно.

Однако, даже если метод Гаусса проходит без модификаций, все равно могут возникнуть неприятности. Дело в том, что из-за ошибок вычислений вместо ведущих элементов, на которые предстоит делить, мы получаем лишь их некоторое приближение. Значит, вместо теоретического нуля мы можем получить число, хотя и малое, но не нуль. Тогда дальнейшие вычисления могут привести к переполнению разрядной сетки компьютера, вызванному делением большого числа на малое (это фактически можно расценивать как деление на нуль). Если же переполнение не произойдет, то дальнейшие вычисления не будут иметь никакого отношения к реальному решению. Конечный результат будет определяться не исходными данными, а причудливой игрой ошибок вычислений.

Пример с решением 10.3.

Система имеет решение (0, 1, —1), в чем можно убедиться непосредственной проверкой.

Применим метод Гаусса, предполагая, что вычисления выполняются с точностью до четырех значащих цифр. После первого шага получаем матрицу Следующий шаг рассмотрим подробнее. Делим 2-ю строку на ее диагональный элемент и вычитаем ее из 3-й строки с коэффициентом —2,5. последнем столбце мы должны из —1,5 вычесть произведение (—2,5)(—799) = 1997,(5). Заданная точность требует, чтобы мы отбросили последний пятый знак и в качестве вычитаемого взяли число 1997. Вычтя его из -1,5, получим -1998,(5) и снова должны отбросить лишний знак. В итоге получим: Деление 3-й строки на ведущий элемент в последнем столбце дает —0,9995. В результате обратного хода метода Гаусса получаем в качестве решения что значительно отличается от верного решения.

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

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

Перестановку строк и столбцов матрицы можно выполнять непосредственно в процессе вычислений перед выполнением очередного шага прямого хода. Перестановка столбцов должна фиксироваться, так как потом, когда будет получено решение, следует расставить значения найденных переменных в нужном порядке.

Перестановку строк запоминать нет необходимости.

Основная цель перестановки строк и столбцов — получение в качестве ведущего элемента возможно большего коэффициента матрицы. Поэтому на шаге прямого хода метода Гаусса в строке выбирают наибольший по абсолютной величине элемент и соответствующий столбец меняют местами с . В результате перестановки новый ведущий элемент становится наибольшим по абсолютной величине в своей строке (хотя, возможно, и не преобладающим). Выбор наибольшего ведущего элемента строки делают в столбцах с номерамитак как первые элементов строки к шагу обнуляются.

  • Описанный алгоритм модифицированного метода Гаусса с дополнительной перестановкой столбцов называют методом Гаусса с выбором главного элемента.

Выбор главного элемента можно также проводить по столбцу, переставляя строки так, чтобы на шаге ведущий элемент по абсолютной величине превосходил элементы своего столбца начиная с . Оба подхода не имеют преимуществ друг перед другом, каждый может использоваться, когда стандартный метод Гаусса не работает (т.е. один из угловых миноров равен нулю). С точки зрения ошибок округления и выбор по столбцу, и выбор по строке не являются безупречными, хотя в большинстве случаев дают хороший результат. Оба подхода можно комбинировать, и тогда выбор главного элемента выполняется и по строкам, и по столбцам, а именно: в качестве главного элемента на шаге выбирается наибольший из элементов Всего, следовательно, возможны три стратегии выбора главного элемента.

Присылайте задания в любое время дня и ночи в ➔

Официальный сайт Брильёновой Натальи Валерьевны преподавателя кафедры информатики и электроники Екатеринбургского государственного института.

Все авторские права на размещённые материалы сохранены за правообладателями этих материалов. Любое коммерческое и/или иное использование кроме предварительного ознакомления материалов сайта natalibrilenova.ru запрещено. Публикация и распространение размещённых материалов не преследует за собой коммерческой и/или любой другой выгоды.

Сайт предназначен для облегчения образовательного путешествия студентам очникам и заочникам по вопросам обучения . Наталья Брильёнова не предлагает и не оказывает товары и услуги.


источники:

http://www.matburo.ru/ex_cm.php?p1=cmsu

http://natalibrilenova.ru/chislennyie-metodyi-resheniya-slau/