diff options
Diffstat (limited to 'tutorials/module_3/numerical_differentiation.md')
| -rw-r--r-- | tutorials/module_3/numerical_differentiation.md | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/tutorials/module_3/numerical_differentiation.md b/tutorials/module_3/numerical_differentiation.md new file mode 100644 index 0000000..b34b315 --- /dev/null +++ b/tutorials/module_3/numerical_differentiation.md @@ -0,0 +1,67 @@ +# Numerical Differentiation +Finding a derivative of tabular data can be done using a finite difference. Here we essentially pick two points on a function or a set of data points and calculate the slope from there. Let's imagine a domain $x$ as a vector such that $\vec{x}$ = $\pmatrix{x_0, x_1, x_2, ...}$. Then we can use the following methods to approximate derivatives + +## Forward Difference +Uses the point at which we want to find the derivative and a point forwards on the line. +$$ +f'(x_i) = \frac{f(x_{i+1})-f(x_i)}{x_{i+1}-x_i} +$$ +*Hint: Consider what happens at the last point.* + +```python +import numpy as np +import matplotlib.pyplot as plt + +# Initiate vectors +x = np.linspace(0, 2, 100) +y = 34 * np.exp(3 * x) + +dydx = (y[1:] - y[:-1]) / (x[1:] - x[:-1]) + +# Plot the function +plt.plot(x, y, label=r'$y(x)$') +plt.plot(x, dydx, label=b'$/frac{dy}{dx}$') +plt.xlabel('x') +plt.ylabel('y') +plt.title('Plot of $34e^{3x}$') +plt.grid(True) +plt.legend() +plt.show() +``` + + +## Backwards Difference +Uses the point at which we want to find +$$ +f'(x_i) = \frac{f(x_{i})-f(x_{i-1})}{x_i - x_{i-1}} +$$ + + +```python +import numpy as np +import matplotlib.pyplot as plt + +# Initiate vectors +x = np.linspace(0, 2, 100) +y = 34 * np.exp(3 * x) + +dydx = (y[1:] - y[:-1]) / (x[1:] - x[:-1]) + +# Plot the function +plt.plot(x, y, label=r'$y(x)$') +plt.plot(x, dydx, label=b'$/frac{dy}{dx}$') +plt.xlabel('x') +plt.ylabel('y') +plt.title('Plot of $34e^{3x}$') +plt.grid(True) +plt.legend() +plt.show() +``` +## Central Difference + +$$ +f'(x_i) = \frac{f(x_{i+1})-f(x_{i-1})}{x_{i+1}-x_{i-1}} +$$ + + + |
