Лабораторные работы С (для ИВТ) / МетодичкаСи
.pdfA L U,
где L — нижняя треугольная матрица с единичной диагональю; U — верхняя треугольная матрица.
Элементы матриц L и U вычисляются следующим образом:
|
|
|
|
p 1 |
ai,p Ai,p Li,kUk,p ; |
||||
|
|
|
|
k 1 |
L |
|
|
ai,p |
,i p,..., n; |
i,p |
|
|||
|
|
ap,p |
||
Up,p |
ap,p ; |
|||
|
|
|
|
p 1 |
Up, j |
Ap, j Lp,kUk, j, j p 1,..., n; |
|||
|
|
|
|
k 1 |
p 1,2,..., n. |
||||
Разложение нельзя выполнить, если какая-либо главная подматрица матрицы A — особенная. Предусмотреть защиту от возможного деления на ноль.
Вариант 11.
Написать и протестировать функцию, выполняющую разложение неособенной квадратной матрицы на произведение нижней треугольной матрицы с единичной диагональю и матрицы с ортогональными строками.
Может быть использован следующий алгоритм. Пусть дана действительная неособенная матрица
a11 |
a12 |
... |
a1n |
|||
|
|
|
|
|
|
|
A a21 |
a22 |
... |
a2n . |
|||
... ... |
... |
... |
||||
|
|
a |
|
... |
a |
|
a |
n1 |
n2 |
|
|||
|
|
|
|
nn |
||
Из каждой i-ой строки матрицы A, начиная со второй, вычтем первую строку, умноженную на некоторое число i1 i 2,..., n , зависящее от номера строки. В результате будем иметь
преобразованную матрицу A 1 .
Множители i1 должны быть такими, чтобы первая строка матрицы A 1 была ортогональна всем остальным строкам, то есть
|
n |
|
|
a1jaij |
|
i1 |
j 1 |
. |
n |
||
|
a12j |
|
|
j 1 |
|
Над матрицей A 1 проделываем аналогичную операцию: из каждой её i-й строки i 3,..., n вычтем вторую строку матрицы A 1 , умноженную на i2
|
n |
|
|
|
|
a2 jaij |
|
|
|
i2 |
j 1 |
. |
|
|
n |
|
|
||
|
a21j 2 |
|
|
|
|
j 1 |
|
|
|
Получим матрицу A 2 |
и т. д., пока не получится матрица A n 1 все строки которой попарно |
|||
ортогональны. |
|
|
||
Матрица A n 1 |
R с ортогональными строками получилась из матрицы А в результате цепи |
|||
элементарных преобразований. Поэтомусправедливо равенство A Λ 1R , где Λ — нижняя треугольная матрица.
Матрицу Λ легко восстановить, проделав над единичной матрицей Е все элементарные преобразования, совершенные над матрицей А. Окончательно имеем A Λ 1R .
Вариант 12.
Вычислить значение матричного выражения A B T E AT BT 1 .
Матрицы А и В — общего вида размерности n n.
Вариант 13.
Вычислить значение матричного выражения
ABC 1 E C 1B 1A 1 ,
где А, B, C — матрицы общего вида размерности n n.
Вариант 14.
Вычислить значение матричного выражения PLTC 1LP , где C LLT .
Матрица Р — симметричная размерности k k, матрица L — общего вида размерности n k.
Вариант 15.
Вычислить значение матричного выражения
AB BA 1 ,
где А и В — квадратные матрицы размерности n с элементами:
aij |
1при j i 1, |
|
|
|
|
|
0при j i 1; |
|
bij |
d i 1 при i j 1, |
|
|
0при i j 1; |
|
|
|
|
Вариант 16.
Вычислить значение матричного выражения
AB T E BTAT 1 ,
где А, В — матрицы общего вида размерности n n.
Вариант 17.
Написать, протестировать и оценить эффективность функции решения системы линейных алгебраических уравнений методом Гаусса.
Исследовать зависимость точности и времени решения от типа представления коэффициентов уравнений (float, double) и порядка системы.
Вариант 18.
Написать, протестировать и оценить эффективность функции решения системы линейных алгебраических уравнений методом Гаусса с выбором главного элемента.
Исследовать зависимость точности и времени решения от типа представления коэффициентов уравнений (float, double) и порядка системы.
Вариант 19.
Написать, протестировать и оценить эффективность функции решения системы линейных алгебраических уравнений методом Гаусса-Жордана.
Исследовать зависимость точности и времени решения от типа представления коэффициентов уравнений (float, double) и порядка системы.
Вариант 20.
Написать, протестировать и оценить эффективность функции решения системы линейных алгебраических уравнений методом ортогонализации строк.
Исследовать зависимость точности и времени решения от типа представления коэффициентов уравнений (float, double) и порядка системы.
Описание метода. Пусть дана система линейных уравнений
Ax b detA 0 .
Преобразуем строки системы так, чтобы матрица А перешла в матрицу R с ортогональными строками. При этом вектор b перейдет в вектор β. В результате получим эквивалентную систему Rx β, откуда x R 1β.
Из свойств ортогональных матриц следует:
R 1 RT RRT 1 ,
где RRT D; D — диагональная матрица. Поэтому имеем
x RTD 1β.
Матрица, обратная диагональной, ищется просто
d11 |
0 |
|
|
0 |
d22 |
D |
|
|
... ... |
||
|
|
|
|
0 |
0 |
|
||
... |
0 |
|
|
|
d111 |
|
|
|
|
|
|
|
|
... |
0 |
|
D 1 |
|
0 |
|
... |
... |
|
|
... |
||
|
|
|
|
|
|
|
... |
|
|
|
|
|
0 |
dnn |
|
|
|
|||
0 ... |
0 |
|
d221 ... |
0 |
|
... ... ... |
. |
|
|
||
|
1 |
|
0 ... |
|
|
dnn |
|
|
Матрица R может быть получена следующим образом.
Из каждой i-й строки системы i 3,..., n вычтем первую строку, умноженную на i1 . Получим матрицу A 1 .
Множители i1 должны быть такими, чтобы первая строка матрицы A 1 была ортогональна всем остальным строкам, то есть
|
n |
|
|
a1jaij |
|
i1 |
j 1 |
. |
n |
||
|
a12j |
|
|
j 1 |
|
Над матрицей A 1 проделываем аналогичную операцию: из каждой её i-й строки i 3,..., n вычтем вторую строку матрицы A 1 , умноженную на i2
|
n |
|
|
|
|
a2 jaij |
|
|
|
i2 |
j 1 |
. |
|
|
n |
|
|
||
|
a21j 2 |
|
|
|
|
j 1 |
|
|
|
Получим матрицу A 2 |
и т. д., пока не получится матрица A n 1 , все строки которой попарно |
|||
ортогональны. |
|
|
||
Систему Ax b можно решить и по-другому. Пусть она приведена к виду Rx β, как это описано выше.
Умножим каждое уравнение системы на
i |
|
|
1 |
|
,i 1,...,n. |
|
|
|
|||
|
|||||
|
|
|
n |
||
|
|
|
rij2 |
||
|
|
|
j 1 |
||
Получим
Rx β
где — ортогональная матрица. Поскольку у ортогональных матриц транспонированная матрица
R
совпадает с обратной, то
1 T .
xR β R β
Вариант 21.
Написать и протестировать функцию, выполняющую разложение неособенной симметрической матрицы А на произведение двух треугольных, транспонированных между собой матриц
A T T, где
t11 |
t12 |
... |
t1n |
|
|
0 |
t22 |
... |
t2n |
T |
|
|
|
|
... ... ... ... |
||||
|
|
|
|
|
|
0 |
0 |
... |
tnn |
|
||||
|
|
|
t11 |
0 |
|
|
|
|
t |
t |
22 |
|
|
|
12 |
|
|
|
, T |
|
|
|
|
... ...
|
|
|
t |
|
|
t |
2n |
||
|
|
1n |
|
|
... 0
... 0 .
... ...
... tnn
Описание алгоритма. Перемножив Т и Т', получим уравнения для определения tij :
t1it1j t2it2 j ... tiitij aij , i j ;
t12i t22i ... tii2 aii .
Отсюда
i 1
tii aii tki2 , 1 i n ; k 1
tij 0, i j .
Коэффициенты матрицы T будут действительными, если tij2 0,i 1,..., n.
Вариант 22.
Написать, протестировать и оценить эффективность функции решения системы линейных алгебраических уравнений с ленточными матрицами.
Исследовать зависимость точности и времени решения от типа представления коэффициентов уравнений (float, double) и порядка системы.
Описание метода. Если А — положительно определённая ленточная матрица такая, что aij 0, i j m,
то существует действительная невырожденная нижняя треугольная матрица L, допускающая представление исходной матрицы в виде
LLT A , где l |
0, если i j m. |
|
|||
|
|
ij |
|
|
|
Элементы матрицы L можно определить по строкам, приравнивая элементы в обеих частях последнего |
|||||
уравнения. Если принять, что все элементы lpq при q 0 |
и q p равны нулю, то элементы i-ой строки |
||||
удовлетворяют соотношениям |
|
||||
|
|
i 1 |
|
|
|
|
aij likljk |
|
|||
lij |
|
k i m |
|
, j i m,...,i 1; |
|
|
ljj |
|
|
||
|
|
|
|
|
|
|
|
i 1 |
|
|
|
lii aii lik2 . |
|
||||
|
|
k i m |
|
|
|
Решение системы уравнений Ax b осуществляется в два этапа
Ly b;
LTx y.
Учитывая ширину ленточной матрицы, получаем следующий алгоритм для решения системы уравнений:
|
|
|
|
i 1 |
|
|
|
yi |
|
bi |
lik yk |
|
,i 1,..., n; |
||
|
k i m |
|
|||||
|
lii |
|
|||||
|
|
|
|
|
|
||
|
|
|
|
i m |
|
|
|
xi |
|
|
yi |
lkixk |
,i n,...,1. |
||
|
|
k i 1 |
|
||||
|
lii |
||||||
|
|
|
|
|
|
||
Вариант 23.
Написать, протестировать и оценить эффективность функции решения системы линейных алгебраических уравнений по схеме Холецкого. Исследовать зависимость точности и времени решения от типа представления коэффициентов уравнений (float, double) и порядка системы.
Описание метода. Дана линейная система Ax b, где A aij — симметрическая положительно
определённая матрица, для которой справедливо разложение A LDLT ,
где L — нижняя треугольная матрица с единичной диагональю; D — положительно определённая диагональная матрица.
Такое разложение может быть выполнено за n шагов, причём на i-м шаге определяют i-ую строку матрицы L и i-й элемент di матрицы D. Выражения для нахождения этих элементов имеют вид:
i 1
lijdj aij likdkljk , j 1,...,i 1;
k1
i 1
di aii likdklik . k 1
После того, как матрицы L и D будут найдены, заменим исходную систему двумя эквивалентными ей системами
Ly b;
LTx D 1y.
Эти уравнения можно решить, последовательно вычисляя величины
i 1 |
|
|
y |
i |
n |
|
yi bi lik yk ,i 1,..., n; |
xi |
|
|
lkixk ,i n,...,1. |
||
di |
||||||
k 1 |
|
|
k i 1 |
|||
Вариант 24.
Написать, протестировать и оценить эффективность функции решения системы линейных алгебраических уравнений методом квадратного корня. Исследовать зависимость точности и времени решения от типа представления коэффициентов уравнений (float, double) и порядка системы. Описание метода. Дана линейная система
Ax b,
где A aij — симметрическая положительно определённая матрица.
Представим матрицу А в виде произведения двух треугольных транспонированных между собой матриц (см. задачу 21)
A T T.
Система имеет единственное решение, если tii 0,i 1,..., n.
После того, как матрица Т будет найдена, заменим исходную систему двумя эквивалентными ей системами с треугольными матрицами
|
b, Tx y. |
|
|
|
|
||
Ty |
|
|
|
|
|||
Отсюда можно последовательно найти |
|
|
|||||
|
|
i 1 |
|
|
|
n |
|
yi |
|
bi tki yk |
,i 1,2,..., n; |
xi |
|
yi tik xk |
,i n, n 1,...,1. |
|
k 1 |
|
k i 1 |
||||
|
tii |
|
tii |
||||
|
|
|
|
|
|
||
Вариант 25.
Написать и протестировать функцию вычисления определителя симметрической положительно определённой матрицы путём её разложения на две взаимно транспонированные треугольные матрицы. Описание метода. Если А — симметрическая положительно определённая матрица, то существует действительная невырожденная нижняя треугольная матрица L, такая, что LLT A .
Элементы матрицы L можно определять по строкам или столбцам, приравнивая соответствующие элементы матриц в приведённом выражении. Если матрицу вычисляют по строкам, то для элементов i-й строки справедливы следующие соотношения:
|
|
i 1 |
|
lii aii lik2 ; |
|||
|
|
k 1 |
|
|
|
i 1 |
|
lij |
aij |
likljk |
, j 1,...,i 1. |
|
k 1 |
||
|
ljj |
||
|
|
|
|
Определитель матрицы А можно вычислить в соответствии с выражением
|
n |
2 |
detA detL detLT |
lii . |
|
|
i 1 |
|
