Вы находитесь на странице: 1из 21

Алгоритмы

1 Выделение базиса из системы векторов


Дано Пусть v1 , . . . , vm ∈ F n – вектора и V = hv1 , . . . , vm i – их линейная оболочка.

Задача Среди векторов v1 , . . . , vm найти базис пространства V и разложить оставшиеся вектора по этому
базису.

Алгоритм
1. Запишем вектора v1 , . . . , vm по столбцам в матрицу A ∈ Mn m (F ). Например, при n = 3, m = 5
 
v11 v21 v31 v41 v51
A = v12 v22 v32 v42 v52 
v13 v23 v33 v43 v53

2. Приведем матрицу A элементарными преобразованиями строк к улучшенному ступенчатому виду. На-


пример  
1 0 a31 0 a51
A0 = 0 1 a32 0 a52 
0 0 0 1 a53

3. Пусть k1 , . . . , kr – номера главных позиций в матрице A0 . Тогда вектора vk1 , . . . , vkr образуют базис V .
Например, в примере выше это вектора v1 , v2 и v4 .
4. Пусть vi – вектор соответствует неглавной позиции в A0 . Тогда в i-ом столбце A0 записаны координаты
разложения vi через найденный базис выше. Например, в примере выше v3 = a31 v1 + a32 v2 и v5 =
a51 v1 + a52 v2 + a53 v4 .

Пример Пусть          
1 1 5 1 −1
v1 = 3 , v2 = 2 , v3 = 12 , v4 = 1 , v5 =  1  ∈ F 3
2 1 7 1 0
Тогда
     
1 1 5 1 −1 1 1 5 1−1 1 1 5 1 −1
3 2 12 1 1  7→ 0 0 0 −1 2  7→ 0 0 0 −1 2  →7
2 1 7 1 0 2 1 7 1 0 1 0 2 0 1
     
1 0 2 0 1 1 0 2 0 1 1 0 2 0 1
7→ 1 1 5 1 −1 7 → 0 1 3 1 −2 7→ 0 1 3 0 0
0 0 0 1 −2 0 0 0 1 −2 0 0 0 1 −2

Тогда v1 , v2 и v4 – базис линейной оболочки. v3 = 2v1 + 3v2 и v5 = v1 − 2v4 .

2 Нахождение какого-то базиса линейной оболочки


Дано Пусть v1 , . . . , vm ∈ F n – вектора и V = hv1 , . . . , vm i – их линейная оболочка.

Задача Найти какой-нибудь базис подпространства V .

Алгоритм
1. Уложить все вектора vi в строки матрицы A ∈ Mm n (F ).

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


3. Ненулевые строки полученной матрицы будут искомым базисом.

1
3 Дополнение линейно независимой системы до базиса всего пространства стан-
дартными векторами
Дано Пусть v1 , . . . , vm ∈ F n – линейно независимая система векторов, V = hv1 , . . . , vm i – их линейная
оболочка и ei – стандартные базисные векторы, т.е. на i-ом месте стоит 1, а в остальных 0.

Задача Найти такие вектора ek1 , . . . , ekn−m , что система v1 , . . . , vm , ek1 , . . . , ekn−m является базисом F n .

Алгоритм

1. Уложить вектора vi в строки матрицы A ∈ Mm n (F ).


2. Привести матрицу A к ступенчатому виду.
3. Пусть k1 , . . . , kn−m – номера неглавных столбцов. Тогда e1 , . . . , ekn−m – искомое множество.

4 Найти ФСР однородной СЛУ


Дано Система однородных линейных уравнений Ax = 0, где A ∈ Mm n (F ) и x ∈ F n .

Задача Найти ФСР системы Ax = 0.

Алгоритм
1. Привести матрицу A элементарными преобразованиями строк к улучшенному ступенчатому виду. На-
пример  
1 0 a31 0 a51
A0 = 0 1 a32 0 a52 
0 0 0 1 a53

2. Пусть k1 , . . . , kr – позиции свободных переменных. Если положить одну из этих переменных равной 1,
а все остальные нулями, то существует единственное решение, которое мы обозначим через ui (всего
r штук). Например, для матрицы A0 выше свободные переменные имеют номера 3 и 5. Тогда вектора
(записанные в строку)
 
u1 = −a31 −a32 1 0 0 , u2 = −a51 −a52 0 −a53 1

являются ФСР.

5 Задать подпространство базисом, если оно задано матричным уравнением


Дано Пусть A ∈ Mm n (F ) и V ⊆ F n задано в виде V = {y ∈ F n | Ay = 0}.

Задача Найти базис подпространства V .

Алгоритм
1. Найти ФСР системы Ay = 0. Векторы ФСР будут базисом V .

6 Задать подпространство матричным уравнением, если оно задано линейной


оболочной
Дано Пусть v1 , . . . , vk ∈ F n – набор векторов и V = hv1 , . . . , vk i.

Задача Для некоторого m найти матрицу A ∈ Mm n (F ) такую, что V = {y ∈ F n | Ay = 0}.

2
Алгоритм
1. Уложить вектора vi в строки матрицы B ∈ Mk n (F ).
2. Найти ФСР системы Bz = 0.
3. Уложить ФСР в строки матрицы A ∈ Mm n (F ), где m – количество векторов в ФСР. Матрица A и будет
искомой.

7 Найти матрицу замены координат


Дано Векторное пространство V , e = (e1 , . . . , en ) и f = (f1 , . . . , fn ) – два базиса пространства V . Известна
матрица перехода от e к f , т.е. (f1 , . . . , fn ) = (e1 , . . . , en )A, где A ∈ Mn (F ). Дан вектор v = x1 e1 + . . . + xn en .

Задача Найти разложение v по базису f .

Алгоритм
1. Если v = ex, где x ∈ F n , а также v = f y, где y ∈ F n , то y = A−1 x.

8 Найти матрицу линейного отображения при замене базиса


Дано Векторное пространство V с базисами e = (e1 , . . . , en ) и e0 = (e01 , . . . , e0n ), а также векторное простран-
ство U с базисами f = (f1 , . . . , fm ) и f 0 = (f10 , . . . , fm
0
). Известны матрицы перехода (e01 , . . . , e0n ) = (e1 , . . . , en )C
и (f1 , . . . , fm ) = (f1 , . . . , fm )D, где C ∈ Mn (F ) и D ∈ Mm (F ). Дано линейное отображение φ : V → U заданное
0 0

в базисах e и f матрицей A ∈ Mn m (F ), т.е. φe = f A.

Задача Найти матрицу отображения φ в базисах e0 и f 0 , то есть такую A0 ∈ Mn m (F ), что φe0 = f 0 A0 .

Алгоритм
1. A0 = D−1 AC.

9 Определить существует ли линейное отображение заданное на векторах


Дано Векторное пространство V над полем F и набор векторов v1 , . . . , vk ∈ V , векторное пространство U
и набор векторов u1 , . . . , uk ∈ U .

Задача Определить существует ли линейное отображение φ : V → U такое, что φ(vi ) = ui .

Алгоритм
1. Среди векторов v1 , . . . , vk выделить линейно независимые, а остальные разложить по ним.

2. Пусть на предыдущем этапе базис получился v1 , . . . , vr , а vr+i = ai1 v1 + . . . + air vr .


3. Искомое линейное отображение φ существует тогда и только тогда, когда выполняются равенства ur+i =
ai1 u1 + . . . + air ur .1

10 Найти базис образа и ядра линейного отображения


Дано φ : F n → F m задан x 7→ Ax, где A ∈ Mm n (F ).

Задача Найти базис Im φ ∈ F m и базис ker φ ∈ F n .


1В частности, если все vi оказались линейно независимыми, то линейное отображение φ обязательно существует.

3
Алгоритм
1. Выделить базис среди столбцов матрицы A. В результате получится базис Im φ.
2. Найти ФСР системы Ax = 0. Полученная ФСР будет базисом ker φ.

11 Найти линейное отображение с заданными ядром и образом


Дано Пространства U ⊆ F n и W ⊆ F m такие, что dim U + dim W = n.

Задача Найти матрицу линейного отображения ϕ : F n → F m такого, что U = ker ϕ и W = Im ϕ.

Алгоритм
1. Задать подпространство W с помощью базиса. Пусть b1 , . . . , bk – базис W . Определим матрицу B =
(b1 | . . . |bk ).
2. Задать подпространство U системой с линейно независимыми строками U = {y ∈ F n | Ay = 0}.
3. В силу условия dim U +dim W = n матрица A будет иметь столько же строк, сколько столбцов в матрице
B. В этом случае искомое линейное отображение задается матрицей BA.

12 Найти сумму подпространств заданных линейными оболочками


Дано Подпространства V, U ⊆ F n заданные в виде V = hv1 , . . . , vm i, U = hu1 , . . . , uk i, где vi , uj ∈ F n .

Задача Найти базис V + U .

Алгоритм
1. Надо найти базис линейной оболочки hv1 , . . . , vm , u1 , . . . , uk i.

13 Найти пересечение подпространств заданных линейными оболочками


Дано Подпространства V, U ⊆ F n заданные в виде V = hv1 , . . . , vm i, U = hu1 , . . . , uk i, где vi , uj ∈ F n .

Задача Найти базис V ∩ U .2

Алгоритм
 
1. Найти ФСР системы Dx = 0, где D = (v1 | . . . |vm |u1 | . . . |uk ) и x = α
β , где α ∈ F m , β ∈ F k .
 
2. Пусть α1
β1 ... αs
βs – ФСР. Далее есть две опции (из них вторая опция предпочтительнее!):

• Множество векторов R = (v1 | . . . |vm )(α1 | . . . |αs ) порождает V ∩ U . Среди (α1 | . . . |αs ) можно выки-
нуть те αi , для которых βi = 0.3
• Множество векторов R0 = (u1 | . . . |uk )(β1 | . . . |βs ) порождает V ∩ U . Причем можно рассматривать
только ненулевые βi .
3. Выделить базис среди столбцов R. Это и будет базис V ∩ U .
• Если векторы u1 , . . . , uk были линейно независимы изначально и βi , . . . , βs – все ненулевые сегменты
ФСР с прошлого шага, то (u1 | . . . |uk )(βi | . . . |βs ) будет базисом V ∩ U .
2 В это задаче можно задать подпространства системами, потом найти пересечение в виде системы, потом задать результат

базисом. Но есть куда более эффективный способ.


3 Если ФСР построен по стандартному базису, то останутся α с нулевыми свободными переменными.
i

4
14 Найти пересечение подпространств заданных матричным уравнением
Дано Подпространства V, U ⊆ F n заданные в виде V = {y ∈ F n | Ay = 0}, U = {y ∈ F n | By = 0}, где
A ∈ Mm n (F ) и B ∈ Mk n (F ).

Задача Задать V ∩ U в виде {y ∈ F n | Dy = 0} для некоторого D ∈ Mk n (F ), где rk D = k 6 n.

Алгоритм
1. Рассмотреть матрицу D0 = A
.

B

2. Выделить среди строк D0 линейно независимую подсистему. Результат и будет искомая D.

15 Найти сумму подпространств заданных матричным уравнением


Дано Подпространства V, U ⊆ F n заданные в виде V = {y ∈ F n | Ay = 0}, U = {y ∈ F n | By = 0}, где
A ∈ Mm n (F ) и B ∈ Mk n (F ).

Задача Задать V + U в виде {y ∈ F n | Ry = 0} для некоторого R ∈ Mk n (F ), где rk R = k 6 n.4

Алгоритм
 
1. Найти ФСР системы Dx = 0, где D = (At |B t ) и x = α
β , где α ∈ F m и β ∈ F k .
 
2. Пусть α1
β1 ... αs
βs – ФСР. Далее есть две опции:

• Если определим S = (α1 | . . . |αs )t A, то V + U = {y ∈ F n | Sy = 0}. Здесь достаточно взять только


те αi , для которых βi не равны нулю.
• Если определим T = (β1 | . . . |βs )t B, то V + U = {y ∈ F n | T y = 0}. Здесь достаточно взять только
ненулевые βi .

3. Выделить базис среди строк S (или T ). Это и будет искомая матрица R.


• Если строки B были линейно независимыми и мы выбрали только ненулевые βi , то T уже будет
искомой, то есть ее строки будут линейно независимыми.

16 Найти пересечение подпространств заданных разными способами


Дано Подпространства V, U ⊆ F n заданные в виде V = hv1 , . . . , vm i, U = {y ∈ F n | Ay = 0}, где A ∈ Mk n (F ).

Задача Найти базис V ∩ U .

Алгоритм
1. Определим матрицу B = (v1 | . . . |vm ) и найдем ФСР для системы ABx = 0. Пусть это будет x1 , . . . , xt .

2. Тогда столбцы матрицы R = B(x1 | . . . |xt ) порождают V ∩ U .


3. Отобрать среди столбцов R линейно независимые.
• Если v1 , . . . , vm были линейно независимы (то есть базис V ), то столбцы R уже будут линейно
независимыми.

17 Найти пересечение подпространств заданных разными способами


Дано Подпространства V, U ⊆ F n заданные в виде V = hv1 , . . . , vm i, U = {y ∈ F n | Ay = 0}, где A ∈ Mk n (F ).
4 В этой задаче можно задать подпространства базисами, потом найти сумму заданной базисом, потом задать эту сумму

системой. Но есть более эффективный метод.

5
Задача Задать V ∩ U системой линейных уравнений.

Алгоритм
1. Задать подпространство V системой в виде {x ∈ F n | Dx = 0}.

2. Тогда V ∩ U задается объединенной системой DB


.


18 Найти сумму подпространств заданных разными способами


Дано Подпространства V, U ⊆ F n заданные в виде V = hv1 , . . . , vm i, U = {y ∈ F n | Ay = 0}, где A ∈ Mk n (F ).

Задача Задать V + U в виде {x ∈ F n | Dx = 0}, где D ∈ Mt n (F ) и t = rk D.5

Алгоритм
1. Определим матрицу B = (v1 | . . . |vm ) и найдем ФСР для системы B t At x = 0. Пусть это будет x1 , . . . , xt .
2. Тогда матрица D0 = (x1 | . . . |xt )t A задает V + U системой.

3. Отобрать среди строк D0 линейно независимые и получить D.


• Если строки A были линейно независимы, то строки D0 уже будут линейно независимыми.

19 Найти сумму подпространств заданных разными способами


Дано Подпространства V, U ⊆ F n заданные в виде V = hv1 , . . . , vm i, U = {y ∈ F n | Ay = 0}, где A ∈ Mk n (F ).

Задача Задать V + U в виде линейной оболочки.

Алгоритм
1. Задать подпространство U с помощью линейной оболочки.
2. Объединить линейные оболочки для V и для U .

20 Найти матрицу линейного оператора при замене базиса


Дано Векторное пространство V над полем F , e = (e1 , . . . , en ) и f = (f1 , . . . , fn ) – два базиса пространства
V . Известна матрица перехода от e к f , т.е. (f1 , . . . , fn ) = (e1 , . . . , en )C, где C ∈ Mn (F ). Дано линейное
отображение φ : V → V заданное в базисе e матрицей A ∈ Mn (F ), т.е. φe = eA.

Задача Найти матрицу отображения φ в базисе f .

Алгоритм
1. Пусть φf = f B, где B – искомая матрица. Тогда B = C −1 AC.

21 Найти проекцию вектора на подпространство вдоль другого подпространства


Дано F n = V ⊕ U , где V и U заданы базисами V = hv1 , . . . , vm i, U = hu1 , . . . , uk i. Пусть z ∈ F n расклады-
вается z = v + u, где v ∈ V и u ∈ U .

Задача Найти v и u.
5 Всегда можно задать U линейной оболочкой, потом задать V +U линейной оболочкой, а потом найти представление системой.

Я же покажу тут другой подход.

6
Алгоритм
 
1. Решить СЛУ Dx = z, где D = (v1 | . . . |vm |u1 | . . . |uk ) и x = β , где α ∈ F
α m
и β ∈ F k.

2. Тогда v = (v1 | . . . |vm )α и u = (u1 | . . . |uk )β.

22 Найти оператор проекции на подпространство вдоль другого подпростран-


ства
Дано F n = V ⊕ U , где V задано базисом V = hv1 , . . . , vm i, U = {y ∈ F n | Ay = 0}, где A ∈ Mk n (F ) и
rk A = k 6 n.

Задача Найти матрицу отображения φ : V → V такого, что φ(U ) = 0 и φ(v) = v для любого v ∈ V .6

Алгоритм
1. Положим B = (v1 | . . . |vm ) ∈ Mn m (F ).
2. Обязательно получится, что m = k и матрица AB невырождена.

3. Искомый φ имеет матрицу B(AB)−1 A.

23 Поиск собственных значений и векторов


Дано Матрица A ∈ Mn (F ).

Задача Найти все собственные значения λi для A и для каждого λi найти базис пространства Vλi = {v ∈
F n | Av = λi v}.

Алгоритм
1. Посчитать характеристический многочлен (−1)n χA (λ) = det(A − λE).
2. Найти корни многочлена χA (λ). Корни {λ1 , . . . , λk } будут собственным значениями A.

3. Для каждого λi найти ФСР системы (A − λi E)x = 0. Тогда ФСР будет базисом Vλi .
Если дополнительно найти с каждым собственным значением λi его кратность ni в характеристическом
многочлене, то на последнем шаге размер ФСР для λi оценивается так. Собственных векторов будет не
меньше чем 1 и не больше, чем ni .

24 Поиск корневых подпространств


Дано Матрица A ∈ Mn (F ).

Задача Найти все собственные значения λi для A и для каждого λi найти базис пространства V λi = {v ∈
F n | ∃n : (A − λi E)n v = 0}.

Алгоритм

1. Посчитать характеристический многочлен (−1)n χA (λ) = det(A − λE).


2. Найти корни многочлена χA (λ) с кратностями. Корни {λ1 , . . . , λk } будут собственным значениями A. И
пусть кратности будут {n1 , . . . , nk }.
3. Для каждого λi найти ФСР системы (A − λi E)ni x = 0. Тогда ФСР будет базисом V λi . Обратите внима-
ние, что для каждого λi должно получиться ровно ni векторов.
6 Заметим, что если z ∈ F n раскладывается z = v + u, где v ∈ V и u ∈ U , то φ(z) = v.

7
25 Поиск инвариантных подпространств
Дано Матрица A ∈ Mn (F ).

Задача Найти все подпространства U ⊆ F n такие, что AU ⊆ U .

Алгоритм
1. Для каждого вектора v ∈ F n найти главное инвариантное подпространство

[v]A = hv, Av, A2 v, . . . , Am v, . . .i

Обратите внимание, что это «творческий шаг» тут нет общего алгоритма,7 тут придется немного дога-
даться.
2. Описать все инвариантные подпространства, как конечные суммы главных, а именно любое инвари-
антное U будет иметь вид [v1 ]A + . . . + [vk ]A , где v1 , . . . , vk пробегает все возможные конечные наборы
векторов.

26 Поиск инвариантных подпространств для диагонализуемого оператора


Дано Матрица A ∈ Mn (F ), задающая диагонализуемый оператор.

Задача Найти все подпространства U ⊆ F n такие, что AU ⊆ U .

Алгоритм
1. В начале надо найти все собственные значения и собственные подпространства. Пусть λ1 , . . . , λk – все
собственные значения с кратностями n1 , . . . , nk . Тогда F n = Vλ1 ⊕ . . . ⊕ Vλk .
2. Надо выбрать произвольное подпространство Ui ⊆ Vλi (включая нулевое и все Vλi целиком). Тогда
U1 , . . . , Uk будут линейно независимыми и U = U1 ⊕ . . . ⊕ Uk будут все возможные инвариантные под-
пространства.

27 Проверка на диагонализуемость
Дано Матрица A ∈ Mn (F ), задающая линейный оператор ϕ : F n → F n .

Задача Выяснить существует ли базис, в котором ϕ задается диагональной матрицей и если задается, то
какой именно. На матричном языке: существует ли невырожденная матрица C ∈ Mn (F ) такая, что C −1 AC
является диагональной и найти эту диагональную матрицу.

Алгоритм
1. Найдем характеристический многочлен χ(t) для ϕ, он же для A по формуле (−1)n χ(t) = det(A − tE).
2. Проверим, раскладывается ли χ(t) на линейные множители над F , то есть представляется ли он в виде
χ(t) = (t−λ1 )d1 . . . (t−λk )dk . Если не представляется, то ϕ (или что то же самое A) не диагонализируется
3. Если χ(t) = (t − λ1 )d1 . . . (t − λk )dk . Найдем для каждого λi базис Vλi как ФСР системы (A − λi E)x = 0.
Если для хотя бы одного i количество элементов в ФСР меньше соответствующей кратности корня di ,
то ϕ не диагонализируется.
4. Если для каждого i мы получили, что размер ФСР совпадает с кратностью корня, то есть dim Vλi = di .
То ϕ диагонализируется. В этом случае матрица C состоит из собственных векторов. Если собственные
векторы для λi есть {vi1 , . . . , vidi }, то C = (v11 | . . . |v1d1 |v21 | . . . |v2d2 | . . . |vk1 | . . . |vkdk ). При этом в новом
базисе будет диагональная матрица C −1 AC = Diag(λ1 , . . . , λ1 , λ2 , . . . , λ2 , . . . , λk , . . . , λk ), где каждое λi
встречается di раз.
7 Если говорить правду, то алгоритм то есть, но он такой геморройный и требует знаний, которых пока у нас нет, так что да

ну его.

8
Заметим, что если поле F алгебраически замкнуто, то первый шаг алгоритма выполнен автоматически, а
именно, над алгебраически замкнутым полем любой многочлен разлагается на линейные множители. Потому
в этом случае вопрос о диагонализируемости – это лишь проверка всех равенств dim Vλi = di .

28 Определить ЖНФ у оператора


Дано Матрица A ∈ Mn (F ), где поле F алгебраически замкнуто.

Задача Определить все собственные значения и размеры клеток в жордановой нормальной форме.

Алгоритм
1. Собственные значения совпадают со спектром их ищем, как корни характеристического многочлена
χA (t) = (−1)n det(A − tE) = 0. Получаем набор корней и их кратности (λ1 , n1 ), . . . , (λk , nk ).

2. Для каждого λi суммарный размер клеток равен ni . Потому надо определить количество клеток для
всех k ∈ [1, ni ]. Количество клеток считается по формуле

количество клеток размера k = rk(A − λi E)k+1 + rk(A − λi E)k−1 − 2 rk(A − λi E)k

Обратите внимание, что если вы нашли m клеток размера k, а кратность была ni , то на оставшиеся клетки
уходит ni − mk мест. Этим можно пользоваться, чтобы не считать все количества клеток подряд.

29 Определение ЖНФ у матриц 2 на 2


Дано Матрица A ∈ M2 (F ), где поле F алгебраически замкнутое.

Найти Жорданова форма может быть одной из


     
λ λ λ 1
, ,
µ λ λ

Определить какая форма в нашем случае и определить все числа.

Алгоритм Общая идея в том, чтобы подобрать инварианты, которые достаточно рассчитать для выбора
из предоставленных вариантов.
1. Найдем характеристический многочлен χA (t) = det(A − tE). И посчитаем его корни. Есть два варианта:
(a) два разных корня λ и µ. В этом случае ЖНФ имеет вид
 
λ
µ

(b) один корень λ кратности 2. В этом случае, если A = λE, то ЖНФ имеет вид
 
λ
λ

В противном случае ЖНФ имеет вид  


λ 1
λ

30 Определить Жорданов базис у матриц 2 на 2


Дано Матрица A ∈ M2 (F ), где поле F алгебраически замкнутое.

Задача Зная ЖНФ определить жорданов базис f1 , f2 .

9
Алгоритм
1. Пусть ЖНФ имеет вид  
λ
µ
В этом случае оператор диагонализум, а значит базис выбирается из собственных векторов. Есть два
способа найти их:
(a) Вектор f1 находим как ненулевое решение системы (A−λE)x = 0, а вектор f2 находим как ненулевое
решение системы (A − µE)x = 0.
(b) Вектор f1 находим как ненулевой столбец матрицы A − µE, а вектор f2 находим как ненулевой
столбец матрицы A − λE.
2. Пусть ЖНФ имеет вид  
λ
λ
В этом случае подходит любой базис.
3. Пусть ЖНФ имеет вид  
λ 1
λ
В этом случае жорданов базис образует цепочку

f_2
A−λE

f_1
A−λE

0

В этом случае векторы базиса ищутся так


(a) Выбираем случайный вектор f2 . Всегда достаточно выбирать из стандартных базисных векторов.
(b) Полагаем f1 = (A − λE)f2 .
(c) Если f1 = 0, то вернуться к выбору вектора f2 . Если f1 6= 0, то f1 , f2 – искомый базис.

31 Определение ЖНФ у матриц 3 на 3


Дано Матрица A ∈ M3 (F ), где поле F алгебраически замкнуто.

Найти Жорданова форма может быть одной из


           
λ λ λ 1 λ λ 1 λ 1
 µ ,  λ ,  λ ,  λ ,  λ ,  λ 1
γ µ µ λ λ λ

Определить какая форма в нашем случае и определить все числа.

Алгоритм Общая идея в том, чтобы подобрать инварианты, которые достаточно рассчитать для выбора
из предоставленных вариантов.
1. Найдем характеристический многочлен χA (t) = − det(A − tE) и посчитаем его корни. Возможны следу-
ющие варианты:

• три разных корня λ, µ, γ.


• один корень λ кратности 2, один корень µ кратности 1.
• один корень λ кратности 3.

10
2. Три разных корня. В этом случае ЖНФ имеет вид
 
λ
 µ 
γ

3. Два разных корня, λ кратности 2 и µ кратности 1. В этом случае, если rk(A − λE) = 1, то ЖНФ имеет
вид  
λ
 λ 
µ
В противном случае (то есть, если rk(A − λE) = 2) ЖНФ имеет вид
 
λ 1
 λ 
µ

4. Один корень λ кратности 3. Если A = λE, то ЖНФ имеет вид


 
λ
 λ 
λ

Если rk(A − λE) = 1, то ЖНФ имеет вид


 
λ 1
 λ 
λ

В противном случае (то есть rk(A − λE) = 2) ЖНФ имеет вид


 
λ 1
 λ 1
λ

32 Определить Жорданов базис у матриц 3 на 3


Дано Матрица A ∈ M3 (F ), где поле F алгебраически замкнуто.

Задача Зная ЖНФ определить жорданов базис f1 , f2 , f3 .

Алгоритм
1. Пусть ЖНФ имеет вид  
λ
 µ 
γ
В этом случае оператор диагонализуем, а значит базис выбирается из собственных векторов. Базис
можно найти следующим образом. Вектор f1 – ненулевое решение системы (A − λE)x = 0, вектор f2 –
ненулевое решение системы (A − µE)x = 0, вектор f3 – ненулевое решение системы (A − γE)x = 0.
2. Пусть ЖНФ имеет вид  
λ
 λ 
µ
В этом случае оператор диагонализуем, а значит базис выбирается из собственных векторов. Базис
можно найти одним из двух способов ниже:

11
(a) Вектор f3 берется как решение системы (A − µE)x = 0, векторы f1 , f2 берутся как ФСР системы
(A − λE)x = 0.
(b) Вектор f3 берется как ненулевой столбец матрицы A − λE, векторы f1 , f2 берутся, как линейно
независимые столбцы матрицы A − µE.
3. Пусть ЖНФ имеет вид  
λ
 λ 
λ
В этом случае в качестве жорданова базиса годится любой базис.
4. Пусть ЖНФ имеет вид  
λ 1
 λ 
µ
В этом случае вектор f3 находится как решение системы (A − µE)x = 0. Векторы f1 , f2 можно найти
одним из следующих способов:
(a) Найдем ФСР системы (A − λE)2 x = 0, пусть это будет x1 , x2 . Тогда в качестве f2 берем один из
векторов xi , а f1 = (A − λE)f2 . В итоге выбираем такое xi в качестве f2 , чтобы f1 был не ноль.
(b) В качестве вектора f2 перебираем столбцы матрицы A − µE до тех пор, пока f1 = (A − λE)f2 не
станет ненулевым. Как только f1 будет не ноль, векторы f1 , f2 – искомые.
5. Пусть ЖНФ имеет вид  
λ 1
 λ 
λ
В этом случае жорданов базис имеет конфигурацию
f_2
A−λE

f_1 f_3
A−λE A−λE
 
0 0
В этом случае базис ищем по следующему алгоритму
(a) Вектор f2 выбираем случайно из всего пространства F 3 . Всегда достаточно выбирать из стандарт-
ных базисных векторов.
(b) Вектор f1 = (A − λE)f2 . Если f1 = 0, то возвращаемся к шагу выбора вектора f2 .
(c) В случае когда f1 6= 0 это будет вектор из ker(A − λE), надо дополнить его до базиса ядра. Это
можно сделать так: находим ФСР для системы (A − λE)x = 0 и дополняем f1 любым вектором из
ФСР, который не пропорционален f1 , это и будет f3 .
6. Пусть ЖНФ имеет вид  
λ 1
 λ 1
λ
В этом случае жорданов базис имеет конфигурацию
f_3
A−λE

f_2
A−λE

f_1
A−λE

0

12
В этом случае базис ищется по следующему алгоритму
(a) Случайно выбираем f3 из F 3 . Всегда достаточно выбирать из стандартных базисных векторов.
(b) Положим f2 = (A − λE)f3 и f1 = (A − λE)f2 .
(c) Если вектор f1 равен нулю, то возвращаемся к шагу выбора f3 иначе получили нужный базис.

33 Определение ЖНФ у матриц 4 на 4 с одним собственным значением


Дано Матрица A ∈ M4 (F ) с единственным собственным значением λ ∈ F , где поле F алгебраически за-
мкнуто.

Найти Жорданова форма может быть одной из


         
λ λ 1 λ 1 λ 1 λ 1

 λ  
,  λ 
, 
 λ 
,

 λ 1 
,

 λ 1 

 λ   λ   λ 1  λ   λ 1
λ λ λ λ λ
Определить какая форма в нашем случае и определить собственное значение.

Алгоритм Общая идея в том, чтобы подобрать инварианты, которые достаточно рассчитать для выбора
из предоставленных вариантов.
1. Найдем характеристический многочлен χA (t) = det(A−tE). Нам нужно найти его единственный корень.
Так как многочлен имеет вид (t − λ)4 , то можно найти его 3-ю производную и решить χA (t)(3) = 0 для
нахождения корня. Это работает, если 2 6= 0 и 3 6= 0 в поле F .8, 9
2. Если A = λE, то ЖНФ имеет вид  
λ

 λ 

 λ 
λ
3. Если rk(A − λE) = 1, то ЖНФ имеет вид
 
λ 1

 λ 

 λ 
λ

4. Если rk(A − λE) = 3, то ЖНФ имеет вид


 
λ 1

 λ 1 

 λ 1
λ

5. Если rk(A − λE) = 2, то надо посмотреть на (A − λE)2 . Если (A − λE)2 = 0, то ЖНФ имеет вид
 
λ 1

 λ 

 λ 1
λ
иначе (если (A − λE)2 6= 0) ЖНФ имеет вид
 
λ 1

 λ 1 

 λ 
λ
8 Действительно,третья производная от (t − λ)4 будет 4!(t − λ). Если 2 и 3 обратимы в F , то можно сократить на 4!.
9 Можно воспользоваться любым другим приемлемым способом по поиску корня многочлена.

13
34 Определить Жорданов базис у матриц 4 на 4 с единственным собственным
значением
Дано Матрица A ∈ M4 (F ) с единственным собственным значением λ, где поле F алгебраически замкнутое.

Задача Зная ЖНФ определить жорданов базис f1 , f2 , f3 , f4 .

Алгоритм
1. Пусть ЖНФ имеет вид  
λ

 λ 

 λ 
λ
В этом случае любой базис годится в качестве жорданова.
2. Пусть ЖНФ имеет вид  
λ 1

 λ 

 λ 
λ
В этом случае конфигурация жорданова базиса будет следующая

f_2
A−λE

f_1 f_3 f_4
A−λE A−λE A−λE
  
0 0 0

В этом случае базис находится по следующему алгоритму

(a) Вектор f2 выбираем случайно из F 4 . Всегда достаточно выбирать из стандартных базисных век-
торов.
(b) Положим f1 = (A − λE)f2 . Если вектор f1 = 0, то вернемся к шагу выбора вектора f2 .
(c) Вектор f1 будет лежать в ker(A − λE) теперь его надо дополнить до базиса ядра двумя векторами.
Это можно сделать так: находим ФСР системы (A − λE)x = 0 и из трех векторов выберем два
f3 , f4 , которые будут линейно независимы с f1 .
3. Пусть ЖНФ имеет вид  
λ 1

 λ 1 

 λ 
λ
В этом случае конфигурация жорданова базиса будет следующая

f_3
A−λE

f_2
A−λE

f_1 f_4
A−λE A−λE
 
0 0

В этом случае базис находится по следующему алгоритму

14
(a) Вектор f3 выбираем случайно в F 4 . Всегда достаточно выбирать из стандартных базисных векто-
ров.
(b) Положим f2 = (A − λE)f3 и f1 = (A − λE)f2 . Если f1 = 0, то вернуться к шагу выбора вектора f3 .
(c) Вектор f1 лежит в ker(A − λE), его надо дополнить одним вектором f4 до базиса ядра. Это можно
сделать следующим образом. Найдем ФСР системы (A − λE)x = 0 и дополним вектор f1 одним
вектором из ФСР, чтобы полученная пара была линейно независима.
4. Пусть ЖНФ имеет вид  
λ 1

 λ 1 

 λ 1
λ
В этом случае конфигурация жорданова базиса будет следующая

f_4
A−λE

f_3
A−λE

f_2
A−λE

f_1
A−λE

0

В этом случае базис находится по следующему алгоритму


(a) Вектор f4 выбираем случайно из F 4 . Всегда достаточно выбирать из стандартных базисных век-
торов.
(b) Положим f3 = (A − λE)f4 , f2 = (A − λE)f3 , f1 = (A − λE)f2 . Если f1 = 0, то вернуться к шагу
перевыбора f4 иначе получился искомый базис.
5. Пусть ЖНФ имеет вид  
λ 1

 λ 

 λ 1
λ
В этом случае конфигурация жорданова базиса будет следующая

f_2 f_4
A−λE A−λE
 
f_1 f_3
A−λE A−λE
 
0 0

В этом случае базис можно найти по следующему алгоритму.


(a) Выбираем вектор f2 случайно в F 4 . Всегда достаточно выбирать из стандартных базисных векто-
ров.
(b) Положим f1 = (A − λE)f2 . Если f1 = 0, то вернуться к шагу выбора f2 .
(c) Выбираем вектор f4 случайно в F 4 . Всегда достаточно выбирать из стандартных базисных векто-
ров.
(d) Положим f3 = (A − λE)f4 . Если векторы f1 , f3 линейно зависимы, вернуться к шагу выбора f4 .
Иначе получили искомый базис.

15
35 Найти матрицу билинейной формы при замене базиса
Дано Векторные пространства V и U над полем F . Пусть e = (e1 , . . . , en ) и e0 = (e01 , . . . , e0n ) – базисы
пространства V , а f = (f1 , . . . , fm ) и f 0 = (f10 , . . . , fm
0
) – базисы пространства U . Кроме того, известны
матрицы перехода от e к e и от f к f , т.е. (e1 , . . . , en ) = (e1 , . . . , en )C и (f10 , . . . , fm
0 0 0 0 0
) = (f1 , . . . , fm )D, где
C ∈ Mn (F ) и D ∈ Mm (F ) две обратимые матрицы. Дана билинейная форма β : V × U → F заданная в
базисах e и f матрицей B ∈ Mn m (F ), т.е. bij = β(ei , fj ).

Задача Найти матрицу билинейной формы β в базисах e0 и f 0 .

Алгоритм
1. Пусть в базисах e0 и f 0 мы имеем β(x, y) = xt B 0 y, где B 0 – искомая матрица. Тогда B 0 = C t BD.

36 Найти правое ортогональное дополнение к подпространству


Дано Дана билинейная форма β : F n × F m → F по правилу β(x, y) = xt By, где B ∈ Mn m (F ) и подпро-
странство V ⊆ F n , заданное образующими V = hv1 , . . . , vk i.

Задача Найти V ⊥ = {y ∈ F m | β(V, y) = 0}.

Алгоритм

1. Составить вектора vi в столбцы матрицы D = (v1 | . . . |vk ) ∈ Mn k (F ).


2. Найти ФСР СЛУ Dt By = 0. Данная ФСР дает базис V ⊥ .

37 Найти левое ортогональное дополнение к подпространству


Дано Дана билинейная форма β : F n × F m → F по правилу β(x, y) = xt By, где B ∈ Mn m (F ) и подпро-
странство V ⊆ F m , заданное образующими V = hv1 , . . . , vk i.

Задача Найти ⊥
V = {x ∈ F n | β(x, V ) = 0}.

Алгоритм
1. Составить вектора vi в столбцы матрицы D ∈ Mn k (F ).

2. Найти ФСР СЛУ Dt B t x = 0. Данная ФСР дает базис ⊥


V.

38 Симметричный Гаусс
Дано Симметричная билинейная форма β : F n × F n → F по правилу (x, y) 7→ xt By, где B ∈ Mn (F ) –
симметричная матрица и при этом 2 6= 0 в поле F .

Задача Диагоналзовать β, то есть найти матрицу перехода к новому базису C такую, чтобы B 0 = C t BC
была диагональная, и посчитать саму матрицу B 0 .

Алгоритм
1. Чтобы найти матрицу B 0 будем приводить ее к диагональному виду симметричными элементарными
преобразованиями, то есть допускаются следующие преобразования:

• Прибавить i-ю строку умноженную на λ к j-ой строке и сразу же прибавление i-го столбца умно-
женного на λ к j-ому столбцу.
• Поменять местами i-ю и j-ю строку и тут же поменять местами i-ый и j-ый столбец.
• Умножить i-ю строку на ненулевое λ и тут же умножить i-ый столбец на то же самое λ.

16
Получившаяся диагональная матрица будет искомая B 0 .
2. Если при этом надо восстановить матрицу C, то рассматриваем (B|E) и делаем симметричные элемен-
тарные преобразования над ней в том смысле, что преобразования над строками выполняются над всей
матрицей, а преобразования над столбцами только над часть, где лежит B. Тогда матрица приведется
к виду (B 0 |C t ).

39 Метод Якоби
Дано Симметричная билинейная форма β : V ×V → F , базис e1 , . . . , en пространства V , такой, что det β|he1 ,...,ek i 6=
0.

Задача Найти базис e01 , . . . , e0n такой, что e0i − ei ∈ he1 , . . . , ei−1 i = he01 , . . . , e0i−1 i такой, что β(e0i , e0j ) = 0 при
i 6= j.

Алгоритм
1. В начале положим e01 = e1 .
2. Пусть мы нашли вектора e01 , . . . , e0i−1 . Тогда положим вектор e0i в виде10

β(ei , e01 ) 0 β(ei , e0i−1 ) 0


e0i = ei − e 1 − . . . − e
β(e01 , e01 ) β(e0i−1 , e0i−1 ) i−1

40 Алгоритм диагонализации на основе метода Якоби


Дано Симметрическая матрица B ∈ Mn (F ).

Задача Проверить, что все ее угловые подматрицы Bk невырождены и если это так, то найти их значения,
а также найти верхнетреугольную матрицу с единицами на диагонали C ∈ Mn (F ) и диагональную матрицу
D ∈ Mn (F ) такие, что B = C t DC.

Алгоритм
1. Начнем приводить матрицу B к верхнетреугольному виду элементарными преобразованиями первого
типа, когда нам разрешено прибавлять строку с коэффициентом только к более низкой строке. Возмож-
ны два исхода:
• На каком-то этапе получили, что на диагонали на k-ом месте стоит 0, а под диагональю есть
ненулевой элемент. Это значит, что ∆k = 0. Условие на матрицу не выполнено.
• Мы привели матрицу B к верхнетреугольной матрице U . Переходим к следующему шагу.
2. Восстановим все необходимые данные по матрице U следующим образом:
(a) D – диагональ матрицы U .
(b) C = D−1 U .
(c) ∆k – произведение первых k элементов диагонали матрицы D.

41 Алгоритм диагонализации унитарного оператора


Дано Унитарная матрица A ∈ Mn (C).

Задача Найти разложение вида A = U DU ∗ , где U = (u1 | . . . |un ) ∈ Mn (C) – унитарная матрица и D ∈ Mn (C)
– диагональная матрица с числами равными по модулю 1.
10 В силу условия det β|he1 ,...,ek i 6= 0 выражения вида β(e0k , e0k ) будут всегда отличны от нуля.

17
Алгоритм
1. Найти характеристический многочлен χA (t). Пусть λ1 , . . . , λk – его корни с кратностями n1 , . . . , nk .11
2. Для каждого λi найдем ортонормированный базис собственного подпространства:
(a) найдем базисные собственные векторы, решив систему (A − λi E)x = 0 в Cn .
(b) К полученным векторам применить применим алгоритм Грама-Шмидта используя стандартное
скалярное произведение (x, y) = x̄t y.
(c) Нормируем каждый вектор, поделив на его длину.
3. Тогда матрица D будет diag(λ1 , . . . , λ1 , λ2 , . . . , λ2 , . . . , λk , . . . , λk ), где каждое λi встречается ni раз.

4. Матрица U будет составлена из базисных векторов собственных подпространств. Сначала идут n1 век-
торов для λ1 , потом n2 для λ2 и т.д.

42 Алгоритм приведения произвольного ортогонального оператора к канониче-


скому виду
Дано Ортогональная матрица A ∈ Mn (R).

Задача Найти разложение A = U DU t , где U = (u1 | . . . |un ) ∈ Mn (R) – ортогональная матрица и D – блочно
диагональная матрица, где на диагонали стоят:
 
cos α − sin α
1, −1,
sin α cos α

Алгоритм
1. Найти характеристический многочлен χA (t). Пусть кратность корня 1 равна n1 , кратность корня −1
равна n−1 . Остальные комплексные корни имеют вид λ1 , . . . , λk и λ̄1 , . . . , λ̄k , при этом кратности их
будут m1 , . . . , mk (и у сопряженных такие же).12

2. Надо найти ортонормированные базисы для блоков.


(a) Блоки 1 и −1. Опишем процесс для 1.
i. Найдем базисные собственные векторы, решив систему (A − E)x = 0.
ii. Применим Грама-Шмидта для стандартного скалярного произведения (x, y) = xt y к базису
собственных векторов.
iii. Нормируем базисные векторы, поделив на их длину.
(b) Блоки размера 2.
i. За каждый такой блок отвечает пара комплексно сопряженных корней. Возьмем λi = cos αi +
i sin αi .
ii. Найдем комплексные базисные собственные векторы для λ̄i ,13 решив систему (A − λ̄i E)x = 0.
iii. Применим к базисным векторам Грама-Шмидта для стандартного скалярного произведения
(x, y) = x̄t y.
iv. Пусть получилась последовательность w1 , . . . , wmi . Каждый их этих векторов имеет вид ws =
us + ivs , при этом мы знаем, что |us | = |vs | и us ⊥ vs .
v. Заменим каждый wi на пару векторов ui /|ui |, vi /|vi |. Тогда набор этих пар будет ортонормиро-
ванным базисом отвечающим набору блоков вида14
 
cos αi − sin αi
sin αi cos αi
11 Должно получиться, что |λi | = 1 для всех i.
12 Таким образом имеем n = n1 + n−1 + 2m1 + . . . + 2mk .
13 Причина почему я беру именно λ̄ связана с тем, где я хочу получить минус в блоке.
i
14 Если бы мы решали систему для λ , то минус был бы в левом нижнем углу.
i

18
3. Теперь в качестве матрицы D выберем матрицу такую, что она блочно диагональная. В начале идут 1
в количестве n1 , потом −1 в количестве n−1 . Потом идут блоки 2 на 2 вида
 
cos αi − sin αi
sin αi cos αi
которые повторяются mi раз.
4. В качестве U надо выбрать матрицу из построенных базисных векторов. Сначала n1 векторов для
1, потом n−1 векторов для −1. А потом векторы соответствующие блокам 2 на 2. Сначала 2m1 пар
полученных из λ1 , потом 2m2 пар полученных из λ2 и т.д.

43 Алгоритм приведения ортогонального оператора R3 к каноническому виду


Дано Ортогональная матрица A ∈ M3 (R).

Задача Найти разложение A = U DU t , где U = (u1 |u2 |u3 ) ∈ M3 (R) – ортогональная матрица и D одна из
следующих матриц15
   
1 −1
(I) D =  cos α − sin α или (II) D =  cos α − sin α
sin α cos α sin α cos α

Алгоритм
1. Ищем матрицу U . Начинаем с поиска образующего оси. Решаем систему (A − E)x = 0. Возможны
следующие случаи:
(a) ФСР пустое.
Это значит, что у нас случай (II) и ось надо искать из уравнения (A + E)x = 0. Приведем матрицу
A+E к улучшенному ступенчатому виду (v1 |v2 )t . Тогда ее ФСР будет из одного вектора, нормируем
его и обозначим за u1 – это образующий оси. Векторы v1 , v2 образуют базис hu1 i⊥ . Ортогонализуем
и нормируем векторы v1 , v2 . Полученные векторы будут u2 и u3 .
(b) ФСР из одного вектора u. Нормируем его и обозначим через u1 .
Это значит, что у нас случай (I) и вектор u1 – образующий оси. Когда мы решали (A − E)x = 0
мы привели матрицу A − E к улучшенному ступенчатому виду (v1 |v2 )t . Тогда v1 , v2 – базис hu1 i⊥ .
Ортогонализуем v1 , v2 и потом нормируем. Полученные векторы будут u2 и u3 .
(c) ФСР из двух векторов v1 и v2 .
Это значит, что у нас случай (II). Пусть v – любая ненулевая строка матрицы A − E, тогда нор-
мируем v и обозначим получившийся вектор u1 – это будет образующий оси. Ортогонализуем и
нормируем векторы v1 и v2 . Полученные векторы будут u2 и u3 .
(d) ФСР из трех векторов.
Это значит, что у нас случай (I). Такое возможно только если A = E. В этом случае U = E, α = 0.
2. Теперь найдем cos α. Возможны два случая.
(a) Случай (I). Тогда tr A = 1 + 2 cos α.
(b) Случай (II). Тогда tr A = −1 + 2 cos α.
3. Теперь найдем sin α. Для этого заметим, что (Au2 , u3 ) = sin α.

44 Алгоритм разложения симметрических матриц


Дано Матрица A ∈ Mn (R) такая, что At = A.

Задача Найти разложение A = CΛC t , где C ∈ Mn (R) – ортогональная матрица, Λ ∈ Mn (R) – диагональная
матрица.
15 Прямая натянутая на вектор u1 называется осью для A.

19
Алгоритм
1. Найти собственные значения матрицы A.
(a) Составить характеристический многочлен χ(λ) = det(A − λE).
(b) Найти корни χ(λ) с учетом кратностей: {(λ1 , n1 ), . . . , (λk , nk )}, где λi – корни, ni – кратности.

2. Для каждого λi найти ортонормированный базис в пространстве собственных векторов отвечающему


λi .
(a) Найти ФСР системы (A − λi E)x = 0. Пусть это будет v1i , . . . , vni i . Обратите внимание, что их коли-
чество будет в точности равно кратности ni .
(b) Ортогонализовать v1i , . . . , vni i методом Грама-Шмидта. Обратите внимание, после ортогонализации
останется ровно ni векторов.
vji
(c) Сделать каждый вектор длинны один: vji 7→ |vji |
.

3. Матрица Λ будет диагональной с числами λ1 , . . . , λ1 , λ2 , . . . , λ2 , . . . , λk , . . . , λk на диагонали, где каждое


λi повторяется ni раз. Обратите внимание, всего получится n чисел.
4. Матрица C будет составлена из столбцов v11 , . . . , vn1 1 , v12 , . . . , vn2 2 , . . . , v1k , . . . , vnk k . Обратите внимание, по-
рядок собственных векторов соответствует порядку собственных значений в матрице Λ.

45 Алгоритм нахождения сингулярного разложения


Дано Матрица A ∈ Mm n (R).16

Задача Найти разложение A = U ΛV t , где U ∈ Mm (R) ортогональная, V ∈ Mn (R) ортогональная, Λ ∈


Mm n (R) содержит на диагонали элементы σ1 > . . . > σs > 0, а все остальные нули.

Алгоритм

1. Составим матрицу S = AAt ∈ Mm (R). Тогда S = U ΛΛt U t .


2. Так как S t = S. То с помощью алгоритма для симметрических матриц найдем ее разложение S =
CDC t . Причем, обязательно получится, что диагональная матрица D = diag(λ1 , . . . , λm ) состоит из
неотрицательных элементов.

3. Тогда U = C, а ΛΛt = D. То есть σi2 = λi . Так как σi > 0, то они находятся как σi = λi .
4. Теперь надо найти V из условия A = U ΛV t .17 Пусть σ1 > . . . > σs > 0. Положим U = (u1 | . . . |um ) и
V = (v1 | . . . |vn ). Тогда At U = V Λt , то есть vi = σ1i At ui при 1 6 i 6 s.
5. Теперь найдем оставшиеся vs+1 , . . . , vn . Для этого дополним v1 , . . . , vs до базиса Rn и ортонормируем
полученное семейство.18

46 Алгоритм нахождения компактного сингулярного разложения


Дано Матрица A ∈ Mm n (R).19

Задача Найти разложение A = U ΣV t , где U ∈ Mm s (R), V ∈ Mn s (R) – матрицы с ортонормированными


столбцами, Σ ∈ Ms (R) – диагональная матрица с элементами σ1 > . . . > σs > 0 на диагонали.
16 Этот алгоритм рекомендуется применять при m 6 n, в противном случае, применить его к матрице At , а потом транспони-

ровать полученное разложение.


17 Обратите внимание Λ не обязательно квадратная и тем более не обязательно обратимая.
18 Можно заметить, что v n
s+1 , . . . , vn будут базисом ядра A, потому можно найти ФСР для {y ∈ R | Ay = 0} и ортонормировать
его.
19 Этот алгоритм рекомендуется применять при m 6 n, в противном случае, применить его к матрице At , а потом транспони-

ровать полученное разложение.

20
Алгоритм
1. Составим матрицу S = AAt ∈ Mm (R). Тогда S = U Σ2 U t .
2. Так как S t = S. То с помощью алгоритма для симметрических матриц найдем ее разложение S =
CDC t .20 Причем, обязательно получится, что диагональная матрица D = diag(λ1 , . . . , λm ) состоит из
неотрицательных элементов и мы можем выбрать порядок так, чтобы λ1 > λ2 > . . . > λm > 0.

3. Пусть C = (C1 | . . . |Cm ), тогда


√ положим U = (C1 | . . . |Cs ) ∈ Mm s (R). А матрица Σ ∈ Ms (R) будет
диагональной с числами σi = λi на диагонали, то есть Σ = diag(σ1 , . . . , σs ).
4. Теперь надо найти V из условия A = U ΣV t .21 Положим U = (u1 | . . . |us ) и V = (v1 | . . . |vs ). Тогда
At U Σ−t = V , то есть vi = σ1i At ui при 1 6 i 6 s.

20 Здесь D будет диагональной матрицей, а C ортогональной.


21 Обратите внимание, что Σ квадратная и обратимая матрица.

21

Вам также может понравиться