Skip to content
Permalink
3e800fc930
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
1913 lines (1913 sloc) 388 KB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Roots of Nonlinear functions"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## It's not always possible to analytically solve for a given variable. \n",
"\n",
"In the last [Module 03](./03_Get_Oscillations.ipynb), we created an _implicit_ Heun's method that created the following problem: How can we solve for a value of $y$, a dependent variable, when the function is a function of $y$, in an equation format it becomes\n",
"\n",
"$y=f(y,parameters)$\n",
"\n",
"where $parameters$ are known inputs to the equation, but the variable $y$ is not separable from the function $f$. We can rewrite the problem as \n",
"\n",
"$0=y-f(y,parameters).$\n",
"\n",
"Many times, we may have a deeper problem such as wanting to know when two functions are equal to each other:\n",
"\n",
"$0 = g(y,parameters) -f(y,parameters)$\n",
"\n",
"where $g(y,parameters)$ in the previous equation was $g(y)=y$. "
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"# Getting to the root of a problem\n",
"\n",
"This is a very common problem in engineering designs. You may have mathematical models for designs, but you can't explicitly solve for the variables you can control or see [1]. "
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Freefall example:\n",
"Consider an observation of an object, with a known shape, so its drag coefficient c=0.25 kg/m. If the object reaches a velocity of 36 m/s after 4 seconds of freefalling, what is its mass?\n",
"\n",
"$v(t)=\\sqrt{\\frac{gm}{c_{d}}}\\tanh(\\sqrt{\\frac{gc_{d}}{m}}t)$\n",
"\n",
"We can plug in the known parameters, $t=4~s$, $v=36~m/s$, $c_d=0.25$ kg/s, and $g=9.81~m/s^2$, but we cannot separate $m$ from the $\\tanh$ and $\\sqrt{}$.\n",
"\n",
"$36 = \\sqrt{\\frac{9.81m}{0.25}}\\tanh(\\sqrt{\\frac{9.81*0.25}{m}}4)$\n",
"\n",
"Instead, we can use computational methods to solve the problem by creating a new function f(m) where\n",
"\n",
"$f(m)=36 - \\sqrt{\\frac{9.81m}{0.25}}\\tanh(\\sqrt{\\frac{9.81*0.25}{m}}4)$. \n",
"\n",
"When f(m) = 0, we have solved for m in terms of the other variables (e.g. for a given time, velocity, drag coefficient and acceleration due to gravity)"
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"plt.rcParams.update({'font.size': 22})\n",
"plt.rcParams['lines.linewidth'] = 3"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"g=9.81 # acceleration due to gravity\n",
"\n",
"def f_m(m,v=36,t=4,c_d=0.25,):\n",
" ''' define a function f(m) that returns \n",
" v(t)-sqrt(mg/cd)*tanh(sqrt(gcd/m)*t)\n",
" \n",
" arguments:\n",
" ---------\n",
" m: mass of object\n",
" c_d: drag coefficient default=0.25 kg/m # drag coefficient\n",
" t: time of velocity measure default=4 seconds\n",
" v: velocity measure at time, t default=36 m/s\n",
" \n",
" returns:\n",
" --------\n",
" f_m: the difference between v(t) and sqrt(mg/cd)*tanh(sqrt(gcd/m)*t)\n",
" if f_m ==0, then mass is correctly chosen\n",
" '''\n",
" \n",
" f_m = v-np.sqrt(g*m/c_d)*np.tanh(np.sqrt(g*c_d/m)*t)\n",
" return f_m\n",
"\n",
"m=np.linspace(60, 200,100); # possible values for mass 50 to 200 kg\n",
"plt.plot(m,f_m(m))\n",
"plt.plot(m,np.zeros(len(m)))\n",
"plt.xlabel('mass, m (kg)')\n",
"plt.ylabel('f(m)');"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {
"scrolled": true,
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"-0.12322824302261637"
]
},
"execution_count": 105,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f_m(149)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"The Brute force method is plot f_m vs m and with smaller and smaller steps until f_m ~ 0, but we can do much better. \n",
"\n",
"We will look at two classes of methods, most numerical solutions use a combination of these two types of solvers:\n",
"\n",
"1. Bracketing methods\n",
"2. Open methods\n",
"\n",
"In __Bracketing__ methods, we choose an upper and lower bound and find the best solution in that range.\n",
"\n",
"In __Open__ methods, we choose an initial guess, then we have a function that brings us closer to the solution with every iteration.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"## Incremental searching ( a smarter brute force approach)\n",
"\n",
"If you consider a range of possible masses, e.g. 50 kg - 200 kg, then we can evaluate our function $f(m)$ at evenly-spaced intervals and look for x-axis crossings. If the value of $f(m_{i})$ is positive, and the value of $f(m_{i+1})$ is negative, then the correct mass is somewhere between $m_i$ and $m_{i+1}$. \n",
"\n",
"Take a look at the implementation we have below of the `incsearch` function. \n",
"\n",
"There are a few key lines to look at:\n",
"\n",
"```python\n",
" x = np.linspace(xmin,xmax,ns)\n",
" f = func(x)\n",
"```\n",
"\n",
"In these two lines, we are dividing the interval into `ns`-equally-spaced values (our default is ns=50). Then, we evaluate our function ($f(m)$) `ns` times for each value. \n",
"\n",
"```python\n",
" sign_f = np.sign(f)\n",
" delta_sign_f = sign_f[1:]-sign_f[0:-1]\n",
" i_zeros = np.nonzero(delta_sign_f!=0)\n",
"```\n",
"\n",
"On these three lines, we are looking for sign-changes in the array `f`. First, we get just the sign of each array value with `np.sign`. Then, we look at the changes in sign with the difference between f[i] and f[i-1] for i=1...len(f). Finally, we get the indices sign changes by looking for nonzero elements in `delta_sign_f`. \n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Discussion\n",
"\n",
"Why can't we just consider cases where `delta_sign_f>0`? Why do we care about all nonzero sign changes?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we consider cases where delta_sign_f>0 that would result in non real number. We care about nonzero sign changes because we do not want to divide by zero and only have real numbers. "
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {
"jupyter": {
"outputs_hidden": false
},
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [],
"source": [
"def incsearch(func,xmin,xmax,ns=50):\n",
" '''incsearch: incremental search root locator\n",
" xb = incsearch(func,xmin,xmax,ns):\n",
" finds brackets of x that contain sign changes\n",
" of a function on an interval\n",
" arguments:\n",
" ---------\n",
" func = name of function\n",
" xmin, xmax = endpoints of interval\n",
" ns = number of subintervals (default = 50)\n",
" returns:\n",
" ---------\n",
" xb(k,1) is the lower bound of the kth sign change\n",
" xb(k,2) is the upper bound of the kth sign change\n",
" If no brackets found, xb = [].'''\n",
" x = np.linspace(xmin,xmax,ns)\n",
" f = func(x)\n",
" sign_f = np.sign(f)\n",
" delta_sign_f = sign_f[1:]-sign_f[0:-1]\n",
" i_zeros = np.nonzero(delta_sign_f!=0)\n",
" nb = len(i_zeros[0])\n",
" xb = np.block([[ x[i_zeros[0]+1]],[x[i_zeros[0]] ]] )\n",
"\n",
" \n",
" if nb==0:\n",
" print('no brackets found\\n')\n",
" print('check interval or increase ns\\n')\n",
" else:\n",
" print('number of brackets: {}\\n'.format(nb))\n",
" return xb"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Test our function\n",
"\n",
"To test our `incsearch` function on a known function, let's try finding all the times that $sin(x)$ crosses the x-axis from $x=-1...7$. Our function should return values at $x=0,~x=\\pi/2,~x=\\pi.$\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"number of brackets: 3\n",
"\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"mn=-1\n",
"mx=7\n",
"x=np.linspace(mn,mx)\n",
"plt.plot(x,np.sin(x))\n",
"\n",
"xb = incsearch(lambda x: np.sin(x),mn,mx,ns=50)\n",
"\n",
"plt.plot(xb,np.sin(xb),'s')\n",
"plt.ylabel('$\\sin(x)$')\n",
"plt.xlabel('x')\n",
"plt.title('Upper bounds={:.2f},{:.2f},{:.2f}\\nLower bounds={:.2f},{:.2f},{:.2f},'.format(*xb[0,:],*xb[1,:]));"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Success - incsearch works\n",
"\n",
"You should see that `incsearch` returns intervals in the correct locations near x=0, x=$\\pi/2$ and x=$\\pi.$ Now, let's apply it to the freefall problem and discover what mass is necessary to reach 36 m/s at t=4 sec of freefall.\n",
"\n",
"Depending upon what `ns` you choose, you should see that a mass of 142-143 kg will reach 36 m/s in 4 seconds of freefall. "
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {
"jupyter": {
"outputs_hidden": false
},
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"number of brackets: 1\n",
"\n",
"Upper bound on mass = 143.94 kg\n",
"Lower bound on mass = 142.42 kg\n"
]
}
],
"source": [
"xb = incsearch(f_m,50,200,ns=100)\n",
"\n",
"print('Upper bound on mass = {:.2f} kg'.format(*xb[0,:]))\n",
"print('Lower bound on mass = {:.2f} kg'.format(*xb[1,:]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercise \n",
"\n",
"Use the `incsearch` function to find the number of times $cos(x)=0$ in the interval $x=0...8$.\n",
"\n",
"Plot x-vs-cos(x)\n",
"\n",
"and \n",
"\n",
"plot the values of `xb` and `np.cos(xb)` as $\\circ$-markers (`'o'`)"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"number of brackets: 3\n",
"\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"mn=0\n",
"mx=8\n",
"x=np.linspace(mn,mx)\n",
"plt.plot(x,np.cos(x))\n",
"\n",
"xb = incsearch(lambda x: np.cos(x),mn,mx,ns=50)\n",
"\n",
"plt.plot(xb,np.cos(xb),'s')\n",
"plt.ylabel('$\\cos(x)$')\n",
"plt.xlabel('x')\n",
"plt.title('Upper bounds={:.2f},{:.2f},{:.2f}\\nLower bounds={:.2f},{:.2f},{:.2f},'.format(*xb[0,:],*xb[1,:]));"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Bisection method"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"The `incsearch` function will always return a set of upper and lower bounds on the zeros of a function, but if you want to increase the accuracy of your solutions, you have to calculate $f(x)$ __a lot__. The error in the solution is always \n",
"\n",
"$error = \\frac{x_{max}-x_{min}}{ns}$\n",
"\n",
"We can reduce the number of times we have to evaluate the function with more insight. \n",
"\n",
"Let's divide interval in half until, then evaluate $f(x_{max})$, $f(x_{min})$, and $\\frac{x_{max}+x_{min}}{2}$. Now, we can look for a sign change between these three locations. We focus our attention on the bisected bracket. Look at the figure below that illustrates choosing the region of interest on the right vs left side of the interval."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"![Using the bisection method to reduce search to half of interval](../images/bisection.png)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"Let's use the same interval we started with to illustrate a few steps in the right direction. \n",
"\n",
"$x_{max}=200$ kg\n",
"\n",
"$x_{min}=50$ kg\n",
"\n",
"$x_{mid}=125$ kg"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"f(xmin) = 4.58, f(xmid) = 0.41, f(xmax)=-0.86\n"
]
}
],
"source": [
"x=np.array([50,125,200])\n",
"fx=f_m(x)\n",
"\n",
"print('f(xmin) = {:.2f}, f(xmid) = {:.2f}, f(xmax)={:.2f}'.format(*fx))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, we have reduced our region of interest to just 125-200 kg. \n",
"\n",
"## Exercise\n",
"\n",
"Divide the region 125-200 kg into two, and repeat the above step. Is the solution in the upper (163-200 kg)? or lower (125-163 kg) region? What are the values of f_m(m)?"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"f(xmin) = 9.41, f(xmid) = 3.33, f(xmax)=1.20\n"
]
},
{
"data": {
"text/plain": [
"'Solution is in the upper (163-200 kg)'"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x=np.array([25,62.5,100])\n",
"fx=f_m(x)\n",
"\n",
"print('f(xmin) = {:.2f}, f(xmid) = {:.2f}, f(xmax)={:.2f}'.format(*fx))\n",
"'''Solution is in the upper (163-200 kg)'''"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Bisect Function"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"We can automate this process with a `bisect` function. Its a much better root locator because we can reduce the error without evaluating the function a lot of times [1, 2]. \n",
"\n",
"_Note the use of the function `break`:_\n",
"\n",
"We can use an `if`-statement to check a condition and `break` the loop if that condition is met. These break statements are often used in `while`-loops so that you can have some stopping criteria. In our case, we use the specified error, `es`, as a stopping criteria. If our relative error, \n",
"\n",
"$e_{relative} = \\frac{|x_{new}-x_{old}|}{x_{new}}$\n",
"\n",
"is less than our specified error, the loop is broken and the number of iterations halts at that point. "
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"## Discussion\n",
"\n",
"What is another stopping criteria that you could use?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You could potentially use if/else statements and while loops to create stopping criteria. "
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {
"jupyter": {
"outputs_hidden": false
},
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [],
"source": [
"def bisect(func,xl,xu,es=0.0001,maxit=50):\n",
" '''bisect: root location zeroes\n",
" root,fx,ea,iter=bisect(func,xl,xu,es,maxit,p1,p2,...):\n",
" uses bisection method to find the root of func\n",
" arguments:\n",
" ------\n",
" func = name of function\n",
" xl, xu = lower and upper guesses\n",
" es = desired relative error (default = 0.0001 )\n",
" maxit = maximum allowable iterations (default = 50)\n",
" p1,p2,... = additional parameters used by func\n",
" returns:\n",
" -------\n",
" root = real root\n",
" and a list of [fx, ea, iter]\n",
" fx = function value at root\n",
" ea = approximate relative error ( )\n",
" iter = number of iterations'''\n",
" xr = xl\n",
" ea = 100\n",
" for iter in range(0,maxit):\n",
" xrold = xr\n",
" xr = (xl + xu)/2\n",
" if xr != 0:\n",
" ea = abs((xr - xrold)/xr) * 100\n",
" else:\n",
" ea = abs((xr - xrold)/1) * 100\n",
" test = func(xl)*func(xr)\n",
" if test < 0:\n",
" xu = xr;\n",
" elif test > 0:\n",
" xl = xr;\n",
" else:\n",
" ea = 0;\n",
" if ea <= es:\n",
" break\n",
"\n",
" root = xr\n",
" fx = func(xr);\n",
" return root,[fx,ea,iter]\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {
"jupyter": {
"outputs_hidden": false
},
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The best estimate for the mass is 142.73769855499268 kg\n",
"We reached a relative error of 5.0109798921069224e-05 with 20 iterations\n"
]
}
],
"source": [
"Mass_at_36ms,out=bisect(f_m,50,200)\n",
"print('The best estimate for the mass is {} kg'.format(Mass_at_36ms))\n",
"print('We reached a relative error of {} with {} iterations'.format(out[1],out[2]))\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Recursive functions\n",
"\n",
"The `bisection` function and the next two open root solvers (`newtraph` and `modsecant`) make use of a recursive function. \n",
"\n",
"Definition:\n",
"\n",
"__recursive: for a definition of recursive, see recursive.__\n",
"\n",
"Recursive functions work by updating an initial assignment each time the function is called. In the bisection method, the initial solution is assumed to be halfway between the upper and lower bound\n",
"\n",
"$x_{r} = \\frac{x_u+x_l}{2},$\n",
"\n",
"but once the upper or lower bound is updated, the value of $x_r$ is updated as well. This is why the first step in the loop is to temporarily save $x_r$ as `xrold`. With the `xrold` variable, we can track the progress of our solution. "
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Newton-Raphson: Open method\n",
"\n",
"Bracketing methods are great, but they are burdened by slow convergence rates. In the bisection method, we reduce our error by 50\\% with each region of interest selection, but this is rather slow. \n",
"\n",
"One of the fastest root-finding methods is the __Newton-Raphson__ method, it is an __open method__ so it does not require an upper- and lower-bound [1,2]. \n",
"\n",
"The __Newton-Raphson__ works by creating a Taylor series expansion around your initial guess of the function, \n",
"\n",
"$f(x_{0}+\\Delta x) = f(x_{0}) +\\frac{df}{dx}\\Delta x +...$\n",
"\n",
"We want to determine what step, $\\Delta x$, to take in order for $f(x_{0}+\\Delta x)=0$. So we set our right hand side to 0 and ignore the $...$ -higher order terms. \n",
"\n",
"$0 = f(x_{0}) +\\frac{df}{dx}\\Delta x$\n",
"\n",
"So our best guess for a solution is then\n",
"\n",
"$x_{solution} = x_{0}+ \\Delta x$\n",
"\n",
"where \n",
"\n",
"$\\Delta x = -f(x) \\left({\\frac{df}{dx}}\\right)^{-1}.$\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Newton-Raphson example\n",
"\n",
"Let's use the __Newton-Raphson__ method to solve an engineering problem. Consider a spherical tank of water that can be filled to a height, $h$, and has radius, $R$. \n",
"\n",
"The volume of water, $V$, in the tank is \n",
"\n",
"$V= \\pi h^2\\frac{3R-h}{3}.$\n",
"\n",
"If your tank has a radius of $R=2~m$ and you need a volume of 29 $m^3$, what height should you fill it to?\n",
"\n",
"To answer this question with the Newton-Raphson method, we first define a new function, $f(h,parameters)$\n",
"\n",
"$f(h,parameters) = V-\\pi h^2\\frac{3R-h}{3}.$\n",
"\n",
"Now we can plug in our known parameters\n",
"\n",
"$f(h) = 29-\\pi h^2\\frac{6-h}{3},$\n",
"\n",
"and calculate the derivative, \n",
"\n",
"$\\frac{d}{dh}(f(h)) = -\\pi \\frac{12h-3h^2}{3}$"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {},
"outputs": [],
"source": [
"def f_h(h,V=29,R=2):\n",
" return V-np.pi*h**2*(3*R-h)/3\n",
"\n",
"def dfdh(h,V=29,R=2):\n",
" return -np.pi*(6*R*h-3*h**2)/3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can use the definitions of `f_h` and `dfdh` to calculate the height, $h$ to fill the tank."
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.974413341499149\n"
]
}
],
"source": [
"xguess = 2\n",
"deltax = -f_h(xguess)/dfdh(xguess)\n",
"print(xguess+deltax)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Discussion\n",
"\n",
"Try changing the value of `xguess`. Is there any way to choose the best `xguess` value? Are there any `xguess` values that return an Python error? Why?"
]
},
{
"cell_type": "code",
"execution_count": 116,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"7.623927999455612\n"
]
},
{
"data": {
"text/plain": [
"'Cannot use xguess as 0 as you would be dividing by zero. There is no best way to choose a value for xguess because the equation climbs linearly '"
]
},
"execution_count": 116,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xguess = 10\n",
"deltax = -f_h(xguess)/dfdh(xguess)\n",
"print(xguess+deltax)\n",
"'''Cannot use xguess as 0 as you would be dividing by zero. There is no best way to choose a value for xguess because the equation climbs linearly '''"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create a Newton-Raphson function\n",
"\n",
"In the same way that we created bracketing method functions, we can create the Newton-Raphson method function to update our `xguess` until a desired tolerance is achieved. "
]
},
{
"cell_type": "code",
"execution_count": 117,
"metadata": {},
"outputs": [],
"source": [
"def newtraph(func,dfunc,x0,es=0.0001,maxit=50):\n",
" '''newtraph: Newton-Raphson root location zeroes\n",
" root,[ea,iter]=newtraph(func,dfunc,x0,es,maxit,p1,p2,...):\n",
" uses Newton-Raphson method to find the root of func\n",
" arguments:\n",
" ----------\n",
" func = name of function\n",
" dfunc = name of derivative of function\n",
" x0 = initial guess\n",
" es = desired relative error (default = 0.0001 )\n",
" maxit = maximum allowable iterations (default = 50)\n",
" returns:\n",
" ----------\n",
" root = real root\n",
" ea = approximate relative error (%)\n",
" iter = number of iterations'''\n",
" xr = x0\n",
" ea=1\n",
" for iter in range(1,maxit):\n",
" xrold = xr\n",
" dx = -func(xr)/dfunc(xr)\n",
" xr = xrold+dx\n",
" if xr!=0:\n",
" ea= np.abs((xr-xrold)/xr)*100 # relative error in %\n",
" if ea < es:\n",
" break\n",
" return xr,[func(xr),ea,iter]\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.0791382579723865\n"
]
}
],
"source": [
"hr, out = newtraph(f_h,dfdh,1)\n",
"print(hr)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Compare techniques\n",
"\n",
"Let's compare the relative error in finding the height, $h$, in the previous example as a function of the number of iterations in the bisection (`bisect`) method and the Newton-Raphson (`newtraph`). \n",
"\n",
"What we should see is that as we increase the number of iterations, the relative error decreases. We can compare the rate that the error decreases, $\\frac{\\Delta error}{\\# iterations},$ for our two root locators.\n",
"\n",
"We are going to set the maximum iterations, `maxit=n[i]`, to the desired value in the loop, but we want as low of an error as possible. We set our specified error to `es=0`."
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"n=np.arange(3,30)\n",
"\n",
"err_bisect = np.zeros(len(n))\n",
"err_newtraph=np.zeros(len(n))\n",
"\n",
"for i in range(0,len(n)):\n",
" root,out = bisect(f_h,0,4,es=0,maxit=n[i])\n",
" err_bisect[i] = out[1]\n",
" \n",
" root,out = newtraph(f_h,dfdh,1,es=0,maxit=n[i])\n",
" \n",
" err_newtraph[i] =out[1]\n",
"\n",
"plt.semilogy(n,err_bisect,label = 'bisection')\n",
"plt.semilogy(n,err_newtraph, label = 'Newton-Raphson')\n",
"plt.xlabel('number of iterations')\n",
"plt.ylabel('relative error (%)')\n",
"plt.legend(loc='center left', bbox_to_anchor=(1, 0.5));"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Discussion\n",
"\n",
"There is a drastic difference between the `bisection` function and the `newtraph` function. How many iterations are necessary for the bisection method to reach an error of $10^{-3}$ \\%? How many iterations are necessary for the Newton-Raphson method to reach an error of $10^{-3}$ \\%? \n",
"\n",
"Are there any benefits to the bisection method? When would the Newton-Raphson method not work? or not be appropriate?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Takes about 5 iterations for newtraph function to reach a relative error of 10^-3. Takes about 18 iterations for bisection function method to reach relative error of 10^-3. The benefits to the bisection method is that it doesn't have any limitations and will still reach the same answer eventually compared to the newtraph function that has limitations based upono the derivative of the function in question."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Secant Methods"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"The key to the Newton-Raphson method is its evaluation of the derivative of the function, but we can't always evaluate the derivative. Many numerical functions, such as the solution to differential equations that we worked on in notebooks [01](./01_Catch_Motion.ipynb), [02](./02_Step_Future.ipynb), and [03](03_Get_Oscillations.ipynb) do not have analytical derivatives. Instead, we will approximate the derivative with a modified secant method.\n",
"\n",
"Approximation of derivative:\n",
"\n",
"$f'(x) \\approx \\frac{f(x+\\delta x)-f(x)}{\\delta x}$\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Modified Secant method"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"Change the x evaluations to a perturbation $\\delta$ [1,2]. \n",
"\n",
"$x_{i+1}=x_{i}-\\frac{f(x_{i})(\\delta x_{i})}{f(x_{i}+\\delta x_{i})-f(x_{i})}$"
]
},
{
"cell_type": "code",
"execution_count": 120,
"metadata": {
"jupyter": {
"outputs_hidden": false
},
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [],
"source": [
"def mod_secant(func,dx,x0,es=0.0001,maxit=50):\n",
" '''mod_secant: Modified secant root location zeroes\n",
" root,[fx,ea,iter]=mod_secant(func,dfunc,xr,es,maxit,p1,p2,...):\n",
" uses modified secant method to find the root of func\n",
" arguments:\n",
" ----------\n",
" func = name of function\n",
" dx = perturbation fraction\n",
" xr = initial guess\n",
" es = desired relative error (default = 0.0001 )\n",
" maxit = maximum allowable iterations (default = 50)\n",
" p1,p2,... = additional parameters used by function\n",
" returns:\n",
" --------\n",
" root = real root\n",
" fx = func evaluated at root\n",
" ea = approximate relative error ( )\n",
" iter = number of iterations'''\n",
"\n",
" iter = 0;\n",
" xr=x0\n",
" for iter in range(0,maxit):\n",
" xrold = xr;\n",
" dfunc=(func(xr+dx)-func(xr))/dx;\n",
" xr = xr - func(xr)/dfunc;\n",
" if xr != 0:\n",
" ea = abs((xr - xrold)/xr) * 100;\n",
" else:\n",
" ea = abs((xr - xrold)/1) * 100;\n",
" if ea <= es:\n",
" break\n",
" return xr,[func(xr),ea,iter]\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"n=np.arange(3,30)\n",
"\n",
"err_bisect = np.zeros(len(n))\n",
"err_newtraph=np.zeros(len(n))\n",
"err_modsec=np.zeros(len(n))\n",
"\n",
"for i in range(0,len(n)):\n",
" root,out = bisect(f_h,0,4,es=0,maxit=n[i])\n",
" err_bisect[i] = out[1]\n",
" \n",
" root,out = newtraph(f_h,dfdh,1,es=0,maxit=n[i])\n",
" err_newtraph[i] =out[1]\n",
" \n",
" root,out = mod_secant(f_h,0.001,1,es=0,maxit=n[i])\n",
" err_modsec[i] =out[1]\n",
"\n",
"plt.semilogy(n,err_bisect,label = 'bisection')\n",
"plt.semilogy(n,err_newtraph, label = 'Newton-Raphson')\n",
"plt.semilogy(n,err_modsec, label = 'modified secant')\n",
"plt.title('Convergence rates of solvers')\n",
"plt.xlabel('number of iterations')\n",
"plt.ylabel('relative error (%)')\n",
"plt.legend(loc='center left', bbox_to_anchor=(1, 0.5));"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The modified secant can converge as quick as the Newton-Raphson method, but there is no universal $\\delta x$ that works well for every problem. Typically, it is set as a small number and then varied based upon the conergence rate for the problem. \n",
"\n",
"# Shooting method\n",
"\n",
"Now, we have multiple solving methods to revisit our __Initial Value Problems__. In notebooks [01](./01_Catch_Motion.ipynb) and [02](02_Step_Future.ipynb) we measured the displacement of a ball as a function of time. We _assumed_ the initial velocity was 0 in the case of the dropped object, or we approximated the velocity based upon the first two measured displacements and a finite difference approximation. \n",
"\n",
"Consider the case of the tennis ball that was dropped in the ['data/fallingtennisball02.txt file'](../data/fallingtennisball02.txt). After it strikes the ground, we don't really _know_ the velocity. What we _do know_ is that the position was $\\approx 0$ at t=0.58 s and it was $\\approx 0$ m at t=1.43 s. Solving our differential equation without an initial velocity is known as a \"shooting\" method."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![The shooting method imagined as a catapult aiming at a target](../images/shooting.png)\n",
"\n",
"Solving this type of problem where the __boundaries__ are known is referred to as a _Boundary value problem_. Typically, boudary value problems happen over a distance, rather than points in time, but we will come back to those in the fifth module on boundary value problems. \n",
"\n",
"For now, let's reframe our engineering problem into a root-finding problem. We have a length of time of interest:\n",
"\n",
"t=0.58 - 1.43 sec\n",
"\n",
"in this time, the ball had just struck the ground and is traveling upwards. What is the initial velocity necessary to keep it in the air for $\\Delta t = 0.85~s$ ?\n",
"\n",
"We know that the ball is acted upon by gravity and the force of drag, but we do not an analytical solution for the position as a function of time. First, let's look at the data we have. "
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"at time t=0.58 s, y=-0.0152 m\n",
"at time t=1.42 s, y=-0.0110 m\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"filename = '../data/fallingtennisball02.txt'\n",
"t, y = np.loadtxt(filename, usecols=[0,1], unpack=True)\n",
"tbounce = t[580:1425]\n",
"ybounce = y[580:1425]\n",
"\n",
"print('at time t={:.2f} s, y={:.4f} m'.format(tbounce[0],ybounce[0]))\n",
"print('at time t={:.2f} s, y={:.4f} m'.format(tbounce[-1],ybounce[-1]))\n",
"plt.plot(t,y)\n",
"plt.plot(tbounce,ybounce,'s',label='after bounce 1')\n",
"plt.legend()\n",
"plt.title('Time between bounce 1 and 2')\n",
"plt.xlabel('time (s)')\n",
"plt.ylabel('height y(t) (m)');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, let's look at the `fall_drag` function we created that described the motion of the tennis ball. Remember, this function returns the derivative of the state. So if we input\n",
"\n",
"state = $[x,~v]$\n",
"\n",
"it will return\n",
"\n",
"d(state)/dt = $\\left[v,~-9.81+\\frac{F_{D}}{m}\\right]$"
]
},
{
"cell_type": "code",
"execution_count": 123,
"metadata": {},
"outputs": [],
"source": [
"def fall_drag(state,C_d=0.47,m=0.0577,R = 0.0661/2):\n",
" '''Computes the right-hand side of the differential equation\n",
" for the fall of a ball, with drag, in SI units.\n",
" \n",
" Arguments\n",
" ---------- \n",
" state : array of two dependent variables [y v]^T\n",
" m : mass in kilograms default set to 0.0577 kg\n",
" C_d : drag coefficient for a sphere default set to 0.47 (no units)\n",
" R : radius of ball default in meters is 0.0661/2 m (tennis ball)\n",
" Returns\n",
" -------\n",
" derivs: array of two derivatives [v (-g+a_drag)]^T\n",
" '''\n",
" \n",
" rho = 1.22 # air density kg/m^3\n",
" pi = np.pi\n",
" \n",
" a_drag = -1/(2*m) * pi * R**2 * rho * C_d * (state[1])**2*np.sign(state[1])\n",
" \n",
" derivs = np.array([state[1], -9.81 + a_drag])\n",
" return derivs"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To get the position as a function of time, we can use any of the integration methods that we defined in [03_Get_Oscillations](./03_Get_Oscillations.ipynb). Here we copy in the second-order Runge-Kutta explicit method. "
]
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {},
"outputs": [],
"source": [
"def rk2_step(state, rhs, dt):\n",
" '''Update a state to the next time increment using modified Euler's method.\n",
" \n",
" Arguments\n",
" ---------\n",
" state : array of dependent variables\n",
" rhs : function that computes the RHS of the DiffEq\n",
" dt : float, time increment\n",
" \n",
" Returns\n",
" -------\n",
" next_state : array, updated after one time increment'''\n",
" \n",
" mid_state = state + rhs(state) * dt*0.5 \n",
" next_state = state + rhs(mid_state)*dt\n",
" \n",
" return next_state"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Defining our problem for Python \n",
"\n",
"Now, we can finally ask our engineering question in a Python way. \n",
"\n",
"We need a function, $f(v_0)$, such that when we input the correct velocity for the initial condition, $f(v_0^{correct})=0$\n",
"\n",
"So we define a new function with `def`"
]
},
{
"cell_type": "code",
"execution_count": 125,
"metadata": {},
"outputs": [],
"source": [
"def f_v(v0,y0=ybounce[0],yT=ybounce[-1],T=(tbounce[0],tbounce[-1]),N=50):\n",
" ''' define a function f(v) that returns \n",
" ymeasured(T)-ypredicted(T)\n",
" here, the time span is based upon the tbounce variable defined above from \n",
" the first bounce to the second bounce\n",
" \n",
" arguments:\n",
" ---------\n",
" v0: the unknown initial vy velocity component\n",
" y0: the known initial position\n",
" yT: the known final position\n",
" T: a list of two times (beginning time, end time)\n",
" N: the number of time steps to integrate the RK2 method default = 50\n",
" \n",
" returns:\n",
" --------\n",
" error: the difference between vmeasured(T) and vpredicted(T)\n",
" when f_v(v0)= 0, the correct initial velocity was chosen\n",
" '''\n",
" \n",
" \n",
" # initialize array\n",
" t_sol=np.linspace(T[0],T[1],N)\n",
" dt=t_sol[1]-t_sol[0]\n",
" num_sol_drag = np.zeros([N,2])\n",
"\n",
" # Set intial conditions\n",
" num_sol_drag[0,0] = y0\n",
" num_sol_drag[0,1] = v0\n",
"\n",
" for i in range(N-1):\n",
" num_sol_drag[i+1] = rk2_step(num_sol_drag[i], fall_drag, dt)\n",
" error = num_sol_drag[-1,0]-yT\n",
" #plt.plot(t_sol,num_sol_drag[:,0])\n",
" return error"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Take a look at the pieces of this function:\n",
"\n",
"1. Create an array of time `t_sol`\n",
"\n",
"2. Set initial conditions to `y0` and `v0` <- __here `v0` is our unknown value__\n",
"\n",
"3. Use Runge-Kutta second order to integrate the function for `t_sol[0]` to `t_sol[-1]`\n",
"\n",
"4. Create an output, `error` of the difference between the measured y(T), `yT`, and the current solution for y(T), `num_sol_drag[-1,0]`\n",
"\n",
"When `error` is 0, we have chosen the correct initial velocity, `v0`.\n",
"\n",
"To see what the output looks like, below we can take out the integration part and plot the results for a guess of `v0`."
]
},
{
"cell_type": "code",
"execution_count": 126,
"metadata": {},
"outputs": [],
"source": [
"# initialize array\n",
"N=50\n",
"T=(tbounce[0],tbounce[-1])\n",
"t_sol=np.linspace(T[0],T[1],N)\n",
"dt=t_sol[1]-t_sol[0]\n",
"num_sol_drag = np.zeros([N,2])\n",
"num_sol_drag[0,0] = ybounce[0]\n",
"num_sol_drag[0,1] = 3\n",
"\n",
"for i in range(N-1):\n",
" num_sol_drag[i+1] = rk2_step(num_sol_drag[i], fall_drag, dt)"
]
},
{
"cell_type": "code",
"execution_count": 127,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(t,y)\n",
"plt.plot(t_sol,num_sol_drag[:,0],'s')\n",
"plt.title('Predicted motion after bounce')\n",
"plt.xlabel('time (s)')\n",
"plt.ylabel('height y(t) (m)');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercise\n",
"\n",
"Enter your best guess for `v0`. What is the error between the measured `yT` and your predicted y(T)? _Hint: use our function, `f_v`, and plot the results._"
]
},
{
"cell_type": "code",
"execution_count": 128,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def f_v(v0,y0=ybounce[0],yT=ybounce[-1],T=(tbounce[0],tbounce[-1]),N=50):\n",
" # initialize array\n",
" t_sol=np.linspace(T[0],T[1],N)\n",
" dt=t_sol[1]-t_sol[0]\n",
" num_sol_drag = np.zeros([N,2])\n",
"\n",
" # Set intial conditions\n",
" num_sol_drag[0,0] = y0\n",
" num_sol_drag[0,1] = v0\n",
"\n",
" for i in range(N-1):\n",
" num_sol_drag[i+1] = rk2_step(num_sol_drag[i], fall_drag, dt)\n",
" error = num_sol_drag[-1,0]-yT\n",
" #plt.plot(t_sol,num_sol_drag[:,0])\n",
" return error\n",
"# initialize array\n",
"N=50\n",
"T=(tbounce[0],tbounce[-1])\n",
"t_sol=np.linspace(T[0],T[1],N)\n",
"dt=t_sol[1]-t_sol[0]\n",
"num_sol_drag = np.zeros([N,2])\n",
"num_sol_drag[0,0] = ybounce[0]\n",
"num_sol_drag[0,1] = 3\n",
"\n",
"for i in range(N-1):\n",
" num_sol_drag[i+1] = rk2_step(num_sol_drag[i], fall_drag, dt)\n",
"plt.plot(t,y)\n",
"plt.plot(t_sol,num_sol_drag[:,0],'s')\n",
"plt.title('Predicted motion after bounce')\n",
"plt.xlabel('time (s)')\n",
"plt.ylabel('height y(t) (m)');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Solving the engineering problem\n",
"\n",
"Now, we have all the components we need for this \"shooting\" problem. We can't evaluate a derivative easily and the bisection method is too slow. Therefore, we will use the `mod_secant` function to find the correct initial velocity. \n",
"\n",
"Below is the solution. _Just one line of code!_"
]
},
{
"cell_type": "code",
"execution_count": 129,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4.175915400675785 m/s is the correct initial velocity to match the height at beginning and end of bounce\n",
"the solve took 3 iterations\n"
]
}
],
"source": [
"v0,out = mod_secant(f_v,0.0001,7,es=0.000001) # <-- solution line\n",
"print(v0, 'm/s is the correct initial velocity to match the height at beginning and end of bounce')\n",
"print('the solve took ',out[2],' iterations')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercise\n",
"\n",
"Change the value of the `dx` and `x0`. Does it change the final result? Does it change the time it took to arrive at the solution or the number of iterations?"
]
},
{
"cell_type": "code",
"execution_count": 130,
"metadata": {},
"outputs": [
{
"ename": "SyntaxError",
"evalue": "invalid syntax (<ipython-input-130-bcf253eee2fd>, line 2)",
"output_type": "error",
"traceback": [
"\u001b[0;36m File \u001b[0;32m\"<ipython-input-130-bcf253eee2fd>\"\u001b[0;36m, line \u001b[0;32m2\u001b[0m\n\u001b[0;31m mod_secant?\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
]
}
],
"source": [
"'''dont know how to do this one'''\n",
"mod_secant? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# What we've learned\n",
"\n",
"* How to find the 0 of a function, aka root-finding\n",
"* The difference between a bracketing and an open methods for finding roots\n",
"* Two bracketing methods: incremental search and bisection methods\n",
"* Two open methods: Newton-Raphson and modified secant methods\n",
"* How to measure relative error\n",
"* How to compare root-finding methods\n",
"* How to frame an engineering problem as a root-finding problem\n",
"* Solve an initial value problem with missing initial conditions (the shooting method)\n",
"\n",
"* _Bonus: In the Problems you'll consider stability of bracketing and open methods._\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# References\n",
"\n",
"1. Chapra, Steven _Applied Numerical Methods with Matlab for Engineers._ McGraw Hill. \n",
"\n",
"2. _Computational Physics with Python_, lecture notes by Eric Ayars, California State University, Chico. Available online on the author's website: https://physics.csuchico.edu/ayars/312/handouts/comp-phys-python.pdf"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Problems\n",
"\n",
"1. One of the main benefits of a bracketing method is the stability of solutions. Open methods are not always stable. Here is an example. One way engineers and data scientists model the probability of failure is with a [sigmoid function e.g. this Challenger O-ring case study](https://byuistats.github.io/M325_Hathaway/textbook/challengerLogisticReg.html)\n",
"\n",
"$$\\begin{equation}\n",
" \\sigma(T) = \\frac{e^{a_0-a_1 T}}{1+e^{a_0-a_1 T}}\n",
"\\end{equation}$$\n",
"\n",
"The Challenger explosion was a terrible incident that occurred due to the failure of an O-ring. The post-mortem data analysis showed that at low temperatures the O-rings were brittle and more likely to fail. We can use the function $\\sigma(T)$ to determine the point at which there is a 50\\% chance of O-ring failure. Using the pass-fail data, the two constants are\n",
"\n",
"$a_0 = 15.043$\n",
"\n",
"$a_1 = 0.232$\n",
"\n",
"a. Plot the function $\\sigma(T)$ for $T=0-100^{o}F$. Where do you see the function cross 50\\% (0.5)?\n",
"\n",
"b. Create two functions `f_T` and `dfdT` where `f_T`=$f(T)=\\sigma(T) - 0.5$ and `dfdT`=$\\frac{df}{dT}$\n",
"\n",
"c. Use the `incsearch` and `newtraph` functions to find the root of f(T). When does Newton-Raphson fail to converge? Why does it fail? _Hint: if you're stuck here, take a look at this [youtube video finding an interval of convergence for the Newton-Raphson method](https://youtu.be/zyXRo8Qjj0A). Look at the animation of how the method converges and diverges._"
]
},
{
"cell_type": "code",
"execution_count": 131,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Sig (T)')"
]
},
"execution_count": 131,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np \n",
"import matplotlib.pyplot as plt\n",
"\n",
"def ft1(T,a0=15.043,a1=0.232):\n",
" ft1=(np.exp(a0-a1*T))/(1+np.exp(a0-a1*T))\n",
" return ft1\n",
"\n",
"T=np.linspace(0,100,20);\n",
"plt.plot(T,ft1(T))\n",
"plt.plot(T,np.zeros(len(T)))\n",
"plt.xlabel('Temp (C)')\n",
"plt.ylabel('Sig (T)')"
]
},
{
"cell_type": "code",
"execution_count": 132,
"metadata": {},
"outputs": [],
"source": [
"ft=ft1(T)-0.5\n",
"def incsearch(func,xmin,xmax,ns=50):\n",
" x=np.linspace(xmin,smax,ns)\n",
" ft=func(x)\n",
" signf=np.sign(ft)\n",
" deltaf=signf[1:]-signf[0:-1]\n",
" izeros=np.nonzero(deltaf!=0)\n",
" nb=len(izeros[0])\n",
" xb1=np.block([[x[izeros[0]+1]],[x[izeros[0]]]])\n",
" if nb==0:\n",
" print('No Bracket Found')\n",
" else:\n",
" print('Number of Brackets: {}')\n",
" return xb1"
]
},
{
"cell_type": "code",
"execution_count": 133,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'smax' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-133-c859d2bd3948>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinspace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmn\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mmx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mxb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mincsearch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mft1\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mmn\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mmx\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m50\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mxb\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcos\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mxb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m's'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m<ipython-input-132-b2120569bc1d>\u001b[0m in \u001b[0;36mincsearch\u001b[0;34m(func, xmin, xmax, ns)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mft\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mft1\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.5\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mincsearch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mxmin\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mxmax\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m50\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mx\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinspace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mxmin\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msmax\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mns\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0mft\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0msignf\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msign\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mft\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNameError\u001b[0m: name 'smax' is not defined"
]
}
],
"source": [
"mn=0\n",
"mx=100\n",
"x=np.linspace(mn,mx)\n",
"\n",
"xb = incsearch(lambda x: ft1(T),mn,mx,ns=50)\n",
"\n",
"plt.plot(xb,np.cos(xb),'s')\n",
"plt.ylabel('$\\cos(x)$')\n",
"plt.xlabel('x')\n",
"plt.title('Upper bounds={:.2f},{:.2f},{:.2f}\\nLower bounds={:.2f},{:.2f},{:.2f},'.format(*xb[0,:],*xb[1,:]));"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. In the examples shown above, we determined the initial velocity after the first bounce by specifying the beginning y(0) and end y(T) for an object subject to gravity and drag. Repeat this analysis for the time period just after the second bounce and just before the third bounce. The indices are given below for t[1430:2051] = 1.43-2.05 seconds.\n",
"\n",
" a. What is the velocity just after the second bounce?\n",
"\n",
" b. What is the coefficient of restitution for the second bounce? _Hint: use the ratio of the last velocity from above to the initial velocity calculated here._\n"
]
},
{
"cell_type": "code",
"execution_count": 134,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.4300000000009008 2.051000000004969\n"
]
},
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f8917c97ef0>]"
]
},
"execution_count": 134,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"i0=1430\n",
"ie=2051\n",
"print(t[i0],t[ie])\n",
"plt.plot(t,y)\n",
"plt.plot(t[i0:ie],y[i0:ie],'s')"
]
},
{
"cell_type": "code",
"execution_count": 135,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"at time t=1.43 s, y=0.0003 m\n",
"at time t=2.05 s, y=-0.0062 m\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcAAAAE0CAYAAAC7JuN8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOydd5gV5dXAf2cbC2yht106SFOKgIiggBg0olEjlsQC1lhS1ZiYiBI/o0mMUZPoZ/yiojFqYsPYsKNCbKDSBKT33nZZYOv5/pi5984ut+7eu/fu7vk9zzxzZ94yZ8qdM+/7nnNeUVUMwzAMo6mRlmwBDMMwDCMZmAI0DMMwmiSmAA3DMIwmiSlAwzAMo0liCtAwDMNokpgCNAzDMJokKa0ARaSHiGgdlx4iMs23nexzSiQiMsc9z5nJlsVIHDX+F+OTLY8RGhEpEJHvisjvROQ9ESny3LtpyZavPhGRme55z6ll+X4icpOIvCoi60TksIgcFJFVIvKEiJwQa50ZtRHEMELhKt+pwAeqOj650hhG0pkHdE+2EA0dEbkBuDdEcm93uVREHgauV9WqaOpN6RYgsB7IDbGc7sl3TZh86+tRXsMwjGDsA94B/p1sQRooee56JXAbMAboDHQCzgYWuunXAL+LttKUbgGqE6bmQLA0ETnk2SxV1aD5XGa6i2EYRn3yI+Ab4BtV9XVZn59ckRokK4FzVfXFIGkvi8jbwH+BIcDPROR+Vd0SqdJUbwEahmE0WFT1FVVdoRZzsk6o6j9DKD9f+kHgDnczA/hWNPU2CQUYzgimpkGBiDQTkV+IyEIROSAiO9xB15E1yk0QkVdEZKs7GLtURG4UkfQo5JkoIk+LyHq37H4R+VxEfikiLeN43meJyNsislNEDrky3iYiLaIo28UduP9KRPa5cq4RkUdFZGCQ/NPc6zvV3TUuiEHSTDfvne72yhDHnu4pc1+IPPPc9P8Lkd5cRH4qIh+4518mIttEZJaInB6sTI3yIiLnishLIrJZREpFZI+IfCQi14lIZohy42sYYLV0r/kSESlxr+UcEZkSSYZocY9xu3t/S1w53xaRM6IomyUiP3Sv0y73PLeIyIsiMjlMuWrnGSbfDDfPuiBp1f6XItJORO4RkZXu87ZbRN4QkQlRnEe6iFwsIi977tdOEflCRO4XkePDlI3pWU81XPl/4J671zhkjYg8KSKjIpSvZpQjIlNFZK6I7HXrWSgiN4tIVoR6WrjP+lJx3jc7ReQtETkzjqcbjqWe312iKqGqDXIBxgPqLtMi5J3myxskrYennu8An3u2vcthYKJb5hagKkS+J8PIkQ08HaKcb1kN9K3lNZnj1jET+G2YYywFOoap50LgYJjyFcBVoa5xmGWmm3eiZ19hkOO/60n/Kkh6C6DMTf9+kPTBwLoIsjwGpIc4/9Y1ZAi2fA50iPBcHg98HaaOW2t5n73P7DnA4jDH+GOYeroCSyKc59NAVoTz7BHmGDPcPOvC/S+BgcCmEDJUAZeGOUZ34MsI57EvXs96fb23Yqhzb4RzrwJuCVPel+8K4Lkw9bwJpIWoo2OEZ/1/cN5LCsyJ1/WsIcNJnuNdF1WZRAhSH0ssDxLRK8A1QBHwM6An0BY4C9hCQDlNcX8/BYwE2gDHALM89UwKIYfv4SoH7nfLtwUKgItxDHYUWA60rMU1meOWX+uuZ+MMFrcFBgEPEFDcHwISpI4zPHnm4gwwF7jnOcZznlXe88Tpdshxr4sCH7nb3qWZm7c5UOrmu6TG8bMIvJDK3OO0rZFnkudad6mR1g3Y7aatB67GsRBr7V6D3+O81BS4M8j5Z+CMJShQgvMCH+yW7wFc56n/A2q8EKj+XK4GdgLXe56niQQUVgUwoBb3uYfnGGvda3kb0Adoh9P9M9+T54ogdTQDFnnk+AOOEmoLjAZe9pR/MML/r0cYWWcQnQJc7Z7LJUChex5nAxvc9OKaz4FbR2uc/63vPB7E+fBoh/NSPgm4E1gar2e9vt5bMdQ5H7gH538xyD33Hu72857jnRaivPceVOAYkRztXtshwIuePFcHKS847xPftbrPlaOtex3f9DyriVSAD3jkHBpVmUQIUh9LLA8S0SvAcmBMkDyn1Mjz1yB5Mj1/xGeCpH/XU8cRrRY3Txdgu5vnplpckzmeY7xBkBYOzovSl+fcGmnZnuO/QeivvSfdPIuDpM2M5iH3/GEerbHf9xW3HEfBKPDdGnnucvevCFLvf9y0TUD7EMe+ws1TypEK9AbPfT4pRPmjgUNuvilhnstioH+Q8gUElPzvanGfvc9s0OcJaElA0e7E/fjwpP/UUz7US+1ZT57BYc6zRxhZZxCdAtxE8Bb1sZ481wRJf5jAi/e7YeTIiPezXpuFBCjAKI75e/d4H4RI9z5LFwVJTyPQwv4kSPoUT/lfBUlPB9725JmTgHPsi9NLp8DHUZerjxuQoJsa9YNE9ArwqRDlxX2JKI5Val6IfH9086wJkuZ7mb8aQdbpbr4va3FN5njOJWjLAkdRbwkmC3CZu7+S8F2kXT3HGVIjbWY0DznOgPUR1wq43d3/vwRenn+pkedjd//fauzvReCLfkqYYwuwys33kxpp69z9R3zk1Mj3qJvvpTDP5V1hyvtaWO/W4j57n9kjXkiefJM9+Woqal/X54Iw5TsS6Gr+c5jz7BGmDt89XBckbZqnjiOUsCffQoJ/LOUReOk9EeM1rPOzXpuF5CjAgQRayC2CpPvk+W+YOn5G4KOx5sfEqwQ+YjJClB/kOc6cOJ9fc+ALAh+ux0VbtkkYwcTAm8F2qnOV17ibn6hqUYjyq911J+9OcYxORrub74lITqiFwEDu4EiDzmFYrqrLQpxLOfCKu1kzcsIp7nohUBJGxr04HwQAI2op4/vuuqeIdPPsH+9J9+XxG0G4xx/hyeNlIo5yqwL+G0b+lgT8hvzyi0hfAk7LcyLcp8U1ywfhjTBpK9x1pzB5ouGlMGmzcVqa4HRFASAirXFeiuB0kQVFVbfjtNQBTqyDjNFQm2s1FqcrF2J3c6rPZz3hiMgIEXlYRBaJY1RX6TEw8r1T0nGGA0IRzT3Iwuka9R1XCDxbr6hqRbDCqroUxx0krrjHfxwY5u66VVU/i7Z8SvsBJoFwfiM+v8OtUeRpXmN/L5yWFzjRDEJFNPCShjMWsS2KvDVZHiHdpxxbi0ieR6H3c9fDcLrvoqF9rMK5fIzzNdkMR8E9ISLZOOM34LRm9+N84Q8SkQ6qugPnpZfhyePFJ38asDlKObzy9/P8fq4W5WsS7nnyKaaIFrkRCHmvVbVSHEvbIVSPRtIN50MBHMOFcCzF+bDoHiFfXanNtfK+zL+K8Xj1+awnFBG5E/gVgXsajvwwadHcA6h+H/KBVu7vaN47R0XIEyv3Axe4vx9W1d/HUthagNWpjFOemoR76MKRXcty4YIC1EzP9fyujZy1klFVDwOfuJu+Ft5ot76vVXWHqpbiKEoItAx9eZeras2Pg7rKX5vyzcKkRfOsRPPSCke099p7n3ODpIfCpxxyw+aqI6pam2uV5/kdrRLzUW/PeiIRkQuAX+Ncm4+Ai3C6G9vjXJ9cHCM9H+EaPdG+27z3IcfzO5b3Tp0Rkd8AP3Y3n8YxNosJawHWD94bf4aqvpbg4+XEkO59cfjkfF5Vz4uvSEGZA4wjoNx8a2/X5vs4Sm8CThgpX545Qerzyb9LVWvzte69T0e73TapTrT32nufi4Okx1IenPGWaEjkO8YrUy5Od2W01Peznih8L/3/AuM1SAxMCeGzGie8/5lY3jt1QpzYoLe5m/8BpgY790hYC7B+WIczLgWBvupE0j9C+gB3vbfGeKZvnLM+ZISAousuIj0JtO5qKkCACSKSCwwPkseHT/52IlJYC3nWeH7X1zWoKyHvtThBGfq6m96YuD7XAgiMBYZikLteV2P/Yc/vml3+XqJzSK4dqzy/h8ZYtr6f9UThO+9/h1EAx4TYHw/248Q5hejfO3VCRK4kMIz0HnB+qLHHSJgCrAdUdT/gG5i9RKKIFlNH+otI0IfR/Rr0RWb4b43kt9x1bxGprdFDubuO5hw/IfAi/TYwCtdc25PnM5zxh344ff2+eucEqe9tz+/LohO3GksIjPHWpnwyOCdM2mkExmvm+Xaq6l4ChhHnhiosIh1w3FLA8ZPz4h0L70cQ3Of8lGBpcWIugednaoxl4/GspwK+Lvhw/7dLEnVw10DQ92ydISJBW/wiMog4jP+JyIXA39zNT4Cz3KGSWmEKsP74k7s+CrjXtV4KihvWKZy1VjTcJyLB7u8tOFHUwbGe8vIUsMP9/XcR6RjuACIS7MW3211H/PKvMcZ3M46F2RJV3eXJU0ZAUd/qrr92DWJq1rcceN3dvEUizA8mIh1ci0hfecVx4gU4WUR+FqF8MxFJtHFIJEaJyPdr7hQnpJ4vKv4uApa/Ph5118NF5IoQdd+Pc08A/u5NUNUNBJRgKOXzSxw3goTg9l7MdDcvFZGzQuUN8mKOx7OeCvhast8J9k4Rkakk9iMEAvegEOd/XFOGdAL/q1ojTgjDJ3H01iLgdA0/CUJk6sMPJRELifEDHB+mjjlunpm1OY6b/oznWO/jfL0X4gzId8OJ3HA3TndTWD+0CDKuJeDgewKONelAnBdapEgwp+MMhivOC+4GnG6w1jh+YSNwoqG8CxQFKX+e5xyvBzrgjANlEMTZmOqO+Qo8ECTPr2rkOSIyiSdvVwIOzqU4XSW+yCBtcbphvu/ei0PAiBrlMwk46StOFIzTcD4aWuFEdDkDJ+rEdmoELCAO/nFR3GfvM7vWPc/pOFaRbXEiwXhD+kWKBFPuPnf93WfleBz3Cl/5h0LI4Q239yDOx11rnG7qR9z9Pn/LI86TCP8XT76ZhPAfo3okmHLgzzg9CW3dZ+8E91ovifezHuW9KnSvp2+5znPN/qdGWu9a1D/DU98z7rVvixO96E84vn9LPXmOeMd50qaFOU7I55ojI8H8Ced/1sa9/nWOBIPjhuMLHrHOfdZrRpo6IupUxHprc1NTYaFhKsAsApErIi331uKa+GXEeaGFqjtSLNDvEDm+oAK7g5RtjuMPGSz/EdfOfbC9ec4Okmd0jTwhndzd/P0JH5fQt1QRxLkZx3puVhTlFfhRmOeyRxgZZxAfBXgO4eN5hnyOqEMsULd8SwIOyMGW+8KdJ3FQgJ7rsSiMHEroWKC1ftajvFczoqg75P8jivpb4AwThKpzCXCcZ/uId5wnbVqY44R9rokcC/S3ke5jlM9AXK+ldYHWI6papqrX4Hyl/Q3HL6YY5yttD85X+x9xvppuquOxbsEZ33kPp1vysHu824GR6jg5hyr7HxzfxVtwvux2uTKW4MzL9SzwPZwXT82yh3CU2sM4X/+Ha+apwacE/CeVgOO1l88JWJsp1ccIg8m/HOcLeCpO198WnIgmpcBGHAfxHwNdVXVhkPJFqno2jv/bEzgKvQSnhbETZ8zjDpx4g3+JcH6JZi9O6+FOnPt7kMDkq2eq6o2hCqrqRpxQYz/CMaHfg3OOW3E+AM5U1e+r0w0drHwJjhXvnTiO0qVuHe/ijM2E7UKOF6q6Duc8rsRpbezAOY8dOAr6PkJMj1OXZz0VUGcaoPHAb3D88EpxDFO+xHGPOI5AV28i5diO02KegfMcHsZ577wHnKOqv060DLVBXO1qGIZhGE0KawEahmEYTRJTgIZhGEaTxBSgYRiG0SQxBWgYhmE0SSwWaBS0a9dOe/TokWwxDMMwGhQLFiyobVzeesEUYBT06NGD+fPnJ1sMwzCMBoWIrI+cK3lYF6hhGIbRJDEFaBiGYTRJTAEahmEYTRJTgIZhGEaTxBSgYRiG0SQxBWgYhmE0ScwNIkGoKm8u3UZedib5LTLpmJdNu5xmkQsahmEY9YIpwARxuLyKa576otq+TnnZjO7dlsnHdGZcv/ZkplsD3DAMI1mYAkwQ+w+VH7FvW9FhXvpyMy99uZmCVs35wbheXDiyG1kZpggNwzDqG1OACWTSwI7sP1TOvoPlrN9TwuHyKn/a5n2HuO3lpTz58XruOucYjuvZJomS1i+qSnFxMUVFRRw8eJDKyspki2QYRhgyMjLIz8+nTZs2ZGQ0HrVhE+JGwYgRI7SuodAqKqv4emsRry3eyvPzN7G7pPok29eN780N3zqKjEbeLaqq7Nixg5KSEtq0aUNOTg7p6emISLJFMwwjCKpKWVkZu3fvprS0lO7du5OWFt17SkQWqOqIBItYa0wBRkE8FKCXQ2WV/OOTdTzwzkpKygKtnzF92vLQRcPJb54Zt2OlGkVFRezatYvu3buTnp6ebHEMw4gSVWXTpk20aNGCtm3bRlUm1RVg425upCjNs9K5+qTevHPjOE7s286/f96q3Vzwt4/ZUXw4idIllqKiItq0aWPKzzAaGCJCq1atKCkpSbYocSNlFKCI9BORn4jIUyKyXESqRERFZEot65vplg+1LI/3OcRK5/zmzLzsOH4ysa9/3/JtxZz38Mds2984leDBgwfJyclJthiGYdSCFi1acOjQoWSLETdSaTTzWuAnCah3HrAqyP6tCThWzKSnCT/71lF0a9OCm19YRGWVsn73QS559FOeu2Y0rVpkJVvEuFJZWWmtP8NooKSlpVFVVRU5YwMhlRTgEuAeYD6wAHgUGBeHev+uqjPjUE9COXd4IbnZGVz3zy+oqFJW7jjAtMc/55mrjqd5VuNSGGbwYhgNk8b2302ZLlBV/buq3qyq/1bV1cmWJxlMGtSJe88fgu8Z+2rjPm55cRFmqGQYhhF/UkYBGg5nDS3g9jMG+rdnfbWFR+euTaJEhmEYjZNU6gJNFBNEZDCQA2wH5gJvq2rKdmRPPaEHy7cV8+znGwG46/VlDC5s1aSc5Q3DMBJNU2gBXgr8DLgKuBWYDSwWkWOSKlUYRITfnDWIYd1aAVCl8LN/fUXR4SPDqxmGj71793LttdfSrVs3MjMzERHOPvvsZIsVlhkzZiAizJgxI9miNFpee+01pk+fzmmnnUa7du0QEbPEdmnMCvAr4MfAIJzWXxfgDGAhMBB4R0QKQhUWkatFZL6IzN+5c2d9yFuNZhnpPHTRsX6n+M37DnH7y0vrXQ6j4XDVVVfx8MMPk5GRwZQpU5g6dSonn3wyANOmTUNEmDlzZnKFNOqdiy66iDvvvJM333yT3bt3J1uclKLRdoGq6v01dpUAr4nI28AHwPHALcAPQ5R/BHgEnEgwCRQ1JJ3zm3PXOcdw/dPOrBIvfbmZUwZ0ZPLgzskQx0hhysvLefnll8nOzuarr74iLy8v2SIZKcK5555Lv379GD58OG3btmXYsGHJFillaLQKMBSqWiYidwMvA6cnW55ITB7cmfeWF/LCF5sAuP0/Sxnbpx35LRpvuDQjdrZu3UpFRQUFBQWm/IxqPProo/7f69atS54gKUhj7gINhy8KTMgu0FRixncG0jHPmUx314FSfjc76UFsGg739IUZ+Ucu9/SNXDZJfPrpp/z85z9nxIgRdOzYkaysLLp06cKUKVP45JNPjsgvInTv3h2A9evXIyL+Zd26dYgITzzxBACXXXZZtfSaXaK7d+/m1ltv5ZhjjiEnJ4eWLVty7LHHct9991FefuQYtLdrdfHixZx33nl06tSJ9PR07r+/ZidMeNauXcvFF19Mx44dyc7OZtCgQdx7771UVFQEza+q/OMf/2D8+PG0bt2a7OxsevfuzfXXX8/GjRuPyO+7Fj169Agpg++6hNv/r3/9i9GjR5OTk0Nubi4TJ05k7ty5IessKSnhj3/8I6NHj6ZVq1Y0b96cXr16cd555/H6668fkb+8vJyHH36YE0880X9effv25YYbbiAZwzGNmSbXAnTxRXI9kFQpoiQ3O5PffGeQf4LdZz7bwHePLWBkD7MKjUjJjtj2pwC//vWvmTNnDoMGDeK4446jWbNmrFixghdeeIFZs2bxzDPPcN555/nzT506lQMHDvDCCy/QsmVLpkwJRA/Myclh6tSpzJ07l9WrVzNmzBj69OnjT/f+Xrx4MaeddhpbtmyhsLCQ8ePHU1VVxaeffsoNN9zAa6+9xuuvv05W1pHRiebNm8c111xDQUEB48ePp7i4mBYtWkR9zmvXrmXEiBFkZ2czfvx4ioqKeP/997npppuYO3cuL7zwQrUZCFSViy++mKeffprMzEzGjx9PmzZt+Oyzz3jooYd49tlnmT17NiNHjoxahmi47bbb+O1vf8vYsWOZPHkyixYt4r333mPu3LnMmTOH0aNHV8u/fv16Tj31VFasWEFOTg5jx44lPz+fjRs38sYbb7Bz505OPz3QEVVUVMTkyZOZO3cu+fn5DB8+nFatWvHFF19w33338cILL/DBBx+EVeJGDKhqSi7AHECBKQmo+z637tnR5B8+fLgmm6qqKr1i5ufa/RevavdfvKqn3f+hVlRWJVusmPn666/r94C354VeUpQ33nhDt23bdsT+//znP5qZmalt2rTRkpKSamlr165VQLt37x60zqlTpyqgjz/+eND0gwcPas+ePRXQu+66S8vLy/1pu3fv1lNOOUUBvf3224PWC+ivf/1rraysjOlcb7/9dn/5c889Vw8dOuRP++abb7SgoEABffDBB6uVe/DBBxXQjh076pIlS/z7Kyoq9Ec/+pH/Whw+fNifFukaqapfllD727Rpo/Pnz/fvr6ys1KuuukoBPeWUU6qVqays1GHDhimgZ511lu7Zs6daelFRkb7zzjvV9l1wwQUK6JQpU6rlr6io0JtvvlkBHTduXEj5I+G7Bi1btqx1HbH8h4H5mgL6JNSSdAFCChaFAgTuxunOvLvG/qE4Fp/pNfZnADcAlW7dp0YjSyooQFXVzXsPav9b3/ArwWc/W59skWLGFGDd+P73v6+Avvrqq9X211UBPvTQQwro+eefHzR98+bNmpmZqe3atdOqqsCHl6/e/v37a0VFRczn41OAzZs31+3btx+R/thjjymgffr0qba/V69eCugjjzxyRJnS0lLt2rWrAvrUU0/598dDAf7lL385Im379u0KaLNmzbSsrMy//6WXXlJAe/TooQcPHgx5TB9Lly71yxcsf2VlpQ4ePFgBXbRoUcT6gmEKsPqSMmOAInKsiHziW4Bj3aS7auz30hno56699ABeAXaIyMci8pyIzAbWA/e6eX6hqm8m5mwSQ5dWzfnBuF7+7T++9Q0HSoOPjxgNm127djFz5kxuuukmrrzySqZNm8a0adNYsmQJAN98801cj+cbi/J2rXrp0qULffv2ZdeuXaxcufKI9LPOOqtOQc4nTZpEhw4djth/0UUXkZaWxqpVq9i8eTMAmzZtYs2aNaSlpXHJJZccUSYrK4uLLroIgDlz5tRapmCcccYZR+zr0KEDrVu3prS0tJqbwezZs/3n0Lx584h1v/HGG/5jBMuflpbG2LFjAfj4449rJb9RnVQaA8wDRgXZXxtrhYXAA8BxQHdgGM4X3CbgceBBVV1QSzmTytUn9eKZzzawvaiUncWl/O2D1dw4qV+yxTLiyN/+9jdu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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"filename = '../data/fallingtennisball02.txt'\n",
"t, y = np.loadtxt(filename, usecols=[0,1], unpack=True)\n",
"tbounce = t[1430:2051]\n",
"ybounce = y[1430:2051]\n",
"\n",
"print('at time t={:.2f} s, y={:.4f} m'.format(tbounce[0],ybounce[0]))\n",
"print('at time t={:.2f} s, y={:.4f} m'.format(tbounce[-1],ybounce[-1]))\n",
"plt.plot(t,y)\n",
"plt.plot(tbounce,ybounce,'s',label='after bounce 1')\n",
"plt.legend()\n",
"plt.title('Time between bounce 1 and 2')\n",
"plt.xlabel('time (s)')\n",
"plt.ylabel('height y(t) (m)');"
]
},
{
"cell_type": "code",
"execution_count": 136,
"metadata": {},
"outputs": [],
"source": [
"def falldrag(state,C_d=0.47,m=0.00015,R=0.0661/2):\n",
" rho=1.22 #density of air\n",
" adrag=-1/(2*m)*np.pi*R**2*rho*C_d*(state[1])**2*np.sign(state[1])\n",
" derivs=np.array([state[1],-9.81+adrag])\n",
" return derivs"
]
},
{
"cell_type": "code",
"execution_count": 137,
"metadata": {},
"outputs": [],
"source": [
"def rk2step(state,rhs,dt):\n",
" midstate=state+rhs(state)*dt*0.5\n",
" nextstate=state+rhs(midstate)*dt\n",
" return nextstate"
]
},
{
"cell_type": "code",
"execution_count": 138,
"metadata": {},
"outputs": [],
"source": [
"def f_v(v0,y0=ybounce[0],yT=ybounce[-1],T=(tbounce[0],tbounce[-1]),N=50):\n",
" # initialize array\n",
" t_sol=np.linspace(T[0],T[1],N)\n",
" dt=t_sol[1]-t_sol[0]\n",
" num_sol_drag = np.zeros([N,2])\n",
"\n",
" # Set intial conditions\n",
" num_sol_drag[0,0] = y0\n",
" num_sol_drag[0,1] = v0\n",
"\n",
" for i in range(N-1):\n",
" num_sol_drag[i+1] = rk2_step(num_sol_drag[i], fall_drag, dt)\n",
" error = num_sol_drag[-1,0]-yT\n",
" #plt.plot(t_sol,num_sol_drag[:,0])\n",
" return error\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 139,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# initialize array\n",
"N=50\n",
"T=(tbounce[0],tbounce[-1])\n",
"t_sol=np.linspace(T[0],T[1],N)\n",
"dt=t_sol[1]-t_sol[0]\n",
"num_sol_drag = np.zeros([N,2])\n",
"num_sol_drag[0,0] = ybounce[0]\n",
"num_sol_drag[0,1] = 3\n",
"\n",
"for i in range(N-1):\n",
" num_sol_drag[i+1] = rk2_step(num_sol_drag[i], fall_drag, dt)\n",
"plt.plot(t,y)\n",
"plt.plot(t_sol,num_sol_drag[:,0],'s')\n",
"plt.title('Predicted motion after bounce')\n",
"plt.xlabel('time (s)')\n",
"plt.ylabel('height y(t) (m)');"
]
},
{
"cell_type": "code",
"execution_count": 140,
"metadata": {},
"outputs": [],
"source": [
"def mod_secant(func,dx,x0,es=0.0001,maxit=50):\n",
" iter = 0;\n",
" xr=x0\n",
" for iter in range(0,maxit):\n",
" xrold = xr;\n",
" dfunc=(func(xr+dx)-func(xr))/dx;\n",
" xr = xr - func(xr)/dfunc;\n",
" if xr != 0:\n",
" ea = abs((xr - xrold)/xr) * 100;\n",
" else:\n",
" ea = abs((xr - xrold)/1) * 100;\n",
" if ea <= es:\n",
" break\n",
" return xr,[func(xr),ea,iter]"
]
},
{
"cell_type": "code",
"execution_count": 141,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.0427999198154425 m/s is the correct initial velocity to match the height at beginning and end of bounce\n",
"the solve took 3 iterations\n"
]
}
],
"source": [
"v0,out = mod_secant(f_v,0.0001,7,es=0.000001) # <-- solution line\n",
"print(v0, 'm/s is the correct initial velocity to match the height at beginning and end of bounce')\n",
"print('the solve took ',out[2],' iterations')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Slideshow",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}