Interactive: Trapezoid Method

661 days ago by lhjruo

Trapezoid integration method

Lauri Ruotsalainen, 2010 (based on the application "Numerical integrals with various rules" by Marshall Hampton and Nick Alexander)

Picture:


# Trapezoid integration method (based on the application "Numerical integrals with various rules" by Marshall Hampton and Nick Alexander) # Lauri Ruotsalainen, 2010 @interact def trapezoid_int( f = input_box(default = x^2-5*x + 10, type=SR), n = slider(1,100,1,5), interval = input_box(default=(0,10), label="Integral interval") ): xs = [] ys = [] h = (interval[1]-interval[0])/n f(x) = f trapezoids = Graphics() for i in range(n): xi = interval[0] + i*h yi = f(xi) trapezoids += line([[xi, 0], [xi, yi], [xi + h, f(xi + h)],[xi + h, 0],[xi, 0]], rgbcolor = (1,0,0)) xs.append(xi) ys.append(yi) xs.append(xi + h) ys.append(f(xi + h)) show(plot(f, interval[0], interval[1]) + trapezoids, xmin = interval[0], xmax = interval[1]) numeric_value = integral_numerical(f, interval[0], interval[1])[0] approx = h *(ys[0]/2 + sum([ys[i] for i in range(1,n)]) + ys[n]/2) sum_formula_html = "d \cdot \\left[\\frac{f(x_0)}{2} + %s + \\frac{f(x_{%s})}{2}\\right]" % ( join([ "f(x_{%s})"%i for i in range(1,n)], " + "), n ) sum_placement_html = "%s \cdot \\left[\\frac{f(%s)}{2} + %s + \\frac{f(%s)}{2}\\right]" % ( h, N(xs[0], digits=5), join([ "f(%s)" %N(i, digits=5) for i in xs[1:-1]]," + "), N(xs[n], digits=5) ) sum_values_html = "%s \cdot \\left[\\frac{%s}{2} + %s + \\frac{%s}{2}\\right]" % ( h, N(ys[0], digits=5), join([ "%s" % N(i, digits=5) for i in ys[1:-1]], " + "), N(ys[n], digits=5) ) html(r''' <div class="math"> \begin{align*} \int_{%s}^{%s} {f(x) \, dx} & = %s \\\ \\\ \int_{%s}^{%s} {f(x) \, dx} & \approx %s \\\ & = %s \\\ & = %s \\\ & = %s \end{align*} </div> ''' % ( interval[0], interval[1], N(numeric_value, digits=7), interval[0], interval[1], sum_formula_html, sum_placement_html, sum_values_html, N(approx, digits=7) )) 
       

Click to the left again to hide and once more to show the dynamic interactive window