index


...


  • матрицы и группы
  • трансвекции
  • элементарные преобразования
  • определитель
  • блочные матрицы
  • проективные группы
  • матрицы как модули
  • матрицы в символьной системе maxima

    определитель — полилинейная функция строк (столбцов) квадратной матрицы. полилинейность означает линейность функции по каждому аргументу при фиксированных значениях остальных аргументов. это кососимметрическая функция, т.е. при перестановке двух строк (столбцов) матрицы её определитель меняет знак. если две строки (столбца) матрицы линейно-зависимы, то её определитель равен нулю. при добавлении к любой строке (столбцу) линейной комбинации других строк (столбцов) определитель не изменится. при перемножении матриц определители умножаются. определитель транспонированной матрицы равен определителю исходной. определитель матрицы равен произведению её собственных значений. если матрица выражает линейное преобразование, то её определитель не меняется при замене базиса линейного пространства (инвариантен). точный смысл определителя можно дать только с позиций алгебры Клиффорда, в которой он выражает величину и ориентацию мультивекторов

    самосопряжённая (эрмитова) матрица — квадратная матрица, элементы которой являются комплексными числами, и которая, будучи транспонирована, равна комплексно-сопряжённой. произведение двух эрмитовых матриц является эрмитовым тогда и только тогда, когда они коммутируют друг с другом. у эрмитовой матрицы все собственные значения вещественны, а собственные векторы могут быть собраны в ортонормированную систему. если одному собственному значению отвечают два собственных вектора, то они не обязательно ортогональны между собой, но ортогональны всем другим собственным векторам

    унитарные матрицы - это квадратные матрицы U, такие что результат умножения на эрмитово сопряжённую равен единичной матрице:

           U† * U = U * U† = I

    унипотентные матрицы - это в точности такие, что

                (u - e)ⁿ  = 0, где n = dim 
    и в некотором базисе они являются верхне-треугольными с единицами на диагонали :
    octave: a
    u =
    
       1   1   1
       0   1   1
       0   0   1
    
    octave: e
    e =
    
    Diagonal Matrix
    
       1   0   0
       0   1   0
       0   0   1
    
    octave: b = u - e
    b =
    
       0   1   1
       0   0   1
       0   0   0
    
    octave: b * b * b
    ans =
    
       0   0   0
       0   0   0
       0   0   0


    матрицы и группы

      
      полная линейная группа степени n над R есть
      
         GL(n,R) = { x ∈ M(n,R) | ∃ y ∈ M(n,R) : x * y = y * x = e }
    
      группа диагональных матриц
    
                               D(2,K) = { (a 0
                                           0 d ), a,d ∈ K }
    
      группа верхних треугольных матриц
      
                                      B(2,K) = { ( a b
                                                   0 d ), a,d,b ∈ K }
    
      группа нижних треугольных матриц
    
                                     B⁻(2,K) = { ( a 0
                                                   c d ),  a,d,c ∈ K }
    
      группа верхних унитреугольных матриц
    
                                         U(2,K) = { ( 1 b
                                                      0 1 ), b ∈ K }
    
      группа нижних унитреугольных матриц
    
                                        U⁻(2,K) = { ( 1 0
                                                      c 1 ), c ∈ K }
    
    
      аффинная группа
    
                                      Aff(1,K) = { ( a b
                                                     0 1 ), a, b ∈ K }
    
      рассмотрим представление группы ℤ
    
                  n → ( 1  n
                        0  1 )
    
          для любого n ≠ 0 матрица недиагонализируема
          (оба корня ее характеристического полинома равны 1, но матрица не единичная)
    
      группа мономиальных матриц
    
                                          N(n,K)
    
      матрицы, у которых в каждой строке и в каждом столбце ровно один ненулевой элемент
    


    трансвекции

    пусть есть кольцо R. преобразование

      t : R → GL(n,R) 
    называется трансвекцией

    tij χ = e + χ * eij ,     i≠j

    (tij χ)⁻ = (tij -χ)

    det (tij(χ)) = 1

    tij (χ + ζ) = (tij χ) * (tij ζ)

    Proof1:
                                                            
        (e + χ * eij) * (e + ζ * eij)
      =  e + χ * eij  + ζ * eij + χ * ζ * eij²
      =  e + (χ + ζ) * eij
    QED
    
    Proof2:
    
        ( 1 χ    *   ( 1 ζ    =   ( 1 χ+ζ
          0 1 )        0 1 )        0  1  )
    QED

    коммутационная формула Шевалле

    x,y ∈ GL(n,ℝ). пусть операция [x, y] = x * y * x⁻ * y⁻

    тогда

    Th: χ,ζ ∈ ℝ, i ≠ j, h ≠ k

        [tij χ , thk ζ] =
                         | e                     j ≠ h,  i ≠ k
                         | tik (  χ * ζ)         j = h,  i ≠ k
                         | thj (- ζ * χ)         j ≠ h,  i = k
                         | ...                   j = h,  i = k
    
    Proof1:
    
        (e + χ * eij) * (e + ζ * ehk)
      * (e - χ * eij) * (e - ζ * ehk)
      = 
        (e + χ * eij + ζ * ehk + χ * ζ * eij * ehk)
      * (e - χ * eij - ζ * ehk + χ * ζ * eij * ehk)
      =
        e + χ * ζ * eij * ehk - ζ * χ * ehk * eij 
                      ≠0 j=h               ≠0 i=k
    
    QED
    
    
    Proof2:
    
       ( 1  χ      ( 1  ζ              ( 1  χ+ζ     ( 1  -χ-ζ                 ( 1  
            1 )         1 )                  1 )           1 )                    1 )
    
    
       ( 1  χ      ( 1                 ( χζ   χ      ( χζ   -χ                ( χζ(χζ-1) -χ(χζ-1) 
            1 )      ζ  1 )               ζ   1 )      -ζ    1 )                 ζ(χζ-1)  -(χζ-1) )
    
    
      ------------------------------------------------------------------------------------------------
    
      
       ( 1 χ       ( 1   ζ             ( 1 χ ζ       ( 1  -χ  -ζ              ( 1  
           1           1                   1               1                      1
             1 )         1 )                 1 )               1 )                  1 )
    
    
       ( 1 χ       ( 1                  ( 1 χ χζ     ( 1 -χ χζ                 ( 1     χζ  
           1           1 ζ                  1 ζ           1 -ζ                      1
             1 )         1 )                  1 )            1 )                       1 )
    
    
       ( 1 χ       ( 1                  ( 1 χ        ( 1  -χ                   ( 1  
           1           1                    1              1                        1
             1 )     ζ   1 )              ζ   1 )     -ζ      1 )                  -ζχ 1 )
    
    
       ( 1 χ       ( 1                  ( 1 χ        ( 1 -χ                    ( 1 
           1           1                    1             1                        1
             1 )       ζ 1 )                ζ 1 )        -ζ  1 )                      1 )  
    
    
      -------------------------------------------------------------------------------------------
    
       ( 1 χ        ( 1                ( 1 χ        ( 1 -χ                    ( 1 
           1            1                  1             1                        1
             1            1 ζ                1 ζ           1 -ζ                     1
               1 )          1 )                1 )            1 )                     1 )
    
    
    QED

    элементарные матрицы

    элементарная группа

    элементарная группа степени n над кольцом R есть E(n,R) ≤ GL(n,R)

           E(n,R)  =  { tij χ  |  1 ≤ i ≠ j ≤ n , χ ∈ R } 
    

    матрица перестановок GE(n,R)

    wij = e - eii - ejj + eij + ejiGE(n,R) = E(n,R) * D(n,R) , где D - группа диагональных матриц, R - поле

    матрицы перестановок со знаком N(n,ℤ)

    N(n,ℤ)

    wij = e - eii - ejj - eij + eji ∈ N(n,ℤ) ∈ E(n,R)

    матрица отражения

    это матрица, у которой eii = ε

    суммируя:

        e[ij] = e[ji] = 1 ,   e[ii] = e[jj] = 0        матрицы перестановок
        e[ii] = ε                                      матрицы отражения
        e[ij] = ε                                      матрицы трансвекции
      
    мы можем получить любую несингулярную матрицу перемножением элементарных

    элементарные преобразования

    при элементарных преобразованиях определитель матрицы не изменяется

    элементарные преобразования - это

    умножение слева и справа на матрицы элементарных преобразований делает разные вещи

    при трансвекции tij ζ
    слева, tij(ζ) * A :
    j-строка матрицы A поэлементно умножается на ζ и поэлементно прибавляется к i-строке ,
    справа, A * tij(ζ) :
    j-столбец матрицы A поэлементно умножается на ζ и поэлементно прибавляется к i-столбцу
    при отражении di ε
    слева:
    i-строчка умножается слева на ε,

    справа:
    i-столбец умножается справа на ε
    при перестановке wij
    слева:
    переставит i-j-строчки,
    справа:
    i-j-столбцы поменяются местами

    элементарные преобразования и прикладная математика

    преобразование GE(m,K) \ M(m,n,K) / wₙ     имеет матрицу вида

                  ( 1 0 . . * . . *
                    0 1 0 . * . . *
                    .       * . . *
                    . . . 1 * . . *
                    0 0 . . 0 . . 0
                    0 0 . . 0 . . 0 )
    
    ∀ x ∈ M(m,n,K) размер единичной матрицы будет инвариантым - rank x

    ∀ x ∈ M(m,n,K) , ∃ h ∈ GE(m,K) , ∃ g ∈ E(n,K)

        h * x * g = ( 1 0 ..
                      0 1 0 ..
                      .
                      0 .. 1 0 ..
                      0 ..
                      .            )
    
    окаймленная единичная матрица с инвариантом (m,n,r). если же вместо GE использовать E, то в качестве инварианта появится определитель

    ∀ x ∈ M(m,n,K) , ∃ h ∈ E(m,K) , ∃ g ∈ E(n,K)

    тогда (при m = n) результат будет такой:

       h * x * g = ( 1 0 ..    
                     0 1 0 ..
                     .
                     0 ..  1 0
                     0 ..    ε )
    

    ε называется определителем - фактически такая процедура является дефеницией определителя

        ( xyx⁻y⁻   0     =   ( x   0      *   ( y   0      *   ( (yx)⁻   0
            0      1 )         0   x⁻ )         0   y⁻ )          0     yx )     ∈    E(2,K)
    
             ∈ E                 ∈ E            ∈ E                ∈ E
      
    определитель первой матрицы должен быть равен 1, т.к. матрица в элементарной группе, а значит в некоммутативном случае определитель считается по фактору коммутанта. в коммутативном случае все сокращается до единицы само собой


    определитель

    det: ℝⁿ ⨯ ℝⁿ ⨯ ... ℝⁿ → ℝ

    det (x * y) = (det x) * (det y)

    det x = det x⁺

    det x⁻ = 1 / det x

    возвращаясь к элементарным преобразованиям матрицы d, w и t:

    det (x * di(λ)) = (det x) * λ

    det (x * wij) = - det x

    det (x * tij(λ)) = det x

    det (E1*E2*...*Eₙ) = 1

    если A - несингулярная матрица линейного оператора, а P - матрица замены координат при смене базиса, то в новом базисе матрица линейного оператора будет иметь вид P⁻ * A * P, а ее определитель будет равен определителю матрицы A

    мультипликативность определителя

    E(m,K) \ M(m,n,K) / E(n,K)     - это орбиты элементарной группы при действиях на матрице

        ( I  0       ( I 0
          0  0 )       0 ε )
        
    в превом случае определитель равен нулю, а во втором - ε

    пусть xij ∈ M(n,R) , R - коммутативное кольцо

       det x  = Σ sgn(π) * ∏ xiπ(i)       строки 
               π∈Sₙ        n
    
       det x = Σ sgn(π) * ∏ xπ(i)i       столбцы 
              π∈Sₙ        n
    
    равны только в коммутативном случае. но определитель никогда не вычисляется по этим формулам
       det x  =  Σ sgn(π) * x1π(1) * .. * xnπ(n)
                π∈Sₙ    
    
       { π(1)..π(n) } ≅ { 1..n }
    
       π(i) = 1 а значит i = π⁻(1)
    
       sgn(π⁻) = sgn(π)
       
       det x  =  Σ sgn(π) * ∏ xπ⁻(n)1         если кольцо коммутативно
                π∈Sₙ        n 
    

    абелизация умножения матриц - свести его к чему-то коммутативному

        φ : G → H 
        φab : G/[G,G] → H/[H,H]
    
        (  x  0
          -e  y ) = (det x) * (det y)
    
        (  x  0      ( e  y      ( x  xy
          -e  y ) *    0  e ) =   -e   0 )
    
        ( 0  -e     ( x  xy      ( e   0
          e   0 ) *  -e   0 ) =    x  xy )
      
    при элементарных преобразованиях определитель не меняется

    определитель является гомоморфизмом, а значит det x⁻ = (det x)⁻ и определители двух сопряженных матриц равны: det g*x*g⁻ = det x

    x = M(n,R) , 1 ≤ i,j ≤ n
    Aij = (-1)i+j * Mij(x)
    det(x) = xi1 * Ai1 + .. + xin * Ain
    det(x) = x1j * A1j + .. + xnj * Anj

    x⁻ = (Aij(x))⁺ / (det x) = (adjoint x) / (det x)

    в реальности эта формула не используется

    x * (adjoint x) = (adjoint x) * x = det x
    adjoint (x*y) = (adjoint y) * (adjoint x)

    с геометрической точки зрения:

        Λⁿ(x) = (det x) * id, где x - матрица n⨯n
      
    и никакого другого смысла в определителе нет - иного, чем выраженного через внешние алгебры Грассмана

    разные полезные определители

    определитель Вандермонда

      det ( 1 .. 1
            x₁ .. xₙ
            .
            x₁n-1 .. xₙn-1 ) = ∏ (xj - xi)
                              1≤i<j≤n
      

    определитель Коши

        det ( 1/(x₁+y₁) .. 1/(x₁+yₙ)
              .
              1/(xₙ+y₁) .. 1/(xₙ+yₙ) )
        

    permanent

        permanent = Σ x1,πi * ... * xn,πi
                   π∈Sₙ
      
    compare with determinant:
        det = Σ sgn(π) * x1,πi * ... * xn,πi
             π∈Sₙ
      

    с точки зрения вычислительной математики хороших алгоритмов считать перманенты - нет, а для определителей - есть! и подсчет перманента сводится к изначальному подсчету определителя - как это ни странно


    циркулянты

            ( x₁ x₂ .. xₙ
              xₙ x₁ .. xₙ₋₁
              .
              x₂ x₃ .. x₁  )
      

    блочные матрицы

    x ∈ M(m,n,R)

    m = m₁ + .. + ms μ = (m₁..ms)
    n = n₁ + .. + nt ν = (n₁..nt)

      m₁       |     |    |
           ----+-----+----+-----
      m₂       |     |    |
           ----+-----+----+-----
      .        |     |    |
           ----+-----+----+-----
      ms       |     |    |
    
            n₁   n₂    ..   nt
    
    
      x = ( x11 .. x1t
            .
            xs1 .. xst ) ∈ M(μ, ν, R)  <=> xhk ∈ M(μh, νk, R)
      

    над блочными матрицами можно производить обычные операции, но в терминах блоков, если размеры блоков согласованы

    x,y ∈ M(μ, ν, R)

    (x+y)hk = xhk + yhk

    x ∈ M(λ μ, R)
    y ∈ M(μ, ν, R) x * y ∈ M(λ,ν,R)

    умножение блоков заведомо некоммутативно!

    (x*y)hk = xh1 * y1k + .. + xhs * ysk

    M(m,n,R) ≅ M(m, M(n,R))

    обобщенные матрицы

    m+n =  ℝm ⊕ ℝn = P₀ ⊕ P₁
    
                    ( m x m  |  m x n     ( ℝm
                      -------+-------
                      n x m  |  n x n )     ℝn )
    

    module Block where
    
    add ::  [[Double]] → [[Double]] → [[Double]]
    add xs ys = zipWith (\ x y → zipWith (+) x y) xs ys
    
    bmul ::  [[Double]] → [[Double]] → [[Double]]
    bmul xs ys =
      let n = length $ head xs
          m = length $ head ys
      in  if n≠m
          then error "bmul: non-convinient matricies"
          else case n of
                      0 → error "bmul: zero matrix"
                      1 → error "bmul: one matrix"
                      2 → twomul xs ys
                      _ → if (even n)
                          then evenmul xs ys
                          else deaugment $ evenmul (augment xs) (augment ys)
      where 
        evenmul :: [[Double]] → [[Double]] → [[Double]]
        evenmul xs ys =
          let [lt1, rt1, lb1, rb1] = separate xs
              [lt2, rt2, lb2, rb2] = separate ys
              lt = add (bmul lt1 lt2) (bmul rt1 lb2) 
              rt = add (bmul lt1 rt2) (bmul rt1 rb2)
              lb = add (bmul lb1 lt2) (bmul rb1 lb2)
              rb = add (bmul lb1 rt2) (bmul rb1 rb2)
          in
            [ concat $ (take 1 lt) ++ (take 1 rt)
            , concat $ (drop 1 lt) ++ (drop 1 rt)
            , concat $ (take 1 lb) ++ (take 1 rb)
            , concat $ (drop 1 lb) ++ (drop 1 rb)
            ]
            
    separate :: [[Double]] → [[[Double]]]
    separate zs =
      let n = (length zs)
          k = div (length $ head zs) 2
          f gs = (take k gs, drop k gs)
          [(xt,yt),(xb,yb),(zt,wt),(zb,wb)] = map f zs
      in [[xt,xb],[yt,yb],[zt,zb],[wt,wb]] 
    
    deaugment :: [[Double]] → [[Double]]
    deaugment xs =  map tail $ tail xs
    
    augment :: [[Double]] → [[Double]]
    augment xs =
      let n = length $ head xs
          bs = take n $ repeat 0.0
      in  map (\ y → 0 : y) (bs : xs)
    
    twomul :: [[Double]] -> [[Double]] -> [[Double]]
    twomul [[0,0], [0,0]] _ = [[0,0], [0,0]]
    twomul _ [[0,0], [0,0]] = [[0,0], [0,0]]
    twomul [[0,0], [x21,x22]] [[y11,y12], [y21,y22]] = [[0, 0], [x21*y11 + x22*y21, x21*y12 + x22*y22]]
    twomul [[x11,x12], [0,0]] [[y11,y12], [y21,y22]] = [[x11*y11 + x12*y21, x11*y12 + x12*y22], [0, 0]]
    twomul [[x11,x12], [x21,x22]] [[0,0], [y21,y22]] = [[x12*y21, x12*y22], [x22*y21, x22*y22]]
    twomul [[x11,x12], [x21,x22]] [[y11,y12], [0,0]] = [[x11*y11, x11*y12], [x21*y11, x21*y12]]
    twomul [[x11,x12], [x21,x22]] [[y11,y12], [y21,y22]] =
      [[x11*y11 + x12*y21, x11*y12 + x12*y22], [x21*y11 + x22*y21, x21*y12 + x22*y22]]
    twomul _ _ = error "bad matrix from twomul"
    

    можно осуществлять блочные элементарные преобразования, если размеры согласованы

      ( e *                          ( 0 λ
        0 e ) элем.преоб.              e 0 )  перестановка полос
    

    Th: x = M(m,R) , y = M(n,R) тогда

              m  n
        det ( x  ρ   m
              0  y ) n      = det(x) * det(y)
    
    принцип Дирихле и Sₘ x Sₙ вкладывается в Sm+n

    sgn(σ,π) = sgn(σ)*sgn(π)

    или по другому:

    ℤ[xij,yhk] - кольцо полиномов, которое является областью целостности, а любая область целостности вкладывается в поле

    пусть y = e  тогда det ( x ρ
                             0 e ) = det(x)
    
    det ( x ρ
          0 y ) = 0, если det(x) = 0 или det(y) = 0
    
    пусть det(x) ≠ 0  тогда det(y) = det ( x ρ
                                           0 y ) / det(x)          
    
    потому, что мы в поле и можем делить на ненулевой элемент поля

    проективные группы PGLₙ(K)

    группа SL(n,ℝ) порождена элементарными матрицами, т.е. матрицами, у которых на диагонали стоит 1, на ij-м месте стоит x ∈ ℝ, i≠j, а на всех остальных местах – 0

    группа GL(n,ℝ) порождена элементарными матрицами, у которых определитель по модулю равен 1

    проективные группы

    PGLₙ(K) = GLₙ(K)/K*e   ,   K - поле

    PGLₙ(ℝ) ≤ GLₙ(ℝ)/ℝ*e

    1 → Gₘ → GLₙ → PGLₙ → 1

    1 → R* → GLₙ(R) → PGLₙ(R) → ?

    PSL₂(ℂ) = SL₂(ℂ)/центр


    матрицы как модули

    M(m,n,ℝ) - матрицы размером m×n над кольцом вещественных чисел. структура левого модуля над таким кольцом задается как M(m,ℝ), а структура правого модуля - как M(n,ℝ). бимодулем будет (M(m,ℝ) , M(n,ℝ))

    элементы правого R-модуля Rⁿ - столбцы, а элементы левого R-модуля ⁿR - строки

    две инволюции матриц - транспонирование ⁺ и обратимость ⁻

    (x * y)⁺ = y⁺ * x⁺

    (x * y)⁻ = y⁻ * x⁻

    для того, чтобы транспонирование являлось инволюцией, нужна коммутативность

    умножение матриц - это пример свертки в фактор-кольце ℝ[Sⁿ]/ℝe₀ над вещественными числами, полагая что Sⁿ есть полугруппа стандартных единичных матриц (и нуля) с операцией умножения eij * ekl = δjk * eil

    M(m,n,R) ≅ M(m, M(n,R))


    прямая сумма матриц:

                     ( x  0  
            x ⊕ y =    0  y )
    

    прямое произведение матриц (произведение Хронекера)

            M (m, n, ℝ) ⊗ M (p, q, ℝ)  =  M (m * p, n * q, ℝ)  =  M (m, n, M (p, q, ℝ)) 
    


    матрицы и символьная система Maxima

    умножение матриц обозначается символом . (точка)

    (%i17) M: matrix ([3, 7, -2, 1], [-1, 8, 5, 2], [9, 2, 11, 4]);
        
                                  [  3   7  - 2  1 ]
                                  [                ]
    (%o17)                        [ - 1  8   5   2 ]
                                  [                ]
                                  [  9   2  11   4 ]
    
        
    (%i18) echelon (M) ;
                                  [    7    2   1  ]
                                  [ 1  -  - -   -  ]
                                  [    3    3   3  ]
                                  [                ]
                                  [       13   7   ]
    
    
    (%o18)                        [ 0  1  --   --  ]
                                  [       31   31  ]
                                  [                ]
                                  [            82  ]
                                  [ 0  0   1   --- ]
                                  [            387 ]
      
    
        
    (%i26) a : matrix [[1 , 2] , [3 , 4]] ;
    
    (%o26)                       matrix
                                       [1, 2], [3, 4]
    
    
        
    (%i27) eigenvalues (a) ;
    
                           sqrt(33) - 5  sqrt(33) + 5
    (%o27)             [[- ------------, ------------], [1, 1]]
                                2             2
    
    
        
    (%i28) triangularize (M) ;
    
                                  [ 3  7   - 2   1  ]
                                  [                 ]
    (%o28)                        [ 0  31  13    7  ]
                                  [                 ]
                                  [ 0  0   774  164 ]    
    
    
    
        
    (%i30) charpoly (a, x);
    
    (%o30)                        (1 - x) (4 - x) - 6
    
    

    матрица Теплитца

              toeplitz (col)
              toeplitz (col, row)
    
       return a Toeplitz matrix
              the first first column is "col"
              except for the first entry, the first row is "row"
              the default for "row" is complex conjugate of "col"
    
    (%i1)  toeplitz([1,2,3],[x,y,z]);
                                      [ 1  y  z ]
                                      [         ]
    (%o1)                             [ 2  1  y ]
                                      [         ]
                                      [ 3  2  1 ]
    (%i2)  toeplitz([1,1+%i]);
    
                                  [   1     1 - %I ]
    (%o2)                         [                ]
                                  [ %I + 1    1    ]
    

    матрица Вандермонде

     -- Function: vandermonde_matrix ([x1, ..., xn])
    
         Return a n by n matrix whose i-th row is '[1, xi, xi^2, ... xi>^(n-1)]'
    

    матрица Коши

    (%i16) cauchy_matrix ( [x1 ,x2] , [y1 , y2]) ;
        
                                 [    1        1    ]
                                 [ -------  ------- ]
                                 [ y1 + x1  y2 + x1 ]
    (%o16)                       [                  ]
                                 [    1        1    ]
                                 [ -------  ------- ]
                                 [ y1 + x2  y2 + x2 ]
    

    index