
[index-ja]

Algebra::JordanForm

(󥯥饹)

ɽ륯饹Ǥ

ե̾:

  jordan-form.rb

ѡ饹:

  Object

󥯥롼ɤƤ⥸塼:

ʤ

Ϣؿ:

Algebra::MatrixAlgebra#jordan_form
    selfΥɸ֤ޤ
   
Algebra::MatrixAlgebra#jordan_form_info
    Algebra::JordanForm.decompose(self) ƱǤ
   

饹᥽å:

::new(array)
    JordanForm ֥Ȥ֤ޤarray ϡ [гʬ, ] ǤȤ
    Ǥˤϥ᥽å to_matrix ܤȤˤꡢʾ廰ѡ˥
    ޤѤˤˤto_matrix_lѤޤ
   
    :
    j = Algebra::JordanForm.new([[2, 3], [-1, 2]])
    j.to_matrix.display #=>
    #  2,   1,   0,   0,   0
    #  0,   2,   1,   0,   0
    #  0,   0,   2,   0,   0
    #  0,   0,   0,  -1,   1
    #  0,   0,   0,   0,  -1
   
::construct(elem_divs, facts, field, pfield)
    ά
   
::decompose(m)
     m Υ jmm  jm ѷ뤿ɬפʺѷ tL
    ѷ sRʬ򤹤ΤɬפʺǾʬΤ field ǾʬΤ
    ǴΤ礹Τɬפ modulus ȤȤ
    [jm, tL, sR, field, modulus]
   
    ֤ޤtL * sR == ñ̹Ǥ
   
    :
    m = Algebra.SquareMatrix(Rational, a.size)[
     [-1, 1, 2, -1],
     [-5, 3, 4, -2],
     [3, -1, 0, 1],
     [5, -2, -2, 0]
    ]
    jf, p, q, field, modulus = Algebra::JordanForm.decompose(m)
    jf.display; puts #=>
    #  2,   0,   0,   0
    #  0,   a,   0,   0
    #  0,   0,   b,   0
    #  0,   0,   0, -b - a
    
    p modulus #=> [a^3 + 3a - 1, b^2 + ab + a^2 + 3]
    
    print "P =\n"; p.display; puts
    print "P^-1 =\n"; q.display; puts
    
    m = m.convert_to(field)
    p jf == p * m * q #=> true
   

᥽å:

to_matrix(ring)
    ring Υʾ廰ѡˤ֤ޤ
   
    :
    j = Algebra::JordanForm.new([[2, 3], [-1, 2]])
    j.to_matrix(Integer).display #=>
    #  2,   1,   0,   0,   0
    #  0,   2,   1,   0,   0
    #  0,   0,   2,   0,   0
    #  0,   0,   0,  -1,   1
    #  0,   0,   0,   0,  -1
   
to_matrix_r(ring)
    to_matrix Ʊ
   
to_matrix_l(ring)
    ʲѡˤ֤ޤ
   

