Approximate Integration:
Implementations of the following numerical integration techniques are given below: Left-hand Riemann sum, Right-hand Riemann sum, Midpoint Rule, Trapezoid Rule, and Simpson's Rule. Modify and evaluate the SageMath code as you wish.
Each function takes as input a function \(f\), an interval \([a,b]\), and an integer \(n\). Recall \(\Delta x = \frac{b-a}{n}\) and \(x_i = a+i\Delta x\) for each \(0\le i \le n\).
Left-Hand Riemann Sum:
The function lefthand_rs
outputs the
left-hand Riemann sum approximation of \(\int_a^b f(x) dx\)
using n partitions of the interval:
$$\int_a^bf(x)dx \approx \sum_{i=1}^n f(x_{i-1})\Delta x = \Delta x(f(x_0)+f(x_1)+\cdots +f(x_{n-1})).$$
Right-Hand Riemann Sum:
The function righthand_rs
outputs the
right-hand Riemann sum approximation of \(\int_a^b f(x) dx\)
using n partitions of the interval:
$$\int_a^bf(x)dx \approx \sum_{i=1}^n f(x_{i})\Delta x = \Delta x(f(x_1)+f(x_1)+\cdots +f(x_{n})).$$
Midpoint Rule:
The function midpoint_rule
outputs the
midpoint rule approximation of \(\int_a^b f(x) dx\) using n partitions of the interval:
$$\int_a^bf(x)dx \approx \sum_{i=1}^n f(\overline{x}_{i-1})\Delta x,$$
where \(\overline{x}_i\) is the midpoint of inteval \([x_{i-1},x_i]\), which is \(\overline{x}_i=\frac{x_{i-1}+x_i}{2}\).
Trapezoid Rule:
The function trapezoid_rule
outputs the
trapezoid rule approximation of \(\int_a^b f(x) dx\) using n partitions of the interval:
$$\int_a^bf(x)dx \approx \frac{\Delta x}{2}(f(x_0)+2f(x_1)+2f(x_2)+ \cdots + 2f(x_{n-1})+f(x_n)).$$
Simpsons Rule:
The function simpsons_rule
outputs the
Simpson's Rule approximation of \(\int_a^b f(x) dx\) using n partitions
of the interval:
$$\int_a^bf(x)dx \approx \frac{\Delta x}{3}(f(x_0)+4f(x_1)+2f(x_2)+4f(x_3)+ \cdots + 2f(x_{n-2})+4f(x_{n-1})+f(x_n)).$$
Note: n must be even.
Piecewise Defined Functions:
Sometimes you may find the need to define \(f\) as a piecewise defined function. For example, suppose you are trying to approximate the integral \(\int_{0}^{10} f(x)~dx\) where $$f(x)=\begin{cases} \displaystyle x,&x\le 5\\ x^2,&x > 5\\ \end{cases} $$ (not that you would not need to approximate in this case since you can easily find antiderivates, but we'll just use it as a simple example). We can replace the line "f(x) = ..." in the code above with a python function defining \(f\):def f(x):
if x<=5:
return x;
elif x>5: # elif means "else if"
return x^2;
Try to cut-and-paste this code to replace the function \(f\) in Simpson's Rule above.