Вычисление нормы и чисел обусловленности матрицы
1 норма матрицы представляет из себя максимальное из чисел, полученных при сложении всех элементов каждого столбца, взятых по модулю. Не путайте со сложением матриц!
Р ассмотрим на примере: пусть дана матрица размера 3х2. В первом столбце стоят элементы: 8, 3, 8. Все элементы положительные. Найдем их сумму: 8+3+8=19. В втором столбце стоят элементы: 8, -2, -8. Два элемента — отрицательные, поэтому при сложении этих чисел, необходимо подставлять модуль этих чисел (т.е. без знаков «минус»). Найдем их сумму: 8+2+8=18. Максимальное из этих двух чисел — это 19. Значит первая норма матрицы равна 19.
2 норма матрицы представляет из себя квадратный корень из суммы квадратов всех элементов матрицы. А это значит мы возводим в квадрат все элементы матрицы, затем складываем полученные значения и из результата извлекаем квадратный корень.

В нашем случае, 2 норма матрицы получилась равна квадратному корню из 269. На схеме, я приближенно извлекла квадратный корень из 269 и в результате получила приблизительно около 16,401. Хотя более правильно не извлекать корень.
3 норма матрицы представляет из себя максимальное из чисел, полученных при сложении всех элементов каждой строки, взятых по модулю.
В
нашем примере: в первой строке стоят элементы: 8, 8. Все элементы положительные. Найдем их сумму: 8+8=16. В второй строке стоят элементы: 3, -2. Один из элементов отрицательный, поэтому при сложении этих чисел, необходимо подставлять модуль этого числа. Найдем их сумму: 3+2=5. В третьей строке стоят элементы 8, и -8. Один из элементов отрицательный, поэтому при сложении этих чисел, необходимо подставлять модуль этого числа. Найдем их сумму: 8+8=16. Максимальное из этих трех чисел — это 16. Значит третья норма матрицы равна 16.
Число обусловленности квадратной матрицы A определяется, как
Число обусловленности имеет следующее значение: если машинная точность, с которой совершаются все операции с вещественными числами, равна ε, то при решении системы линейных уравнений Ax = b результат будет получен с относительной погрешностью порядка ε·k(A). Хотя число обусловленности матрицы зависит от выбора нормы, если матрица хорошо обусловлена, то её число обусловленности будет мало при любом выборе нормы, а если она плохо обусловлена, то её число обусловленности будет велико при любом выборе нормы. Таким образом, обычно норму выбирают исходя из соображений удобства. На практике наиболее широко используют 1-норму, 2-норму и ∞-норму, задающиеся формулами:
В Matlab используется следующие функции поиска нормы:
Пусть А —матрица. Тогда n=norm(A) эквивалентно п=погп(А,2) и возвращает вторую норму, т. е. самое большое сингулярное число А. Функция n=norm(A, 1) возвращает первую норму, т. е. самую большую из сумм абсолютных значений элементов матрицы по столбцам. Норма неопределенности n=norm(A, inf) возвращает самую большую из сумм абсолютных значений элементов матрицы по рядам. Норма Фробениуса (Frobenius) norm(A, ‘fro’) = sqrt(sum(diag(A’A))).
Числа обусловленности матрицы определяют чувствительность решения системы линейных уравнений к погрешностям исходных данных. Следующие функции позволяют найти числа обусловленности матриц.
cond(X) — возвращает число обусловленности, основанное на второй норме, то есть отношение самого большого сингулярного числа X к самому малому. Значение cond(X), близкое к 1, указывает на хорошо обусловленную матрицу;
с = cond(X,p) — возвращает число обусловленности матрицы, основанное на р-норме: norm(X,p)*norm(inv(X),p), где р определяет способ расчета:
р=1 — число обусловленности матрицы, основанное на первой норме;
р=2 — число обусловленности матрицы, основанное на второй норме;
p= ‘fro’ — число обусловленности матрицы, основанное на норме Фробе-ниуса (Frobenius);
р=’inf’ — число обусловленности матрицы, основанное на норме неопределенности.
с = cond(X) — возвращает число обусловленности матрицы, основанное на второй норме.
condeig(A) — возвращает вектор чисел обусловленности для собственных значений А. Эти числа обусловленности — обратные величины косинусов углов между левыми и правыми собственными векторами;
[V.D.s] = condeig(A) — эквивалентно [V,D] = eig(A): s = condeig(A);.
Большие числа обусловленности означают, что матрица А близка к матрице с кратными собственными значениями.
rcond(A) — возвращает обратную величину обусловленности матрицы А по первой норме, используя оценивающий обусловленность метод LAPACK. Если А — хорошо обусловленная матрица, то rcond(A) около 1.00, если плохо обусловленная, то около 0.00. По сравнению с cond функция rcond реализует более эффективный в плане затрат машинного времени, но менее достоверный метод оценки обусловленности матрицы.
Число обусловленности матрицы
Число обусловленности матрицы показывает насколько матрица близка к матрице неполного ранга (для квадратных матриц — к вырожденности).
Рассмотрим систему линейных уравнений
Если матрица A вырожденная, то для некоторых b решение x не существует, а для других b оно будет неединственным. Следовательно, если A почти вырожденная, то можно ожидать, что малые изменения в A и b вызовут очень большие изменения в x. Если же взять в качестве A единичную матрицу, то решение системы (1) будет x=b. Следовательно, если A близка к единичной матрице, то малые изменения в A и b должны влеч за собой малые изменения в x.
Рассмотрим это на численном примере


Как видно из Рис. 1, векторы строки матрицы A —
и
линейно зависимы. Следовательно существует нуль-пространство N(A) ортогональное к
и
. Так как b∈R(A), имеем множество решений
,
,
. . Если же взять
, то b∉R(A) и, следовательно, система линейных уравнений не имеет решения. Далее, изменим в (2) вектор строку
матрицы A. Пусть
. Тогда система (2) имеет единственное решение
. Получили, что малое изменение в A или b совешенно меняет решение системы (2). Такие матрицы называют плохо обусловленными.
Для оченки обусловленности матрицы вычисляют число обусловленности матрицы (обозначается символом "cond"). Для вычисления числа обусловленности введем понятия нормы для векторов x. В качестве нормы возмем l-норму вектора:

Умножая вектор х на матрицу A приводит к новому вектору Ax, норма которого может слишком отличаться от нормы вектора x. Эта чувствительность матрицы A мы хотим измерять. Максимальное и минимальное изменение Ax при изменении можно задать следующими числами:


Отношение Q/q называется числом обусловленности матрицы A:

В системе (1) изменим b на Δb. Тогда имеем:

Из (1) и (7) следует A·Δx=Δb. Тогда, учитывая (4) и (5) получим следующие неравенства:


Следовательно при q≠0 имеем:


При относительном изменении правой части
, относительная ошибка
может составить
.
Если q=0, то cond(A)=+∞, т.е. матрица неполного ранга (вырожденная). Чем больше cond(A), тем ближе матрица A к неполному рангу (к вырожденности). Чем ближе матрица к единичной матрице, тем больше cond(A) близка к 1 и , следовательно, матрица далека от неполного ранга (далека от вырожденности).
Свойства числа обусловленности матрицы:
- cond(A)>=1 (т.к. Q>=q).
- cond(P)=1, где P-матрица перестановок или единичная матрица.
- cond(λA)=cond(A), где λ скаляр.
, где D диагональная матрица.
Свойства 3 и 4 показывают, что cond(A) является лучшей критерией оценки вырожденности квадратных матриц, чем определитель. Действительно, если взять в качестве матрицы A квадратную диагональную матрицу 100×100 с элементами 0.1 на главной диагонали, то det(A)=(0.1) 100 =10 -100 , что очень малое число и показывает близость к вырожденности в то время, как строки и столбцы матрицы ортогональны и, в действительности матрица далека от вырожденности. Если же применять cond, то получим cond(A)=1.
Следующий пример иллюстрирует понятие числа обусловленности матрицы. Рассмотрим систему линейных уравнений (1), где

Тогда решением системы линейных уравнений будет
. Если же правую заменить на
, решением системы будет
. Обозначим Δb=b-b1 и Δx=x-x1. Тогда

Из (13) видно, что очень малое изменение в b, совершенно изменил решение x. Так как


Неравенство (15) показывает что матрица A плохо обусловлена, т.е. близка к вырожденности. С помощью экспериментальных вычислений мы обнаружили плохую обусловленность матрицы A. А как, на самом деле, вычислить число обусловленности матрицы. В выражении (4) Q называется нормой матрицы и ее можно вычислить с помощью следующего вырaжения:

где aj — j-ый столбец матрицы A. Оказывается, что 1/q является нормой обратной к A (если существует) матрицы A -1 :
. Тогда

Вы можете вычислить обусловленность матрицы используя матричный онлайн калькулятор. Для этого вычислите обратную к матрице A, вычислите нормы для матриц A и A -1 и, используя выражение (17), вычислите cond(A).
Численные методы решения СЛАУ
Прикладные задачи, характерные для проектирования современных объектов новой техники, часто сводятся к многомерным в общем случае нелинейным уравнениям, которые решаются методом линеаризации, т.е. сведением нелинейных уравнений к линейным. В общем случае система [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_
i,\,j[/math] — переменные, соответствующие номерам строк и столбцов (целые числа); [math]b=(b_1,\ldots,b_n)^T\in \mathbb
x=(x_1,\ldots,x_n)^T\in \mathbb
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] ;
б) количество уравнений равно количеству неизвестных (система замкнута);
в) количество уравнений для некоторых практических задач велико: [math]n>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]\begin
На рис. 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. Итерационные методы , основанные на использовании повторяющегося (циклического) процесса и позволяющие получить решение в результате последовательных приближений. Операции, входящие в повторяющийся процесс, составляют итерацию. К итерационным методам относятся: метод простых итераций, метод Зейделя и др.
Численные схемы реализации метода Гаусса
Рассмотрим частный случай решения СЛАУ — задачу нахождения решения системы линейных алгебраических уравнений
где [math]A=\begin
b=\begin
Согласно изложенному ранее, метод Гаусса содержит две совокупности операций, которые условно названы прямым ходом и обратным ходом.
Прямой ход состоит в исключении элементов, расположенных ниже элементов, соответствующих главной диагонали матрицы [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_
б) Выбрать ведущий элемент одним из двух способов.
Первый способ (схема единственного деления). Выбрать в качестве ведущего элемента [math]a_
Второй способ (схема с выбором ведущего элемента). На k-м шаге сначала переставить [math](n-k+1)[/math] оставшихся уравнений так, чтобы наибольший по модулю коэффициент при переменной [math]x_k[/math] попал на главную диагональ, а затем выбрать в качестве ведущего элемента [math]a_
в) каждый элемент строки, в которой находится ведущий элемент, поделить на него:
г) элементы строк, находящихся ниже строки с ведущим элементом, подсчитать по правилу прямоугольника, схематически показанного на рис. 10.1 (исключить элементы, стоящие ниже ведущего элемента).
Поясним алгоритм исключения на рис. 10.1. Пусть рассчитывается значение [math]a_
д) если [math]k\ne n[/math] , то перейти к пункту "б", где вместо [math]k[/math] положить [math]k+1[/math] .
Если [math]k=n[/math] , завершить прямой ход. Получена расширенная трапециевидная матрица из элементов [math]a_
1. Схема единственного деления имеет ограничение, связанное с тем, что ведущие элементы должны быть отличны от нуля. Одновременно желательно, чтобы они не были малыми по модулю, поскольку тогда погрешности при соответствующем делении будут большими. С этой точки зрения схема с выбором ведущего элемента является более предпочтительной.
2. По окончании прямого хода может быть вычислен определитель матрицы [math]A[/math] путем перемножения ведущих элементов.
3. В расчетных формулах все элементы расширенной матрицы обозначаются одним символом [math]a[/math] , так как они преобразуются по единым правилам.
4. Понятие нормы квадратной невырожденной матрицы позволяет исследовать влияние малых изменений правой части и элементов матрицы на решение систем линейных уравнений. Положительное число [math]A=\|A\|\cdot\|A^<-1>\|[/math] называется числом обусловленности матрицы . Существует и более общее определение числа обусловленности, применимое к вырожденным матрицам: [math]\operatorname
Пример 10.3. Найти число обусловленности матрицы системы [math]\begin
По формуле (4.2) для матрицы [math]A=\begin
В результате [math]\operatorname
При [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\| \begin
Таким образом, решение плохо обусловленной системы может существенно изменяться даже при малых изменениях исходных данных.
Пример 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
Метод прогонки для решения СЛАУ
Метод применяется в случае, когда матрица [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_
Приводя эту формулу к виду (10.3) и сравнивая, получаем рекуррентные соотношения для [math]P_i,\,Q_i\colon[/math]
Определение прогоночных коэффициентов по формулам (10.4) соответствует прямому ходу метода прогонки.
Обратный ход метода прогонки начинается с вычисления [math]x_n[/math] . Для этого используется последнее уравнение, коэффициенты которого определены в прямом ходе, и последнее уравнение исходной системы:
Тогда определяется [math]x_n:[/math]
Остальные значения неизвестных находятся по рекуррентной формуле (10.3).
Алгоритм решения систем уравнений методом прогонки
2. Вычислить прогоночные коэффициенты: [math]P_2,Q_2;\,P_3,Q_3;\,\ldots;\,P_
2. Значения [math]x_
1. Аналогичный подход используется для решения систем линейных алгебраических уравнений с пятидиагональными матрицами.
2. Алгоритм метода прогонки называется корректным, если для всех [math]i=1,\ldots,n,
\beta_i-\alpha_iP_
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): в первом уравнении [math]5>3[/math] , во втором уравнении [math]6>3+1[/math] ; в третьем уравнении [math]4>1+2[/math] , в четвертом уравнении [math]3>1[/math] . Далее выполняем прямой и обратный ход, учитывая, что расширенная матрица имеет вид
1. Прямой ход. Вычислим прогоночные коэффициенты:
Подчеркнем, что [math]\beta_1=-5;
\beta_4=3[/math] , так как в (10.2) во втором слагаемом взят знак "минус":
Подстановкой решения [math]x_<\ast>=\begin
i=1,2,3[/math] , т.е. метод прогонки оказался корректным и устойчивым (см. пункт 3 замечаний 10.3).
Для наглядности представления информации исходные данные и результаты расчетов поместим в табл. 10.1, где в первых четырех колонках содержатся исходные данные, а в последних трех — полученные результаты.
Пример 10.8. Дана система линейных алгебраических уравнений с трехдиагональной матрицей [math]A[/math] , решить систему методом прогонки:
Результаты расчетов в прямом и обратном ходе занесены в табл. 10.2.
В результате получено решение: [math]x_<\ast>=\begin
Пример 10.9. Решить методом прогонки систему уравнений
1. Прямой ход. Вычислим прогоночные коэффициенты:
Получено решение системы: [math]x_<\ast>=\begin
Метод 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] :
\begin
3. Решим систему [math]U\cdot x=y:[/math]
\begin
Пример 10.11. Решить систему линейных алгебраических уравнений методом LU-разложения.
1. Выполним операцию факторизации:
2. Решим систему линейных уравнений [math]L\cdot y=b[/math] :
\begin
3. Решим систему [math]U\cdot x=y[/math] :
\begin
Пример 10.12. Решить систему линейных алгебраических уравнений методом LU-разложения
1. Выполним процедуру факторизации:
В результате получаем матрицы LU-разложения:
2. Решим систему уравнений [math]L\cdot y=b:[/math]
\begin
3. Решим систему уравнений [math]U\cdot x=y:[/math]
Отсюда записываем решение исходной системы уравнений: [math]x_<\ast>= \begin
Метод квадратных корней для решения СЛАУ
При решении систем линейных алгебраических уравнений с симметрическими матрицами можно сократить объем вычислений почти вдвое.
Пусть [math]A[/math] — симметрическая квадратная матрица системы [math]Ax=b[/math] порядка [math]n[/math] . Решим задачу ее представления в виде
Находя произведение [math]U^T\cdot U[/math] , составим систему уравнении относительно неизвестных элементов матрицы [math]U:[/math]
Система имеет следующий вид:
Из первой строки системы находим
Из второй строки определяем
Из последней строки имеем [math]\textstyle
Таким образом, элементы матрицы [math]U[/math] находятся из соотношений
При осуществлении [math]U^TU[/math] -разложения симметрической матрицы могут возникать ситуации, когда [math]u_
Если матрица [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
при [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\|<1[/math] .
2. Столбец [math]\beta[/math] принимается в качестве начального приближения [math]x^<(0)>= \beta[/math] и далее многократно выполняются действия по уточнению решения, согласно рекуррентному соотношению
или в развернутом виде
3. Итерации прерываются при выполнении условия (где [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
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|<1,
Замечание 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
|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<1[/math] , т.е. условие теоремы 10.1 выполнено.
Проиллюстрируем применение других элементарных преобразований. Так, система [math]\begin
2. Уравнения преобразуются так, чтобы выполнялось условие преобладания диагональных элементов, но при этом коэффициенты [math]\alpha_
Например, систему [math]\begin
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\|<\varepsilon[/math] , процесс завершить и в качестве приближенного решения задачи принять [math]x_<\ast>\cong x^<(k+1)>[/math] . Иначе положить [math]k=k+1[/math] и перейти к пункту 3 алгоритма.
Методом простых итераций с точностью [math]\varepsilon=0,\!01[/math] решить систему линейных алгебраических уравнений:
Решение. 1. Так как [math]|2|<|2|+|10|,
|1|<|2|+|10|[/math] , то условие (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<1[/math] , следовательно, условие сходимости (теорема 10.1) выполнено.
2. Зададим [math]x^<(0>=\beta= \begin
3. Выполним расчеты по формуле (10.12):
до выполнения условия окончания и результаты занесем в табл. 10.4.
4. Расчет закончен, поскольку выполнено условие окончания [math]\bigl\|x^<(k+1)>-x^ <(k)>\bigr\|=0,\!0027<\varepsilon=0,\!01[/math] .
Приближенное решение задачи: [math]x_<\ast>\cong \begin
Приведем результаты расчетов для другого начального приближения [math]x^<(0)>=\begin
Приближенное решение задачи: [math]x_<\ast>\cong \begin
Метод Зейделя для решения СЛАУ
Этот метод является модификацией метода простых итераций и в некоторых случаях приводит к более быстрой сходимости.
Итерации по методу Зейделя отличаются от простых итераций (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<1,
s\in\<1,2,3\>[/math] , то процесс последовательных приближений (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\|<\varepsilon[/math] , процесс завершить и в качестве приближенного решения задачи принять [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<1[/math] , условие сходимости выполняется.
2. Зададим [math]x^<(0)>= \begin
Очевидно, найденное решение [math]x_<\ast>= \begin
4. Расчет завершен, поскольку выполнено условие окончания [math]\bigl\|x^<(k+1)>-x^<(k)>\bigr\|= 0,\!0004< \varepsilon[/math] .
Пример 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
k=0,1,\ldots[/math] и результаты занесем в табл. 10.7.
Очевидно, найденное решение [math]x_<\ast>= \begin
4. Расчет завершен, поскольку выполнено условие окончания [math]\bigl\|x^<(k+1)>-x^<(k)>\bigr\|= 0,\!001< \varepsilon[/math] .
numpy.linalg.cond
Функция linalg.cond() вычисляет число обусловленности матрицы.
Данное число позволяет оценить насколько матрица далека от матрицы полного ранга или от невырожденности для квадратной матрицы. Число обусловленности может быть вычислено на основании одной из семи норм, которую можно указать в параметре p .
Параметры: x — массив NumPy или подобный массиву объект. Это может быть как двумерный так многомерный массивй. В случае многомерных массивов, он рассматривается как массив матриц относительно его двух последних осей, и число обусловленности вычисляется для каждой такой подматрицы отдельно. p —
Замечание
Чем ближе число обусловленности к 1, тем ближе матрица к невырожденности или полному рангу.