В математике Алгоритм Цассенхауза [1] это метод расчета основа для пересечение и сумма из двух подпространства из векторное пространство Назван в честь Ганс Цассенхаус , но ни о какой публикации им этого алгоритма не известно.[2] Он используется в системы компьютерной алгебры .[3]
Алгоритм
Вход Позволять V быть векторным пространством и U , W два конечномерных подпространства V со следующими охватывающие наборы :
U = ⟨ ты 1 , … , ты п ⟩ { displaystyle U = langle u_ {1}, ldots, u_ {n} rangle} и
W = ⟨ ш 1 , … , ш k ⟩ . { displaystyle W = langle w_ {1}, ldots, w_ {k} rangle.} Наконец, пусть B 1 , … , B м { displaystyle B_ {1}, ldots, B_ {m}} быть линейно независимый векторы так, чтобы ты я { displaystyle u_ {i}} и ш я { displaystyle w_ {i}} можно записать как
ты я = ∑ j = 1 м а я , j B j { Displaystyle и_ {я} = сумма _ {j = 1} ^ {m} a_ {i, j} B_ {j}} и
ш я = ∑ j = 1 м б я , j B j . { displaystyle w_ {i} = sum _ {j = 1} ^ {m} b_ {i, j} B_ {j}.} Выход Алгоритм вычисляет базу сумма U + W { Displaystyle U + W} и база пересечение U ∩ W { Displaystyle U cap W} .
Алгоритм Алгоритм создает следующие блочная матрица размера ( ( п + k ) × ( 2 м ) ) { Displaystyle ((п + к) раз (2м))} :
( а 1 , 1 а 1 , 2 ⋯ а 1 , м а 1 , 1 а 1 , 2 ⋯ а 1 , м ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ а п , 1 а п , 2 ⋯ а п , м а п , 1 а п , 2 ⋯ а п , м б 1 , 1 б 1 , 2 ⋯ б 1 , м 0 0 ⋯ 0 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ б k , 1 б k , 2 ⋯ б k , м 0 0 ⋯ 0 ) { displaystyle { begin {pmatrix} a_ {1,1} & a_ {1,2} & cdots & a_ {1, m} & a_ {1,1} & a_ {1,2} & cdots & a_ {1, m } vdots & vdots && vdots & vdots & vdots && vdots a_ {n, 1} & a_ {n, 2} & cdots & a_ {n, m} & a_ {n, 1} & a_ {n, 2} & cdots & a_ {n, m} b_ {1,1} & b_ {1,2} & cdots & b_ {1, m} & 0 & 0 & cdots & 0 vdots & vdots && vdots & vdots & vdots && vdots b_ {k, 1} & b_ {k, 2} & cdots & b_ {k, m} & 0 & 0 & cdots & 0 end {pmatrix}}} С помощью элементарные операции со строками , эта матрица преобразуется в форма эшелона строки . Тогда он имеет следующую форму:
( c 1 , 1 c 1 , 2 ⋯ c 1 , м ∗ ∗ ⋯ ∗ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ c q , 1 c q , 2 ⋯ c q , м ∗ ∗ ⋯ ∗ 0 0 ⋯ 0 d 1 , 1 d 1 , 2 ⋯ d 1 , м ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ 0 0 ⋯ 0 d л , 1 d л , 2 ⋯ d л , м 0 0 ⋯ 0 0 0 ⋯ 0 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ 0 0 ⋯ 0 0 0 ⋯ 0 ) { displaystyle { begin {pmatrix} c_ {1,1} & c_ {1,2} & cdots & c_ {1, m} & * & * & cdots & * vdots & vdots && vdots & vdots & vdots && vdots c_ {q, 1} & c_ {q, 2} & cdots & c_ {q, m} & * & * & cdots & * 0 & 0 & cdots & 0 & d_ {1,1 } & d_ {1,2} & cdots & d_ {1, m} vdots & vdots && vdots & vdots & vdots && vdots 0 & 0 & cdots & 0 & d_ {l, 1} & d_ {l, 2} & cdots & d_ {l, m} 0 & 0 & cdots & 0 & 0 & 0 & cdots & 0 vdots & vdots && vdots & vdots & vdots && vdots 0 & 0 & cdots & 0 & 0 & 0 & cdots & 0 end {pmatrix}}} Здесь, ∗ { displaystyle *} обозначает произвольные числа, а векторы ( c п , 1 , c п , 2 , … , c п , м ) { displaystyle (c_ {p, 1}, c_ {p, 2}, ldots, c_ {p, m})} для каждого п ∈ { 1 , … , q } { displaystyle p in {1, ldots, q }} и ( d п , 1 , … , d п , м ) { displaystyle (d_ {p, 1}, ldots, d_ {p, m})} для каждого п ∈ { 1 , … , л } { displaystyle p in {1, ldots, l }} ненулевые.
потом ( у 1 , … , у q ) { displaystyle (y_ {1}, ldots, y_ {q})} с
у я := ∑ j = 1 м c я , j B j { displaystyle y_ {i}: = sum _ {j = 1} ^ {m} c_ {i, j} B_ {j}} является основой U + W { Displaystyle U + W} и ( z 1 , … , z л ) { displaystyle (z_ {1}, ldots, z_ {l})} с
z я := ∑ j = 1 м d я , j B j { displaystyle z_ {i}: = sum _ {j = 1} ^ {m} d_ {i, j} B_ {j}} является основой U ∩ W { Displaystyle U cap W} .
Доказательство правильности Сначала определим π 1 : V × V → V , ( а , б ) ↦ а { displaystyle pi _ {1}: V times V to V, (a, b) mapsto a} быть проекцией на первый компонент.
Позволять ЧАС := { ( ты , ты ) ∣ ты ∈ U } + { ( ш , 0 ) ∣ ш ∈ W } ⊆ V × V . { displaystyle H: = {(u, u) mid u in U } + {(w, 0) mid w in W } substeq V times V.} потом π 1 ( ЧАС ) = U + W { Displaystyle pi _ {1} (Н) = U + W} и ЧАС ∩ ( 0 × V ) = 0 × ( U ∩ W ) { Displaystyle Н крышка (0 раз V) = 0 раз (U крышка W)} .
Также, ЧАС ∩ ( 0 × V ) { Displaystyle H cap (0 раз V)} это ядро из π 1 | ЧАС { displaystyle { pi _ {1} |} _ {H}} , проекция ограниченный к ЧАС .Следовательно, тусклый ( ЧАС ) = тусклый ( U + W ) + тусклый ( U ∩ W ) { Displaystyle тусклый (ЧАС) = тусклый (U + W) + тусклый (U крышка W)} .
Алгоритм Цассенхауза вычисляет основу ЧАС . Во-первых м столбцов этой матрицы, есть основа у я { displaystyle y_ {i}} из U + W { Displaystyle U + W} .
Строки формы ( 0 , z я ) { displaystyle (0, z_ {i})} (с z я ≠ 0 { displaystyle z_ {i} neq 0} ) очевидно в ЧАС ∩ ( 0 × V ) { Displaystyle H cap (0 раз V)} . Поскольку матрица находится в форма эшелона строки , они также линейно независимы. Все строки, отличные от нуля ( ( у я , ∗ ) { displaystyle (y_ {я}, *)} и ( 0 , z я ) { displaystyle (0, z_ {i})} ) являются основой ЧАС , так что есть тусклый ( U ∩ W ) { displaystyle dim (U cap W)} такой z я { displaystyle z_ {i}} с. Следовательно z я { displaystyle z_ {i}} s составляют основу U ∩ W { Displaystyle U cap W} .
Пример
Рассмотрим два подпространства U = ⟨ ( 1 − 1 0 1 ) , ( 0 0 1 − 1 ) ⟩ { Displaystyle U = left langle { begin {pmatrix} 1 - 1 0 1 end {pmatrix}}, { begin {pmatrix} 0 0 1 - 1 end {pmatrix}} right rangle} и W = ⟨ ( 5 0 − 3 3 ) , ( 0 5 − 3 − 2 ) ⟩ { Displaystyle W = left langle { begin {pmatrix} 5 0 - 3 3 end {pmatrix}}, { begin {pmatrix} 0 5 - 3 - 2 end {pmatrix}} right rangle} векторного пространства р 4 { Displaystyle mathbb {R} ^ {4}} .
С использованием стандартная основа , мы создаем следующую матрицу размерности ( 2 + 2 ) × ( 2 ⋅ 4 ) { Displaystyle (2 + 2) раз (2 cdot 4)} :
( 1 − 1 0 1 1 − 1 0 1 0 0 1 − 1 0 0 1 − 1 5 0 − 3 3 0 0 0 0 0 5 − 3 − 2 0 0 0 0 ) . { displaystyle { begin {pmatrix} 1 & -1 & 0 & 1 && 1 & -1 & 0 & 1 0 & 0 & 1 & -1 && 0 & 0 & 1 & -1 5 & 0 & -3 & 3 && 0 & 0 & 0 & 0 0 & 5 & -3 & -2 && 0 & 0 & 0 & 0 & 0 end {pmatrix}}. С помощью элементарные операции со строками , преобразуем эту матрицу в следующую матрицу:
( 1 0 0 0 ∗ ∗ ∗ ∗ 0 1 0 − 1 ∗ ∗ ∗ ∗ 0 0 1 − 1 ∗ ∗ ∗ ∗ 0 0 0 0 1 − 1 0 1 ) { displaystyle { begin {pmatrix} 1 & 0 & 0 & 0 && * & * & * & * 0 & 1 & 0 & -1 && * & * & * & * 0 & 0 & 1 & -1 && * & * & * & * 0 & 0 & 0 & 0 && 1 & -1 & 0 & 1 end {pmatrix}}} (некоторые записи заменены на " ∗ { displaystyle *} «потому что они не имеют отношения к результату).Следовательно, ( ( 1 0 0 0 ) , ( 0 1 0 − 1 ) , ( 0 0 1 − 1 ) ) { displaystyle left ({ begin {pmatrix} 1 0 0 0 end {pmatrix}}, { begin {pmatrix} 0 1 0 - 1 end {pmatrix }}, { begin {pmatrix} 0 0 1 - 1 end {pmatrix}} right)} является основой U + W { Displaystyle U + W} , и ( ( 1 − 1 0 1 ) ) { displaystyle left ({ begin {pmatrix} 1 - 1 0 1 end {pmatrix}} right)} является основой U ∩ W { Displaystyle U cap W} .
Смотрите также
Рекомендации
^ Люкс, Евгений М. ; Ракоци, Ференц; Райт, Чарльз Р. Б. (апрель 1997 г.), "Некоторые алгоритмы для нильпотентных групп перестановок", Журнал символических вычислений , 23 (4): 335–354, Дои :10.1006 / jsco.1996.0092 .^ Фишер, Герд (2012), Линейная алгебра Лернбуха и аналитическая геометрия (на немецком), Vieweg + Teubner , стр. 207–210, Дои :10.1007/978-3-8348-2379-3 , ISBN 978-3-8348-2378-6 ^ Группа GAP (13 февраля 2015 г.), «24 матрицы» , Справочное руководство GAP, версия 4.7 , получено 2015-06-11 внешняя ссылка