{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"button": false,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"\n",
"\n",
"\n",
"*This notebook contains an excerpt from the [Python Programming and Numerical Methods - A Guide for Engineers and Scientists](https://www.elsevier.com/books/python-programming-and-numerical-methods/kong/978-0-12-819549-9), the content is also available at [Berkeley Python Numerical Methods](https://pythonnumericalmethods.berkeley.edu/notebooks/Index.html).*\n",
"\n",
"*The copyright of the book belongs to Elsevier. We also have this interactive book online for a better learning experience. The code is released under the [MIT license](https://opensource.org/licenses/MIT). If you find this content useful, please consider supporting the work on [Elsevier](https://www.elsevier.com/books/python-programming-and-numerical-methods/kong/978-0-12-819549-9) or [Amazon](https://www.amazon.com/Python-Programming-Numerical-Methods-Scientists/dp/0128195495/ref=sr_1_1?dchild=1&keywords=Python+Programming+and+Numerical+Methods+-+A+Guide+for+Engineers+and+Scientists&qid=1604761352&sr=8-1)!*"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"\n",
"< [23.2 The Shooting Method](chapter23.02-The-Shooting-Method.ipynb) | [Contents](Index.ipynb) | [23.4 Numerical Error and Instability](chapter23.04-Numerical-Error-and-Instability.ipynb) >"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"# Finite Difference Method"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Another way to solve the ODE boundary value problems is the **finite difference method**, where we can use finite difference formulas at evenly spaced grid points to approximate the differential equations. This way, we can transform a differential equation into a system of algebraic equations to solve. \n",
"\n",
"In the finite difference method, the derivatives in the differential equation are approximated using the finite difference formulas. We can divide the the interval of $[a, b]$ into $n$ equal subintervals of length $h$ as shown in the following figure. \n",
"\n",
"\n",
"\n",
"Commonly, we usually use the central difference formulas in the finite difference methods due to the fact that they yield better accuracy. The differential equation is enforced only at the grid points, and the first and second derivatives are:\n",
"\n",
"$$\\frac{dy}{dx} = \\frac{y_{i+1}-y_{i-1}}{2h}$$\n",
"\n",
"$$\\frac{d^2y}{dx^2} = \\frac{y_{i-1}-2y_i+y_{i+1}}{h^2}$$\n",
"\n",
"These finite difference expressions are used to replace the derivatives of $y$ in the differential equation which leads to a system of $n+1$ linear algebraic equations if the differential equation is linear. If the differential equation is nonlinear, the algebraic equations will also be nonlinear. \n",
"\n",
"**EXAMPLE:** Solve the rocket problem in the previous section using the finite difference method, plot the altitude of the rocket after launching. The ODE is\n",
"\n",
"$$ \\frac{d^2y}{dt^2} = -g$$\n",
"\n",
"with the boundary conditions $y(0) = 0$ and $y(5) = 50$. Let's take $n=10$. \n",
"\n",
"Since the time interval is $[0, 5]$ and we have $n=10$, therefore, $h=0.5$, using the finite difference approximated derivatives, we have \n",
"\n",
"$$ y_0 = 0$$\n",
"\n",
"$$ y_{i-1} - 2y_i + y_{i+1} = -gh^2, \\;i = 1, 2, ..., n-1$$\n",
"\n",
"$$ y_{10} = 50$$\n",
"\n",
"if we use matrix notation, we will have:\n",
"\n",
"$$\\begin{bmatrix}\n",
"1 & 0 & & & \\\\\n",
"1 & -2 & 1 & & \\\\\n",
" & \\ddots & \\ddots & \\ddots & \\\\\n",
" & & 1& -2& 1 \\\\\n",
" & & & &1\n",
"\\end{bmatrix}\\left[\\begin{array}{c} y_0 \\\\y_1 \\\\ ... \\\\ y_{n-1}\\\\y_n \\end{array}\\right] =\n",
"\\left[\\begin{array}{c} 0 \\\\-gh^2 \\\\ ... \\\\ -gh^2 \\\\50\\end{array}\\right]$$\n",
"\n",
"Therefore, we have 11 equations in the system, we can solve it using the method we learned in chapter 14. "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"button": false,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
" [ 1. -2. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
" [ 0. 1. -2. 1. 0. 0. 0. 0. 0. 0. 0.]\n",
" [ 0. 0. 1. -2. 1. 0. 0. 0. 0. 0. 0.]\n",
" [ 0. 0. 0. 1. -2. 1. 0. 0. 0. 0. 0.]\n",
" [ 0. 0. 0. 0. 1. -2. 1. 0. 0. 0. 0.]\n",
" [ 0. 0. 0. 0. 0. 1. -2. 1. 0. 0. 0.]\n",
" [ 0. 0. 0. 0. 0. 0. 1. -2. 1. 0. 0.]\n",
" [ 0. 0. 0. 0. 0. 0. 0. 1. -2. 1. 0.]\n",
" [ 0. 0. 0. 0. 0. 0. 0. 0. 1. -2. 1.]\n",
" [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]]\n",
"[ 0. -2.45 -2.45 -2.45 -2.45 -2.45 -2.45 -2.45 -2.45 -2.45 50. ]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"