Moved Taylor Series to supporting notebooks.
This commit is contained in:
1 parent
b2a3ce2a28
commit
47cce41efb
2 files changed
+281
-88
No files matched your search
+189
-88
@@ -489,7 +489,7 @@
|
||||
"\n",
|
||||
"$\\mathbf x_k$ does not mean the k$^{th}$ value of $\\mathbf x$, but the value of $\\mathbf x$ at the k$^{th}$ value of $t$.\n",
|
||||
"\n",
|
||||
"Broadly speaking there are three common ways to find this matrix for Kalman filters. The technique most often used with Kalman filters is to use a Taylor-series expansion. Linear Time Invariant Theory, also known as LTI System Theory, is a second technique. Finally, there are numerical techniques. You may know of others, but these three are what you will most likely encounter in the Kalman filter literature and praxis."
|
||||
"Broadly speaking there are three common ways to find this matrix for Kalman filters. The technique most often used with Kalman filters is to use a matrix exponential. Linear Time Invariant Theory, also known as LTI System Theory, is a second technique. Finally, there are numerical techniques. You may know of others, but these three are what you will most likely encounter in the Kalman filter literature and praxis."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1231,12 +1231,23 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 12,
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x1ecb9df2278>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"t = np.linspace(-1, 1, 10)\n",
|
||||
@@ -1255,11 +1266,22 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 13,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x1ecb9ffa7b8>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import book_plots\n",
|
||||
"t = np.linspace(-1, 2, 20)\n",
|
||||
@@ -1278,7 +1300,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 14,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@@ -1295,11 +1317,20 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 15,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"2.0\n",
|
||||
"4.0\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def dx(t, y): return y\n",
|
||||
"\n",
|
||||
@@ -1316,11 +1347,22 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 16,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x1ecba098470>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"ys = euler(0, 4, 1, dx, step=0.00001)\n",
|
||||
"plt.subplot(1,2,1)\n",
|
||||
@@ -1334,11 +1376,22 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 17,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"exact answer= 54.5981500331\n",
|
||||
"euler answer= 54.59705808834125\n",
|
||||
"difference = 0.00109194480299\n",
|
||||
"iterations = 400000\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"print('exact answer=', np.exp(4))\n",
|
||||
"print('euler answer=', ys[-1])\n",
|
||||
@@ -1406,7 +1459,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 18,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -1444,11 +1497,29 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 19,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"max error 5.206970035942504e-05\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x1ecbc11be80>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import math\n",
|
||||
"import numpy as np\n",
|
||||
@@ -1475,71 +1546,6 @@
|
||||
"print(\"max error {}\".format(max(error)))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Linearizing with the Taylor Series\n",
|
||||
"\n",
|
||||
"Taylor series represents a function as an infinite sum of terms. The terms are linear, even for a nonlinear function, so we can express any arbitrary nonlinear function using linear algebra. The cost of this choice is that unless we use an infinite number of terms the value we compute will be approximate rather than exact.\n",
|
||||
"\n",
|
||||
"Before applying it to a matrix lets do the Taylor expansion of a real function since this is much easier to visualize. I choose sin(x). The Taylor series for a real or complex function f(x) at x=a is the infinite series\n",
|
||||
"\n",
|
||||
"$$f(x) = f(a) + f'(a)(x-a) + \\frac{f''(a)}{2!}(x-a)^2 + \\, ...\\, + \\frac{f^{(n)}(a)}{n!}(x-a)^n + \\, ...$$\n",
|
||||
"\n",
|
||||
"where $f^{n}$ is the nth derivative of f. To compute the Taylor series for $f(x)=sin(x)$ at $x=0$ Let's first work out the terms for f.\n",
|
||||
"\n",
|
||||
"$$\\begin{aligned}\n",
|
||||
"f^{0}(x) &= sin(x) ,\\ \\ &f^{0}(0) &= 0 \\\\\n",
|
||||
"f^{1}(x) &= cos(x),\\ \\ &f^{1}(0) &= 1 \\\\\n",
|
||||
"f^{2}(x) &= -sin(x),\\ \\ &f^{2}(0) &= 0 \\\\\n",
|
||||
"f^{3}(x) &= -cos(x),\\ \\ &f^{3}(0) &= -1 \\\\\n",
|
||||
"f^{4}(x) &= sin(x),\\ \\ &f^{4}(0) &= 0 \\\\\n",
|
||||
"f^{5}(x) &= cos(x),\\ \\ &f^{5}(0) &= 1\n",
|
||||
"\\end{aligned}\n",
|
||||
"$$\n",
|
||||
"\n",
|
||||
"Now we can substitute these values into the equation.\n",
|
||||
"\n",
|
||||
"$$\\sin(x) = \\frac{0}{0!}(x)^0 + \\frac{1}{1!}(x)^1 + \\frac{0}{2!}(x)^2 + \\frac{-1}{3!}(x)^3 + \\frac{0}{4!}(x)^4 + \\frac{-1}{5!}(x)^5 + ... $$\n",
|
||||
"\n",
|
||||
"And let's test this with some code:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"estimate of sin(.3) is 0.30452025\n",
|
||||
"exact value of sin(.3) is 0.295520206661\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"x = .3\n",
|
||||
"estimate = x + x**3/6 + x**5/120\n",
|
||||
"exact = np.sin(.3)\n",
|
||||
"\n",
|
||||
"print('estimate of sin(.3) is', estimate)\n",
|
||||
"print('exact value of sin(.3) is', exact)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"This is not bad for only three terms. If you are curious, go ahead and implement this as a Python function to compute the series for an arbitrary number of terms.\n",
|
||||
"\n",
|
||||
"Now we can consider how to linearize a nonlinear "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
@@ -1796,11 +1802,22 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 20,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x1ecbc04b2e8>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"from book_format import set_figsize, figsize\n",
|
||||
"\n",
|
||||
@@ -2010,11 +2027,39 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 21,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"iteration: 1\n",
|
||||
"innovation [-148.512 28.6789 -148.5361]\n",
|
||||
"pos [ 805.4175 205.2868]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"iteration: 2\n",
|
||||
"innovation [-0.1177 -7.4049 -0.1599]\n",
|
||||
"pos [ 800.04 199.9746]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"iteration: 3\n",
|
||||
"innovation [-0.0463 -0.001 -0.0463]\n",
|
||||
"pos [ 800. 200.]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"iteration: 4\n",
|
||||
"innovation [-0. -0. -0.]\n",
|
||||
"pos [ 800. 200.]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"Iterated solution: [ 800. 200.]\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import numpy as np\n",
|
||||
"from numpy.linalg import norm, inv\n",
|
||||
@@ -2115,12 +2160,35 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 22,
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"iteration: 1\n",
|
||||
"innovation [-0.0009 -1.3868 -0.0024]\n",
|
||||
"pos [ 800.0014 199.9991]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"iteration: 2\n",
|
||||
"innovation [-0.0016 -0. -0.0016]\n",
|
||||
"pos [ 800. 200.]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"iteration: 3\n",
|
||||
"innovation [-0. -0. -0.]\n",
|
||||
"pos [ 800. 200.]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"Iterated solution: [ 800. 200.]\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"pos, converted = lop_ils(rz, sat_pos, (801, 201), hx=hx_ils)\n",
|
||||
"print('Iterated solution: ', pos)"
|
||||
@@ -2137,11 +2205,44 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 23,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"iteration: 1\n",
|
||||
"innovation [ 129.8823 100.461 107.5398]\n",
|
||||
"pos [ 831.4474 186.1222]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"iteration: 2\n",
|
||||
"innovation [-31.6446 -7.4837 -30.7861]\n",
|
||||
"pos [ 800.3284 198.8076]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"iteration: 3\n",
|
||||
"innovation [-0.6041 -0.3813 0.3569]\n",
|
||||
"pos [ 799.948 198.6026]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"iteration: 4\n",
|
||||
"innovation [-0.4803 0.0004 0.4802]\n",
|
||||
"pos [ 799.9476 198.6025]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"iteration: 5\n",
|
||||
"innovation [-0.4802 0.0007 0.4803]\n",
|
||||
"pos [ 799.9476 198.6025]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"Iterated solution: [ 799.948 198.602]\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# add some noise\n",
|
||||
"nrz = []\n",
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Linearizing with Taylor Series\n",
|
||||
"\n",
|
||||
"Taylor series represents a function as an infinite sum of terms. The terms are linear, even for a nonlinear function, so we can express any arbitrary nonlinear function using linear algebra. The cost of this choice is that unless we use an infinite number of terms the value we compute will be approximate rather than exact.\n",
|
||||
"\n",
|
||||
"Before applying it to a matrix lets do the Taylor expansion of a real function since this is much easier to visualize. I choose sin(x). The Taylor series for a real or complex function f(x) at x=a is the infinite series\n",
|
||||
"\n",
|
||||
"$$f(x) = f(a) + f'(a)(x-a) + \\frac{f''(a)}{2!}(x-a)^2 + \\, ...\\, + \\frac{f^{(n)}(a)}{n!}(x-a)^n + \\, ...$$\n",
|
||||
"\n",
|
||||
"where $f^{n}$ is the nth derivative of f. To compute the Taylor series for $f(x)=sin(x)$ at $x=0$ Let's first work out the terms for f.\n",
|
||||
"\n",
|
||||
"$$\\begin{aligned}\n",
|
||||
"f^{0}(x) &= sin(x) ,\\ \\ &f^{0}(0) &= 0 \\\\\n",
|
||||
"f^{1}(x) &= cos(x),\\ \\ &f^{1}(0) &= 1 \\\\\n",
|
||||
"f^{2}(x) &= -sin(x),\\ \\ &f^{2}(0) &= 0 \\\\\n",
|
||||
"f^{3}(x) &= -cos(x),\\ \\ &f^{3}(0) &= -1 \\\\\n",
|
||||
"f^{4}(x) &= sin(x),\\ \\ &f^{4}(0) &= 0 \\\\\n",
|
||||
"f^{5}(x) &= cos(x),\\ \\ &f^{5}(0) &= 1\n",
|
||||
"\\end{aligned}\n",
|
||||
"$$\n",
|
||||
"\n",
|
||||
"Now we can substitute these values into the equation.\n",
|
||||
"\n",
|
||||
"$$\\sin(x) = \\frac{0}{0!}(x)^0 + \\frac{1}{1!}(x)^1 + \\frac{0}{2!}(x)^2 + \\frac{-1}{3!}(x)^3 + \\frac{0}{4!}(x)^4 + \\frac{-1}{5!}(x)^5 + ... $$\n",
|
||||
"\n",
|
||||
"And let's test this with some code:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"estimate of sin(.3) is 0.30452025\n",
|
||||
"exact value of sin(.3) is 0.295520206661\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import numpy as np\n",
|
||||
"\n",
|
||||
"x = .3\n",
|
||||
"estimate = x + x**3/6 + x**5/120\n",
|
||||
"exact = np.sin(.3)\n",
|
||||
"\n",
|
||||
"print('estimate of sin(.3) is', estimate)\n",
|
||||
"print('exact value of sin(.3) is', exact)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"This is not bad for only three terms. If you are curious, go ahead and implement this as a Python function to compute the series for an arbitrary number of terms.\n",
|
||||
"\n",
|
||||
"Now we can consider how to linearize a nonlinear "
|
||||
]
|
||||
}
|
||||
],
|
||||
"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.5.0"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 0
|
||||
}
|
||||
Reference in new issue
Block a user