require "algebra/algebra"
# jordan form が
# 2 1
# 0 2
# a 0
# 0 -a
#となるものを作りたい
P = Polynomial(Rational, "x")
x = P.var
MR = SquareMatrix(Rational, 4)
def trans(m, i, j, c)
m.mix_r!(i, j, c)
m.mix_c!(j, i, -c)
m
end
=begin
m = MR[
[2, 1, 0, 0],
[0, 2, 0, 0],
[0, 0, 0, 2],
[0, 0, -2, 0]
]
m.display; puts
trans(m, 1, 2, 1)
trans(m, 3, 1, 1)
trans(m, 1, 0, -1)
trans(m, 1, 3, -1)
m.display; puts
=end
m = MR[
[3, 1, -1, 1],
[-3, -1, 3, -1],
[-2, -2, 0, 0],
[0, 0, -4, 2]
]
m.display; puts
m.jordan_form.display; puts
syntax highlighted by Code2HTML, v. 0.9.1