Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
01.11.2025
Размер:
649.69 Кб
Скачать

A 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