# HG changeset patch # User Jeff Hammel # Date 1513547473 28800 # Node ID 1b61ce99ee82df430410d1e5b4c85077ffcd34fd # Parent c05ce6b7f941abba9960376b64776ef325a52580 derivative calculation: midpoint rule diff -r c05ce6b7f941 -r 1b61ce99ee82 tests/test_derivative.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test_derivative.py Sun Dec 17 13:51:13 2017 -0800 @@ -0,0 +1,21 @@ +#!/usr/bin/env python + +import os +import shutil +import tempfile +import unittest +from tvii import derivative + +class TestDerivatives(unittest.TestCase): + + def test_midpoint(self): + def cube(x): + return x**3 + + exact = 3 + expected = 3.0001 + got = derivative.midpoint(cube, 1, 0.01) + assert abs(expected - got) < 1e-6, "Expected {}; got {}".format(expected, got) + +if __name__ == '__main__': + unittest.main() diff -r c05ce6b7f941 -r 1b61ce99ee82 tvii/derivative.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tvii/derivative.py Sun Dec 17 13:51:13 2017 -0800 @@ -0,0 +1,4 @@ +def midpoint(f, x, epsilon): + """midpoint rule""" + + return (f(x+epsilon) - f(x-epsilon))/(2.*epsilon)