{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "# Fixed Point Iteration"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "collapsed": false
      },
      "outputs": [],
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as pt"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "**Task:** Find a root of the function below by fixed point iteration."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "metadata": {
        "collapsed": false
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fd8346bee48>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "x = np.linspace(0, 4.5, 200)\n",
        "\n",
        "def f(x):\n",
        "    return x**2 - x - 2\n",
        "\n",
        "pt.plot(x, f(x))\n",
        "pt.grid()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "Actual roots: $2$ and $-1$. Here: focusing on $x=2$."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "We can choose a wide variety of functions that have a fixed point at the root $x=2$:\n",
        "\n",
        "(These are chosen knowing the root. But here we are only out to study the *behavior* of fixed point iteration, not the finding of fixed point functions--so that is OK.)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "metadata": {
        "collapsed": false
      },
      "outputs": [],
      "source": [
        "def fp1(x): return x**2-2\n",
        "def fp2(x): return np.sqrt(x+2)\n",
        "def fp3(x): return 1+2/x\n",
        "def fp4(x): return (x**2+2)/(2*x-1)\n",
        "\n",
        "fixed_point_functions = [fp1, fp2, fp3, fp4]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "metadata": {
        "collapsed": false
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.5/dist-packages/ipykernel/__main__.py:3: RuntimeWarning: divide by zero encountered in true_divide\n",
            "  app.launch_new_instance()\n"
          ]
        },
        {
          "data": {
            "text/plain": [
              "<matplotlib.legend.Legend at 0x7fd83468d6a0>"
            ]
          },
          "execution_count": 11,
          "metadata": {},
          "output_type": "execute_result"
        },
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fd83468d780>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "for fp in fixed_point_functions:\n",
        "    pt.plot(x, fp(x), label=fp.__name__)\n",
        "pt.ylim([0, 3])\n",
        "pt.legend(loc=\"best\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "Common feature?"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "metadata": {
        "collapsed": false
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "2\n",
            "2.0\n",
            "2.0\n",
            "2.0\n"
          ]
        }
      ],
      "source": [
        "for fp in fixed_point_functions:\n",
        "    print(fp(2))\n",
        "    \n",
        "# All functions have 2 as a fixed point."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 21,
      "metadata": {
        "collapsed": false
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "2.41\n",
            "3.8081000000000005\n",
            "12.501625610000003\n",
            "154.29064289260796\n"
          ]
        },
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fd8344d4080>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "z = 2.1; fp = fp1\n",
        "#z = 1; fp = fp2\n",
        "#z = 1; fp = fp3\n",
        "#z = 1; fp = fp4\n",
        "\n",
        "n_iterations = 4\n",
        "\n",
        "pt.figure(figsize=(8,8))\n",
        "pt.plot(x, fp(x), label=fp.__name__)\n",
        "pt.plot(x, x, \"--\", label=\"$y=x$\")\n",
        "pt.gca().set_aspect(\"equal\")\n",
        "pt.ylim([-0.5, 4])\n",
        "pt.legend(loc=\"best\")\n",
        "\n",
        "for i in range(n_iterations):\n",
        "    z_new = fp(z)\n",
        "    \n",
        "    pt.arrow(z, z, 0, z_new-z)\n",
        "    pt.arrow(z, z_new, z_new-z, 0)\n",
        "    \n",
        "    z = z_new\n",
        "    print(z)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "collapsed": false
      },
      "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.5.1+"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}