def testRandom(self): l = Matrix(5) l.randomLowerTriangular(5) u = Matrix(5) u.randomUpperTriangular(5) m = l*u (x,y) = m.lu() self.assertTrue(m.isAlmostEqual(x*y))
def testRandom(self): l = Matrix(self.size) u = Matrix(self.size) l.randomLowerTriangular(5) u.randomUpperTriangular(5) m = l * u one = Matrix(self.size) one.one() self.assertTrue(one.isAlmostEqual(m * m.invertLU()))
def testLowerTriangularInversion(self): a = Matrix(5) a.randomLowerTriangular(87) b = a.invertLowerTriangular() c = Matrix(5) c.one() print (c - a * b).frobeniusNorm() self.assertTrue(c.isAlmostEqual(a * b)) self.assertTrue(c.isAlmostEqual(b * a))