· 7 years ago · Jan 09, 2019, 09:30 AM
1{
2 "cells": [
3 {
4 "metadata": {},
5 "cell_type": "markdown",
6 "source": "# Limits\nYou can use algebraeic methods to calculate the rate of change over a function interval by joining two points on the function with a secant line and measuring its slope. For example, a function might return the distance travelled by a cyclist in a period of time, and you can use a secant line to measure the average velocity between two points in time. However, this doesn't tell you the cyclist's vecolcity at any single point in time - just the average speed over an interval.\n\nTo find the cyclist's velocity at a specific point in time, you need the ability to find the slope of a curve at a given point. *Differential Calculus* enables us to do through the use of *derivatives*. We can use derivatives to find the slope at a specific *x* value by calculating a delta for *x<sub>1</sub>* and *x<sub>2</sub>* values that are infinitesimally close together - so you can think of it as measuring the slope of a tiny straight line that comprises part of the curve.\n\n## Introduction to Limits\nHowever, before we can jump straight into derivatives, we need to examine another aspect of differential calculus - the *limit* of a function; which helps us measure how a function's value changes as the *x<sub>2</sub>* value approaches *x<sub>1</sub>*\n\nTo better understand limits, let's take a closer look at our function, and note that although we graph the function as a line, it is in fact made up of individual points. Run the following cell to show the points that we've plotted for integer values of ***x*** - the line is created by interpolating the points in between:"
7 },
8 {
9 "metadata": {
10 "trusted": true
11 },
12 "cell_type": "code",
13 "source": "%matplotlib inline\n\n# Here's the function\ndef f(x):\n return x**2 + x\n\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values from 0 to 10 to plot\nx = list(range(0, 11))\n\n# Get the corresponding y values from the function\ny = [f(i) for i in x] \n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('f(x)')\nplt.grid()\n\n# Plot the function\nplt.plot(x,y, color='lightgrey', marker='o', markeredgecolor='green', markerfacecolor='green')\n\nplt.show()",
14 "execution_count": 1,
15 "outputs": [
16 {
17 "output_type": "display_data",
18 "data": {
19 "image/png": "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\n",
20 "text/plain": "<matplotlib.figure.Figure at 0x7fb64eae0ba8>"
21 },
22 "metadata": {}
23 }
24 ]
25 },
26 {
27 "metadata": {},
28 "cell_type": "markdown",
29 "source": "We know from the function that the ***f(x)*** values are calculated by squaring the ***x*** value and adding ***x***, so we can easily calculate points in between and show them - run the following code to see this:"
30 },
31 {
32 "metadata": {
33 "trusted": true
34 },
35 "cell_type": "code",
36 "source": "%matplotlib inline\n\n# Here's the function\ndef f(x):\n return x**2 + x\n\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values from 0 to 10 to plot\nx = list(range(0,5))\nx.append(4.25)\nx.append(4.5)\nx.append(4.75)\nx.append(5)\nx.append(5.25)\nx.append(5.5)\nx.append(5.75)\nx = x + list(range(6,11))\n\n# Get the corresponding y values from the function\ny = [f(i) for i in x] \n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('f(x)')\nplt.grid()\n\n# Plot the function\nplt.plot(x,y, color='lightgrey', marker='o', markeredgecolor='green', markerfacecolor='green')\n\nplt.show()",
37 "execution_count": 2,
38 "outputs": [
39 {
40 "output_type": "display_data",
41 "data": {
42 "image/png": "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\n",
43 "text/plain": "<matplotlib.figure.Figure at 0x7fb64eae0c50>"
44 },
45 "metadata": {}
46 }
47 ]
48 },
49 {
50 "metadata": {},
51 "cell_type": "markdown",
52 "source": "Now we can see more clearly that this function line is formed of a continuous series of points, so theoretically for any given value of ***x*** there is a point on the line, and there is an adjacent point on either side with a value that is as close to ***x*** as possible, but not actually ***x***.\n\nRun the following code to visualize a specific point for *x = 5*, and try to identify the closest point either side of it:"
53 },
54 {
55 "metadata": {
56 "trusted": true
57 },
58 "cell_type": "code",
59 "source": "%matplotlib inline\n\n# Here's the function\ndef f(x):\n return x**2 + x\n\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values from 0 to 10 to plot\nx = list(range(0,5))\nx.append(4.25)\nx.append(4.5)\nx.append(4.75)\nx.append(5)\nx.append(5.25)\nx.append(5.5)\nx.append(5.75)\nx = x + list(range(6,11))\n\n# Get the corresponding y values from the function\ny = [f(i) for i in x] \n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('f(x)')\nplt.grid()\n\n# Plot the function\nplt.plot(x,y, color='lightgrey', marker='o', markeredgecolor='green', markerfacecolor='green')\n\nzx = 5\nzy = f(zx)\nplt.plot(zx, zy, color='red', marker='o', markersize=10)\nplt.annotate('x=' + str(zx),(zx, zy), xytext=(zx - 0.5, zy + 5))\n\n# Plot f(x) when x = 5.1\nposx = 5.25\nposy = f(posx)\nplt.plot(posx, posy, color='blue', marker='<', markersize=10)\nplt.annotate('x=' + str(posx),(posx, posy), xytext=(posx + 0.5, posy - 1))\n\n# Plot f(x) when x = 4.9\nnegx = 4.75\nnegy = f(negx)\nplt.plot(negx, negy, color='orange', marker='>', markersize=10)\nplt.annotate('x=' + str(negx),(negx, negy), xytext=(negx - 1.5, negy - 1))\n\nplt.show()",
60 "execution_count": 3,
61 "outputs": [
62 {
63 "output_type": "display_data",
64 "data": {
65 "image/png": "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\n",
66 "text/plain": "<matplotlib.figure.Figure at 0x7fb64cbea3c8>"
67 },
68 "metadata": {}
69 }
70 ]
71 },
72 {
73 "metadata": {},
74 "cell_type": "markdown",
75 "source": "You can see the point where ***x*** is 5, and you can see that there are points shown on the graph that appear to be right next to this point (at *x=4.75* and *x=5.25*). However, if we zoomed in we'd see that there are still gaps that could be filled by other values of ***x*** that are even closer to 5; for example, 4.9 and 5.1, or 4.999 and 5.001. If we could zoom infinitely close to the line we'd see that no matter how close a value you use (for example, 4.999999999999), there is always a value that's fractionally closer (for example, 4.9999999999999).\n\nSo what we can say is that there is a hypothetical number that's as close as possible to our desired value of *x* without actually being *x*, but we can't express it as a real number. Instead, we express its symbolically as a *limit*, like this:\n\n\\begin{equation}\\lim_{x \\to 5} f(x)\\end{equation}\n\nThis is interpreted as *the limit of function f(x) as *x* approaches 5*."
76 },
77 {
78 "metadata": {},
79 "cell_type": "markdown",
80 "source": "## Limits and Continuity\nThe function ***f(x)*** is *continuous* for all real numbered values of ***x***. Put simply, this means that you can draw the line created by the function without lifting your pen (we'll look at a more formal definition later in this course).\n\nHowever, this isn't necessarily true of all functions. Consider function ***g(x)*** below: \n\n\\begin{equation}g(x) = -(\\frac{12}{2x})^{2}\\end{equation}\n\nThis function is a little more complex than the previous one, but the key thing to note is that it requires a division by *2x*. Now, ask yourself; what would happen if you applied this function to an *x* value of **0**?\n\nWell, 2 • 2 is 0, and anything divided by 0 is *undefined*. So the *domain* of this function does not include 0; in other words, the function is defined when *x* is any real number such that *x is not equal to 0*. The function should therefore be written like this:\n\n\\begin{equation}g(x) = -(\\frac{12}{2x})^{2},\\;\\; x \\ne 0\\end{equation}\n\nSo why is this important? Let's investigate by running the following Python code to define the function and plot it for a set of arbitrary of values:"
81 },
82 {
83 "metadata": {
84 "scrolled": false,
85 "trusted": true
86 },
87 "cell_type": "code",
88 "source": "%matplotlib inline\n\n# Define function g\ndef g(x):\n if x != 0:\n return -(12/(2*x))**2\n \n# Plot output from function g\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = range(-20, 21)\n\n# Get the corresponding y values from the function\ny = [g(a) for a in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('g(x)')\nplt.grid()\n\n# Plot x against g(x)\nplt.plot(x,y, color='green')\n\nplt.show()",
89 "execution_count": 4,
90 "outputs": [
91 {
92 "output_type": "display_data",
93 "data": {
94 "image/png": "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\n",
95 "text/plain": "<matplotlib.figure.Figure at 0x7fb64d240470>"
96 },
97 "metadata": {}
98 }
99 ]
100 },
101 {
102 "metadata": {},
103 "cell_type": "markdown",
104 "source": "Look closely at the plot, and note the gap the line where *x* = 0. This indicates that the function is not defined here.The *domain* of the function (it's set of possible input values) not include 0, and it's *range* (the set of possible output values) does not include a value for x=0.\n\nThis is a *non-continuous* function - in other words, it includes at least one gap when plotted (so you couldn't plot it by hand without lifting your pen). Specifically, the function is non-continuous at x=0.\n\nBy convention, when a non-continuous function is plotted, the points that form a continuous line (or *interval*) are shown as a line, and the end of each line where there is a discontinuity is shown as a circle, which is filled if the value at that point is included in the line and empty if the value is not included in the line.\n\nIn this case, the function produces two intervals with a gap between them where the function is not defined, so we can show the discontinuous point as an unfilled circle - run the following code to visualize this with Python:"
105 },
106 {
107 "metadata": {
108 "scrolled": false,
109 "trusted": true
110 },
111 "cell_type": "code",
112 "source": "%matplotlib inline\n\n# Define function g\ndef g(x):\n if x != 0:\n return -(12/(2*x))**2\n \n# Plot output from function g\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = range(-20, 21)\n\n\n# Get the corresponding y values from the function\ny = [g(a) for a in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('g(x)')\nplt.grid()\n\n# Plot x against g(x)\nplt.plot(x,y, color='green')\n\n# plot a circle at the gap (or close enough anyway!)\nxy = (0,g(1))\nplt.annotate('O',xy, xytext=(-0.7, -37),fontsize=14,color='green')\n\nplt.show()",
113 "execution_count": 5,
114 "outputs": [
115 {
116 "output_type": "display_data",
117 "data": {
118 "image/png": "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\n",
119 "text/plain": "<matplotlib.figure.Figure at 0x7fb64d240b00>"
120 },
121 "metadata": {}
122 }
123 ]
124 },
125 {
126 "metadata": {},
127 "cell_type": "markdown",
128 "source": "There are a number of reasons a function might be non-continuous. For example, consider the following function:\n\n\\begin{equation}h(x) = 2\\sqrt{x},\\;\\; x \\ge 0\\end{equation}\n\nApplying this function to a non-negative ***x*** value returns a valid output; but for any value where ***x*** is negative, the output is undefined, because the square root of a negative value is not a real number.\n\nHere's the Python to plot function ***h***:"
129 },
130 {
131 "metadata": {
132 "trusted": true
133 },
134 "cell_type": "code",
135 "source": "%matplotlib inline\n\ndef h(x):\n if x >= 0:\n import numpy as np\n return 2 * np.sqrt(x)\n\n# Plot output from function h\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = range(-20, 21)\n\n# Get the corresponding y values from the function\ny = [h(a) for a in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('h(x)')\nplt.grid()\n\n# Plot x against h(x)\nplt.plot(x,y, color='green')\n\n# plot a circle close enough to the h(-x) limit for our purposes!\nplt.plot(0, h(0), color='green', marker='o', markerfacecolor='green', markersize=10)\n\nplt.show()",
136 "execution_count": 6,
137 "outputs": [
138 {
139 "output_type": "display_data",
140 "data": {
141 "image/png": "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\n",
142 "text/plain": "<matplotlib.figure.Figure at 0x7fb64ca564a8>"
143 },
144 "metadata": {}
145 }
146 ]
147 },
148 {
149 "metadata": {},
150 "cell_type": "markdown",
151 "source": "Now, suppose we have a function like this:\n\n\\begin{equation}\nk(x) = \\begin{cases}\n x + 20, & \\text{if } x \\le 0, \\\\\n x - 100, & \\text{otherwise }\n\\end{cases}\n\\end{equation}\n\nIn this case, the function's domain includes all real numbers, but its output is still non-continuous because of the way different values are returned depending on the value of *x*. The *range* of possible outputs for *k(x ≤ 0)* is ≤ 20, and the range of output values for *k(x > 0)* is x > -100.\n\nLet's use Python to plot function ***k***:"
152 },
153 {
154 "metadata": {
155 "trusted": true
156 },
157 "cell_type": "code",
158 "source": "%matplotlib inline\n\ndef k(x):\n import numpy as np\n if x <= 0:\n return x + 20\n else:\n return x - 100\n\n# Plot output from function h\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values for each non-contonuous interval\nx1 = range(-20, 1)\nx2 = range(1, 20)\n\n# Get the corresponding y values from the function\ny1 = [k(i) for i in x1]\ny2 = [k(i) for i in x2]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('k(x)')\nplt.grid()\n\n# Plot x against k(x)\nplt.plot(x1,y1, color='green')\nplt.plot(x2,y2, color='green')\n\n# plot a circle at the interval ends\nplt.plot(0, k(0), color='green', marker='o', markerfacecolor='green', markersize=10)\nplt.plot(0, k(0.0001), color='green', marker='o', markerfacecolor='w', markersize=10)\n\nplt.show()",
159 "execution_count": 7,
160 "outputs": [
161 {
162 "output_type": "display_data",
163 "data": {
164 "image/png": "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\n",
165 "text/plain": "<matplotlib.figure.Figure at 0x7fb64cf704e0>"
166 },
167 "metadata": {}
168 }
169 ]
170 },
171 {
172 "metadata": {},
173 "cell_type": "markdown",
174 "source": "\n## Finding Limits of Functions Graphically\nSo the question arises, how do we find a value for the limit of a function at a specific point?\n\nLet's explore this function, ***a***:\n\n\\begin{equation}a(x) = x^{2} + 1\\end{equation}\n\nWe can start by plotting it:"
175 },
176 {
177 "metadata": {
178 "trusted": true
179 },
180 "cell_type": "code",
181 "source": "%matplotlib inline\n\n# Define function a\ndef a(x):\n return x**2 + 1\n\n\n# Plot output from function a\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = range(-10, 11)\n\n# Get the corresponding y values from the function\ny = [a(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('a(x)')\nplt.grid()\n\n# Plot x against a(x)\nplt.plot(x,y, color='purple')\n\nplt.show()",
182 "execution_count": 8,
183 "outputs": [
184 {
185 "output_type": "display_data",
186 "data": {
187 "image/png": "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\n",
188 "text/plain": "<matplotlib.figure.Figure at 0x7fb64c5d16d8>"
189 },
190 "metadata": {}
191 }
192 ]
193 },
194 {
195 "metadata": {},
196 "cell_type": "markdown",
197 "source": "Note that this function is continuous at all points, there are no gaps in its range. However, the range of the function is *{a(x) ≥ 1}* (in other words, all real numbers that are greater than or equal to 1). For negative values of ***x***, the function appears to return ever-decreasing values as ***x*** gets closer to 0, and for positive values of ***x***, the function appears to return ever-increasing values as ***x*** gets further from 0; but it never returns 0.\n\nLet's plot the function for an ***x*** value of 0 and find out what the ***a(0)*** value is returned:"
198 },
199 {
200 "metadata": {
201 "trusted": true
202 },
203 "cell_type": "code",
204 "source": "%matplotlib inline\n\n# Define function a\ndef a(x):\n return x**2 + 1\n\n\n# Plot output from function a\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = range(-10, 11)\n\n# Get the corresponding y values from the function\ny = [a(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('a(x)')\nplt.grid()\n\n# Plot x against a(x)\nplt.plot(x,y, color='purple')\n\n# Plot a(x) when x = 0\nzx = 0\nzy = a(zx)\nplt.plot(zx, zy, color='red', marker='o', markersize=10)\nplt.annotate(str(zy),(zx, zy), xytext=(zx, zy + 5))\n\nplt.show()",
205 "execution_count": 9,
206 "outputs": [
207 {
208 "output_type": "display_data",
209 "data": {
210 "image/png": "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\n",
211 "text/plain": "<matplotlib.figure.Figure at 0x7fb64c5a71d0>"
212 },
213 "metadata": {}
214 }
215 ]
216 },
217 {
218 "metadata": {},
219 "cell_type": "markdown",
220 "source": "OK, so ***a(0)*** returns **1**.\n\nWhat happens if we use ***x*** values that are very slightly higher or lower than 0?"
221 },
222 {
223 "metadata": {
224 "trusted": true
225 },
226 "cell_type": "code",
227 "source": "%matplotlib inline\n\n# Define function a\ndef a(x):\n return x**2 + 1\n\n\n# Plot output from function a\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = range(-10, 11)\n\n# Get the corresponding y values from the function\ny = [a(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('a(x)')\nplt.grid()\n\n# Plot x against a(x)\nplt.plot(x,y, color='purple')\n\n# Plot a(x) when x = 0.1\nposx = 0.1\nposy = a(posx)\nplt.plot(posx, posy, color='blue', marker='<', markersize=10)\nplt.annotate(str(posy),(posx, posy), xytext=(posx + 1, posy))\n\n# Plot a(x) when x = -0.1\nnegx = -0.1\nnegy = a(negx)\nplt.plot(negx, negy, color='orange', marker='>', markersize=10)\nplt.annotate(str(negy),(negx, negy), xytext=(negx - 2, negy))\n\nplt.show()",
228 "execution_count": 10,
229 "outputs": [
230 {
231 "output_type": "display_data",
232 "data": {
233 "image/png": "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\n",
234 "text/plain": "<matplotlib.figure.Figure at 0x7fb64c5b8978>"
235 },
236 "metadata": {}
237 }
238 ]
239 },
240 {
241 "metadata": {},
242 "cell_type": "markdown",
243 "source": "These ***x*** values return ***a(x)*** values that are just slightly above 1, and if we were to keep plotting numbers that are increasingly close to 0, for example 0.0000000001 or -0.0000000001, the function would still return a value that is just slightly greater than 1. The limit of function *a(x)* as *x* approaches 0, is 1; and the notation to indicate this is:\n\n\\begin{equation}\\lim_{x \\to 0} a(x) = 1 \\end{equation}\n\nThis reflects a more formal definition of function continuity. Previously, we stated that a function is continuous at a point if you can draw it at that point without lifting your pen. The more mathematical definition is that a function is continuous at a point if the limit of the function as it approaches that point from both directions is equal to the function's value at that point. In this case, as we approach x = 0 from both sides, the limit is 1; and the value of *a(0)* is also 1; so the function is continuous at x = 0."
244 },
245 {
246 "metadata": {},
247 "cell_type": "markdown",
248 "source": "### Limits at Non-Continuous Points\nLet's try another function, which we'll call ***b***:\n\n\\begin{equation}b(x) = -2x^{2} \\cdot \\frac{1}{x},\\;\\;x\\ne0\\end{equation}\n\nNote that this function has a domain that includes all real number values of *x* such that *x* does not equal 0. In other words, the function will return a valid output for any number other than 0.\n\nLet's create it and plot it with Python:"
249 },
250 {
251 "metadata": {
252 "trusted": true
253 },
254 "cell_type": "code",
255 "source": "%matplotlib inline\n\n# Define function b\ndef b(x):\n if x != 0:\n return (-2*x**2) * 1/x\n\n\n# Plot output from function g\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = range(-10, 11)\n\n# Get the corresponding y values from the function\ny = [b(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('b(x)')\nplt.grid()\n\n# Plot x against b(x)\nplt.plot(x,y, color='purple')\n\nplt.show()",
256 "execution_count": 11,
257 "outputs": [
258 {
259 "output_type": "display_data",
260 "data": {
261 "image/png": "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\n",
262 "text/plain": "<matplotlib.figure.Figure at 0x7fb64c5fb630>"
263 },
264 "metadata": {}
265 }
266 ]
267 },
268 {
269 "metadata": {},
270 "cell_type": "markdown",
271 "source": "The output from this function contains a gap in the line where x = 0. It seems that not only does the *domain* of the function (the values that can be passed in as *x*) exclude 0; but the *range* of the function (the set of values that can be returned from it) also excludes 0.\n\nWe can't evaluate the function for an *x* value of 0, but we can see what it returns for a value that is just very slightly less than 0:"
272 },
273 {
274 "metadata": {
275 "collapsed": true,
276 "trusted": false
277 },
278 "cell_type": "code",
279 "source": "%matplotlib inline\n\n# Define function b\ndef b(x):\n if x != 0:\n return (-2*x**2) * 1/x\n\n\n# Plot output from function g\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = range(-10, 11)\n\n# Get the corresponding y values from the function\ny = [b(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('b(x)')\nplt.grid()\n\n# Plot x against b(x)\nplt.plot(x,y, color='purple')\n\n# Plot b(x) for x = -0.1\nnegx = -0.1\nnegy = b(negx)\nplt.plot(negx, negy, color='orange', marker='>', markersize=10)\nplt.annotate(str(negy),(negx, negy), xytext=(negx + 1, negy))\n\nplt.show()",
280 "execution_count": null,
281 "outputs": []
282 },
283 {
284 "metadata": {},
285 "cell_type": "markdown",
286 "source": "We can even try a negative *x* value that's a little closer to 0."
287 },
288 {
289 "metadata": {
290 "trusted": true
291 },
292 "cell_type": "code",
293 "source": "%matplotlib inline\n\n# Define function b\ndef b(x):\n if x != 0:\n return (-2*x**2) * 1/x\n\n\n# Plot output from function g\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = range(-10, 11)\n\n# Get the corresponding y values from the function\ny = [b(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('b(x)')\nplt.grid()\n\n# Plot x against b(x)\nplt.plot(x,y, color='purple')\n\n# Plot b(x) for x = -0.0001\nnegx = -0.0001\nnegy = b(negx)\nplt.plot(negx, negy, color='orange', marker='>', markersize=10)\nplt.annotate(str(negy),(negx, negy), xytext=(negx + 1, negy))\n\nplt.show()",
294 "execution_count": 12,
295 "outputs": [
296 {
297 "output_type": "display_data",
298 "data": {
299 "image/png": "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\n",
300 "text/plain": "<matplotlib.figure.Figure at 0x7fb64c5b8a20>"
301 },
302 "metadata": {}
303 }
304 ]
305 },
306 {
307 "metadata": {},
308 "cell_type": "markdown",
309 "source": "So as the value of *x* gets closer to 0 from the left (negative), the value of *b(x)* is decreasing towards 0. We can show this with the following notation:\n\n\\begin{equation}\\lim_{x \\to 0^{-}} b(x) = 0 \\end{equation}\n\nNote that the arrow points to 0<sup>-</sup> (with a minus sign) to indicate that we're describing the limit as we approach 0 from the negative side.\n\nSo what about the positive side?\n\nLet's see what the function value is when *x* is 0.1:"
310 },
311 {
312 "metadata": {
313 "trusted": true
314 },
315 "cell_type": "code",
316 "source": "%matplotlib inline\n\n# Define function b\ndef b(x):\n if x != 0:\n return (-2*x**2) * 1/x\n\n\n# Plot output from function g\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = range(-10, 11)\n\n# Get the corresponding y values from the function\ny = [b(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('b(x)')\nplt.grid()\n\n# Plot x against b(x)\nplt.plot(x,y, color='purple')\n\n# Plot b(x) for x = 0.1\nposx = 0.1\nposy = b(posx)\nplt.plot(posx, posy, color='blue', marker='<', markersize=10)\nplt.annotate(str(posy),(posx, posy), xytext=(posx + 1, posy))\n\nplt.show()",
317 "execution_count": 13,
318 "outputs": [
319 {
320 "output_type": "display_data",
321 "data": {
322 "image/png": "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\n",
323 "text/plain": "<matplotlib.figure.Figure at 0x7fb64d266898>"
324 },
325 "metadata": {}
326 }
327 ]
328 },
329 {
330 "metadata": {},
331 "cell_type": "markdown",
332 "source": "What happens if we decrease the value of *x* so that it's even closer to 0?"
333 },
334 {
335 "metadata": {
336 "trusted": true
337 },
338 "cell_type": "code",
339 "source": "%matplotlib inline\n\n# Define function b\ndef b(x):\n if x != 0:\n return (-2*x**2) * 1/x\n\n\n# Plot output from function g\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = range(-10, 11)\n\n# Get the corresponding y values from the function\ny = [b(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('b(x)')\nplt.grid()\n\n# Plot x against b(x)\nplt.plot(x,y, color='purple')\n\n# Plot b(x) for x = 0.0001\nposx = 0.0001\nposy = b(posx)\nplt.plot(posx, posy, color='blue', marker='<', markersize=10)\nplt.annotate(str(posy),(posx, posy), xytext=(posx + 1, posy))\n\nplt.show()",
340 "execution_count": 14,
341 "outputs": [
342 {
343 "output_type": "display_data",
344 "data": {
345 "image/png": "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u3dvLl9OvYngxo0bPPvsszRr1oygoCBWr16dNs+sWbNo3rw5AQEB/O53v0sbfvToUTp37kzz5s157LHHiI+PTxv36quvEhgYSGBgILNmzXJ7Ww4f/r/f2uR0Wy5evOiRbfnd735HQEAATZo04f333/f8dbTsHlhBajF5GlgEnAGOu/7GAe8CDXLy4AtPdvbgooJludyTX7kWLVqkPXr00JSUFN2wYYO2bds2w+natGmj69ev15SUFO3Ro4cuXrxYVVVfeeUVffvtt1VV9e2339bBgwdnu9yVK1fqggUL9IknnkgblpycrDVr1tR9+/apquof/vAHnThxoqqqvvzyyzpu3DhVVd27d6926tRJVVV37dqlAQEBevnyZb1586Z27txZv//+e1VVbd26ta5evVpVVSdNmqRDhw5VVdUPPvhAR4wYoaqqp0+f1latWmlycrKePXtWa9WqpWfOnFFV1WHDhunKlStVVXXAgAE6ZcoUVVVdtWqVPvPMM6qq+sUXX2iXLl305s2bmpiYqMHBwXrhwgW3tqVly5Zub8vvf//7fN+WdevWaYcOHTQpKUmTkpK0adOmuf6MkY8PLooFHgBeB6qpai1VrQp0BDYCfxORZ/K7gBljfm7+/PkMGzYMEaFdu3b89NNPnDp16mfTnDp1iosXL9K+fXtEhGHDhvH555+nzT98+HAAhg8fzrp167JdbufOnalQocLP1nHu3DlKly5Nw4YNAejatStz584FYM+ePXTu3BmAxo0bc+TIEU6fPs3evXtp164d5cqVw9fXl0cffZR58+YBsG/fPh555JG0Za1du/aOZVWtWpWKFSuyZcsWDh06RMOGDbn33nsB6NKlS4brDwkJYf78+WnDH330UXx9fSlfvjxBQUEsXbrUrW05ffq029uS0bLyui0iwrVr17hx4wbXr18nKSkJf3//rD88eZSTQtFFVd9U1Z2qmtagv6qeV9W5qvoUMCuL+Y0xLqdOQVgYtGzp/rwnTpygVq1aaf01a9bkxIkTd0xTs2bNDKc5ffo01atXB6B69eokJCTkeLnpValShZs3b7JlyxYA5syZw/HjxwEICgris88+A2DTpk0cPXqU+Ph4AgMDWbt2LefOnePKlSssXrw4bZ7AwEAWLFgAwOzZszlz5kzasubPn09SUhKHDx9m69atHD9+nPr16/Pdd99x5MgR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\n",
346 "text/plain": "<matplotlib.figure.Figure at 0x7fb64d277860>"
347 },
348 "metadata": {}
349 }
350 ]
351 },
352 {
353 "metadata": {},
354 "cell_type": "markdown",
355 "source": "As with the negative side, as *x* approaches 0 from the positive side, the value of *b(x)* gets closer to 0; and we can show that like this:\n\n\\begin{equation}\\lim_{x \\to 0^{+}} b(x) = 0 \\end{equation}\n\nNow, even although the function is not defined at x = 0; since the limit as we approach x = 0 from the negative side is 0, and the limit when we approach x = 0 from the positive side is also 0; we can say that the overall, or *two-sided* limit for the function at x = 0 is 0:\n\n\\begin{equation}\\lim_{x \\to 0} b(x) = 0 \\end{equation}\n\nSo can we therefore just ignore the gap and say that the function is *continuous* at x = 0? Well, recall that the formal definition for continuity is that to be continuous at a point, the function's limit as we approach the point in both directions must be equal to the function's value at that point. In this case, the two-sided limit as we approach x = 0 is 0, but *b(0)* is not defined; so the function is ***non-continuous*** at x = 0."
356 },
357 {
358 "metadata": {},
359 "cell_type": "markdown",
360 "source": "### One-Sided Limits\nLet's take a look at a different function. We'll call this one ***c***:\n\n\\begin{equation}\nc(x) = \\begin{cases}\n x + 20, & \\text{if } x \\le 0, \\\\\n x - 100, & \\text{otherwise }\n\\end{cases}\n\\end{equation}\n\nIn this case, the function's domain includes all real numbers, but its range is still non-continuous because of the way different values are returned depending on the value of *x*. The range of possible outputs for *c(x ≤ 0)* is ≤ 20, and the range of output values for *c(x > 0)* is x ≥ -100.\n\nLet's use Python to plot function ***c*** with some values for *c(x)* marked on the line"
361 },
362 {
363 "metadata": {
364 "trusted": true
365 },
366 "cell_type": "code",
367 "source": "%matplotlib inline\n\ndef c(x):\n import numpy as np\n if x <= 0:\n return x + 20\n else:\n return x - 100\n\n# Plot output from function h\nfrom matplotlib import pyplot as plt\n\n# Create arrays of x values\nx1 = range(-20, 6)\nx2 = range(6, 21)\n\n# Get the corresponding y values from the function\ny1 = [c(i) for i in x1]\ny2 = [c(i) for i in x2]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('c(x)')\nplt.grid()\n\n# Plot x against c(x)\nplt.plot(x1,y1, color='purple')\nplt.plot(x2,y2, color='purple')\n\n# plot a circle close enough to the c limits for our purposes!\nplt.plot(5, c(5), color='purple', marker='o', markerfacecolor='purple', markersize=10)\nplt.plot(5, c(5.001), color='purple', marker='o', markerfacecolor='w', markersize=10)\n\n# plot some points from the +ve direction\nposx = [20, 15, 10, 6]\nposy = [c(i) for i in posx]\nplt.scatter(posx, posy, color='blue', marker='<', s=70)\nfor p in posx:\n plt.annotate(str(c(p)),(p, c(p)),xytext=(p, c(p) + 5))\n \n# plot some points from the -ve direction\nnegx = [-15, -10, -5, 0, 4]\nnegy = [c(i) for i in negx]\nplt.scatter(negx, negy, color='orange', marker='>', s=70)\nfor n in negx:\n plt.annotate(str(c(n)),(n, c(n)),xytext=(n, c(n) + 5))\n\nplt.show()",
368 "execution_count": 15,
369 "outputs": [
370 {
371 "output_type": "display_data",
372 "data": {
373 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEKCAYAAAA8QgPpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzt3Xt8VPWd//HXJzMTQoAgt4RkRspF7gLBBILVteB9teKqrfVWL7SltdCfbtefxfVXH3a7Crput/yqbVerXWprqe16wUsVtVB/xeUSFBSMCCjiJBAuBkKAXGby+f1xJiHBBMJkZs6Z4fN8PPJwMmdOzpsxyTvn8v0eUVWMMcaYE5XldgBjjDHpyQrEGGNMXKxAjDHGxMUKxBhjTFysQIwxxsTFCsQYY0xcrECMMcbExQrEGGNMXKxAjHGBiJwqIstEpEJENorIbbHn+4vIayKyOfbffm5nNaYzkskj0QcOHKhDhw6Ne/2DBw/Sq1evxAVKAC9mAm/m8mImcHJlZ2fT1NREbm4u0WiUiooKRowYwd69e/H7/QwePJidO3cSiUQIhUIpyeTV98prubyYCRKba+3atXtUddBxX6iqGftRUlKi3bFs2bJurZ8MXsyk6s1cXsyk2nGumTNn6tKlS3XUqFFaVVWlqqpVVVU6atQo1zJ5gRdzeTGTamJzAeXahd+xdgjLGJdt27aNd955h7KyMqqrqyksLASgsLCQXbt2uZzOmM5ZgRjjorq6Oq666ip++tOfkpeX53YcY06IFYgxLmlqauKqq67i+uuv58orrwSgoKCAHTt2ALBjxw7y8/PdjGjMMVmBGOMCVeUb3/gGY8eO5fvf/37r8zNnzmTRokUALFq0iMsvv9ytiMYcl9/tAMacjFasWMGTTz7JhAkTKC4uBuD+++9n3rx5XH311Tz++OMMGTKEP/7xjy4nNaZzViAmo82aNYsXX3yR/Px8NmzYAMC9997LY489xqBBzlWK999/P5dccklKc5199tloJ5fQv/HGGynNYky87BCWyWg333wzr7zyyuee/8d//EfWrVvHunXrUl4exmQKKxCT0c455xz69+/vXgBVqN/j3vaNSSIrEHNSevjhh5k4cSKzZs2ipqYmeRuq3QTP5MNfL4f9FcnbjjEu8GSB2DxBJpluvfVWtm7dyrp16ygsLOSf/umfkrex5gbw94Kql+CVEqdIovXJ254xKeTJAgEiwD+p6lhgGjBHRMYB84A3VHUk8Ebsc2NOSEFBAT6fj6ysLL71rW+xevXq5G5QskCjED3sFElthe2RmIzgyQJR1R2q+nbs8QGgAggClwOLYi9bBPyDOwlNOmsZqAfw7LPPcvrppyd9m9os7KkawIa3xtBYE2m/R2JFYtKU52fjFZGhwJvA6cB2VT2lzbIaVe131OtnA7MBCgoKShYvXhz3tuvq6ujdu3fc6yeDFzOBN3PV1dXxH//xH6xbt479+/fTr18/br75ZtavX8+WLVsQEQYPHsz3v/99BgwYkNBtN+1vovaDWg5s/Iza93ZxYHOEyEFn2eCrBjD6uoY2rxboV+zsqbjEi///wJu5vJgJEptrxowZa1W19Hiv8/Q4EBHpDfw3cLuq1orIcddR1UeBRwFKS0t1+vTpcW9/+fLldGf9ZPBiJnBy/eY3v/ncmIvPPvuMr33ta2zbto2hQ4fy9NNP069fak5dLV++PCVjKqKNUarfrSa8KkzlqkrCK8N8tvkzwOmE/FN3M3HqdkKnhXn1txeRdbCW6Q33QFY2DL4QiudD37FJz3ksXv6+8louL2YCd3J5tkBEJIBTHr9T1WdiT1eLSKGq7hCRQsCmKvWQm2++mblz53LjjTe2PrdgwQLOO+885s2bx4IFC1iwYAEPPPCAiym7R1Wp/bSW8MqwUxgrK9nx9g4i9REAeg/uTbAsyORZkwlNC1E0Yi/ZK8+FploAlj8znebGPlD0ZU8UhzHd4ckCEWdX43GgQlV/0mbREuAmYEHsv8+7EM904pxzzmHbtm3tnnv++edZvnw5ADfddBPTp09PToGoQsNeyBmY0C/bWNdIVXkV4ZVH9i7qdtYB4Ovho6ikiNJbSwlNCxEsC9J3SF/a7SnX7HdOoIsPsrIJ5PYg2twHvvRcQnMa4wZPFghwFvB14D0RWRd77p9xiuNpEfkGsB34qkv5TBel7P4WtZvgpXEQvAyKF8T1l702K7srdjtFEdu72LVhF9rsnCfsf1p/hp8/nGBZkNC0EAUTC/Bl+479RbN6QOQQBGdC8XwCD7xJU2NTPP9CYzzHkwWiqn8DOjvhcV4qs5g00Xa8xc7XYPAFEL31mKsc3HWw3XmLqjVVNNQ6J7dzTskhWBZk9D+MdvYupgbJHZB74rnyRsOVu1r3jAK5/0P9YRsHYjKDJwvEZI6W+1sUFhYm//4WR4+3yJkOf/0FFC8gkjOSnet2tjsUte/jfc5qPmHwpMFMuH5C697FgJEDkKzjX7Rx/EzS7rBaoGeA5n3N3f+6xniAFYhJqpb7W8ybNy9l97dQhX278tj1SQN/rmiicutP2fnJYKJNzmWyeaE8gmVBpnx3CqFpIQrPKCSQG0h6LoBAboBofTQl2zIm2axATMJce+21LF++nD179hAKhfjRj36Ukvtb1O+vp2r5LsLPTKVy0yDCW0Mcqu0FNBDoMZmiYVWUXfQ/hE7bQfC2V8kbWpTwDF0VyA3Q3GB7ICYzWIGkqaFDh9KnTx98Ph9+v5/y8nK3I/H73/++w+cTORajOdLMro27Wg9DVa6qZHfFblCAsxlYtJtRxR8SPC3MznFXc0nBv5IVCMTGWzwNfd0rDwB/rt/2QEzGsAJJY8uWLWPgwMRetuo1B6oOEF4Vbi2LqvIqmg46VzH1HNCT0LQQ468ZT2h8I8Ha68nJ3u2sKD6W51xPVv9LPTXewvZATCaxAjGe0XS4iR1rd7ReQhteFab2U2cAXlYgi8LJha0D9IJlQfoN73dkzEXNenjtEER9R0Z4R8bCl/7RxX/R59k5EJNJrEDSlIhw4YUXIiJ8+9vfZvbs2anbeAIG7akqn23+rN3eRfX6apojzl/npww9hVO/eGrrVVGFkwvx5xzj2/Wo8Rb0HQuxAYxeEsgNoE1Kc7SZLJ8n5zI1psusQNLUihUrKCoqYteuXVxwwQWMGTOGc845JzUbj2PQ3uHPDlO5+sh5i/CqMPU1zniI7D7ZBKcE+eKdXyRU5uxd9C44wUnhjhpv4VUtV3tF6iNk98p2OY0x3WMFkqaKipyTwfn5+VxxxRWsXr06dQVynEF70SZncsG2J7r3frjXWSiQf3o+Y68aS2haiFBZiIFjB3b/r/Gjxlt4VUuBNB1qsgIxac8KJA0dPHiQ5uZm+vTpw8GDB1m6dCn33HNPakPEBu1p5DC17/0/dn9yFksfXUJ4+3h2rNvXOrlgr4JehMpCTLp5kjO5YGkRPfr0SG1WD2lbIMakOyuQNFRdXc0VV1wBQCQS4brrruPiiy9OybYb6xqpWrGH8HNTqPxwIOEtIer29QEO4wsMoHDoekov8xP8+8sJnVv2+ckFT3JWICaTWIGkoeHDh7N+/fqkb0eblT0f7Gl3onvXey2TC/4d/Qv2Mmz8xwRHhKkefxWXDv5nfP4oICC/gqI9zqEl08oKxGQSKxDT6uDug+1moq1cXdk6uWCPvj0IlYUYPXM0odMbCR64kdyeR2bWXZ5zNb4GIKvnkZskBfJc+pd4lxWIySRWICepSEOE6vXV7SYXrPmoBnAmFyyYUMDp151OqCzkTC44qs3kgjXr4fV6aPkdKD7nnIjdJOm4rEBMJrEC8bIE3SRJVdm3bV+7stj5zk6ijc6Atj7BPoTKQpR8p4RQWYjCksLjXyHU5iZJXh2050WBnlYgJnNYgXhZnDdJaqhtoHJNZbvCOLT7EAD+nn6CU4KU3VbmDNIrC5EXOsFDTWkyaM+LbA/EZBIrEC/rwk2SmqPN7N64u92NkXa/3zK5IAwcM5BRl44iWBYkWBakYEIBWf5ujrlIk0F7XmQFYjKJFYjXHXWTpIZD5/DBvz5F+LNLqXynnqryKhrrGgHo2T82ueDV450xF1OK6NmvZxIypcegPS+yAjGZxArEw5oOR9nxQRGVm8YT3hKickuQ/XvrWMkIsnwbGTyynknXTiJ0zgRC00L0G9HPxlx4nBWIySRWIB7RdnLBlkNR1et30hy5BoC+A/cRGhlm4GX5fGnozyn8wk782VEQP3xlj10ymyZ8PXwgViAmM1iBuORwTfvJBStXVXL4s8MABHoFCE4N8sXvjSTo/zdCQzfT+5Q6AJbnTOPUhh2xq58utfEWaUZEyOqRZQViMoIVSApEm6Lsem9Xu/tc7N3UZnLB8fmMuWJM61VRg8YPciYXrFkPr2+FprrYa228RSbw5fiIHI64HcOYbrMCSTBVpTZc224m2qq1Va2/MHrl9yJYFmTSjW0mF8w7xuSCNt4i49geiMkUaVcgInIxsBDwAb9S1QVu5mk82OjcRW/lkfmiDlQdAMCX7aPwjEJKvl3SOqK77xdOYHJBG2+RkXw5PisQkxHSqkBExAc8AlwAhIE1IrJEVd9Pxfa1WdmzaU+7vYvq96rRqDPoot+IfgydPrT1LnoFkwrw9+jGW2zjLTKS7YGYTJFWBQJMBbao6kcAIrIYuBxISoE07W/iw5c+PFIYqytp2H9kcsHg1CBn33W2c4/uqUF6DeqV2AA23iIj2R6IyRTpViBB4NM2n4eBskRvZP+n+1k0YxE1W2t4i7eQLKFgYgGnX3O6UxZlQQaOHnhkckFjToDtgZhMkW4F0tFvbG33ApHZwGyAgoIClsdxzkCjin+In+DfBRlYPJA+o/rg6+kDYB/72Fe9D6pP+MsmRF1dXVz/pmTzYi4vZgJQv7Kvep+nsnn1vfJiLi9mApdyqWrafABnAq+2+fwu4K7OXl9SUqLdsWzZsm6tnwxezKTqzVxezKSq+vPzfq4LRyx0O0Y7Xn2vvJjLi5lUE5sLKNcu/E7u5qx6KbcGGCkiw0QkG7gGWOJyJmNOSFaOHcIymSGtDmGpakRE5gKv4lzG+4SqbnQ5ljEnxNfDTqKbzJBWBQKgqi8DL7udw5h42R6IyRTpdgjLmLTn6+GjuamZaFPU7SjGdIsViDEplpXj/NjZfFgm3VmBGJNivh7OJeF2GMukOysQY1Isq4fzY9d02ArEpDcrEGNSzJdjeyAmM1iBGJNirXsgViAmzVmBGJNiLSfRrUBMurMCMSbF7CS6yRRWIMakmO2BmExhBWJMitkeiMkUViDGpJidRDeZwgrEmBSzy3hNprACMSbFbA/EZAorEGNSTPyC+MQKxKQ9KxBjUkxECOQGrEBM2rMCMcYFViAmE1iBGOOCQG6AyCGbzt2kNysQY1wQyA3YbLwm7VmBGOMCO4RlMoEViDEusAIxmcAKxBgXWIGYTGAFYowLrEBMJrACMcYFViAmE1iBGOMCKxCTCTxXICLybyLygYi8KyLPisgpbZbdJSJbRGSTiFzkZk5jusPf028FYtKe5woEeA04XVUnAh8CdwGIyDjgGmA8cDHwcxHxuZbSmG5o2QNRVbejGBM3zxWIqi5V1ZYhuiuBUOzx5cBiVW1Q1Y+BLcBUNzIa012B3AAaVZqbmt2OYkzcxMt/AYnIC8AfVPW3IvIwsFJVfxtb9jjwZ1X901HrzAZmAxQUFJQsXrw47u3X1dXRu3fvuNdPBi9mAm/m8mImcHLt+/M+tv58K2e9cBb+3n63I3n6vfJaLi9mgsTmmjFjxlpVLT3e61z5zhWR14HBHSy6W1Wfj73mbiAC/K5ltQ5e/7n2U9VHgUcBSktLdfr06XHnXL58Od1ZPxm8mAm8mcuLmcDJNXjiYLaylbIzyuhT1MftSJ5+r7yWy4uZwJ1crhSIqp5/rOUichPwZeA8PbKLFAZObfOyEFCVnITGJFcgNwDYTaVMevPcORARuRj4ATBTVQ+1WbQEuEZEeojIMGAksNqNjMZ0lxWIyQTuH3z9vIeBHsBrIgLOeY/vqOpGEXkaeB/n0NYcVY26mNOYuLUWiM3Ia9KY5wpEVU87xrL7gPtSGMeYpLA9EJMJPHcIy5iTgRWIyQRWIMa4wArEZAIrEGNcYAViMoEViDEusAIxmcAKxBgXWIGYTGAFYowLAj2tQEz6swIxxgVZ/iyyAllWICatWYEY4xK7qZRJd1YgxrjECsSkOysQY1wSyA0QORQ5/guN8SgrEGNcYnsgJt1ZgRjjEisQk+6sQIxxSSA3YLPxmrRmBWKMS2wPxKQ7KxBjXGIFYtKdFYgxLrECMenOCsQYl1iBmHTXpTsSikgWMAkoAg4DG1W1OpnBjMl0ViAm3R2zQERkBPAD4HxgM7AbyAFGicgh4D+BRaranOygxmSalgJRVUTE7TjGnLDj7YH8K/AL4Nuqqm0XiEg+cB3wdWBRcuIZk7n8Pf2gEG2I4s/p0sEAYzzlmN+1qnrtMZbtAn6a8ETGnCTa3hPECsSkoy6dRBeRH4uIv83neSLy6+TFMibz2U2lTLrr6lVYfmCViEwUkQuBNcDa5MUyJvNZgZh016UCUdW7cE6mrwL+C7hUVR9OYi5E5A4RUREZGPtcROT/isgWEXlXRM5I5vaNSTYrEJPuunoI6xxgIfAvwHLgYREpSlYoETkVuADY3ubpvwdGxj5m45zcNyZtWYGYdNfVM3cPAV9V1fcBRORK4C/AmCTl+g/gTuD5Ns9dDvwmdjXYShE5RUQKVXVHkjIYk1RWICbddbVAzlTVaMsnqvqMiPw1GYFEZCZQqarrj7o2Pgh82ubzcOw5KxCTlloLxGbkNWlKjhre0X6hyA3AU50NFIwNNCxU1b+d0EZFXgcGd7DobuCfgQtVdb+IbANKVXWPiLwEzG/Zloi8Adypqu1O5ovIbJxDXBQUFJQsXrz4RKK1U1dXR+/eveNePxm8mAm8mcuLmeBIroOfHKT85nLG/nAs+efmeyKT13gxlxczQWJzzZgxY62qlh73hara6QdwG7AeeAKYA1wN3IhzLuSvwH8DI4/1NU7kA5gA7AK2xT4iOOdBBuOMer+2zWs34ZRXp1+vpKREu2PZsmXdWj8ZvJhJ1Zu5vJhJ9Uiumm01ei/36ttPvO1uIPX+e+UlXsykmthcQLl24Xf28QYSLhSRh4FzgbOAiThzYVUAX1fV7cda/0Sp6ntA659iR+2BLAHmishioAzYr3b+w6QxOwdi0t1xz4GoajR2KOs2Vd0HICL9gH8HZiU5X1svA5cAW4BDwC0p3LYxCWcFYtJdV0+iT2wpDwBVrRGRyUnK1EpVh7Z5rDiH0YzJCIGeViAmvXV1JHpWbK8DABHpT9fLxxjTAckS/Dl+KxCTtrpaAv8OvCUifwIU52T6fUlLZcxJwt/TCsSkry4ViKr+RkTKcU6mC3ClxgYVGmPiZzeVMumsy4ehYoVhpWFMAgVyA0QORdyOYUxc7J7oxrjI9kBMOrMCMcZFViAmnVmBGOMiKxCTzqxAjHGRFYhJZ1YgxrgokBuw2XhN2rICMcZFtgdi0pkViDEusgIx6cwKxBgXWYGYdGYFYoyLArkBIocjaHPnN3YzxqusQIxxUcuU7pF6G41u0o8ViDEusnuCmHRmBWKMi/w9nenorEBMOrICMcZFtgdi0pkViDEusgIx6cwKxBgXWYGYdGYFYoyLrEBMOrMCMcZFViAmnVmBGOMiKxCTzqxAjHFRa4HYjLwmDVmBGOMi2wMx6cyTBSIi3xORTSKyUUQebPP8XSKyJbbsIjczGpMIViAmnfndDnA0EZkBXA5MVNUGEcmPPT8OuAYYDxQBr4vIKFWNupfWmO7x59hIdJO+vLgHciuwQFUbAFR1V+z5y4HFqtqgqh8DW4CpLmU0JiFExKZ0N2lLVL01jbSIrAOeBy4G6oE7VHWNiDwMrFTV38Ze9zjwZ1X901HrzwZmAxQUFJQsXrw47ix1dXX07t077vWTwYuZwJu5vJgJPp/rrX94i0HTBzHy9pGeyeQVXszlxUyQ2FwzZsxYq6qlx3udK4ewROR1YHAHi+7GydQPmAZMAZ4WkeGAdPD6z7Wfqj4KPApQWlqq06dPjzvn8uXL6c76yeDFTODNXF7MBJ/P9U7eO+T3y3c1a7q8V17gxUzgTi5XCkRVz+9smYjcCjyjzq7RahFpBgYCYeDUNi8NAVVJDWpMCtghLJOuvHgO5DngXAARGQVkA3uAJcA1ItJDRIYBI4HVrqU0JkGsQEy68txVWMATwBMisgFoBG6K7Y1sFJGngfeBCDDHrsAymcAKxKQrzxWIqjYCN3Sy7D7gvtQmMia5ArkBGg80uh3DmBPmxUNYxpxUbA/EpCsrEGNcZgVi0pUViDEuswIx6coKxBiXBXIDNhuvSUtWIMa4zPZATLqyAjHGZYHcANGGKM3RZrejGHNCrECMcVnLlO6RwxGXkxhzYqxAjHGZ3RPEpCsrEGNcZgVi0pUViDEu8/e0m0qZ9GQFYozLbA/EpCsrEGNcZgViEm3//v1cdtllTJo0ifHjx/PrX/+6ddmiRYsYOXIkI0eOZNGiRd3ajucmUzTmZGMFYhLtkUceYdy4cbzwwgvs3r2b0aNHc/3111NXV8ePfvQjysvLERFKSkqYOXMm/fr1i2s7tgdijMusQEyiiQgHDhxAVamrq6N///74/X5effVVLrjgAvr370+/fv244IILeOWVV+Leju2BGOMyKxCTaHPnzmXmzJkUFRVx4MAB/vCHP5CVlUVlZSWnnnrkxq6hUIjKysq4t2N7IMa4zArEJNqrr75KcXExVVVVrFu3jrlz51JbW4tzb772RCTu7ViBGOMyKxCTCM8++yzFxcUUFxfzyCOPcOWVVyIinHbaaQwbNowPPviAUCjEp59+2rpOOBymqKgo7m1agRjjstYCsRl5TTdcccUVrFu3jnXr1jFmzBjeeOMNAKqrq9m0aRPDhw/noosuYunSpdTU1FBTU8PSpUu56KKL4t6mnQMxxmW+bB+SJbYHYhLmhz/8ITfffDMTJkxAVXnggQcYOHBg67IpU6YAcM8999C/f/+4t2MFYozLRMSmdE9j+/fv54YbbmD79u1EIhHuuOMObrnlFgB8Ph8TJkwAYMiQISxZsiQlmYqKili6dGmHy2bNmsWsWbMSsh0rEGM8wAokfXU25iI7O5uePXuybt06tyMmjZ0DMcYDArkBIodsOvd01NmYi5OBFYgxHmB7IOlr7ty5VFRUUFRUxIQJE1i4cCFZWc6v1vr6ekpLS5k2bRrPPfdcSnPt2QMdXLWbUJ4rEBEpFpGVIrJORMpFZGrseRGR/ysiW0TkXRE5w+2sxiSKv6ffCiRNdTbmAmD79u2Ul5fz1FNPcfvtt7N169ak56mogMsvh/x82LQpudvyXIEADwI/UtVi4J7Y5wB/D4yMfcwGfuFOPGMSz/ZA0ssjjzxy3DEXQOsYi+HDhzN9+nTeeeedpGWqr3eKo6QEXnoJevWChoakbQ7wZoEokBd73Beoij2+HPiNOlYCp4hIoRsBjUk0K5D0MmfOnOOOuaipqaEh9ht8z549rFixgnHjxiU8S8seR0WFUxyHD0M0Clkp+O3uxTM9twOvishDOAX3xdjzQeDTNq8Lx57bkdp4xiReIDfAgcoDbscwcehszMVbb73Ft7/9bbKysmhubmbevHkJLZD33m5i/v+qompVmMGRSuobDxONJuzLd4l0NDdK0jcq8jowuINFdwPnAX9V1f8WkauB2ap6voi8BMxX1b/FvsYbwJ2quvaorz0b5xAXBQUFJYsXL447Z11dHb179457/WTwYibwZi4vZoKOc1XcV0Ht+7WU/a7MM5m8oG2uAwcO8OCDD1JVVUV2djZ33nknw4YNA2D16tU8/PDDRKNRLr30Uq677rqUZEoVbVYOhw9T+34ttRW11L5/gIMf1UGzs1wG5DBgRj/qp41qXcfng9GjoWfPE9/ejBkz1qpq6fGDqXrqA9jPkWIToDb2+D+Ba9u8bhNQeKyvVVJSot2xbNmybq2fDF7MpOrNXF7MpNpxriXfWqIPDX4o9WFi0uG9uuOOO/Tee+9VVdWKigo999xzVVU1Eono8OHDdevWrdrQ0KATJ07UjRs3piRTshzcc1A/fOlD/csP/6JPXvikzu87X+/lXr2Xe3V+3nz9zQW/0T985w39etkm7Z9Tpz6f6kMPLVPnuivnIy9Pdd26+LYPlGsXfl978RBWFfAlYDlwLrA59vwSYK6ILAbKgP2qaoevTEawcyDH9/7773PXXXcBMGbMGLZt20Z1dTUfffQRp512GsOHDwfgmmuu4fnnn0/K+YZkiDZGqX63mvDKMJWrKgmvDPPZls8AkCwhf0I+4782nlBZiNCZIQaOHohkOTPoXo1z7uOuu5xzHj4fKT2M5cUC+RawUET8QD2xw1HAy8AlwBbgEHCLO/GMSTwrkOObNGkSzzzzDGeffTarV6/mk08+IRwOd3iPi1WrVqUs1549MGAAdGVWdFVl//b97cpix9s7iDY4v/V7F/YmNC3E5G9OJjQtRFFJEdm9s4/5NceOheeeg1degS9/GZYuhcbG1BSJ5wpEnXMcJR08r8Cc1CcyJvkCuQGaI81Em6L4Aj6343jSvHnzuO222yguLmbChAlMnjwZv9+f8HtcdFVFBcybBy+8AO+/D2PGfP41DQcaqFpTRXjVkcI4WH0QAH+On8KSQqbOnUqwLEhoWoi8UF7c2XNynCJp2SNZsgR69OjOv/D4PFcgxpyMWqZ0jxyOWIG08eyzz3L77bcD8PLLL/PrX/8acP6SHzZsGMOGDePQoUMJvcfF8bSMt3jtNecv/ZbxFs3RZvZU7CG8MuwUxspKdm3c5QxMAAaMGsCIC0cQmhYiNC1E/oT8pPy/btkjadkzSiYrEGM8oO1NpXrkJfnPxjRyxRVXsHDhQgD27dtHY2Mj2dnZ/OpXv+Kcc84hLy+PKVOmsHnzZj7++GOCwSCLFy/mqaeeSniWlj2O6dOd8RY50TpOo5LhjWH+NruSl9+vpLGuEYCcfjmEykKM/cpYQmUhglOD9Owfx+Ui4MN0AAAPVUlEQVRQ3RCbvT2prECM8YB0uithTU0Ns2bNYuvWreTk5PDEE09w+umnty6PRqOUlpYSDAZ58cUXE7bdiooKbrzxRnw+H+PGjePxxx8HwO/38/DDD3PRRRcRjUaZNWsW48ePT+B24a7/HWHDazvIb6rk0Pb3mRtdTz/2ARBtzCJSV8DEGyc6ZVEWZMCoASk5jOY2KxBjPCCdCuT++++nuLiYZ599lg8++IA5c+a0jsQGWLhwIWPHjm2dDypRzjzzTDZv3tzhsksuuYRLLrkkIdtRVWq21hBeFebjN8O8/FglE3Unk2ODLqLbelDFCFYzhTAhDvYp5C9PBZg0KSGbTytWIMZ4QDoVSGeX0xYUFBAOh3nppZe4++67+clPfuJy0q6p31dP5RrnBHflykrCq8Ic3nsYgECvAJNKi9hQcyYrtgf5JBLih/9nLX+8Y3rr+nmZv6PRKSsQYzzA39P5UUxVgRx9GOrWW29l+vTpgHOu4Zvf/CYbNmxARHjiiSc488wzW9ft7HLagoICbr/9dh588EEOHPDmtCzNkWZ2bdjVepI7vCrMnoo9rcsHjRvE6JmjW6+Kyh+fT5bfmVTKzfEWXmUFYowHpHoP5OjDUNddd13rbVhvu+02Lr74Yv70pz/R2NjIoUOH2q3b2eW0L774Ivn5+ZSUlLB8+fKk5D6RMRcAtZW1rZfPVq6qpKq8qvU9zh2YS2haiAnXTXDGXEwpIqdvTqdfy83xFl5lBWKMB6S6QI4+DFVdXU11dTU9e/bkzTff5L/+678AyM7OJjs7m0ceeYTHHnsM6Pxy2sWLF7NkyRJefvll6uvrqa2t5YYbbuC3v/1tt/N2ZcxF06EmqtZWtSuM2rBzHsaX7WPw5MGtA/RCZSFOGXZKXCe63Rhv4VVWIMZ4QKoL5OjDUDt37iQcDuPz+Rg0aBC33HIL69evp6SkhIULFzJnzhzmzHHG8XZ2Oe38+fOZP38+AMuXL+ehhx7qdnl0NuZCm5W9m/e2lkV4ZZjqd6vRqDPoot/wfgz5uyGEpjlXRQ0uHoy/R2J/3aVyvIVXWYEY4wGpLpCjD0ONHDkSv99PU1MTb7/9Nj/72c8oKyvjtttuY8GCBfz4xz9uXbezy2kT6egxF9nRQwyjkhGNYd76biWvVFRSX1MPQHafbIJTg5w972ynMKYG6ZXfK+GZOpOK8RZeZQVijAekokCOdRiqsLCwdVR3KBSirMyZVv4rX/kKCxYsaPd1jnU5bYvp06e3npQ/ERUVcNedUd59rZr8xjCHwhV8N/oeA3AmF2xuFOr35DPuK+NaT3QPHDOQLJ8X742X+axAjPGAVBTIsQ5DTZw4kby8PPLy8jj11FPZtGkTo0eP5o033kjqrLYtkwtWrqrkozfDPP/zSiZoFZNxzkxHN2ezi+G8zWQqCXGgTxFvPJ19Uo658CIrEGM8wBfwkeXPStkhrKMPQ33ve99rXfazn/2M66+/nsbGRoYPH966p5IIDQcaqCpvf6K7bmcd4EwuOHlyIe/vn8Jbn4b4JBLin+95mz/87xmt65/MYy68yArEGI8I5AZoOpyaAjn6MFTby26Li4spLy8/5vpduZxWm5XdFbvbTV2+e+NutNk50d1/ZH+Gnz+c4DTnUFTBxILWyQVbrnDy+cTGXHiYFYgxHpHqe4J8/JePWXrHUvZ8sIdIfYQVOSsYOGYgFz50IcPOHdbhOse6nLauus4pitjU5ZWrK2k8cGRyweDUIGOvHEuwLEhwapDcAbmdZrMxF+nBCsQYjwjkBogciqRkW3/9l7+y4oEVlN5aylf/+FVO+cIp7PtkH+W/KOf3l/2es35wFl+650utr28pjpbLafNyI+xYs5N9rxzZu9i3zZlcUHzC4EmDmXjDxNYT3QNGDmi9i96JsDEX3mYFYoxHJHQPRBUa9kLO568x/fgvH7PigRV8/fWvc+qZR+7k139Efy586ELGXjWWJ89/kiFnD6G+cBjzfqCsWVpDfmMl0zVMkEoKD+7gzRudyQXzQnmEpoWYMmcKoWkhCs8obL0oIFFszIU3WYEY4xEJLZDaTfDSOAheBsULoO/Y1kVL71hK6a2l7cqjrVPPPJXS75Ty2NWvsfDgN/lO/U85A2duq0YCVFHE29nTmDM/xFlfC5IXzEtM5i44mcdceJEViDEekdACaW4Afy+oegl2vgaDL2gtkj0f7OGrf/zqMVcv/W4pa36xhkP1WazlDOroTSUhdpFPM1nk5cB950FeMDFxTXqyAjHGI/w9/Rzafej4L+wqyQKNQvRwa5Ec8F9CpH4Cp3zhlGOu2ndIXyL1EXr2hL81TreT16ZDViDGeESir8JqavSz48MhhLcEqdwaIrwlRO3evvhz/Oz7ZB/9R/TvdN392/fjz/Gzdq1z8tqugjIdsQIxxiO6UyCqymebP3MmFlwVpnLFZqo3zKE56oyrOGVQDUNGbSc4opLyZWdS/otyLnzowk6/XvnPyxk0blDryeuWq6CsSExbViDGeMSJFMjhzw5TufrIaO7wqnD7yQXP6MsXZ5YTGvYRwdPC9O570FlRfBQMreH3PxnA2KvGdngi/dP/+ZTyX5Zz7QvXtj53dJHY5bQGrECM8YzOCiTaFKX63WpncF5szMXeD/cCIFnCoPGDPj+5YO178Ppd0BS7L7n4ICsbBl/IsEvmc1ZgF0+e/ySl3yml9Lul9B3Sl/3b91P+83LKf1nOWT84q8PBhHY5rWnLlQIRka8C9wJjgamqWt5m2V3AN4Ao8L9U9dXY8xcDCwEf8CtVXXD01zUmnbUUyP7t+wmvCrfuXexYu4NIvTPAsFdBL0LTQhTfUkywLEhRaRE9+nSyK6DRdsVB8fzWy3m/dM9Yhpw9hNfufI01v1hDpD6CP8fPoHGDuPaFazsdid7CLqc14N4eyAbgSuA/2z4pIuOAa4DxQBHwuoiMii1+BLgACANrRGSJqr6fusjGJFcgN4A2Kz/9wk8B8PXwUVRSROmtpc7eRVmIvl/o27W76GX1gMghCM5sVxxtDTt3GLPLZwPOXFjxTL9uTm6uFIiqVgAd/SBcDixW1QbgYxHZAkyNLduiqh/F1lsce60ViMkYY68cy/7t+8k/Pf/I5ILZvvi+WN5ouHJXhyPRjUkUr50DCQIr23wejj0H8OlRz5elKpQxqTBwzEC+/MsvJ+aLiVh5mKRLWoGIyOvA4A4W3a2qz3e2WgfPKdDR7ca0k+3OBmYDFBQUtJum+kTV1dV1a/1k8GIm8GYuL2YCb+byYibwZi4vZgJ3ciWtQFT1/DhWCwNtrysMAVWxx509f/R2HwUeBSgtLdXuHNf14nFhL2YCb+byYibwZi4vZgJv5vJiJnAnl9duJLwEuEZEeojIMGAksBpYA4wUkWEiko1zon2JizmNMeak59ZlvFcAPwMGAS+JyDpVvUhVN4rI0zgnxyPAHFWNxtaZC7yKcxnvE6q60Y3sxhhjHG5dhfUs8Gwny+4D7uvg+ZeBl5MczRhjTBd57RCWMcaYNGEFYowxJi5WIMYYY+Iiqh0Op8gIIrIb+KQbX2IgsCdBcRLFi5nAm7m8mAm8mcuLmcCbubyYCRKb6wuqOuh4L8roAukuESlX1VK3c7TlxUzgzVxezATezOXFTODNXF7MBO7kskNYxhhj4mIFYowxJi5WIMf2qNsBOuDFTODNXF7MBN7M5cVM4M1cXswELuSycyDGGGPiYnsgxhhj4mIFchQR+TcR+UBE3hWRZ0XklDbL7hKRLSKySUQuSnGur4rIRhFpFpHSNs8PFZHDIrIu9vFLtzPFlrn2Xh2V414RqWzz/lziYpaLY+/HFhGZ51aOo4nINhF5L/b+lB9/jaTleEJEdonIhjbP9ReR10Rkc+y//TyQydXvKRE5VUSWiUhF7OfvttjzqX+vVNU+2nwAFwL+2OMHgAdij8cB64EewDBgK+BLYa6xwGhgOVDa5vmhwAaX3qvOMrn6Xh2V8V7gDg98X/li78NwIDv2/oxzO1cs2zZgoAdynAOc0fb7GXgQmBd7PK/l59HlTK5+TwGFwBmxx32AD2M/cyl/r2wP5CiqulRVI7FPV+LcewTa3G5XVT8G2t5uNxW5KlR1U6q21xXHyOTqe+VRU4ndlllVG4GW2zKbGFV9E/jsqKcvBxbFHi8C/sEDmVylqjtU9e3Y4wNABc6dW1P+XlmBHNss4M+xx0E+f1vd4OfWcMcwEXlHRP4qIn/ndhi8917NjR2SfCLVh0Da8Np70pYCS0VkbeyOnl5SoKo7wPnFCeS7nKeFF76nEJGhwGRgFS68V167J3pKdOV2uyJyN849SX7XsloHr0/oJWxx3gZ4BzBEVfeKSAnwnIiMV9VaFzMl/b1qt7FjZAR+Afw4tv0fA/+O84dBqqX0PTlBZ6lqlYjkA6+JyAexv7xNxzzxPSUivYH/Bm5X1VqRjr7FkuukLBA9zu12ReQm4MvAeRo7oMixb7ebklydrNMANMQerxWRrcAoICEnQ+PJRAreq7a6mlFEHgNeTFaO40jpe3IiVLUq9t9dIvIszuE2rxRItYgUquoOESkEdrkdSFWrWx679T0lIgGc8vidqj4Tezrl75UdwjqKiFwM/ACYqaqH2izq7Ha7rhKRQSLiiz0ejpPrI3dTeee9iv0gtbgC2NDZa5PMk7dlFpFeItKn5THORSRuvUcdWQLcFHt8E9DZXm/KuP09Jc6uxuNAhar+pM2i1L9Xbl1J4NUPnBO+nwLrYh+/bLPsbpwraTYBf5/iXFfg/BXbAFQDr8aevwrYiHNVz9vAZW5ncvu9Oirjk8B7wLs4P2CFLma5BOeKma04hwBdyXFUpuGx7531se8j13IBv8c5JNsU+776BjAAeAPYHPtvfw9kcvV7Cjgb5/DZu21+T13ixntlI9GNMcbExQ5hGWOMiYsViDHGmLhYgRhjjImLFYgxxpi4WIEYY4yJixWIMcaYuFiBGGOMiYsViDEpJCJTYpPw5cRGgW8UkdPdzmVMPGwgoTEpJiL/CuQAPYGwqs53OZIxcbECMSbFYnNhrQHqgS+qatTlSMbExQ5hGZN6/YHeOHeTy3E5izFxsz0QY1JMRJbg3JFwGM5EfHNdjmRMXE7K+4EY4xYRuRGIqOpTsWn43xKRc1X1L25nM+ZE2R6IMcaYuNg5EGOMMXGxAjHGGBMXKxBjjDFxsQIxxhgTFysQY4wxcbECMcYYExcrEGOMMXGxAjHGGBOX/w+fXsuJRYD6AgAAAABJRU5ErkJggg==\n",
374 "text/plain": "<matplotlib.figure.Figure at 0x7fb64cf70438>"
375 },
376 "metadata": {}
377 }
378 ]
379 },
380 {
381 "metadata": {},
382 "cell_type": "markdown",
383 "source": "The plot of the function shows a line in which the *c(x)* value increases towards 25 as *x* approaches 5 from the negative side:\n\n\\begin{equation}\\lim_{x \\to 5^{-}} c(x) = 25 \\end{equation}\n\nHowever, the *c(x)* value decreases towards -95 as *x* approaches 5 from the positive side:\n\n\\begin{equation}\\lim_{x \\to 5^{+}} c(x) = -95 \\end{equation}\n\nSo what can we say about the two-sided limit of this function at x = 5?\n\nThe limit as we approach x = 5 from the negative side is *not* equal to the limit as we approach x = 5 from the positive side, so no two-sided limit exists for this function at that point:\n\n\\begin{equation}\\lim_{x \\to 5} \\text{does not exist} \\end{equation}"
384 },
385 {
386 "metadata": {},
387 "cell_type": "markdown",
388 "source": "### Asymptotes and Infinity\nOK, time to look at another function:\n\n\\begin{equation}d(x) = \\frac{4}{x - 25},\\;\\; x \\ne 25\\end{equation}"
389 },
390 {
391 "metadata": {
392 "trusted": true
393 },
394 "cell_type": "code",
395 "source": "%matplotlib inline\n\n# Define function d\ndef d(x):\n if x != 25:\n return 4 / (x - 25)\n\n\n# Plot output from function d\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = list(range(-100, 24))\nx.append(24.9) # Add some fractional x\nx.append(25) # values around\nx.append(25.1) # 25 for finer-grain results\nx = x + list(range(26, 101))\n# Get the corresponding y values from the function\ny = [d(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('d(x)')\nplt.grid()\n\n# Plot x against d(x)\nplt.plot(x,y, color='purple')\n\nplt.show()",
396 "execution_count": 16,
397 "outputs": [
398 {
399 "output_type": "display_data",
400 "data": {
401 "image/png": "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\n",
402 "text/plain": "<matplotlib.figure.Figure at 0x7fb64eae07f0>"
403 },
404 "metadata": {}
405 }
406 ]
407 },
408 {
409 "metadata": {},
410 "cell_type": "markdown",
411 "source": "What's the limit of *d* as *x* approaches 25?\n\nWe can plot a few points to help us:"
412 },
413 {
414 "metadata": {
415 "trusted": true
416 },
417 "cell_type": "code",
418 "source": "%matplotlib inline\n\n# Define function d\ndef d(x):\n if x != 25:\n return 4 / (x - 25)\n\n\n# Plot output from function d\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = list(range(-100, 24))\nx.append(24.9) # Add some fractional x\nx.append(25) # values around\nx.append(25.1) # 25 for finer-grain results\nx = x + list(range(26, 101))\n# Get the corresponding y values from the function\ny = [d(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('d(x)')\nplt.grid()\n\n# Plot x against d(x)\nplt.plot(x,y, color='purple')\n\n# plot some points from the +ve direction\nposx = [75, 50, 30, 25.5, 25.2, 25.1]\nposy = [d(i) for i in posx]\nplt.scatter(posx, posy, color='blue', marker='<')\nfor p in posx:\n plt.annotate(str(d(p)),(p, d(p)))\n \n# plot some points from the -ve direction\nnegx = [-55, 0, 23, 24.5, 24.8, 24.9]\nnegy = [d(i) for i in negx]\nplt.scatter(negx, negy, color='orange', marker='>')\nfor n in negx:\n plt.annotate(str(d(n)),(n, d(n)))\n\nplt.show()",
419 "execution_count": 17,
420 "outputs": [
421 {
422 "output_type": "display_data",
423 "data": {
424 "image/png": "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\n",
425 "text/plain": "<matplotlib.figure.Figure at 0x7fb64eae05f8>"
426 },
427 "metadata": {}
428 }
429 ]
430 },
431 {
432 "metadata": {
433 "collapsed": true
434 },
435 "cell_type": "markdown",
436 "source": "From these plotted values, we can see that as *x* approaches 25 from the negative side, *d(x)* is decreasing, and as *x* approaches 25 from the positive side, *d(x)* is increasing. As *x* gets closer to 25, *d(x)* increases or decreases more significantly.\n\nIf we were to plot every fractional value of *d(x)* for *x* values between 24.9 and 25, we'd see a line that decreases indefintely, getting closer and closer to the x = 25 vertical line, but never actually reaching it. Similarly, plotting every *x* value between 25 and 25.1 would result in a line going up indefinitely, but always staying to the right of the vertical x = 25 line.\n\nThe x = 25 line in this case is an *asymptote* - a line to which a curve moves ever closer but never actually reaches. The positive limit for x = 25 in this case in not a real numbered value, but *infinity*:\n\n\\begin{equation}\\lim_{x \\to 25^{+}} d(x) = \\infty \\end{equation}\n\nConversely, the negative limit for x = 25 is negative infinity:\n\n\\begin{equation}\\lim_{x \\to 25^{-}} d(x) = -\\infty \\end{equation}\n\n"
437 },
438 {
439 "metadata": {},
440 "cell_type": "markdown",
441 "source": "## Finding Limits Numerically Using a Table\nUp to now, we've estimated limits for a point graphically by examining a graph of a function. You can also approximate limits by creating a table of x values and the corresponding function values either side of the point for which you want to find the limits.\n\nFor example, let's return to our ***a*** function:\n\n\\begin{equation}a(x) = x^{2} + 1\\end{equation}\n\nIf we want to find the limits as x is approaching 0, we can apply the function to some values either side of 0 and view them as a table. Here's some Python code to do that:"
442 },
443 {
444 "metadata": {
445 "trusted": true
446 },
447 "cell_type": "code",
448 "source": "# Define function a\ndef a(x):\n return x**2 + 1\n\n\nimport pandas as pd\n\n# Create a dataframe with an x column containing values either side of 0\ndf = pd.DataFrame ({'x': [-1, -0.5, -0.2, -0.1, -0.01, 0, 0.01, 0.1, 0.2, 0.5, 1]})\n\n# Add an a(x) column by applying the function to x\ndf['a(x)'] = a(df['x'])\n\n#Display the dataframe\ndf",
449 "execution_count": 18,
450 "outputs": [
451 {
452 "output_type": "execute_result",
453 "execution_count": 18,
454 "data": {
455 "text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>x</th>\n <th>a(x)</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>-1.00</td>\n <td>2.0000</td>\n </tr>\n <tr>\n <th>1</th>\n <td>-0.50</td>\n <td>1.2500</td>\n </tr>\n <tr>\n <th>2</th>\n <td>-0.20</td>\n <td>1.0400</td>\n </tr>\n <tr>\n <th>3</th>\n <td>-0.10</td>\n <td>1.0100</td>\n </tr>\n <tr>\n <th>4</th>\n <td>-0.01</td>\n <td>1.0001</td>\n </tr>\n <tr>\n <th>5</th>\n <td>0.00</td>\n <td>1.0000</td>\n </tr>\n <tr>\n <th>6</th>\n <td>0.01</td>\n <td>1.0001</td>\n </tr>\n <tr>\n <th>7</th>\n <td>0.10</td>\n <td>1.0100</td>\n </tr>\n <tr>\n <th>8</th>\n <td>0.20</td>\n <td>1.0400</td>\n </tr>\n <tr>\n <th>9</th>\n <td>0.50</td>\n <td>1.2500</td>\n </tr>\n <tr>\n <th>10</th>\n <td>1.00</td>\n <td>2.0000</td>\n </tr>\n </tbody>\n</table>\n</div>",
456 "text/plain": " x a(x)\n0 -1.00 2.0000\n1 -0.50 1.2500\n2 -0.20 1.0400\n3 -0.10 1.0100\n4 -0.01 1.0001\n5 0.00 1.0000\n6 0.01 1.0001\n7 0.10 1.0100\n8 0.20 1.0400\n9 0.50 1.2500\n10 1.00 2.0000"
457 },
458 "metadata": {}
459 }
460 ]
461 },
462 {
463 "metadata": {},
464 "cell_type": "markdown",
465 "source": "Looking at the output, you can see that the function values are getting closer to 1 as x approaches 0 from both sides, so:\n\n\\begin{equation}\\lim_{x \\to 0} a(x) = 1 \\end{equation}\n\nAdditionally, you can see that the actual value of the function when x = 0 is also 1, so:\n\n\\begin{equation}\\lim_{x \\to 0} a(x) = a(0) \\end{equation}\n\nWhich according to our earlier definition, means that the function is continuous at 0.\n\nHowever, you should be careful not to assume that the limit when x is approaching 0 will always be the same as the value when x = 0; even when the function is defined for x = 0.\n\nFor example, consider the following function:\n\n\\begin{equation}\ne(x) = \\begin{cases}\n 5, & \\text{if } x = 0, \\\\\n 1 + x^{2}, & \\text{otherwise }\n\\end{cases}\n\\end{equation}\n\nLet's see what the function returns for *x* values either side of 0 in a table:"
466 },
467 {
468 "metadata": {
469 "trusted": true
470 },
471 "cell_type": "code",
472 "source": "# Define function e\ndef e(x):\n if x == 0:\n return 5\n else:\n return 1 + x**2\n\nimport pandas as pd\n# Create a dataframe with an x column containing values either side of 0\nx= [-1, -0.5, -0.2, -0.1, -0.01, 0, 0.01, 0.1, 0.2, 0.5, 1]\ny =[e(i) for i in x]\ndf = pd.DataFrame ({' x':x, 'e(x)': y })\ndf",
473 "execution_count": 19,
474 "outputs": [
475 {
476 "output_type": "execute_result",
477 "execution_count": 19,
478 "data": {
479 "text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>x</th>\n <th>e(x)</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>-1.00</td>\n <td>2.0000</td>\n </tr>\n <tr>\n <th>1</th>\n <td>-0.50</td>\n <td>1.2500</td>\n </tr>\n <tr>\n <th>2</th>\n <td>-0.20</td>\n <td>1.0400</td>\n </tr>\n <tr>\n <th>3</th>\n <td>-0.10</td>\n <td>1.0100</td>\n </tr>\n <tr>\n <th>4</th>\n <td>-0.01</td>\n <td>1.0001</td>\n </tr>\n <tr>\n <th>5</th>\n <td>0.00</td>\n <td>5.0000</td>\n </tr>\n <tr>\n <th>6</th>\n <td>0.01</td>\n <td>1.0001</td>\n </tr>\n <tr>\n <th>7</th>\n <td>0.10</td>\n <td>1.0100</td>\n </tr>\n <tr>\n <th>8</th>\n <td>0.20</td>\n <td>1.0400</td>\n </tr>\n <tr>\n <th>9</th>\n <td>0.50</td>\n <td>1.2500</td>\n </tr>\n <tr>\n <th>10</th>\n <td>1.00</td>\n <td>2.0000</td>\n </tr>\n </tbody>\n</table>\n</div>",
480 "text/plain": " x e(x)\n0 -1.00 2.0000\n1 -0.50 1.2500\n2 -0.20 1.0400\n3 -0.10 1.0100\n4 -0.01 1.0001\n5 0.00 5.0000\n6 0.01 1.0001\n7 0.10 1.0100\n8 0.20 1.0400\n9 0.50 1.2500\n10 1.00 2.0000"
481 },
482 "metadata": {}
483 }
484 ]
485 },
486 {
487 "metadata": {},
488 "cell_type": "markdown",
489 "source": "As before, you can see that as the *x* values approach 0 from both sides, the value of the function gets closer to 1, so:\n\n\\begin{equation}\\lim_{x \\to 0} e(x) = 1 \\end{equation}\n\nHowever the actual value of the function when x = 0 is 5, not 1; so:\n\n\\begin{equation}\\lim_{x \\to 0} e(x) \\ne e(0) \\end{equation}\n\nWhich according to our earlier definition, means that the function is non-continuous at 0.\n\nRun the following cell to see what this looks like as a graph:"
490 },
491 {
492 "metadata": {
493 "trusted": true
494 },
495 "cell_type": "code",
496 "source": "%matplotlib inline\n\n# Define function e\ndef e(x):\n if x == 0:\n return 5\n else:\n return 1 + x**2\n\nfrom matplotlib import pyplot as plt\n\nx= [-1, -0.5, -0.2, -0.1, -0.01, 0.01, 0.1, 0.2, 0.5, 1]\ny =[e(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('e(x)')\nplt.grid()\n\n# Plot x against e(x)\nplt.plot(x, y, color='purple')\n# (we're cheating slightly - we'll manually plot the discontinous point...)\nplt.scatter(0, e(0), color='purple')\n# (... and overplot the gap)\nplt.plot(0, 1, color='purple', marker='o', markerfacecolor='w', markersize=10)\nplt.show()",
497 "execution_count": 20,
498 "outputs": [
499 {
500 "output_type": "display_data",
501 "data": {
502 "image/png": "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\n",
503 "text/plain": "<matplotlib.figure.Figure at 0x7fb64d266da0>"
504 },
505 "metadata": {}
506 }
507 ]
508 },
509 {
510 "metadata": {
511 "collapsed": true
512 },
513 "cell_type": "markdown",
514 "source": "## Determining Limits Analytically\nWe've seen how to estimate limits visually on a graph, and by creating a table of *x* and *f(x)* values either side of a point. There are also some mathematical techniques we can use to calculate limits.\n\n### Direct Substitution\nRecall that our definition for a function to be continuous at a point is that the two-directional limit must exist and that it must be equal to the function value at that point. It therefore follows, that if we know that a function is continuous at a given point, we can determine the limit simply by evaluating the function for that point.\n\nFor example, let's consider the following function ***g***:\n\n\\begin{equation}g(x) = \\frac{x^{2} - 1}{x - 1}, x \\ne 1\\end{equation}\n\nRun the following code to see this function as a graph:"
515 },
516 {
517 "metadata": {
518 "trusted": true
519 },
520 "cell_type": "code",
521 "source": "%matplotlib inline\n\n# Define function f\ndef g(x):\n if x != 1:\n return (x**2 - 1) / (x - 1)\n\n\n# Plot output from function g\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx= range(-20, 21)\ny =[g(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('g(x)')\nplt.grid()\n\n# Plot x against g(x)\nplt.plot(x,y, color='purple')\n\nplt.show()",
522 "execution_count": 21,
523 "outputs": [
524 {
525 "output_type": "display_data",
526 "data": {
527 "image/png": "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\n",
528 "text/plain": "<matplotlib.figure.Figure at 0x7fb64d26f080>"
529 },
530 "metadata": {}
531 }
532 ]
533 },
534 {
535 "metadata": {},
536 "cell_type": "markdown",
537 "source": "Now, suppose we need to find the limit of ***g(x)*** as ***x*** approaches **4**. We can try to find this by simply substituting 4 for the *x* values in the function:\n\n\\begin{equation}g(4) = \\frac{4^{2} - 1}{4 - 1}\\end{equation}\n\nThis simplifies to:\n\n\\begin{equation}g(4) = \\frac{15}{3}\\end{equation}\n\nSo:\n\n\\begin{equation}\\lim_{x \\to 4} g(x) = 5\\end{equation}\n\nLet's take a look:"
538 },
539 {
540 "metadata": {
541 "trusted": true
542 },
543 "cell_type": "code",
544 "source": "%matplotlib inline\n\n# Define function g\ndef g(x):\n if x != 1:\n return (x**2 - 1) / (x - 1)\n\n\n# Plot output from function f\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx= range(-20, 21)\ny =[g(i) for i in x]\n\n# Set the x point we're interested in\nzx = 4\n\nplt.xlabel('x')\nplt.ylabel('g(x)')\nplt.grid()\n\n# Plot x against g(x)\nplt.plot(x,y, color='purple')\n\n# Plot g(x) when x = 0\nzy = g(zx)\nplt.plot(zx, zy, color='red', marker='o', markersize=10)\nplt.annotate(str(zy),(zx, zy), xytext=(zx - 2, zy + 1))\n\nplt.show()\n\nprint ('Limit as x -> ' + str(zx) + ' = ' + str(zy))",
545 "execution_count": 22,
546 "outputs": [
547 {
548 "output_type": "display_data",
549 "data": {
550 "image/png": "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\n",
551 "text/plain": "<matplotlib.figure.Figure at 0x7fb64c582048>"
552 },
553 "metadata": {}
554 },
555 {
556 "output_type": "stream",
557 "text": "Limit as x -> 4 = 5.0\n",
558 "name": "stdout"
559 }
560 ]
561 },
562 {
563 "metadata": {},
564 "cell_type": "markdown",
565 "source": "### Factorization\nOK, now let's try to find the limit of ***g(x)*** as ***x*** approaches **1**.\n\nWe know from the function definition that the function is not defined at x = 1, but we're not trying to find the *value* of ***g(x)*** when x *equals* 1; we're trying to find the *limit* of ***g(x)*** as x *approaches* 1.\n\nThe direct substitution approach won't work in this case:\n\n\\begin{equation}g(1) = \\frac{1^{2} - 1}{1 - 1}\\end{equation}\n\nSimplifies to:\n\n\\begin{equation}g(1) = \\frac{0}{0}\\end{equation}\n\nAnything divided by 0 is undefined; so all we've done is to confirm that the function is not defined at this point. You might be tempted to assume that this means the limit does not exist, but <sup>0</sup>/<sub>0</sub> is a special case; it's what's known as the *indeterminate form*; and there may be a way to solve this problem another way.\n\nWe can factor the *x<sup>2</sup> - 1* numerator in the definition of ***g*** as as *(x - 1)(x + 1)*, so the limit equation can we rewritten like this:\n\n\\begin{equation}\\lim_{x \\to a} g(x) = \\frac{(x-1)(x+1)}{x - 1}\\end{equation}\n\nThe ***x - 1*** in the numerator and the ***x - 1*** in the denominator cancel each other out:\n\n\\begin{equation}\\lim_{x \\to a} g(x)= x+1\\end{equation}\n\nSo we can now use substitution for *x = 1* to calculate the limit as *1 + 1*:\n\n\\begin{equation}\\lim_{x \\to 1} g(x) = 2\\end{equation}\n\nLet's see what that looks like:"
566 },
567 {
568 "metadata": {
569 "trusted": true
570 },
571 "cell_type": "code",
572 "source": "%matplotlib inline\n\n# Define function g\ndef f(x):\n if x != 1:\n return (x**2 - 1) / (x - 1)\n\n\n# Plot output from function g\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx= range(-20, 21)\ny =[g(i) for i in x]\n\n# Set the x point we're interested in\nzx = 1\n\n# Calculate the limit of g(x) when x->zx using the factored equation\nzy = zx + 1\n\nplt.xlabel('x')\nplt.ylabel('g(x)')\nplt.grid()\n\n# Plot x against g(x)\nplt.plot(x,y, color='purple')\n\n# Plot the limit of g(x)\nzy = zx + 1\nplt.plot(zx, zy, color='red', marker='o', markersize=10)\nplt.annotate(str(zy),(zx, zy), xytext=(zx - 2, zy + 1))\n\nplt.show()\n\nprint ('Limit as x -> ' + str(zx) + ' = ' + str(zy))",
573 "execution_count": 23,
574 "outputs": [
575 {
576 "output_type": "display_data",
577 "data": {
578 "image/png": "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\n",
579 "text/plain": "<matplotlib.figure.Figure at 0x7fb64c57f908>"
580 },
581 "metadata": {}
582 },
583 {
584 "output_type": "stream",
585 "text": "Limit as x -> 1 = 2\n",
586 "name": "stdout"
587 }
588 ]
589 },
590 {
591 "metadata": {},
592 "cell_type": "markdown",
593 "source": "### Rationalization\nLet's look at another function:\n\n\\begin{equation}h(x) = \\frac{\\sqrt{x} - 2}{x - 4}, x \\ne 4 \\text{ and } x \\ge 0\\end{equation}\n\nRun the following cell to plot this function as a graph:"
594 },
595 {
596 "metadata": {
597 "trusted": true
598 },
599 "cell_type": "code",
600 "source": "%matplotlib inline\n\n# Define function h\ndef h(x):\n import math\n if x >= 0 and x != 4:\n return (math.sqrt(x) - 2) / (x - 4)\n\n\n# Plot output from function h\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx= range(-20, 21)\ny =[h(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.ylabel('h(x)')\nplt.grid()\n\n# Plot x against h(x)\nplt.plot(x,y, color='purple')\n\nplt.show()",
601 "execution_count": 24,
602 "outputs": [
603 {
604 "output_type": "display_data",
605 "data": {
606 "image/png": "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\n",
607 "text/plain": "<matplotlib.figure.Figure at 0x7fb64c57f978>"
608 },
609 "metadata": {}
610 }
611 ]
612 },
613 {
614 "metadata": {},
615 "cell_type": "markdown",
616 "source": "To find the limit of ***h(x)*** as ***x*** approaches **4**, we can't use the direct substitution method because the function is not defined at that point. However, we can take an alternative approach by multiplying both the numerator and denominator in the function by the *conjugate* of the numerator to *rationalize* the square root term (a conjugate is a binomial formed by reversing the sign of the second term of a binomial):\n\n\\begin{equation}\\lim_{x \\to a}h(x) = \\frac{\\sqrt{x} - 2}{x - 4}\\cdot\\frac{\\sqrt{x} + 2}{\\sqrt{x} + 2}\\end{equation}\n\nThis simplifies to:\n\n\\begin{equation}\\lim_{x \\to a}h(x) = \\frac{(\\sqrt{x})^{2} - 2^{2}}{(x - 4)({\\sqrt{x} + 2})}\\end{equation}\n\nThe √x<sup>2</sup> is x, and 2<sup>2</sup> is 4, so we can simplify the numerator as follows:\n\n\\begin{equation}\\lim_{x \\to a}h(x) = \\frac{x - 4}{(x - 4)({\\sqrt{x} + 2})}\\end{equation}\n\nNow we can cancel out the *x - 4* in both the numerator and denominator:\n\n\\begin{equation}\\lim_{x \\to a}h(x) = \\frac{1}{{\\sqrt{x} + 2}}\\end{equation}\n\nSo for x approaching 4, this is:\n\n\\begin{equation}\\lim_{x \\to 4}h(x) = \\frac{1}{{\\sqrt{4} + 2}}\\end{equation}\n\nThis simplifies to:\n\n\\begin{equation}\\lim_{x \\to 4}h(x) = \\frac{1}{2 + 2}\\end{equation}\n\nWhich is of course:\n\n\\begin{equation}\\lim_{x \\to 4}h(x) = \\frac{1}{4}\\end{equation}\n\nSo the limit of ***h(x)*** as ***x*** approaches **4** is <sup>1</sup>/<sub>4</sub> or 0.25.\n\nLet's calculate and plot this with Python:"
617 },
618 {
619 "metadata": {
620 "trusted": true
621 },
622 "cell_type": "code",
623 "source": "%matplotlib inline\n\n# Define function h\ndef h(x):\n import math\n if x >= 0 and x != 4:\n return (math.sqrt(x) - 2) / (x - 4)\n\n\n# Plot output from function h\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx= range(-20, 21)\ny =[h(i) for i in x]\n\n# Specify the point we're interested in\nzx = 4\n\n# Calculate the limit of f(x) when x->zx using factored equation\nimport math\nzy = 1 / ((math.sqrt(zx)) + 2)\n\nplt.xlabel('x')\nplt.ylabel('h(x)')\nplt.grid()\n\n# Plot x against h(x)\nplt.plot(x,y, color='purple')\n\n# Plot the limit of h(x) when x->zx \nplt.plot(zx, zy, color='red', marker='o', markersize=10)\nplt.annotate(str(zy),(zx, zy), xytext=(zx + 2, zy))\n\nplt.show()\n\nprint ('Limit as x -> ' + str(zx) + ' = ' + str(zy))",
624 "execution_count": 25,
625 "outputs": [
626 {
627 "output_type": "display_data",
628 "data": {
629 "image/png": "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\n",
630 "text/plain": "<matplotlib.figure.Figure at 0x7fb64b566fd0>"
631 },
632 "metadata": {}
633 },
634 {
635 "output_type": "stream",
636 "text": "Limit as x -> 4 = 0.25\n",
637 "name": "stdout"
638 }
639 ]
640 },
641 {
642 "metadata": {},
643 "cell_type": "markdown",
644 "source": "## Rules for Limit Operations\nWhen you are working with functions and limits, you may want to combine limits using arithmetic operations. There are some intuitive rules for doing this.\n\nLet's define two simple functions, ***j***:\n\n\\begin{equation}j(x) = 2x - 2\\end{equation}\n\nand ***l***:\n\n\\begin{equation}l(x) = -2x + 4\\end{equation}\n\n\nRun the cell below to plot these functions:"
645 },
646 {
647 "metadata": {
648 "trusted": true
649 },
650 "cell_type": "code",
651 "source": "%matplotlib inline\n\n# Define function j\ndef j(x):\n return x * 2 - 2\n\n# Define function l\ndef l(x):\n return -x * 2 + 4\n\n\n# Plot output from functions j and l\nfrom matplotlib import pyplot as plt\n\n# Create an array of x values\nx = range(-10, 11)\n\n# Get the corresponding y values from the functions\njy = [j(i) for i in x]\nly = [l(i) for i in x]\n\n# Set up the graph\nplt.xlabel('x')\nplt.xticks(range(-10,11, 1))\nplt.ylabel('y')\nplt.yticks(range(-30,30, 2))\nplt.grid()\n\n# Plot x against j(x)\nplt.plot(x,jy, color='green', label='j(x)')\n\n# Plot x against l(x)\nplt.plot(x,ly, color='magenta', label='l(x)')\n\nplt.legend()\n\nplt.show()\n",
652 "execution_count": 26,
653 "outputs": [
654 {
655 "output_type": "display_data",
656 "data": {
657 "image/png": "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\n",
658 "text/plain": "<matplotlib.figure.Figure at 0x7fb64b59af98>"
659 },
660 "metadata": {}
661 }
662 ]
663 },
664 {
665 "metadata": {},
666 "cell_type": "markdown",
667 "source": "### Addition of Limits\n\nFirst, let's look at the rule for addition:\n\n\\begin{equation}\\lim_{x \\to a} (j(x) + l(x)) = \\lim_{x \\to a} j(x) + \\lim_{x \\to a} l(x)\\end{equation}\n\nWhat we're saying here, is that the limit of *j(x)* + *l(x)* as *x* approaches *a*, is the same as the limit of *j(x)* as *x* approaches *a* added to the limit of *l(x)* as *x* approaches *a*.\n\nLooking at the graph for our functions ***j*** and ***l***, let's apply this rule to an *a* value of **8**.\n\nBy visually inspecting the graph, you can see that as *x* approaches 8 from either direction, *j(x)* gets closer to 14, so:\n\n\\begin{equation}\\lim_{x \\to 8} j(x) = 14\\end{equation}\n\nSimilarly, as *x* approaches 8 from either direction, *l(x)* gets closer to -12, so:\n\n\\begin{equation}\\lim_{x \\to 8} l(x) = -12\\end{equation}\n\nSo based on the addition rule:\n\n\\begin{equation}\\lim_{x \\to 8} (j(x) + l(x)) = 14 + -12 = 2\\end{equation}\n\n### Subtraction of Limits\nHere's the rule for subtraction:\n\n\\begin{equation}\\lim_{x \\to a} (j(x) - l(x)) = \\lim_{x \\to a} j(x) - \\lim_{x \\to a} l(x)\\end{equation}\n\nAs you've probably noticed, this is consistent with the rule of addition. Based on an *a* value of 8 (and the limits we identified for this *a* value above), we can apply this rule like this:\n\n\\begin{equation}\\lim_{x \\to 8} (j(x) - l(x)) = 14 - -12 = 26\\end{equation}\n\n### Multiplication of Limits\nHere's the rule for multiplication:\n\n\\begin{equation}\\lim_{x \\to a} (j(x) \\cdot l(x)) = \\lim_{x \\to a} j(x) \\cdot \\lim_{x \\to a} l(x)\\end{equation}\n\nAgain, you can apply this to the limits as x approached an *a* value of 8 we identified previously:\n\n\\begin{equation}\\lim_{x \\to 8} (j(x) \\cdot l(x)) = 14 \\cdot -12 = -168\\end{equation}\n\nThis rule also applies to multipying a limit by a constant:\n\n\\begin{equation}\\lim_{x \\to a} c \\cdot l(x) = c \\cdot \\lim_{x \\to a} l(x)\\end{equation}\n\nSo for an *a* value of 8 and a constant *c* value of 3, this equates to:\n\n\\begin{equation}\\lim_{x \\to 8} 3 \\cdot l(x) = 3 \\cdot -12 = -36\\end{equation}\n\n\n### Division of Limits\nFor division, assuming the limit of *l(x)* when x is approaching *a* is not 0:\n\n\\begin{equation}\\lim_{x \\to a} \\frac{j(x)}{l(x)} = \\frac{\\lim_{x \\to a} j(x)}{\\lim_{x \\to a} l(x)}\\end{equation}\n\nSo, based on our limits for *j(x)* and *l(x*) when *x* approaches 8:\n\n\\begin{equation}\\lim_{x \\to 8} \\frac{j(x)}{l(x)} = \\frac{14}{-12}= \\frac{7}{-6}\\end{equation}\n\n### Limit Exponentials and Roots\n\nAssuming *n* is an integer:\n\n\\begin{equation}\\lim_{x \\to a} (j(x))^{n} = \\Big(\\lim_{x \\to a} j(x)\\Big)^{n}\\end{equation}\n\nSo for example:\n\n\\begin{equation}\\lim_{x \\to 8} (j(x))^{2} = \\Big(\\lim_{x \\to 8} j(x)\\Big)^{2} = 14^{2} = 196\\end{equation}\n\nFor roots, again assuming *n* is an integer:\n\n\\begin{equation}\\lim_{x \\to a} \\sqrt[n]{j(x)} = \\sqrt[n]{\\lim_{x \\to a} j(x)}\\end{equation}\n\nSo:\n\n\\begin{equation}\\lim_{x \\to 8} \\sqrt[2]{j(x)} = \\sqrt[2]{\\lim_{x \\to 8} j(x)} = \\sqrt[2]{14} \\approx 3.74\\end{equation}\n"
668 }
669 ],
670 "metadata": {
671 "kernelspec": {
672 "name": "python3",
673 "display_name": "Python 3",
674 "language": "python"
675 },
676 "language_info": {
677 "mimetype": "text/x-python",
678 "nbconvert_exporter": "python",
679 "name": "python",
680 "pygments_lexer": "ipython3",
681 "version": "3.5.4",
682 "file_extension": ".py",
683 "codemirror_mode": {
684 "version": 3,
685 "name": "ipython"
686 }
687 }
688 },
689 "nbformat": 4,
690 "nbformat_minor": 2
691}