Skip to content

Instantly share code, notes, and snippets.

@certik
Created March 18, 2014 23:43
Show Gist options
  • Save certik/9632439 to your computer and use it in GitHub Desktop.
Save certik/9632439 to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Explicit example"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sympy import *\n",
"init_printing()\n",
"var(\"x A\")\n",
"f = Function(\"f\")"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is our equation:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def eq1(f):\n",
" return f.diff(x, 2)+f"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"Eq(eq1(f(x)), 0)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$f{\\left (x \\right )} + \\frac{d^{2}}{d x^{2}} f{\\left (x \\right )} = 0$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAALQAAAAvBAMAAAC4Qv2BAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJl2IquJVETdZu8y\nu83OyatpAAADRElEQVRYCbVWTWgTQRT+1qS7ySZNQotiKZhFPYotLfbqXgQRxKDgRQ+hRURB6EGR\nnhovQkFpQbR4EALiwYsE9aAHJQfvbUUvXhrxUPVQWpS2B6G+N5PZpN3NMhPaB3l/832P3ZnNmwfo\ny/jngj7YCGn7PQ0jgj447Wf/6qONkJlKcsuIYAJ21k3Q2tiHr4H0sDbcCLgJjBsRtMGpdbieNtoI\naM/hPh4YUXTBOS+7cndJF22AOzOxMJnZ3l4zoGhCU2+xvE9/8sEqTmo+hSlsqIAnphxN/AdY+/Qf\ntzbgrFmaj2EGszbR27htxtFF/8DLUlkXHMJlqzLl1kNLwMGxT5cqoXwsRaL7RnzgvGJeVU6ctY4d\nj6X0TZwQ9MvTk8B3VSmnnDjbc50aYQxlBQM+8a2tw0CiTJ6QRFlay5c2UhfvVZAoq6WW18y4NdgN\n8h3uDBmflBCrJq0z3ExEmWlKhikBsrcEcSNRuwRmgjRWpBtb+kYkJaiRLyFFO+ZeeezJC6T/1Nkx\netTmXRJX+sX7i1GUoHTRQ+oPRXl+82+052X3UboBvJKIuNJg3m6KvSrEo6ULZWQ32NZJzQN2wV53\nfGCKQpK40sl/BAhTBI+VKs1Hgnf01MgtsrvAqlU6v71T1niNVZjCNCHFstwQPhLGNbdGlKaX+/Vx\nddXjbISIk99FaYflPTh0jPjKSXo7et46CsHHErch9HGFKfZTIbyUXoTL49Ab+vGZOIXTSFDpuGNs\nDquZ4UgKFxKSqOFAg/+MHF0DZieXcY7coxy39lpGUqthtVihOExpQecxWAdodiGZofY22n+zSu5P\njqNLq2F1ll4ugiJ4Qh0a5S5nL3KQ9lmzJGvStu81D3wsali9xUGYwtk2uZOrctQaumzeR5JUVRip\n+LiFcGtwSr/ZD1MkJNDPBqT7RWWOKKfNyk3jBA+r6aU5sRZLIcRz6ukswVUQEGReaPEdC48bjDvi\nCz+WIhBSJavSur60O3TOa4atTaBELGUHv2PAAx9kW9zjYVUMfLIt7vWwKgY+2Rb3elgd4oFPtcWO\nu9bVQnPgEzdGVwU6ktTAJ9tiR1g3C3LgU22xmwqdOWLgU22xM6ybFTHwqbZoUOA/WbrfixHKFikA\nAAAASUVORK5CYII=\n",
"prompt_number": 3,
"text": [
" 2 \n",
" d \n",
"f(x) + \u2500\u2500\u2500(f(x)) = 0\n",
" 2 \n",
" dx "
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `eq1(f(x))` is our residual, i.e. $R(f(x)) = $ `eq1(f(x))`.\n",
"\n",
"Let's solve this on the interval $[0, \\pi]$ with zero Dirichlet condition.\n",
"\n",
"The solution is $f(x) = A\\sin(x)$:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"eq1(A*sin(x))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$0$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJdjLNVN0iZu+7\nq0QgoRR7AAAAVklEQVQIHWNgEDJRZWBgSGeQmMDAtYGBOYGB5wID+0cG/gsMfN8Z5BUY+L4wzDdg\nYP0MJeUNQCL8Cgzs3xk4DjBwfWRg2cDAlMDA0M4gHcDAIOxylQEA9FISlFfRJtkAAAAASUVORK5C\nYII=\n",
"prompt_number": 4,
"text": [
"0"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The $L^2$ norm is given by:\n",
"$$\n",
"\\|f(x)\\|_2 = \\sqrt{\\int_0^\\pi |f(x)|^2 d x}\n",
"$$"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def l2norm(f):\n",
" return sqrt(integrate(f**2, (x, 0, pi)))"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's build a basis using $1$, $x^2$, $x^3$, ...:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data = []\n",
"for n in range(20):\n",
" basis = x**n\n",
" R = eq1(basis)\n",
" norm = l2norm(R)\n",
" data.append([basis, R, norm, norm.n()])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"TableForm(data, headings=[None, [\"f\", \"R(f)\", \"|f| (exact)\", \"|f| (numeric)\"]])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 7,
"text": [
"f R(f) |f| (exact) |f| (numeric) \n",
"-------------------------------------------------------------------------------------------\n",
"1 1 sqrt(pi) 1.77245385090552\n",
"x x sqrt(3)*pi**(3/2)/3 3.21487566790692\n",
"x**2 x**2 + 2 sqrt(4*pi + 4*pi**3/3 + pi**5/5) 10.7290265081141\n",
"x**3 x**3 + 6*x sqrt(12*pi**3 + pi**7/7 + 12*pi**5/5) 39.2172541715919\n",
"x**4 x**4 + 12*x**2 sqrt(pi**9/9 + 144*pi**5/5 + 24*pi**7/7) 149.935920101356\n",
"x**5 x**5 + 20*x**3 sqrt(pi**11/11 + 40*pi**9/9 + 400*pi**7/7) 576.037229861598\n",
"x**6 x**6 + 30*x**4 sqrt(pi**13/13 + 60*pi**11/11 + 100*pi**9) 2192.94753980580\n",
"x**7 x**7 + 42*x**5 sqrt(pi**15/15 + 84*pi**13/13 + 1764*pi**11/11) 8237.25631406929\n",
"x**8 x**8 + 56*x**6 sqrt(pi**17/17 + 112*pi**15/15 + 3136*pi**13/13) 30513.5222537669\n",
"x**9 x**9 + 72*x**7 sqrt(pi**19/19 + 144*pi**17/17 + 1728*pi**15/5) 111566.300907368\n",
"x**10 x**10 + 90*x**8 sqrt(pi**21/21 + 180*pi**19/19 + 8100*pi**17/17) 403144.506811042\n",
"x**11 x**11 + 110*x**9 sqrt(pi**23/23 + 220*pi**21/21 + 12100*pi**19/19) 1441611.72845513\n",
"x**12 x**12 + 132*x**10 sqrt(pi**25/25 + 264*pi**23/23 + 5808*pi**21/7) 5107694.68113447\n",
"x**13 x**13 + 156*x**11 sqrt(pi**27/27 + 312*pi**25/25 + 24336*pi**23/23) 17949750.0171011\n",
"x**14 x**14 + 182*x**12 sqrt(pi**29/29 + 364*pi**27/27 + 33124*pi**25/25) 62625955.8866386\n",
"x**15 x**15 + 210*x**13 sqrt(pi**31/31 + 420*pi**29/29 + 4900*pi**27/3) 217101019.820278\n",
"x**16 x**16 + 240*x**14 sqrt(pi**33/33 + 480*pi**31/31 + 57600*pi**29/29) 748308527.535619\n",
"x**17 x**17 + 272*x**15 sqrt(pi**35/35 + 544*pi**33/33 + 73984*pi**31/31) 2566071164.25141\n",
"x**18 x**18 + 306*x**16 sqrt(pi**37/37 + 612*pi**35/35 + 31212*pi**33/11) 8758873830.07358\n",
"x**19 x**19 + 342*x**17 sqrt(pi**39/39 + 684*pi**37/37 + 116964*pi**35/35) 29772272858.4858"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We want to get something like:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sin(x).series(x, 0, 10)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$x - \\frac{x^{3}}{6} + \\frac{x^{5}}{120} - \\frac{x^{7}}{5040} + \\frac{x^{9}}{362880} + \\mathcal{O}\\left(x^{10}\\right)$$"
],
"metadata": {},
"output_type": "pyout",
"png": "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\n",
"prompt_number": 8,
"text": [
" 3 5 7 9 \n",
" x x x x \u239b 10\u239e\n",
"x - \u2500\u2500 + \u2500\u2500\u2500 - \u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500 + O\u239dx \u23a0\n",
" 6 120 5040 362880 "
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's try to reconstruct it using the basis (the first column above):"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"test1 = data[1][0] - data[3][0]/6 + data[5][0]/120 - data[7][0]/5040 + data[9][0]/362880\n",
"test1"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\frac{x^{9}}{362880} - \\frac{x^{7}}{5040} + \\frac{x^{5}}{120} - \\frac{x^{3}}{6} + x$$"
],
"metadata": {},
"output_type": "pyout",
"png": "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\n",
"prompt_number": 9,
"text": [
" 9 7 5 3 \n",
" x x x x \n",
"\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500 + \u2500\u2500\u2500 - \u2500\u2500 + x\n",
"362880 5040 120 6 "
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see how the residual is doing:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"eq1(sin(x))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$0$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJdjLNVN0iZu+7\nq0QgoRR7AAAAVklEQVQIHWNgEDJRZWBgSGeQmMDAtYGBOYGB5wID+0cG/gsMfN8Z5BUY+L4wzDdg\nYP0MJeUNQCL8Cgzs3xk4DjBwfWRg2cDAlMDA0M4gHcDAIOxylQEA9FISlFfRJtkAAAAASUVORK5C\nYII=\n",
"prompt_number": 10,
"text": [
"0"
]
}
],
"prompt_number": 10
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"R = simplify(eq1(test1))\n",
"R"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\frac{x^{9}}{362880}$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAD8AAAAvBAMAAACmpw93AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAB/ElEQVQ4Ee2UTWvUUBSG32TyMZNMPhhB7KJNaGVWgtm5KTgLP1bS+QPSoYvUleYP\niKGLLnSTbiqIQv5AmSyqCxEMunIhBlrdaCGz6L6R6sAo1pPboSS3MHvBLF7O++Tce885JBfgnx2f\nJ3UvemJWJ5yz+lLBobpdSfGjTjjnpJhwqG7NuD2uE85piTj7CLy7csytqVsBclInnNNdPeXQme0s\n3ey6sr9/BrhAGKgbzYiDVavYSqH1qoSLBbRmlwdYLreGt59S2DyreM2+CnFWwmr8FrcrC86FFxY7\n68E5+h9MJ3Ay+zn6RwZ1y39NlfrdFHe+vgE63c9TmV/7VrYgZRgGmOsbkeDhQR8ZGvGpPMOlHiWI\nE1ghtqEnDRtmrgWQIiZqDiWiBPkQTqSW/6sZovFbSSCETHQP2vSuGQZ6TgmtghLkX7YSMLE8yNOr\n5AWs52tUGtAscH28DiZOBvl7Cdv3MjhPYcYUrw5gnGyBycoA7Z9lAnA/dQoYI4qeAA8//OkzqSSY\nI+pDpYvHSKB6eDRi4gxOj5B60CdmBJWuriVqxUZ7wsTKoJVFWgX0MXVBO2gZbjiErjFp0nZlm2aC\n5jE1bOT4CFw2e8AuEzGHUQ5KDTB08QoLsbTp74XyFlSXCR5jIaUE3D14CSgHy2jRxxfi/ReaCJOL\ni8v0+i/EyK4AAo9GMAAAAABJRU5ErkJggg==\n",
"prompt_number": 11,
"text": [
" 9 \n",
" x \n",
"\u2500\u2500\u2500\u2500\u2500\u2500\n",
"362880"
]
}
],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"l2norm(R)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\frac{\\sqrt{19} \\pi^{\\frac{19}{2}}}{6894720}$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAEkAAAAyBAMAAADiuOvtAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAInarRM2ZVBDdiWbv\nuzJCz3LGAAADDklEQVQ4Ed2UTWgTURDHf9l8bXbzsR4EBcVYUKSKDQiitrY5ePFW9WBR0BSlhYqS\nk6AHXSwVWirJTW+GHhSi2CjoQaSNiODXYQVPglgQEb201VqjVeq8TXeNIMGrPtid/8z8mPfe7L4H\nTUbQZmS93QRQqdB1iz0Bp5EKtC36w4vHLH2GGc9TNpht9OrapWYb48sbnSUds+gM/Ub1/5kyJ6oN\nCb3Y4HhSam2Ipj1PbCQvrx7QB9ZbXjjZ1k/rRs9Tdlie1TUYrQTuN8Z/19fgwhGhOmCnl1nqzK9W\nuMvShPoM47aHkSw/97UIraJeNfQf0Jb1Mwl2e3qXiJhyVK2HUquiqblyEglTsMXI0CRBi6uEGofD\n6fK7tbeWqQicqhtWqBmKylG1wuno+ETesDbXs/qeuoWCg1lSjqK4tXk8T4JtKgCDtmvkFZkl5jou\nBV02b+rF0XtHPCowz11XL1H74BiqrGxq8atr1avLvuRqRd2zkrPoNeb8rCemr+Z8ap09VEEr8sRL\n+jb80FY60vG1HaPvBSQq7PCznojOe6qp9ZvSlPrfk/6xbyJ+/fn/ajfKrVOcaz0K58d61R6SOd5v\nLZdLgb5XUyp4QgWHspFucgTz+lNWWRKIOUxKWzKDGPLH7mdYBQ+QcKIVAt3BKkFHApscpGZQHaNn\nmFWMbjBnJWE46MVUN4b8+YHbDiW4wWM5EVOJDFEJJqpChX7YRkXOpSZTGGFVMJTmsC1UKkPoC6QO\njcnCuxauEZdaC3DTpRJCwmW7kCP0UU72QeJ5Ios9GDOEP6KnXUruMyn4jTUlkt+EqhF5xJ2337Ps\n5fQCBoqSe16G7HaJShUx58wMk48wWz584YxLabIvOC5FSu6MshpzIW6TlDUSrOkll5IqcrtkZNk5\nopKRPZpzBYm1yxPORLds6XqQpiAAJwlYgpvSCelGpBq34Ll5n2mxxB2YzrlfSrO0KvJp4CWj+VAP\nZlrr0Q+KT0qos0KtLF/ZDhcZnZKg0dcJbwakaVeOZ5X/+lOFVXm5ORfVvTTSIum/Gz8BeE8QbBGs\nEHMAAAAASUVORK5CYII=\n",
"prompt_number": 12,
"text": [
" ____ 19/2\n",
"\u2572\u2571 19 \u22c5\u03c0 \n",
"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n",
" 6894720 "
]
}
],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"_.n()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$0.0334028833762485$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAALQAAAAPBAMAAAC/7vi3AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJdjLNVN0iZu+7\nq0QgoRR7AAACsklEQVQ4EbWUz0sUYRjHP/urdX8P6UGIcDMMorLFVQgzkPIPWAyiSzhW0EVSOgax\n3roUbgURdXAqbxHqJYvE9BSRxCZGIYhLh665FGoqTc8876j7D7SH78M838/3eed9Z2Zhf3sL3k/r\ng/x7UIFevxdrni8Q6GmrGDG2MhcX8vkcofYOlJEhkmk41wpXrd4KXKOx5I32aixL0VGRxh3fO0jo\nL0H4aqSGGXddtxy4zhGUMZksqSHeub8hPkHIlqbW8DqZYRUIT/veZ3jLTXhopIY5Cin25ZhHGc1E\nHWI2VxbldpNlolUZrTU9Q5OtAo8HfO81rBS6oBGVGiYHHYx7e1ZGM6FZAsOUpUemTHq9phYdufAk\nN+B7g5aM/jlHJyq+rQzpbj5KA2U0k962Qo4Z3ZQlLefCTr3skSLx0sBujxEr5T53UDG2MrJXWDt/\ntuJlRizNsLLZCUtj8m6M5oj8EsfUyKksqDQwsOulBTi5ZvmyxyA7Caw5TEneY7wMQbcf5hit7MZ3\nljhdEE4kVzO6bpZ4y+CMEWMrQ2CVgGtxTFYVRjM8u7BVESY5TFPOPxC/Jialn5iMFmT0jnccXhLf\nslTU9iVswwaMV0AYzcTLjHsjgn/IZInqY/RqrETSSD0y2vfC8ryF7htS2WPMrb6S0Q4eo5mERWQ9\nZXvfgmwkXpVVtGaqJDdVbi0vby363g1i91blFX7qibPHyLOXgfKGyF0LU9JMk8xaStgEq4QnCNpy\nqTUxS90fFelM+14kS7j0Rk7PSC3Tl5UXVc4aZTSTKMEH+XbrbLjNgUJgzdS4Q7FbRbBt0+NRvu0b\nPyzGjNQyRRmdzAWmDKOZdD/x7liWF7JEfc8XuOvX782fQIUud8l4g667QWRB/p5UjG2YJ0Myru1E\nAWXQzKXDrXD/zCFx/tvvHx2sLVZzgn5SAAAAAElFTkSuQmCC\n",
"prompt_number": 13,
"text": [
"0.0334028833762485"
]
}
],
"prompt_number": 13
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So it's smaller than the best residual from the basis, ie. 0.033... is smaller than 1.77."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can get this residual immediately from the last column of `data`:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data[1][1] - data[3][1]/6 + data[5][1]/120 - data[7][1]/5040 + data[9][1]/362880"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\frac{x^{9}}{362880}$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAD8AAAAvBAMAAACmpw93AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAB/ElEQVQ4Ee2UTWvUUBSG32TyMZNMPhhB7KJNaGVWgtm5KTgLP1bS+QPSoYvUleYP\niKGLLnSTbiqIQv5AmSyqCxEMunIhBlrdaCGz6L6R6sAo1pPboSS3MHvBLF7O++Tce885JBfgnx2f\nJ3UvemJWJ5yz+lLBobpdSfGjTjjnpJhwqG7NuD2uE85piTj7CLy7csytqVsBclInnNNdPeXQme0s\n3ey6sr9/BrhAGKgbzYiDVavYSqH1qoSLBbRmlwdYLreGt59S2DyreM2+CnFWwmr8FrcrC86FFxY7\n68E5+h9MJ3Ay+zn6RwZ1y39NlfrdFHe+vgE63c9TmV/7VrYgZRgGmOsbkeDhQR8ZGvGpPMOlHiWI\nE1ghtqEnDRtmrgWQIiZqDiWiBPkQTqSW/6sZovFbSSCETHQP2vSuGQZ6TgmtghLkX7YSMLE8yNOr\n5AWs52tUGtAscH28DiZOBvl7Cdv3MjhPYcYUrw5gnGyBycoA7Z9lAnA/dQoYI4qeAA8//OkzqSSY\nI+pDpYvHSKB6eDRi4gxOj5B60CdmBJWuriVqxUZ7wsTKoJVFWgX0MXVBO2gZbjiErjFp0nZlm2aC\n5jE1bOT4CFw2e8AuEzGHUQ5KDTB08QoLsbTp74XyFlSXCR5jIaUE3D14CSgHy2jRxxfi/ReaCJOL\ni8v0+i/EyK4AAo9GMAAAAABJRU5ErkJggg==\n",
"prompt_number": 14,
"text": [
" 9 \n",
" x \n",
"\u2500\u2500\u2500\u2500\u2500\u2500\n",
"362880"
]
}
],
"prompt_number": 14
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"But of course, we can't just sum up the norms of the basis, as it is not additive. We need to first sum the residuals and only then calculate the norm."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Algorithm for Linear Problems"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Using the above example, the algorithm for the **linear** equation above is:\n",
"\n",
"1. Find linear combination of `data[i][1]` such that the result minimizes the $L^2$ norm\n",
"2. Read the solution corresponding to 1. from `data[i][0]`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The solution of 1. from above is:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data[1][1] - data[3][1]/6 + data[5][1]/120 - data[7][1]/5040 + data[9][1]/362880"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\frac{x^{9}}{362880}$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAD8AAAAvBAMAAACmpw93AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAB/ElEQVQ4Ee2UTWvUUBSG32TyMZNMPhhB7KJNaGVWgtm5KTgLP1bS+QPSoYvUleYP\niKGLLnSTbiqIQv5AmSyqCxEMunIhBlrdaCGz6L6R6sAo1pPboSS3MHvBLF7O++Tce885JBfgnx2f\nJ3UvemJWJ5yz+lLBobpdSfGjTjjnpJhwqG7NuD2uE85piTj7CLy7csytqVsBclInnNNdPeXQme0s\n3ey6sr9/BrhAGKgbzYiDVavYSqH1qoSLBbRmlwdYLreGt59S2DyreM2+CnFWwmr8FrcrC86FFxY7\n68E5+h9MJ3Ay+zn6RwZ1y39NlfrdFHe+vgE63c9TmV/7VrYgZRgGmOsbkeDhQR8ZGvGpPMOlHiWI\nE1ghtqEnDRtmrgWQIiZqDiWiBPkQTqSW/6sZovFbSSCETHQP2vSuGQZ6TgmtghLkX7YSMLE8yNOr\n5AWs52tUGtAscH28DiZOBvl7Cdv3MjhPYcYUrw5gnGyBycoA7Z9lAnA/dQoYI4qeAA8//OkzqSSY\nI+pDpYvHSKB6eDRi4gxOj5B60CdmBJWuriVqxUZ7wsTKoJVFWgX0MXVBO2gZbjiErjFp0nZlm2aC\n5jE1bOT4CFw2e8AuEzGHUQ5KDTB08QoLsbTp74XyFlSXCR5jIaUE3D14CSgHy2jRxxfi/ReaCJOL\ni8v0+i/EyK4AAo9GMAAAAABJRU5ErkJggg==\n",
"prompt_number": 15,
"text": [
" 9 \n",
" x \n",
"\u2500\u2500\u2500\u2500\u2500\u2500\n",
"362880"
]
}
],
"prompt_number": 15
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"with $L^2$ norm:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"l2norm(_).n()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$0.0334028833762485$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAALQAAAAPBAMAAAC/7vi3AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJdjLNVN0iZu+7\nq0QgoRR7AAACsklEQVQ4EbWUz0sUYRjHP/urdX8P6UGIcDMMorLFVQgzkPIPWAyiSzhW0EVSOgax\n3roUbgURdXAqbxHqJYvE9BSRxCZGIYhLh665FGoqTc8876j7D7SH78M838/3eed9Z2Zhf3sL3k/r\ng/x7UIFevxdrni8Q6GmrGDG2MhcX8vkcofYOlJEhkmk41wpXrd4KXKOx5I32aixL0VGRxh3fO0jo\nL0H4aqSGGXddtxy4zhGUMZksqSHeub8hPkHIlqbW8DqZYRUIT/veZ3jLTXhopIY5Cin25ZhHGc1E\nHWI2VxbldpNlolUZrTU9Q5OtAo8HfO81rBS6oBGVGiYHHYx7e1ZGM6FZAsOUpUemTHq9phYdufAk\nN+B7g5aM/jlHJyq+rQzpbj5KA2U0k962Qo4Z3ZQlLefCTr3skSLx0sBujxEr5T53UDG2MrJXWDt/\ntuJlRizNsLLZCUtj8m6M5oj8EsfUyKksqDQwsOulBTi5ZvmyxyA7Caw5TEneY7wMQbcf5hit7MZ3\nljhdEE4kVzO6bpZ4y+CMEWMrQ2CVgGtxTFYVRjM8u7BVESY5TFPOPxC/Jialn5iMFmT0jnccXhLf\nslTU9iVswwaMV0AYzcTLjHsjgn/IZInqY/RqrETSSD0y2vfC8ryF7htS2WPMrb6S0Q4eo5mERWQ9\nZXvfgmwkXpVVtGaqJDdVbi0vby363g1i91blFX7qibPHyLOXgfKGyF0LU9JMk8xaStgEq4QnCNpy\nqTUxS90fFelM+14kS7j0Rk7PSC3Tl5UXVc4aZTSTKMEH+XbrbLjNgUJgzdS4Q7FbRbBt0+NRvu0b\nPyzGjNQyRRmdzAWmDKOZdD/x7liWF7JEfc8XuOvX782fQIUud8l4g667QWRB/p5UjG2YJ0Myru1E\nAWXQzKXDrXD/zCFx/tvvHx2sLVZzgn5SAAAAAElFTkSuQmCC\n",
"prompt_number": 16,
"text": [
"0.0334028833762485"
]
}
],
"prompt_number": 16
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And the corresponding solution of 2. is:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data[1][0] - data[3][0]/6 + data[5][0]/120 - data[7][0]/5040 + data[9][0]/362880"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\frac{x^{9}}{362880} - \\frac{x^{7}}{5040} + \\frac{x^{5}}{120} - \\frac{x^{3}}{6} + x$$"
],
"metadata": {},
"output_type": "pyout",
"png": "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\n",
"prompt_number": 17,
"text": [
" 9 7 5 3 \n",
" x x x x \n",
"\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500 + \u2500\u2500\u2500 - \u2500\u2500 + x\n",
"362880 5040 120 6 "
]
}
],
"prompt_number": 17
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"NOTE: If we use a different linear combination, let's say:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data[1][1] - data[3][1]/8 + data[5][1]/120 - data[7][1]/5040 + data[9][1]/362880"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\frac{x^{9}}{362880} + \\frac{x^{3}}{24} + \\frac{x}{4}$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAJwAAAAwBAMAAAAWSA7rAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAADVUlEQVRIDe1XTWgTQRh9m26y+d0srRcvzWKlJ62RHvQgNAf/EMTcPElDC6k9qHvw\n4kEbRLwImnpQApYuni0J+HNQoYuePEgDakFKoUUEDyINra3EnziZzW7WzEy2HgX38OWb99735puZ\nTTMFOp+5fCfCjsfGNRbkIoF0oMolPGDCSFQ8w25pMivXuvFNLpFT1vw0Lf6Uha/+0kTRX0MVKQt1\nf2m/5a+hCtWMb/lKe2/7SlqCaCWwncVu9yjwYs+G/9TxbWwIdZEQ9J2535L9N8TuKabHLL/uwhll\n1U8D9A4cGdSD+bfdlFQTHxvPMCLKeFApp1wN+7xPYg3DhLRQLcrO6pkQEGsYRkLE9xDEGg6T1P9o\nhTsQaxhmwYLG9fCAYk0HE9X2IeBjJ9YwzKg5j2OePnipWMMwfbt6JwyehwcTa8SMp/zfSHcI2xQz\nwhLgvpATM8KS/3atrenYu0b3Z82ucoo84g47m+my/S41WSrdLJVm3HE7ETNtDS9zumM5McNqXURc\nJGbcYjYRF4kZ1sVFxEWdzNH8U1KVH7Rwcuk5+XUcfNcK0uJey/Fzi+TlZ00wXmUYG5SrKBvYmU0U\npTQuZFFFj2mHiCldc4pOO0kfQs0rTLjiAC5jg4E6kgXcQazSo0FdiRqQizTgCjDpFLmf+4EvZDDk\n2rmMDQY/IlVUmrcctYCeH6EKpAINeAiUNY+app+AEQvyJY6dA5aN2ArRRmrELvhdCxk0YB0YNamH\nJ8xqTbsQ7xfZAWeQvDdGDoCsvoaRrQnSAAnST2Kne5yc9JaGizw7G4yfrSJ1F6pJ5KM5JBrT5C5N\ngrwJLOQcj/ZncBOSzrFzwfNWqoZE84p1A7j86leWBpEdOdQQ7/rhguoqOVuFnD/5b0FJY2qVBol0\nx1vsEvCAZ2eDcgaxulqEQu6TA+R4NcTrNIDsXdlsL7KVBdKQchy7FpisIbZFTpZ0F63icIpUHaCh\nufIp5kXBHOQTw8MjH/SOiaI2qFYQ3oiSvVvBa2C3mgEe0YAh4H1HDf0iBYiEVLFPE1QMlHU8Qb8p\nX8+/KQSnoeg0IGxKn5ma4/lzBwmY5NlR8MzyY3KrXD6ECPn7XMDLRfIG0iCNDViM3Wyj8Y3I59cN\nhuKCjOqvgN/yayalExgNdwAAAABJRU5ErkJggg==\n",
"prompt_number": 18,
"text": [
" 9 3 \n",
" x x x\n",
"\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500 + \u2500\n",
"362880 24 4"
]
}
],
"prompt_number": 18
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Then the norm of this will be higher than from 1.:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"l2norm(_).n()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$1.66114057053483$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAJ8AAAAPBAMAAAAIUwCQAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAzRAiu5mrdu/dZoky\nRFRd1xrCAAACpElEQVQ4Ea2Uu09TYRjGf5zeaEsvMTUORj0xGiUMrVESowOEGOOi1AuERBK7AIYY\nw4K4icjgAEiirtpJiA49JiBKGbowGAaPg4kbZ3JwqcULt9j6nu/rhT/AMzzt85znffp97/d+Bfah\nnvDSCijQipZX4fhSPxwwV20+DuTzlnFztFDl5/NX3FLxGGOLNp78giP0zIYrYhziqgatVOVncJjW\nFE8qm5CrVCqZJsd4iuKeNMWslIrHB3dpJ7oDx3p1YJPFBRQopSoHJgmNE45zcCgF18HPPLxF8UCZ\n2CyIh+9wigcO25If0IE5KUCBVrR8LoE3Q3SDjLzFghUuQtFUPDJNMg7iYQFa+WobJXFVAy+5FQr2\nBloJYhkiZR0IkRH+wLpT4+6WxcN6F8tS7265FlhaG7VRsCcwlEqQTBPZZHhOTga8GL+lfKTG94Pr\nwV95k5XXTWkBvUKjlGVGQVVR8gkSdFi07NJFhy3mZTy78MnSvOWDBLgeuFUyYe25fKsFVkz6jrpg\n7lmhVQ+Uxc3KKPyoBWrO+4I0VgJD/UemJSs8VQ90zydnK2gERgtiTlrulmUyfsqPxzFkhbJlzWme\nUB5eEdoyRXwsUD2UhxKYVdAIbEMCY2miZX+c8F8IdoL0sOgo7knhLSsPE9IH5zR0O/VAOeCcraAR\n+G1wcGtIQkIbzXF8Ml7JjBrjnKl4bAPvjvJIK/BnpWHd2XqgzFafO2B9VaW68EkC4/jichOCcVlF\nGu4jV0rx5k6C0gdksB9JT1Py+TKly2U+vZYxo6GxQjH/ghecLMgtmxdvUQKDjjGF4qEsxRHt+Wwy\nx2ui0mzf7e1hghlY7C1oUIoCuQGVYdrG7kD7u2tSetaRk166J0bFv/RcFtH1tAzIn0Ok54Yt/D8/\n/wCaDgOGPtNxAwAAAABJRU5ErkJggg==\n",
"prompt_number": 19,
"text": [
"1.66114057053483"
]
}
],
"prompt_number": 19
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Algorithm for Nonlinear Problems"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we cannot use linear combination of the residuals, because the equation is not linear.\n",
"\n",
"Let's start by finding some nonlinear equation with analytic solution. The analytic solution of the linear equation is:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"dsolve(eq1(f(x)), f(x))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$f{\\left (x \\right )} = C_{1} \\sin{\\left (x \\right )} + C_{2} \\cos{\\left (x \\right )}$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAQYAAAAVBAMAAABWLl2OAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJl2IquJVETdZu8y\nu83OyatpAAADVUlEQVRIDc2UT0gUURzHv6Prjrs7uy5aUqCxRAVR0JJlUFRDdIhMFKMIC5ykRD3Y\nklREB/cklEFGSUSEA0LHUiroELTUoUMHt8xLF62LQeC/siQU+7037+382WEj8NDv8N7395vf573v\nvjc7wH8UmmmZCWf+zdQqceU7daBebn1GCntW9p9oDhh2/i5p6wKcF7MhUh7uZE8K+Cw7YlLY8z4T\n6jbTzkcNWxfgvJgNkXJzyuI6oNigOo9iw5rtsfo26R26XXCoYkMmObVGVAphyHVbSp0lKKLTwEMZ\nlkrOM3FSfTJzzz5ct+gohHn3C/YTdN1eesqWXBX9YtNrR/VYJpf4cMJDPpaDSLi58OmBBNBK9Yrd\nR2qTlnS2NzCPqBKlN90HAhON2rftNcdZxYcTHtyYsqUthcqadmh7aibzuTLaF58AxQjfCdHzx5Si\na5rFFyYvsOcUWpYGJYsQoo2IjaFBp9zLUUl4kFjrhzgV61LaM+0uoslqoD+fa8hQ7R4QjAfnVB24\nSqkzBjM80zYztnQEQeYhOowyk3IfTngQWFAvmaS+aahLIQPaUl8cRj7XQyW8oJ+IGPulGGWDI15x\nHYfKPGBwTOceJsHPz4cTHgQW0rUftPY8oaMp4GdoeRdbxsN1iBqsVfM8DLLnakZ4qJyZ5x6yOQ8u\nju7wgXWHAoukA4t0fN9pjZ40sKx0rSRIkwcnN85SOlMymkFcvLId91kMsCr/MhSRDXYOAR1P0uwu\nhAcvRy3iHCQGdc5xDvOHESZP3v2eUom9W2r8IIrJA38nWU1Eg0HirPCgGigxHR58OOFBYggliZ8m\nPpJA6eJloJlyN6cwWzgP3EpN4CjJjSx3hPobuEje+DmoI4jqdAjyHHw44UFi/O+LOhPntJeIGdfi\n+EiLu7lSOip+AWtrKjpNkl9Z7ozy8aY05dxDaefedq1loapl4e3EcyrSt8bLCQ8QWDhBbVCaanUc\najuF3qFHacrdXDDLekI6G1kEhq05b+QevFUfTnoQrb246YUod3GXYiZrCSfYyCLIrs8vVD9zPtwN\nF6xNXXnvKliJi3u43iqyS+KxQQrPHNi64Ofub1xkZWXWsxJPndzQJqujXjbmHspC4Xk1uYBp7RXW\nC+/pfboK3B/AGQHORr0aRQAAAABJRU5ErkJggg==\n",
"prompt_number": 20,
"text": [
"f(x) = C\u2081\u22c5sin(x) + C\u2082\u22c5cos(x)"
]
}
],
"prompt_number": 20
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is some nonlinear equation with exact solution that SymPy can find:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def eq2(f):\n",
" return x*f.diff(x) + f-log(x)*f**2\n",
"Eq(eq2(f(x)), 0)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$x \\frac{d}{d x} f{\\left (x \\right )} - f^{2}{\\left (x \\right )} \\log{\\left (x \\right )} + f{\\left (x \\right )} = 0$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAUEAAAArBAMAAAAUOCeKAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\n75nQ6/gxAAAFA0lEQVRYCc1YTYgcRRR+vTt/3TPjNomGeFjT2cDcXIcgQcGfRhEPQTJ6EMXAjpOD\niUoyqGAEfxYjosbDKPgzUaRFheBlJyoIHswcAuYiE0ICihIGCRFBzSTRHJaQ8b3XVdXV1b1ZBsX0\ng+363vu+qvno6uquLYBYPHIqlmYxWc6iKd1T/pyeZREXFrPoSvdkD/Use/ju1iDInivNUf4EHHa1\nPHtwtg2/Zc+V7uisC6/qefbwT2D9PZGr3d/+vw+FdRGckTWBxYI/3ZlA/u+l1jKUO59OME7Jr/w1\ngfw/kL4Ne+vNCcapNnKTPRUTjJ0uXVs7srmhU5V2mBX7elXDDn0kvxOF5zVCg6vQq/bXhopB65fT\nAFtl6TYJopYFJQ8g1xPF6T6Cyq1NkYomTsc5uGHeN/rHBNaZ+X6soCfTj+Mu5y1ZsSWIWhbsxtx2\nZbFDYH1dpmFr0HFyy1Jg9tcFdmC9oucxvOH+Bkw1ZSlCsgIkKA4xreFfGIzKhkODRqXlCz2+3K5L\n9JcctS8A7NLzGF7CrOrLknVMItWS4EHYDnBClWYJmQ4NGhWORzoKZ4SXpIA5unwJsOSqzAA7MX8o\nqh2IoEAoqBz4/BDkFxVlBwgNhyaNisgh7fVSBKgJ4wLAQgCwZtM9NU+UVPP0D3cA0FMmWIKxIEF1\nPB5BYYjzNnfzAy1gSA6tVq0B+S2/zvXCmk7jIMph8fZ9w0R/7Vesy+jQA6tZfLnU0eohPI/N1/jb\ngn0uVUDFchtgHez1Xgco0jDo8KgPX8CCW2p7SRoVyiHMpAl2dSk+QmHuIsCgCQW3cM7xMY9F7hKm\nb+AtEOzBGIsJC6hYCgAehT0ufoycRczRIW4/Bv1bYJpSk8ZS5HBbP1WAGg7h0AIbJ8MMfoZP4j0U\n7IAE179G8SFrWUCo2gBw4QOClRFeyvUKvqdmmn+EDk0aFZFDXo5GfxpIBG4UaJZxNL6Mo8Aa/7+C\nDgUL7JBSGeofGrIAQA+FdOjgp3Cmt60/G2DNpAvd7vs/drtDpABoOZoCJsTlMq7lAPGgjzfBCF6R\nOMuS1ZZ1qGQBQZpGqFzCuw28LMU9HN7VejKNxlp0D/FtkugPO3mm9lHn/QAvueC4N8FUwmHVQwGu\nFMkmVgoLaBRaKR9PjWBjtFJO4eQ0PiMySWMpcng8XUD9OG4E2vQvBIfhXllS7Qaaux0R+6diBGAB\n4UId8svlUQ6NXjPEvNyD7/vwLjy8/UgajTXlkPfLZn/qJKMUWD8DrJ1b8xiObsSCiwWcWsm+Y/D4\nMhEVnFpr88bas5jaDZzvOy/4uTM7GmCPx3gvaeZ1mjoph3x8kCIgEYfV2tQXMNE8QZWSL+u5YxLJ\nlgWcRN/2+yRJ7Tdw7UEP2yStHBZ6JEwKqJoe6ljJqb9HiuIQLxwFTwDRCAFnLyoKPysqHPz1IjlI\n0vl2qPrEZpAUqEGSAF9kHKVDi9x+Fab4JpRAtFJAadkXRasjADXWm8gECNJpkuxfT9crCJiOXdSx\nUnHeZ2KrpJVVUZACStUWVXlh0bpW7fcr0Eg9dZqFK/Rnzryot7AkaIFSFH1uVrjIN8Ez6fwqNKg3\nyQr99VHtoZ5lD/OxUupWLCNe+VhJbrYy4ilug4+V5GYrTmUkO0vHSnKzlRFPcRviWIm3YnEmI5k8\nVhqkbMWyYTE8VpKbrWx4MlzwsVL6VsxQXq2Uj5XkZutqmUj73X8Aw1RPuN19hkEAAAAASUVORK5C\nYII=\n",
"prompt_number": 21,
"text": [
" d 2 \n",
"x\u22c5\u2500\u2500(f(x)) - f (x)\u22c5log(x) + f(x) = 0\n",
" dx "
]
}
],
"prompt_number": 21
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fexact = dsolve(eq2(f(x)), f(x))\n",
"fexact"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$f{\\left (x \\right )} = \\frac{1}{x \\left(C_{1} + \\frac{1}{x} \\log{\\left (x \\right )} + \\frac{1}{x}\\right)}$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAQ4AAAA0BAMAAACJCcvpAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJl2IquJVETdZu8y\nu83OyatpAAAElklEQVRYCe1YX4hUVRj/7sx4787MdXbQjISMIfUhrBxdXAKRLr4kwjKiaf4pua0k\nrQ81FBERsfNSUD24/sNSxAGhF1EWeqiHoIsi+GCMDy2CIFlRiQ82Rn/WMrbvO+d+Z2bOnJm5s7SX\niP1gzved7/y+P3POvWd/swBzId/ORdL+c47c7T9mDiKWrfxv9AHJ+T5ajnd+P1q2Y/75aN2O+f34\nH+6HW5VfKhNoX67/aWLPvd39RwEsWusBjHDk82zErneMlwHUn+pc7PXDgtb0QwBJP5w1WeyJSTt1\nLJT1uJo1yVbM2p7Agu83iv7UMOO0MnuOFQBGseTidZuGi9KMswGuNYi14TqA5WeOpG8CnKeFV+6Q\nfEdmXFIKsNJxADtv33U8gLfiKqzVGaf557gfkLtKZo2GZpmJQbDeGNXEPgDECbX3QUsxyBTVwHPB\nnQggH746Yx+THCNvZPkqMlIBm0M+JS8+p07+aUhiH+I5VcjoxoVd0bEhsjnEmibnSwAHy9/AZjQf\nDUEmddnkZN8sHnAKScr4AfFjA++xJUOLD1TRd0v6TaMrHmTTCvlm2cfAFpHQFrnTnpjgkJpkq13n\n8u2+hmeWfcABSvFGrkoqU6CRxC5KbRqXm5zK16EPtyoRJmYjQtL07U4tlaivpQJ4hI12nRJHaG3Y\nvjvlt6+G53LpR22pG7MRfSQLGHFmhQxTaNWQlg6ndoF866vgrKqSpYncD0t/2bsxGxGSqjclSlXl\nJOM1OTUzW0bHskM4rPbU0gPKkn2AuI+UE5I+28rSQ04wIqKu0UH+TMOHjYjXlfm2tLQ+sh4DFLPR\nQ55gRER9FnGJPwh8oRGhkm48vU14tT7wRmBhZqOHrGdADx0SE3gScaUJAj/ciFBJ2YV9PDj0MsC7\no2c2oG8UPxqz0UMO0hb3FiYmcAOxrxZlgLrS9KT4fLhHYWER78cTdFXqzAZdekgtkDl7jExM4AcE\nnpYx7kqxL+jQk2IfaR/c+wsmYBclNjAbPaRUIWBPYWIChxH6pYDnwdH7GCSWUsfVKaiVAX5PTMo+\nDMyG+xC8BiNKiI8kkpjI/aAAJwj7QPp4UqePUzBeAfg7dd/6jLA6szGERNwPJiaiD3FzJLAVfT+o\nphC5H7+khocDmuvMBl28H7RMUvOE6jUwMYEXEFnycXixex/ZAgxMOxUEohiYjd5HxPeFiQnQe+78\nCfBavlsfN8D9AnL+wK0rHvVhYDZ6H3QvRRAmJiD6XjS1tYJBHc/l0syzsHH/Trx4Z/4qIBDvMU7A\nzEbvo9/7NEsNhNLeh732YvP/ChaWrWeOIDjtcYhiNqqPfY+vC3D1e0ZE1Am/AXQmQ/sD9q1ZcPMj\ntlG/g59z+MkUcBCimA2HJPN70xX8wdLvv59dro2s7bHfimF6VkGuyibppQHANTIUkWhjNi7cJkBm\nC439yHNdwYNe87K1f2g0IMcIe1VD7AD4lcx00HBEs9q+UUtYDYwJuzAbt+5ihk9askSZOIXOqFR9\nDPzOy6aVkj1h4xFfNa11973Zedna9t5QvvOyaWXJU/vWIKPpM8qU6V/z/QNHfng7BMrsagAAAABJ\nRU5ErkJggg==\n",
"prompt_number": 22,
"text": [
" 1 \n",
"f(x) = \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n",
" \u239b log(x) 1\u239e\n",
" x\u22c5\u239cC\u2081 + \u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u239f\n",
" \u239d x x\u23a0"
]
}
],
"prompt_number": 22
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fexact = fexact.rhs"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 23
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Check that it works:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"eq2(fexact)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$x \\left(- \\frac{1}{x^{2} \\left(C_{1} + \\frac{1}{x} \\log{\\left (x \\right )} + \\frac{1}{x}\\right)} + \\frac{\\log{\\left (x \\right )}}{x^{3} \\left(C_{1} + \\frac{1}{x} \\log{\\left (x \\right )} + \\frac{1}{x}\\right)^{2}}\\right) + \\frac{1}{x \\left(C_{1} + \\frac{1}{x} \\log{\\left (x \\right )} + \\frac{1}{x}\\right)} - \\frac{\\log{\\left (x \\right )}}{x^{2} \\left(C_{1} + \\frac{1}{x} \\log{\\left (x \\right )} + \\frac{1}{x}\\right)^{2}}$$"
],
"metadata": {},
"output_type": "pyout",
"png": "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\n",
"prompt_number": 24,
"text": [
" \u239b 1 log(x) \u239e 1 \n",
"x\u22c5\u239c- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u239f + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\n",
" \u239c 2 \u239b log(x) 1\u239e 2\u239f \u239b log(x) 1\u239e \n",
" \u239c x \u22c5\u239cC\u2081 + \u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u239f 3 \u239b log(x) 1\u239e \u239f x\u22c5\u239cC\u2081 + \u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u239f 2 \n",
" \u239c \u239d x x\u23a0 x \u22c5\u239cC\u2081 + \u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u239f \u239f \u239d x x\u23a0 x \u22c5\n",
" \u239d \u239d x x\u23a0 \u23a0 \n",
"\n",
" log(x) \n",
"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n",
" 2\n",
"\u239b log(x) 1\u239e \n",
"\u239cC\u2081 + \u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u239f \n",
"\u239d x x\u23a0 "
]
}
],
"prompt_number": 24
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"simplify(_)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$0$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJdjLNVN0iZu+7\nq0QgoRR7AAAAVklEQVQIHWNgEDJRZWBgSGeQmMDAtYGBOYGB5wID+0cG/gsMfN8Z5BUY+L4wzDdg\nYP0MJeUNQCL8Cgzs3xk4DjBwfWRg2cDAlMDA0M4gHcDAIOxylQEA9FISlFfRJtkAAAAASUVORK5C\nYII=\n",
"prompt_number": 25,
"text": [
"0"
]
}
],
"prompt_number": 25
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's substitute the constant for zero:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"C1 = Symbol(\"C1\")\n",
"fexact = simplify(fexact.subs(C1, 0))\n",
"fexact"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\frac{1}{\\log{\\left (x \\right )} + 1}$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAF8AAAAvBAMAAAB3QAsHAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAzRAiu5mrdu/dZjKJ\nRFRer8KoAAAB1ElEQVRIDe1Tu0oDURA92U3MOxrBzseKoggWKbQRFMFHYWFs9AdsfCCmENMETC8+\nQDBiIREE21RpLBKLWIiClaCNKQSxUoKCEiXO7O5dEndTBCxEHLh3zpyZs3NnYAFrsynWfDVWDtcm\nkMaWaxMAa/+Catsv4//Alma2dpNlE/3D37eBUm32/Psm+IkXeZPaVzwp66+lm7/xfSJeFMDwjYyk\nXSPWgMoytH1LoK+gMuOVvDMrYgN1aEznjKXAFRICKa6jB907LQU3oh5orSrojV4C17njFarI0ele\nHYxFNMgaUwfvDuwRfwH7TspO0B6ynoS7ATjkajKTwJ2Ft1i3jXnOHgA+xVcI0CiPHJOZBJk88OGI\na4IN6gDbMBdm+CIzCZ6ugBe5KG1ylgRAPU2gC06Dwb1gsIljY0vc4VWOxVLM0pOoNAUFEAszdXBN\nwf8ZoDZsNHRAWYNTqTr0KLzrsGX9LSchFpwBd/kwBghOc0xW2SFdmkX/xRLQVnqboiy9oyvafZ4k\n2EKHTRc45t4XNEK97XlpKEHIrfZhSo7zTSY6aJG47wkc0fFwG9V8ER3c6r7S9aSASaZGBN8ugLWX\nLqI50gDGD2QorQUGKyc16AkZVDn4Aqq9oAfU88fqAAAAAElFTkSuQmCC\n",
"prompt_number": 26,
"text": [
" 1 \n",
"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n",
"log(x) + 1"
]
}
],
"prompt_number": 26
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"eq2(fexact)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\frac{1}{\\log{\\left (x \\right )} + 1} - \\frac{\\log{\\left (x \\right )}}{\\left(\\log{\\left (x \\right )} + 1\\right)^{2}} - \\frac{1}{\\left(\\log{\\left (x \\right )} + 1\\right)^{2}}$$"
],
"metadata": {},
"output_type": "pyout",
"png": "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\n",
"prompt_number": 27,
"text": [
" 1 log(x) 1 \n",
"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n",
"log(x) + 1 2 2\n",
" (log(x) + 1) (log(x) + 1) "
]
}
],
"prompt_number": 27
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"simplify(_)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$0$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJdjLNVN0iZu+7\nq0QgoRR7AAAAVklEQVQIHWNgEDJRZWBgSGeQmMDAtYGBOYGB5wID+0cG/gsMfN8Z5BUY+L4wzDdg\nYP0MJeUNQCL8Cgzs3xk4DjBwfWRg2cDAlMDA0M4gHcDAIOxylQEA9FISlFfRJtkAAAAASUVORK5C\nYII=\n",
"prompt_number": 28,
"text": [
"0"
]
}
],
"prompt_number": 28
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's solve the equation on the interval [1, 2]. Let's follow the same procedure as before:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def l2norm(f):\n",
" return sqrt(integrate(f**2, (x, 1, 2)))"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 29
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data = []\n",
"for n in range(10):\n",
" basis = x**n\n",
" R = eq2(basis)\n",
" norm = l2norm(R)\n",
" data.append([basis, R, norm, norm.n()])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 30
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"TableForm(data, headings=[None, [\"f\", \"R(f)\", \"|f| (exact)\", \"|f| (numeric)\"]])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 31,
"text": [
"f R(f) |f| (exact) |f| (numeric) \n",
"----------------------------------------------------------------------------------------------------------------------------------------\n",
"1 -log(x) + 1 sqrt(-8*log(2) + 2*log(2)**2 + 5) 0.644770178712416\n",
"x -x**2*log(x) + 2*x sqrt(-464*log(2)/25 + 32*log(2)**2/5 + 20369/1500) 1.94664350902194 \n",
"x**2 -x**4*log(x) + 3*x**2 sqrt(-69376*log(2)/567 + 512*log(2)**2/9 + 12994039/178605) 3.90825813123264 \n",
"x**3 -x**6*log(x) + 4*x**3 sqrt(-774144*log(2)/845 + 8192*log(2)**2/13 + 145939884/384475) 6.87873730207533 \n",
"x**4 -x**8*log(x) + 5*x**4 sqrt(-27082752*log(2)/3757 + 14627576627/7472673 + 131072*log(2)**2/17) 25.7914054027430 \n",
"x**5 -x**10*log(x) + 6*x**5 sqrt(-25870336*log(2)/441 + 1360381219/133056 + 2097152*log(2)**2/21) 132.447155327926 \n",
"x**6 -x**12*log(x) + 7*x**6 sqrt(-5862588416*log(2)/11875 + 4069798654991/73328125 + 33554432*log(2)**2/25) 598.459134895907 \n",
"x**7 -x**14*log(x) + 8*x**7 sqrt(-40030437376*log(2)/9251 + 14275184146022/44266035 + 536870912*log(2)**2/29) 2493.52404784204 \n",
"x**8 -x**16*log(x) + 9*x**8 sqrt(-1087230705664*log(2)/27225 + 789983722563307/381830625 + 8589934592*log(2)**2/33) 9972.48813698254 \n",
"x**9 -x**18*log(x) + 10*x**9 sqrt(-3761586044928*log(2)/9583 + 2835877634608533/188631772 + 137438953472*log(2)**2/37) 39084.9017400637 "
]
}
],
"prompt_number": 31
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fexact.series(x, 1, 10)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$1 - x + \\frac{3 x^{2}}{2} - \\frac{7 x^{3}}{3} + \\frac{11 x^{4}}{3} - \\frac{347 x^{5}}{60} + \\frac{3289 x^{6}}{360} - \\frac{1011 x^{7}}{70} + \\frac{38371 x^{8}}{1680} - \\frac{136553 x^{9}}{3780} + \\mathcal{O}\\left(x^{10}\\right)$$"
],
"metadata": {},
"output_type": "pyout",
"png": "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\n",
"prompt_number": 32,
"text": [
" 2 3 4 5 6 7 8 \n",
" 3\u22c5x 7\u22c5x 11\u22c5x 347\u22c5x 3289\u22c5x 1011\u22c5x 38371\u22c5x 136553\u22c5x\n",
"1 - x + \u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n",
" 2 3 3 60 360 70 1680 3780 \n",
"\n",
"9 \n",
" \u239b 10\u239e\n",
"\u2500 + O\u239dx \u23a0\n",
" "
]
}
],
"prompt_number": 32
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"eq2(fexact.series(x, 1, 5).removeO())"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\frac{11 x^{4}}{3} - \\frac{7 x^{3}}{3} + \\frac{3 x^{2}}{2} + x \\left(\\frac{44 x^{3}}{3} - 7 x^{2} + 3 x - 1\\right) - x - \\left(\\frac{11 x^{4}}{3} - \\frac{7 x^{3}}{3} + \\frac{3 x^{2}}{2} - x + 1\\right)^{2} \\log{\\left (x \\right )} + 1$$"
],
"metadata": {},
"output_type": "pyout",
"png": "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\n",
"prompt_number": 33,
"text": [
" \n",
" 4 3 2 \u239b 3 \u239e \u239b 4 3 2 \n",
"11\u22c5x 7\u22c5x 3\u22c5x \u239c44\u22c5x 2 \u239f \u239c11\u22c5x 7\u22c5x 3\u22c5x \n",
"\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500 + x\u22c5\u239c\u2500\u2500\u2500\u2500\u2500 - 7\u22c5x + 3\u22c5x - 1\u239f - x - \u239c\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500 - \n",
" 3 3 2 \u239d 3 \u23a0 \u239d 3 3 2 \n",
"\n",
" 2 \n",
" \u239e \n",
" \u239f \n",
"x + 1\u239f \u22c5log(x) + 1\n",
" \u23a0 "
]
}
],
"prompt_number": 33
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"l2norm(_)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\sqrt{- \\frac{337169879614863808}{1759188105675} \\log{\\left (2 \\right )} + \\frac{8564027375363633460602603}{344863918014007392000} + \\frac{3185042700682}{6891885} \\log^{2}{\\left (2 \\right )}}$$"
],
"metadata": {},
"output_type": "pyout",
"png": "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\nSUVORK5CYII=\n",
"prompt_number": 34,
"text": [
" _________________________________________________________________________\n",
" \u2571 \n",
" \u2571 337169879614863808\u22c5log(2) 8564027375363633460602603 3185042700682\u22c5\n",
" \u2571 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n",
"\u2572\u2571 1759188105675 344863918014007392000 6891885\n",
"\n",
"________\n",
" 2 \n",
"log (2) \n",
"\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n",
" "
]
}
],
"prompt_number": 34
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"_.n()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$337.670517561631$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAJ8AAAAPBAMAAAAIUwCQAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIom7VJlmdt1E7xDN\nMqsI8sYEAAACbElEQVQ4Ea2TzWsTURTFzySdNOYlTVC6NgQkIlqDH+AHaP6DhEAXVk1npdBNo9BN\nFa24lZCNuGwFN6LSAXciJBRURIQguDYbK4gilVpbUhzPvXeC/4BvcXLvmft+c+fdF2Bv6QRUcu1G\nqQRZpet9S1xjoY/sjdwFmu8AM9+EHztAonzETIuUgmwIeHXUApVUFEV/hPey4/csyVbdHWSiqAXs\nGwJmrka/AfcWl8zUSAHwzhM4von8kopfAAYCXEOyYskccBjZqWvA8yaBZq59YWG2iONmaqQAd/IH\ngXseo9tTSfA7+uSlNiiWnANq4YS8BOMEmjmQdJ5QMzVSAHCbQK5aMJIHkiZXRAEmPIHl6j+gmQN5\neEZE32KRUWLgK3mmUpEo/74sQ0AF7heBrYkrnIzuVRPrVy8Dux8WOmZaZAAF5g7WOT8RJAIKuq+R\nqWri/QQ+FZOhtzMCSsVZ7O+43QCP1IwjA8QdHmIDEOnylzqE/0QTA9I6NQJaRXLJRSFmQmk7jgwQ\nAzPcDpGbwuPQkWJLTBw7XG7Rmi3En2wV/ga2OZeOmhYZQIBeAclNFeCuAjM9pLYs4RnWqt+Ao7ZX\nzYkeEjt4SmCgQI1igADzQyS3VOD0WsuU2aEmfMN8yB2z+nVsmRWZHvyhTDnuUCMD6LXJVJDeUEGO\nDXGN8QxXLFkE/w914F58hlLhA+kerydmzNTIAApMBai1VDDGcrcLHMOLqiZIV90zTCL1MAZKBf9l\nczymorMpW2QAu9j3p08DKh5L0OaFmf7OfZK48q0+vMbnEP7X7fXYnJy6yEcHmv3YlMgAzdV2wEf/\nd/0F5h77G/9eLUcAAAAASUVORK5CYII=\n",
"prompt_number": 35,
"text": [
"337.670517561631"
]
}
],
"prompt_number": 35
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The norm is not decreasing as we add more terms of the exact solution, so something is wrong. We should find some nonlinear equation that works on interval [-1, 1] without singularities. That will make things easier."
]
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment