{ "cells": [ { "cell_type": "markdown", "id": "177e896d", "metadata": {}, "source": [ "# Root Finding\n", "\n", "### Table of Contents:\n", "\n", "1. [Fixed-point iteration](#first-bullet)\n", "2. [Newton's method](#second-bullet)\n", "3. [Secant method](#third-bullet)\n", "4. [Characteristics](#fourth-bullet)\n", "5. [Implementation and comparison](#fifth-bullet)\n" ] }, { "cell_type": "markdown", "id": "7b9230fb", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "id": "cc86c475", "metadata": {}, "source": [ "## 1. Fixed-point iteration \n", "\n", "Suppose we define an iteration\n", "\n", "$$\n", "x_{k+1} = g(x_k)\n", "$$\n", "\n", "If $\\alpha$ is a point such that $g(\\alpha) = \\alpha$, we call $\\alpha$ a fixed point of $g$.\n", "\n", "A fixed-point iteration terminates once a fixed point is reached, since if $g(x_k)= x_k$ then we get $x_{k+1} = x_k$.\n", "\n", "Also, if $x_{k+1}$ converges as $k \\rightarrow \\infty$, it must converge to a fixed point: Let $\\alpha = \\lim_{k \\rightarrow \\infty} x_k$, then\n", "\n", "$$\n", "\\alpha = \\lim_{k \\rightarrow \\infty} x_{k+1} = \\lim_{k \\rightarrow \\infty} g(x_k) = g\\left(\\lim_{k \\rightarrow \\infty} x_k\\right) = g(\\alpha)\n", "$$\n", "\n", "Hence, we need to guarantee that a fixed-point iteration will converge.\n" ] }, { "cell_type": "markdown", "id": "492bb5a8", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "id": "0a662631", "metadata": {}, "source": [ "We can use **Lipschitz condition** to prove that the fixed point iteration converges to $\\alpha$.\n", "\n", "If $g $ satisfies a Lipschitz condition in an interval $[a,b]$ if $\\exists L \\in \\mathbb{R}_{>0}$ such that\n", "\n", "$$\n", "|g(x) - g(y)| \\leq L |x-y|, \\quad \\forall x,y \\in [a,b]\n", "$$\n", "\n", "$g$ is called a **contraction** if $L < 1$. Simply speaking, contraction takes two numbers and maps them close to each other.\n", "\n", "$$\n", "|x_k - \\alpha| = |g(x_{k-1}) - g(\\alpha)| \\leq L|x_{k-1} - \\alpha| \n", "$$\n", "\n", "which implies \n", "\n", "$$\n", "|x_k - \\alpha| \\leq L^k |x_0 - \\alpha|\n", "$$\n", "\n", "and since $L < 1$, $|x_k - \\alpha| \\rightarrow 0$ as $k \\rightarrow \\infty$. This shows that error decreases by factor of $L$ each iteration.\n", "\n", "Therefore, we define the rule of convergence of fixed-point iteration:\n", "\n", "> Suppose that $g(\\alpha) = \\alpha$ and that $g$ is a contraction on $[\\alpha - A, \\alpha + A]$. Suppose also that $|x_0 - \\alpha| \\leq A$. Then the fixed point iteration converges to $\\alpha$." ] }, { "cell_type": "markdown", "id": "8ddb0fd4", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "id": "78871c21", "metadata": {}, "source": [ "We can verify convergence of a fixed-point iteration by checking the gradient of $g$, since if $g \\in C^1[a,b]$, we can obtain a Lipschitz constant based on $g'$:\n", "\n", "$$\n", "L = \\max_{\\theta \\in (a,b)} |g'(\\theta)|\n", "$$\n", "\n", "We want to check if $|g'(\\alpha)|<1$, i.e. if there is a neighborhood of $\\alpha$ on which $g$ is a contraction.\n", "\n", "Furthermore, as $k \\rightarrow \\infty$,\n", "\n", "$$\n", "{|x_{k+1} - \\alpha| \\over |x_k - \\alpha|} = {| g(x_k) - g(\\alpha)| \\over |x_k - \\alpha|} \\rightarrow |g'(\\alpha)|\n", "$$\n", "\n", "Hence, asymptotically, error decreases by a factor of $|g'(\\alpha)|$ each iteration.\n", "\n", "$|g'(\\alpha)|$ can be used to dictate the **asymptotic convergence rate**:\n", "\n", "We say an iteration converges **linearly** if, for some $\\mu \\in (0,1)$,\n", "\n", "$$\n", "\\lim_{k \\rightarrow \\infty} {|x_{k+1} - \\alpha| \\over |x_k - \\alpha|} = \\mu\n", "$$\n", "\n", "An iteration converges **superlinearly** if \n", "\n", "$$\n", "\\lim_{k \\rightarrow \\infty} {|x_{k+1} - \\alpha| \\over |x_k - \\alpha|} = 0\n", "$$" ] }, { "cell_type": "markdown", "id": "c2f2e35e", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "id": "d52f8cbd", "metadata": {}, "source": [ "## 2. Newton's method \n", "\n", "Consider the following fixed-point iteration\n", "\n", "$$\n", "x_{k+1} = x_k - \\lambda(x_k)f(x_k), \\quad k = 0,1,2,...\n", "$$\n", "\n", "corresponding to $g(x) = x - \\lambda(x_k) f(x_k)$, for some function $\\lambda$.\n", "\n", "We want to achieve a fixed point $\\alpha$ of $g$ such that $f(\\alpha) = 0$, and we also want $|g'(\\alpha)| = 0$ t get superlinear convergence.\n", "\n", "We take the first derivative and evaluate it at $f(\\alpha) = 0$:\n", "\n", "$$\n", "g'(\\alpha) = 1 - \\lambda'(\\alpha) f(\\alpha) - \\lambda(\\alpha) f'(\\alpha) = 1 - \\lambda(\\alpha) f'(\\alpha)\n", "$$\n", "\n", "To satisfy $|g'(\\alpha)| = 0$ we choose $\\lambda(x) = 1/f'(x)$ to get **Newton's Method**:\n", "\n", "$$\n", "x_{k+1} = x_k - {f(x_k)\\over f'(x_k)}, \\quad k = 0,1,2,...\n", "$$" ] }, { "cell_type": "markdown", "id": "34c9c768", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "id": "48a1f804", "metadata": {}, "source": [ "To understand the superlinear convergence rate of Newton's Method, we apply **Taylor expansion** for $f(\\alpha)$ about $f(x_k)$:\n", "\n", "$$\n", "0 = f(\\alpha) = f(x_k) + (\\alpha - x_k) f'(x_k) + {(\\alpha - x_k)^2 \\over 2} f''(\\theta_k)\n", "$$\n", "\n", "for some $\\theta_k \\in (\\alpha , x_k)$. \n", "\n", "Dividing through by $f'(x_k)$ gives\n", "\n", "$$\n", "\\left(x_{k+1} - {f(x_k)\\over f'(x_k)}\\right) - \\alpha = {f''(\\theta_k)\\over 2f'(x_k)} (x_k - \\alpha)^2\n", "$$\n", "\n", "equivalently,\n", "\n", "$$\n", "x_{k+1} - \\alpha = {f''(\\theta_k)\\over 2f'(x_k)} (x_k - \\alpha)^2\n", "$$\n", "\n", "Hence, the error at iteration $k+1$ is the square of the error at each iteration $k$. This refers to as **quadratic convergence**. \n", "\n", "Note that this result relies on the second order Taylor expansion near $\\alpha$, we need to be **sufficiently close** to $\\alpha$ to get quadratic convergence." ] }, { "cell_type": "markdown", "id": "45653958", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "id": "be4b0647", "metadata": {}, "source": [ "## 3. Secant method \n", "\n", "\n", "Secant method uses finite difference to approximate $f'(x_k)$:\n", "\n", "$$\n", "f'(x_k) \\approx {f(x_k) - f(x_{k-1}) \\over x_k - x_{k-1}}\n", "$$\n", "\n", "Substituting this into the iteration leads to **Secant Method**:\n", "\n", "$$\n", "x_{k+1} = x_k - f(x_k)\\left({x_k - x_{k-1}\\over f(x_k) - f(x_{k-1})}\\right), \\quad k = 1,2,3...\n", "$$\n", "\n" ] }, { "cell_type": "markdown", "id": "8762a052", "metadata": {}, "source": [ "The convergence rate fo Secant Method can be shown as\n", "\n", "$$\n", "\\lim_{k \\rightarrow \\infty} {|x_{k+1} - \\alpha| \\over |x_k - \\alpha|^q} = \\mu\n", "$$\n", "\n", "where $\\mu$ is a positive constant and $q$ is the golden ratio $q = {1+ \\sqrt{5} \\over 2} \\approx 1.6$.\n", "\n", "Thus, Secant Method has a **golden ratio quadratic rate** of convergence." ] }, { "cell_type": "markdown", "id": "48432c55", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "id": "af003cf8", "metadata": {}, "source": [ "## 4. Characteristics \n", "\n", "* **Fixed-point iteration**\n", "\n", " * Sometimes need to re-write the function $f(x)=0$ as $x = g(x)$ to make sure $g(x)$ has an appropriate property.\n", " \n", "* **Newton's Method**\n", "\n", " * Quadratic convergence is very rapic.\n", " * Requires to evaluate both $f(x_k)$ and $f'(x_k)$ per iteration.\n", " \n", "* **Secant Method**\n", "\n", " * Faster than fixted-point iteration, slower than Newton's Method.\n", " * Does not require us to determine $f'(x)$ analytically.\n", " * Requires only one extra function evaluation, $f(x_k)$, per iteration.\n", " * When iterations become so close, we might get division by 0.\n", " " ] }, { "cell_type": "markdown", "id": "0c74e731", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "id": "f9698b32", "metadata": {}, "source": [ "## 5. Implementation and comparison \n", "\n", "The following section compares how fixed-point interation, Newton's method and Secant method solve $f(x) = e^x - x -2 = 0$." ] }, { "cell_type": "code", "execution_count": 1, "id": "975566e4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 2 3.389056099 2 3.389056099 2 3.389056099\n", " 1.469552928 0.8777382272 1.499485016 0.9798966489 1.386294361 0.6137056389\n", " 1.207329481 0.1372115734 1.295906562 0.3584007663 1.219736215 0.1665581464\n", " 1.148805629 0.005617477688 1.178508079 0.0710144738 1.169299435 0.0504367794\n", " 1.146198212 1.071354715e-05 1.149498374 0.007110700897 1.153510565 0.01578887016\n", " 1.146193221 3.919975455e-11 1.146270406 0.0001656637239 1.148516297 0.004994267732\n", " 1.146193221 0 1.146193407 4.007691814e-07 1.146931325 0.001584972228\n", " 1.146193221 0 1.146193221 2.267208643e-11 1.146427796 0.0005035296475\n", " 1.146193221 0 1.146193221 0 1.146267776 0.0001600193597\n" ] } ], "source": [ "from math import *\n", "\n", "# f(x) = e^x-x-2\n", "def f(x):\n", " return exp(x)-x-2\n", "\n", "# f'(x) = e^x-1\n", "def df(x):\n", " return exp(x)-1\n", "\n", "startpt = 2\n", "\n", "# Newton method setup\n", "xa=startpt\n", "\n", "# Secant method setup\n", "xb=startpt\n", "\n", "# Fixed-point iteration setup\n", "xc=startpt\n", "\n", "# Initialize previous step x_{k-1} in secant method\n", "xbb=startpt + 0.1\n", "fxbb=f(xbb)\n", "\n", "# store\n", "xas = [xa]\n", "xbs = [xb]\n", "xcs = [xc]\n", "\n", "for k in range(30):\n", "\n", " print(\"%17.10g %17.10g %17.10g %17.10g %17.10g %17.10g\" \\\n", " %(xa,f(xa),xb,f(xb),xc,f(xc)))\n", "\n", " # Newton\n", " xa=xa-f(xa)/df(xa)\n", " xas.append(xa)\n", " \n", " # Secant\n", " fxb=f(xb)\n", " tem=xb-fxb*(xb-xbb)/(fxb-fxbb)\n", " xbb=xb;fxbb=fxb\n", " xb=tem\n", " xbs.append(xb)\n", " \n", " # Fixed point iteration\n", " xc=log(xc+2)\n", " xcs.append(xc)\n", " \n", " if xb-xbb == 0.0 and fxb-fxbb == 0.0:\n", " break" ] }, { "cell_type": "code", "execution_count": 2, "id": "7df959a7", "metadata": {}, "outputs": [ { "data": { "image/png": "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993Mmzev4fVjjz3GlClTXnO99W677TYuvvjiE75Pqhiy28iFky4mxMiamtWQgv+DSZIkSWp9paWlXHPNNfz1r39l0aJFvPTSS/zgBz8ghNDmtXzjG984YsgGSE9PZ8GCBQ2vf/3rXx9zUD44ZCspPdUFdBV9uvdhUG0Oi7J2sfGlJykc+/pUlyRJkiR1Pne8F7avbp179xkO77vziF02btxIeno6/fr1a2ibNGlSw9fLly/nU5/6FGVlZVRWVvKRj3yEa6+9FoCnn36az3/+8+zatYsYI9dffz1vf/vb+dznPsdjjz1GVVUVvXr14pZbbmHUqFGsWbOGKVOmcO2113Lfffexc+dOfvrTn3LBBRdwzTXXAHDGGWeQSCR4+OGHyc/PP6TeK6+8kltvvZXJkyezbNkyqqqqGDt2bMP1qqoqvvKVr/Doo49SWVnJmDFjuPHGG3nqqae45557mDVrFrfccgsf+9jHGDlyJNXV1Vx77bU8+eSTVFdX85vf/KYhtN9+++18//vfJ4TASSedxM0338ygQYOorKzk4x//OLNnz2bQoEGMGTPmtf8zagccyW5Dp/aexPa0NOYv+F2qS5EkSZLUCiZMmMD06dMZMmQIF110ET/4wQ/YsGEDADU1Nbzvfe/jRz/6Ec888wxPP/00N954I88++yzbtm3joosu4nvf+x6LFy9m0aJFvP71yYG5//7v/+aZZ55h0aJF/Od//if/9V//1fC8rVu3MnnyZBYsWMANN9zQcO3GG28E4KmnnmLRokXNBmyAiy++mPvuu499+/Zx66238sEPfrDJ9R/84Afk5OQwb948Fi1axNixY/na177GBRdcwIUXXsgXvvAFFi1axFVXXQXAkiVLuPLKK1m8eDEf//jHue666wB44YUX+NznPseDDz7Ic889xxlnnMGHP/xhAG666SZWr17NkiVLuO+++3jmmWda6h9HSjiS3YbeXHwxD//rX6zaPifVpUiSJEmd01FGmltbIpHgL3/5Cy+//DKPP/44DzzwAN/+9reZP38+lZWVLFmyhPe+970N/Xfv3s2LL77Ixo0bOfXUUznjjDMa7tO3b18AHn74Yf7v//6P3bt3U1tby65dB04s6tGjB29/+9sBmD59OitXrjyuerOzs3nTm97En//8Z+666y6effZZnn766Ybrd999N7t27eKuu+4CoLKykpNPPvmw9ysqKmoYuZ4+fTo//OEPAZg9ezZvfetbGTRoEADXXnst3/rWt4gxMnv2bK644goyMjLIyMjgsssu49///vdxfR/tiSG7Db3upGmkRViauZd9W9aS1X9oqkuSJEmS1ArGjBnDmDFj+MhHPsJ5553HPffcw5vf/Gb69+/PokWLDul/3333NXufV155hU984hPMmzePESNG8Nxzz/GGN7yh4XpWVlbD12lpadTU1Bx3rVdeeSVve9vbOO+888jNzW1yLcbIz3/+8ybPPJKD66murm64T+N16Y2/jjEed83tmdPF21B2RjZD0wpZkNWN1U/flepyJEmSJLWwDRs28OSTTza83r59O6tXr+bkk0+mqKiI7Oxsfvvb3zZcX7FiBdu2beOMM87gpZde4qmnngKgtraWbdu2sXPnTjIzMykoKCDGeEy7ftfr2bMnO3fuPGq/adOm8eUvf5kvfvGLh1y78MIL+fGPf0x5eTkA5eXlLFmyBIDc3Nxjuj/AOeecw/33309paSmQnM5+zjnnEELgnHPO4fbbb6e6upqKigruuOOOY/0W2yVDdhubMuQcyhMJVqz2KC9JkiSps6muruab3/wmo0ePpri4mNe//vVcccUVvP3tbyc9PZ17772XP/3pT4wfP56xY8dy1VVXUVFRQZ8+ffjb3/7G5z73OcaPH8/EiRP597//zbhx43j3u9/N2LFjmTFjBkOGDDnmWj7zmc/whje8geLiYsrKyo7Y95Of/CSnnnrqIe1f+MIXKC4upqSkhPHjxzNt2rSGkfjLL7+cO+64g+LiYm655ZYj3n/s2LF85zvf4U1vehPjx4/nX//6FzfddBMAH/7whxkyZAinnnoqb3nLWxrWondUoaMPzQ8ePDiuX78+1WUcs/ml8/ngQx/kmu27+Oh/LoFuOakuSZIkSeqQampqWLZsGaNHjyYtLS3V5aiTOdLPVwhhQ4xxcHPvcyS7jU3Im0BGTGN+ViabFj2Y6nIkSZIkSS3IkN3GMtIyGJVzKouzulG2+O5UlyNJkiRJakGG7BQ4Z9S5VIVA6Y6noLY21eVIkiRJklqIITsFXj94OgDPd6th39q5Ka5GkiRJktRSDNkpUNS3iO6hO3O7d2PjvLtTXY4kSZIkqYUYslMgERIU55fwUmYm1WseTnU5kiRJkqQWYshOkTcMO5MYAq+EjcTta1NdjiRJkqQWMmzYMMaMGUNxcTHFxcVcc8013HPPPXzuc59rsWesWbOG/v37t9j9gGOucceOHXz/+98/7PWDa/v6179OZWVli9TY2KJFi/jTn/7UpK24uJiKiooWf9bxMGSnyLTCaQDM6Z7Flmf/nuJqJEmSJLWku+66i0WLFrFo0SJuvPFGLrzwQn7wgx+kuqwjOtYajxayD/aNb3zjNYXs6urqI15vLmQvWrSI7t27H/ezWpIhO0WG5g6ld0Y/5mRlsX/J/akuR5IkSVIruu2227j44osB+P3vf8+UKVPYv38/MUbe9ra38b3vfQ+AZ555hje84Q1MmTKFSZMm8Ze//KXhHj/72c8YOXIkr3/967nlllsO+6z6keTPfvazlJSUMHbsWB599NGG67fffjvjxo1j/PjxvOUtb2HDhg2H1PjYY49RXFzMtddey4QJExg7dizz588H4JprrmHHjh0UFxczZcqUI37f11xzDQBnnHEGxcXFlJWVsXv3bq6++mqmTp3K+PHjueaaa6iqqgJgxowZXHfddZxzzjm8+c1vprq6mje/+c1MmTKFsWPHcumll1JeXk5ZWRlf/epXmTVrVsNsAYAQAnv27AFg/vz5TJ8+nfHjxzN16lSefPLJJn8+X/3qV5k8eTIjR47k/vtbLpOlt9iddFxCCJw5+AzuW30vofRZ2L8buvVMdVmSJElSh/bxRz7Out3rWuXeJ/U8if875/+Oqe/FF19MVlYWAF/72teaXLv00kt54okn+MxnPsPQoUOpqanh85//PDt27OAjH/kI9913H4WFhWzZsoXJkydz5plnUlZWxre//W0WLlzIgAEDuPbaa4/4/K1btzJu3Dh++MMfMmfOHN7xjnewcuVKVq9ezec+9zkWLFjAoEGD+Pa3v82HP/xh7rvvvkPusWTJEm655RZ+/vOfc+ONN3Ldddfx0EMPceONNzJlyhQWLVp01D+HG2+8kZtuuomnnnqKnJwcAD784Q9z1lln8ctf/pIYI1dffTU33HAD//Vf/wUkR6MffPBBMjIyiDFyxx130K9fP2KMXHvttfz85z/ns5/9LN/85jf5xz/+wV133XXIcysrK3nnO9/JL3/5S9785jfz73//m4svvpgVK1Y0/PlMnjyZb37zmzz44IN88pOf5IILLjjq93MsDNkpdOag6dy3+l6e7Z5G35f+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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "domain = np.arange(0,len(xas), 1)\n", "plt.figure(figsize=(15, 8), dpi=80)\n", "plt.plot(domain,[f(x) for x in xas], label = \"Newton's Method\")\n", "plt.plot(domain,[f(x) for x in xbs], label = \"Secant Method\")\n", "plt.plot(domain,[f(x) for x in xcs], label = \"Fixed-point Iteration\")\n", "plt.ylabel('f(x)')\n", "plt.xlabel('x')\n", "plt.legend()\n", "plt.show()" ] } ], "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.8.8" } }, "nbformat": 4, "nbformat_minor": 5 }