def handle_gaussian_task(): print "{0: >8}\t{1: <16} {2: <14} {3: <18}".format( "Nodes", "Result", "H", "Runge") nodes = 2 prev_result = 0.0 prev_runge = 0.0 runge = 0.0 while nodes <= TASK2.NODES_LIMIT: gauss = Gaussian(FUNCTION, TASK2.HIGH, TASK2.LOW, nodes) result = gauss.integrate() if prev_result != 0: runge = runge_error(prev_result, result, TASK2.PRECISION) output = "{0: >8}\t{1: <16} {2: <14} {3: <18} {4: <14}".format( nodes, result, gauss.h, runge, prev_runge*1.0/runge) else: output = "{0: >8}\t{1: <16} {2: <14}".format( nodes, result, gauss.h) print output prev_result = result prev_runge = runge nodes *= 2
def common_flow(self, nodes, accuracy): gauss = Gaussian(self.function, self.high, self.low, nodes) result = gauss.integrate() self.assertAlmostEquals(result, self.accurate_result, accuracy)