Exemplo n.º 1
0
 def testMatch(self):
     N = 11
     x0 = random.random(N); x0.sort()
     y0 = random.random(N)
     for interp_type in ('linear', 'cubic'):
         y = interp(x0, y0, interp_type)
         x = x0.copy()
         self.assertAlmostEqual(abs(value(y(x) - y0)).max(), 0)
Exemplo n.º 2
0
    def testMatchDeriv(self):
        N = 11
        x0 = random.random(N); x0.sort()
        y0 = random.random(N)
        y = interp(x0, y0, 'cubic')
        x = x0.copy()

        yp0 = value(y.y0[:,1])
        yp1 = value(y.derivative(x))
        yp2 = np.diag(y(x).diff(x).todense())
        self.assertAlmostEqual(abs(yp1 - yp0).max(), 0)
        self.assertAlmostEqual(abs(yp2 - yp0).max(), 0)
Exemplo n.º 3
0
    def testDiagonalPerturbation(self):
        import pylab
        N = 2

        A_additional_diag = array(1)
        A = random.random([N, N]) + A_additional_diag * eye(N)

        b = eye(N)
        Ainv = solve(A, b)

        Ainv_diff_A_diag = Ainv.diff(A_additional_diag)
        Ainv_diff_A_diag = np.array(Ainv_diff_A_diag.todense()).reshape([N, N])

        Ainv_diff_A_diag_analytical = -np.dot(value(Ainv), value(Ainv))
        difference = Ainv_diff_A_diag - Ainv_diff_A_diag_analytical
        self.assertAlmostEqual(abs(difference).max(), 0)