예제 #1
0
 def check_random_complex(self):
     n = 20
     for k in range(2):
         a = random([n,n])+1j*random([n,n])
         h,q = hessenberg(a,calc_q=1)
         h1 = dot(transp(conj(q)),dot(a,q))
         assert_array_almost_equal(h1,h)
예제 #2
0
 def check_simple_complex(self):
     a = [[-149, -50,-154],
          [ 537, 180j, 546],
          [ -27j,  -9, -25]]
     h,q = hessenberg(a,calc_q=1)
     h1 = dot(transp(conj(q)),dot(a,q))
     assert_array_almost_equal(h1,h)
예제 #3
0
 def check_simple2(self):
     a = [[1,2,3,4,5,6,7],
          [0,2,3,4,6,7,2],
          [0,2,2,3,0,3,2],
          [0,0,2,8,0,0,2],
          [0,3,1,2,0,1,2],
          [0,1,2,3,0,1,0],
          [0,0,0,0,0,1,2]]
     h,q = hessenberg(a,calc_q=1)
     assert_array_almost_equal(dot(transp(q),dot(a,q)),h)
예제 #4
0
 def check_simple(self):
     a = [[-149, -50,-154],
          [ 537, 180, 546],
          [ -27,  -9, -25]]
     h1 = [[-149.0000,42.2037,-156.3165],
           [-537.6783,152.5511,-554.9272],
           [0,0.0728, 2.4489]]
     h,q = hessenberg(a,calc_q=1)
     assert_array_almost_equal(dot(transp(q),dot(a,q)),h)
     assert_array_almost_equal(h,h1,decimal=4)
예제 #5
0
 def check_random(self):
     n = 20
     for k in range(2):
         a = random([n,n])
         h,q = hessenberg(a,calc_q=1)
         assert_array_almost_equal(dot(transp(q),dot(a,q)),h)