Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Simple example of using the definition of a derivative to calculate a tangent line to a point.
{
"cells": [
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"f = lambda x: x**2"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [],
"source": [
"x = np.linspace(-5, 5, 200)\n",
"y = f(x)"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"a = 1\n",
"h = 0.00001\n"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [],
"source": [
"fprime = (f(a+h)-f(a))/h\n",
"tangent = f(a) + fprime*(x-a)"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x2707f4580b8>,\n",
" <matplotlib.lines.Line2D at 0x2707f458208>,\n",
" <matplotlib.lines.Line2D at 0x2707f4585c0>]"
]
},
"execution_count": 70,
"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": [
"plt.plot(x, y, x, tangent, a, f(a), 'og')"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [],
"source": [
"targetx = 5\n",
"targety = 3"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x2707f57f2e8>,\n",
" <matplotlib.lines.Line2D at 0x2707f57f438>,\n",
" <matplotlib.lines.Line2D at 0x2707f57f7f0>,\n",
" <matplotlib.lines.Line2D at 0x2707f57fb00>]"
]
},
"execution_count": 76,
"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": [
"plt.plot(x, y, x, tangent, a, f(a), 'og', targetx, targety, 'og')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"from scipy.optimize import fsolve"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"ename": "AttributeError",
"evalue": "module 'scipy' has no attribute 'fsolve'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-3-ca242a9cee9e>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0msc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfsolve\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mAttributeError\u001b[0m: module 'scipy' has no attribute 'fsolve'"
]
}
],
"source": [
"fsolve(func=f, fprime=fprime)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"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.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment