Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- import numpy as np
- def left_riemann_sum(f, a, b, num_rects):
- interval_length = float(b - a)
- dx = interval_length / num_rects
- riemann_sum = 0
- for i in range(0, num_rects):
- riemann_sum += f(a + i * dx) * dx
- return riemann_sum
- print(round(left_riemann_sum(math.sin, 0, 2*math.pi, 100), 5))
- print(round(left_riemann_sum(lambda x: 1, 0, 1, 100), 5))
- print(round(left_riemann_sum(math.exp, 1, 2, 100), 5))
- print("\n\n")
- def joe_riemann_sum_lb(f, a, b, n):
- deltax = float(b-a)/n
- area = 0
- for i in range(0, n):
- area += f(a + i*deltax) * deltax
- return area
- print(round(joe_riemann_sum_lb(math.sin, 0, 2*math.pi, 100), 5))
- print(round(joe_riemann_sum_lb(lambda x: 1, 0, 1, 100), 5))
- print(round(joe_riemann_sum_lb(np.exp, 1, 2, 100), 5))
- print("\n")
- def joe_riemann_sum_ub(f, a, b, n):
- deltax = float(b-a)/n
- area = 0
- a = a + deltax
- for i in range(0, n):
- area += f(a + i*deltax) * deltax
- return area
- print(round(joe_riemann_sum_ub(np.exp, 1, 2, 100), 5))
- print("\n")
- def joe_riemann_sum_mp(f, a, b, n):
- deltax = float(b-a)/n
- area = 0
- mp = (a + deltax/2.0)
- for i in range(0, n):
- area += f(mp + i*deltax) * deltax
- return area
- print(round(joe_riemann_sum_mp(np.sin, 0, 2*np.pi, 100), 5))
- print(round(joe_riemann_sum_mp(lambda x: np.ones_like(x), 0, 1, 100), 5))
- print(round(joe_riemann_sum_mp(np.exp, 1, 2, 100), 5))
- print("\n")
- def joe_riemann_sum_mp_numpy(f, a, b, n):
- x = np.linspace(a, b, n)
- deltax = float(b-a)/n
- area = 0
- aplus1 = a + deltax
- mp = (a + deltax/2.0)
- #or funct = lambda i : f(mp + i*deltax) * deltax
- # y = funct(x)
- # np.sum(y)
- #2.77321
- for i in np.nditer(x):
- area += f(mp + i*deltax) * deltax
- return area
- print(round(joe_riemann_sum_mp_numpy(np.exp, 1, 2, 100), 5))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement