{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Parasitic solutions" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "from sympy import *\n", "init_printing()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Find $x$ such that\n", "$$\n", "\\exp(-x) = 99 x\n", "$$" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.0100004983870833\n" ] } ], "source": [ "x = symbols('x')\n", "eq1 = exp(-x) - 99*x\n", "r1 = solve(eq1,x)\n", "for r in r1:\n", " print(N(r))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us make a Taylor expansion of $\\exp(-x)$ around $x=0$" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$1 - x + \\frac{x^{2}}{2} - \\frac{x^{3}}{6} + \\frac{x^{4}}{24} - \\frac{x^{5}}{120} + O\\left(x^{6}\\right)$$" ], "text/plain": [ " 2 3 4 5 \n", " x x x x ⎛ 6⎞\n", "1 - x + ── - ── + ── - ─── + O⎝x ⎠\n", " 2 6 24 120 " ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series(exp(-x),x,0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We truncate this at the quadratic term and consider the equation\n", "$$\n", "1 - x + \\frac{x^2}{2} = 99 x \\qquad \\Longrightarrow \\qquad x^2 - 200 x + 2 = 0\n", "$$" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.0100005000500063\n", "199.989999499950\n" ] } ], "source": [ "eq2 = x**2 - 200*x + 2\n", "r2 = solve(eq2,x)\n", "for r in r2:\n", " print(N(r))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The simplied problem has more solutions than the original problem. One of the solutions is the correct one while the other is a spurious or parasitic solution." ] } ], "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.6.6" } }, "nbformat": 4, "nbformat_minor": 2 }