Exemplo n.º 1
0
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
Exemplo n.º 2
0
    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)