CalculusWithJuliaNotes.jl/quarto/0e7f54ed/derivatives/newtons_method.html
2022-08-11 13:15:19 -04:00

3855 lines
396 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.0.32">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>Calculus with Julia - 30&nbsp; Newtons method</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
</style>
<script src="../site_libs/quarto-nav/quarto-nav.js"></script>
<script src="../site_libs/quarto-nav/headroom.min.js"></script>
<script src="../site_libs/clipboard/clipboard.min.js"></script>
<script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="../site_libs/quarto-search/fuse.min.js"></script>
<script src="../site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="../">
<link href="../derivatives/more_zeros.html" rel="next">
<link href="../derivatives/linearization.html" rel="prev">
<script src="../site_libs/quarto-html/quarto.js"></script>
<script src="../site_libs/quarto-html/popper.min.js"></script>
<script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="../site_libs/quarto-html/anchor.min.js"></script>
<link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="../site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="../site_libs/bootstrap/bootstrap.min.js"></script>
<link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="../site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
"location": "navbar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "end",
"type": "overlay",
"limit": 20,
"language": {
"search-no-results-text": "No results",
"search-matching-documents-text": "matching documents",
"search-copy-link-title": "Copy link to search",
"search-hide-matches-text": "Hide additional matches",
"search-more-match-text": "more match in this document",
"search-more-matches-text": "more matches in this document",
"search-clear-button-title": "Clear",
"search-detached-cancel-button-title": "Cancel",
"search-submit-button-title": "Submit"
}
}</script>
<script async="" src="https://hypothes.is/embed.js"></script>
<script type="module" src="../site_libs/quarto-ojs/quarto-ojs-runtime.js"></script>
<link href="../site_libs/quarto-ojs/quarto-ojs.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" integrity="sha512-c3Nl8+7g4LMSTdrm621y7kf9v3SDPnhxLNhcjFJbKECVnmZHTdo+IRO05sNLTH/D3vA6u1X32ehoLC7WFVdheg==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==" crossorigin="anonymous"></script>
<script type="application/javascript">define('jquery', [],function() {return window.jQuery;})</script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js" type="text/javascript"></script>
</head>
<body class="nav-sidebar floating nav-fixed">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="navbar navbar-expand-lg navbar-dark ">
<div class="navbar-container container-fluid">
<a class="navbar-brand" href="../index.html">
<img src="../logo.png" alt="">
<span class="navbar-title">Calculus with Julia</span>
</a>
<div id="quarto-search" class="" title="Search"></div>
</div> <!-- /container-fluid -->
</nav>
<nav class="quarto-secondary-nav" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<div class="container-fluid d-flex justify-content-between">
<h1 class="quarto-secondary-nav-title"><span class="chapter-number">30</span>&nbsp; <span class="chapter-title">Newtons method</span></h1>
<button type="button" class="quarto-btn-toggle btn" aria-label="Show secondary navigation">
<i class="bi bi-chevron-right"></i>
</button>
</div>
</nav>
</header>
<!-- content -->
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
<!-- sidebar -->
<nav id="quarto-sidebar" class="sidebar collapse sidebar-navigation floating overflow-auto">
<div class="mt-2 flex-shrink-0 align-items-center">
<div class="sidebar-search">
<div id="quarto-search" class="" title="Search"></div>
</div>
</div>
<div class="sidebar-menu-container">
<ul class="list-unstyled mt-1">
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../index.html" class="sidebar-item-text sidebar-link">Preface</a>
</div>
</li>
<li class="sidebar-item sidebar-item-section">
<div class="sidebar-item-container">
<a class="sidebar-item-text sidebar-link text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-1" aria-expanded="false">Precalculus Concepts</a>
<a class="sidebar-item-toggle text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-1" aria-expanded="false">
<i class="bi bi-chevron-right ms-2"></i>
</a>
</div>
<ul id="quarto-sidebar-section-1" class="collapse list-unstyled sidebar-section depth1 ">
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/calculator.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">1</span>&nbsp; <span class="chapter-title">From calculator to computer</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/variables.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">2</span>&nbsp; <span class="chapter-title">Variables</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/numbers_types.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">3</span>&nbsp; <span class="chapter-title">Number systems</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/logical_expressions.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">4</span>&nbsp; <span class="chapter-title">Inequalities, Logical expressions</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/vectors.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">5</span>&nbsp; <span class="chapter-title">Vectors</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/ranges.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">6</span>&nbsp; <span class="chapter-title">Ranges and Sets</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/functions.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">7</span>&nbsp; <span class="chapter-title">Functions</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/plotting.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">8</span>&nbsp; <span class="chapter-title">The Graph of a Function</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/transformations.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">9</span>&nbsp; <span class="chapter-title">Function manipulations</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/inversefunctions.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">10</span>&nbsp; <span class="chapter-title">The Inverse of a Function</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/polynomial.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">11</span>&nbsp; <span class="chapter-title">Polynomials</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/polynomial_roots.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">12</span>&nbsp; <span class="chapter-title">Roots of a polynomial</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/polynomials_package.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">13</span>&nbsp; <span class="chapter-title">The Polynomials package</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/rational_functions.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">14</span>&nbsp; <span class="chapter-title">Rational functions</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/exp_log_functions.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">15</span>&nbsp; <span class="chapter-title">Exponential and logarithmic functions</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/trig_functions.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">16</span>&nbsp; <span class="chapter-title">Trigonometric functions</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../precalc/julia_overview.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">17</span>&nbsp; <span class="chapter-title">Overview of Julia commands</span></a>
</div>
</li>
</ul>
</li>
<li class="sidebar-item sidebar-item-section">
<div class="sidebar-item-container">
<a class="sidebar-item-text sidebar-link text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-2" aria-expanded="false">Limits</a>
<a class="sidebar-item-toggle text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-2" aria-expanded="false">
<i class="bi bi-chevron-right ms-2"></i>
</a>
</div>
<ul id="quarto-sidebar-section-2" class="collapse list-unstyled sidebar-section depth1 ">
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../limits/limits.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">18</span>&nbsp; <span class="chapter-title">Limits</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../limits/limits_extensions.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">19</span>&nbsp; <span class="chapter-title">Limits, issues, extensions of the concept</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../limits/continuity.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">20</span>&nbsp; <span class="chapter-title">Continuity</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../limits/intermediate_value_theorem.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">21</span>&nbsp; <span class="chapter-title">Implications of continuity</span></a>
</div>
</li>
</ul>
</li>
<li class="sidebar-item sidebar-item-section">
<div class="sidebar-item-container">
<a class="sidebar-item-text sidebar-link text-start" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-3" aria-expanded="true">Derivatives</a>
<a class="sidebar-item-toggle text-start" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-3" aria-expanded="true">
<i class="bi bi-chevron-right ms-2"></i>
</a>
</div>
<ul id="quarto-sidebar-section-3" class="collapse list-unstyled sidebar-section depth1 show">
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/derivatives.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">22</span>&nbsp; <span class="chapter-title">Derivatives</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/numeric_derivatives.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">23</span>&nbsp; <span class="chapter-title">Numeric derivatives</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/symbolic_derivatives.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">24</span>&nbsp; <span class="chapter-title">Symbolic derivatives</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/mean_value_theorem.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">25</span>&nbsp; <span class="chapter-title">The mean value theorem for differentiable functions.</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/optimization.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">26</span>&nbsp; <span class="chapter-title">Optimization</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/first_second_derivatives.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">27</span>&nbsp; <span class="chapter-title">The first and second derivatives</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/curve_sketching.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">28</span>&nbsp; <span class="chapter-title">Curve Sketching</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/linearization.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">29</span>&nbsp; <span class="chapter-title">Linearization</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/newtons_method.html" class="sidebar-item-text sidebar-link active"><span class="chapter-number">30</span>&nbsp; <span class="chapter-title">Newtons method</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/more_zeros.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">31</span>&nbsp; <span class="chapter-title">Derivative-free alternatives to Newtons method</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/lhospitals_rule.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">32</span>&nbsp; <span class="chapter-title">LHospitals Rule</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/implicit_differentiation.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">33</span>&nbsp; <span class="chapter-title">Implicit Differentiation</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/related_rates.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">34</span>&nbsp; <span class="chapter-title">Related rates</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../derivatives/taylor_series_polynomials.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">35</span>&nbsp; <span class="chapter-title">Taylor Polynomials and other Approximating Polynomials</span></a>
</div>
</li>
</ul>
</li>
<li class="sidebar-item sidebar-item-section">
<div class="sidebar-item-container">
<a class="sidebar-item-text sidebar-link text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-4" aria-expanded="false">Integrals</a>
<a class="sidebar-item-toggle text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-4" aria-expanded="false">
<i class="bi bi-chevron-right ms-2"></i>
</a>
</div>
<ul id="quarto-sidebar-section-4" class="collapse list-unstyled sidebar-section depth1 ">
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integrals/area.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">36</span>&nbsp; <span class="chapter-title">Area under a curve</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integrals/ftc.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">37</span>&nbsp; <span class="chapter-title">Fundamental Theorem or Calculus</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integrals/substitution.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">38</span>&nbsp; <span class="chapter-title">Substitution</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integrals/integration_by_parts.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">39</span>&nbsp; <span class="chapter-title">Integration By Parts</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integrals/partial_fractions.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">40</span>&nbsp; <span class="chapter-title">Partial Fractions</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integrals/improper_integrals.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">41</span>&nbsp; <span class="chapter-title">Improper Integrals</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integrals/mean_value_theorem.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">42</span>&nbsp; <span class="chapter-title">Mean value theorem for integrals</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integrals/area_between_curves.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">43</span>&nbsp; <span class="chapter-title">Area between two curves</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integrals/center_of_mass.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">44</span>&nbsp; <span class="chapter-title">Center of Mass</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integrals/volumes_slice.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">45</span>&nbsp; <span class="chapter-title">Volumes by slicing</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integrals/arc_length.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">46</span>&nbsp; <span class="chapter-title">Arc length</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integrals/surface_area.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">47</span>&nbsp; <span class="chapter-title">Surface Area</span></a>
</div>
</li>
</ul>
</li>
<li class="sidebar-item sidebar-item-section">
<div class="sidebar-item-container">
<a class="sidebar-item-text sidebar-link text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-5" aria-expanded="false">ODEs</a>
<a class="sidebar-item-toggle text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-5" aria-expanded="false">
<i class="bi bi-chevron-right ms-2"></i>
</a>
</div>
<ul id="quarto-sidebar-section-5" class="collapse list-unstyled sidebar-section depth1 ">
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../ODEs/odes.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">48</span>&nbsp; <span class="chapter-title">ODEs</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../ODEs/euler.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">49</span>&nbsp; <span class="chapter-title">Eulers method</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../ODEs/solve.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">50</span>&nbsp; <span class="chapter-title">The problem-algorithm-solve interface</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../ODEs/differential_equations.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">51</span>&nbsp; <span class="chapter-title">The <code>DifferentialEquations</code> suite</span></a>
</div>
</li>
</ul>
</li>
<li class="sidebar-item sidebar-item-section">
<div class="sidebar-item-container">
<a class="sidebar-item-text sidebar-link text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-6" aria-expanded="false">Differential vector calculus</a>
<a class="sidebar-item-toggle text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-6" aria-expanded="false">
<i class="bi bi-chevron-right ms-2"></i>
</a>
</div>
<ul id="quarto-sidebar-section-6" class="collapse list-unstyled sidebar-section depth1 ">
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../differentiable_vector_calculus/polar_coordinates.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">52</span>&nbsp; <span class="chapter-title">Polar Coordinates and Curves</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../differentiable_vector_calculus/vectors.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">53</span>&nbsp; <span class="chapter-title">Vectors and matrices</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../differentiable_vector_calculus/vector_valued_functions.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">54</span>&nbsp; <span class="chapter-title">Vector-valued functions, <span class="math inline">\(f:R \rightarrow R^n\)</span></span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../differentiable_vector_calculus/scalar_functions.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">55</span>&nbsp; <span class="chapter-title">Scalar functions</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../differentiable_vector_calculus/scalar_functions_applications.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">56</span>&nbsp; <span class="chapter-title">Applications with scalar functions</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../differentiable_vector_calculus/vector_fields.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">57</span>&nbsp; <span class="chapter-title">Functions <span class="math inline">\(R^n \rightarrow R^m\)</span></span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../differentiable_vector_calculus/plots_plotting.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">58</span>&nbsp; <span class="chapter-title">2D and 3D plots in Julia with Plots</span></a>
</div>
</li>
</ul>
</li>
<li class="sidebar-item sidebar-item-section">
<div class="sidebar-item-container">
<a class="sidebar-item-text sidebar-link text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-7" aria-expanded="false">Integral vector calculus</a>
<a class="sidebar-item-toggle text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-7" aria-expanded="false">
<i class="bi bi-chevron-right ms-2"></i>
</a>
</div>
<ul id="quarto-sidebar-section-7" class="collapse list-unstyled sidebar-section depth1 ">
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integral_vector_calculus/double_triple_integrals.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">59</span>&nbsp; <span class="chapter-title">Multi-dimensional integrals</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integral_vector_calculus/line_integrals.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">60</span>&nbsp; <span class="chapter-title">Line and Surface Integrals</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integral_vector_calculus/div_grad_curl.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">61</span>&nbsp; <span class="chapter-title">The Gradient, Divergence, and Curl</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integral_vector_calculus/stokes_theorem.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">62</span>&nbsp; <span class="chapter-title">Greens Theorem, Stokes Theorem, and the Divergence Theorem</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../integral_vector_calculus/review.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">63</span>&nbsp; <span class="chapter-title">Quick Review of Vector Calculus</span></a>
</div>
</li>
</ul>
</li>
<li class="sidebar-item sidebar-item-section">
<div class="sidebar-item-container">
<a class="sidebar-item-text sidebar-link text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-8" aria-expanded="false">Alternatives</a>
<a class="sidebar-item-toggle text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-8" aria-expanded="false">
<i class="bi bi-chevron-right ms-2"></i>
</a>
</div>
<ul id="quarto-sidebar-section-8" class="collapse list-unstyled sidebar-section depth1 ">
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../alternatives/plotly_plotting.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">64</span>&nbsp; <span class="chapter-title">JavaScript based plotting libraries</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../alternatives/makie_plotting.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">65</span>&nbsp; <span class="chapter-title">Calculus plots with Makie</span></a>
</div>
</li>
</ul>
</li>
<li class="sidebar-item sidebar-item-section">
<div class="sidebar-item-container">
<a class="sidebar-item-text sidebar-link text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-9" aria-expanded="false">Appendices</a>
<a class="sidebar-item-toggle text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-9" aria-expanded="false">
<i class="bi bi-chevron-right ms-2"></i>
</a>
</div>
<ul id="quarto-sidebar-section-9" class="collapse list-unstyled sidebar-section depth1 ">
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../misc/getting_started_with_julia.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">66</span>&nbsp; <span class="chapter-title">Getting started with Julia</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../misc/julia_interfaces.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">67</span>&nbsp; <span class="chapter-title">Julia interfaces</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../misc/calculus_with_julia.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">68</span>&nbsp; <span class="chapter-title">The <code>CalculusWithJulia</code> package</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../misc/unicode.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">69</span>&nbsp; <span class="chapter-title">Usages of Unicode symbols</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../misc/quick_notes.html" class="sidebar-item-text sidebar-link"><span class="chapter-number">70</span>&nbsp; <span class="chapter-title">Quick introduction to Calculus with Julia</span></a>
</div>
</li>
</ul>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../references.html" class="sidebar-item-text sidebar-link">References</a>
</div>
</li>
</ul>
</div>
</nav>
<!-- margin-sidebar -->
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
<nav id="TOC" role="doc-toc">
<h2 id="toc-title">Table of contents</h2>
<ul>
<li><a href="#newtons-generalization" id="toc-newtons-generalization" class="nav-link active" data-scroll-target="#newtons-generalization"> <span class="header-section-number">30.1</span> Newtons generalization</a></li>
<li><a href="#wrapping-in-a-function" id="toc-wrapping-in-a-function" class="nav-link" data-scroll-target="#wrapping-in-a-function"> <span class="header-section-number">30.2</span> Wrapping in a function</a>
<ul class="collapse">
<li><a href="#functions-in-the-roots-package" id="toc-functions-in-the-roots-package" class="nav-link" data-scroll-target="#functions-in-the-roots-package"> <span class="header-section-number">30.2.1</span> Functions in the Roots package</a></li>
</ul></li>
<li><a href="#convergence-rates" id="toc-convergence-rates" class="nav-link" data-scroll-target="#convergence-rates"> <span class="header-section-number">30.3</span> Convergence rates</a>
<ul class="collapse">
<li><a href="#poor-initial-step" id="toc-poor-initial-step" class="nav-link" data-scroll-target="#poor-initial-step"> <span class="header-section-number">30.3.1</span> Poor initial step</a></li>
<li><a href="#the-second-derivative-is-too-big" id="toc-the-second-derivative-is-too-big" class="nav-link" data-scroll-target="#the-second-derivative-is-too-big"> <span class="header-section-number">30.3.2</span> The second derivative is too big</a></li>
<li><a href="#the-tangent-line-at-some-xᵢ-is-flat" id="toc-the-tangent-line-at-some-xᵢ-is-flat" class="nav-link" data-scroll-target="#the-tangent-line-at-some-xᵢ-is-flat"> <span class="header-section-number">30.3.3</span> The tangent line at some xᵢ is flat</a></li>
</ul></li>
<li><a href="#questions" id="toc-questions" class="nav-link" data-scroll-target="#questions"> <span class="header-section-number">30.4</span> Questions</a></li>
</ul>
<div class="toc-actions"><div><i class="bi bi-github"></i></div><div class="action-links"><p><a href="https://github.com/jverzani/CalculusWithJuliaNotes.jl/edit/main/quarto/derivatives/newtons_method.qmd" class="toc-action">Edit this page</a></p><p><a href="https://github.com/jverzani/CalculusWithJuliaNotes.jl/issues/new" class="toc-action">Report an issue</a></p></div></div></nav>
</div>
<!-- main -->
<main class="content" id="quarto-document-content">
<header id="title-block-header" class="quarto-title-block default">
<div class="quarto-title">
<h1 class="title d-none d-lg-block"><span class="chapter-number">30</span>&nbsp; <span class="chapter-title">Newtons method</span></h1>
</div>
<div class="quarto-title-meta">
</div>
</header>
<p>This section uses these add-on packages:</p>
<div class="sourceCode cell-code" id="cb1"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="im">using</span> <span class="bu">CalculusWithJulia</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="im">using</span> <span class="bu">Plots</span></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="im">using</span> <span class="bu">SymPy</span></span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="im">using</span> <span class="bu">Roots</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<hr>
<p>The Babylonian method is an algorithm to find an approximate value for <span class="math inline">\(\sqrt{k}\)</span>. It was described by the first-century Greek mathematician Hero of <a href="http://en.wikipedia.org/wiki/Babylonian_method">Alexandria</a>.</p>
<p>The method starts with some initial guess, called <span class="math inline">\(x_0\)</span>. It then applies a formula to produce an improved guess. This is repeated until the improved guess is accurate enough or it is clear the algorithm fails to work.</p>
<p>For the Babylonian method, the next guess, <span class="math inline">\(x_{i+1}\)</span>, is derived from the current guess, <span class="math inline">\(x_i\)</span>. In mathematical notation, this is the updating step:</p>
<p><span class="math display">\[
x_{i+1} = \frac{1}{2}(x_i + \frac{k}{x_i})
\]</span></p>
<p>We use this algorithm to approximate the square root of <span class="math inline">\(2\)</span>, a value known to the Babylonians.</p>
<p>Start with <span class="math inline">\(x\)</span>, then form <span class="math inline">\(x/2 + 1/x\)</span>, from this again form <span class="math inline">\(x/2 + 1/x\)</span>, repeat.</p>
<p>We represent this step using a function</p>
<div class="cell" data-execution_count="4">
<div class="sourceCode cell-code" id="cb2"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="fu">babylon</span>(x) <span class="op">=</span> x<span class="op">/</span><span class="fl">2</span> <span class="op">+</span> <span class="fl">1</span><span class="op">/</span>x</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="5">
<pre><code>babylon (generic function with 1 method)</code></pre>
</div>
</div>
<p>Lets look starting with <span class="math inline">\(x = 2\)</span> as a rational number:</p>
<div class="cell" data-hold="true" data-execution_count="5">
<div class="sourceCode cell-code" id="cb4"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a>x₁ <span class="op">=</span> <span class="fu">babylon</span>(<span class="fl">2</span><span class="op">//</span><span class="fl">1</span>)</span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a>x₁, x₁<span class="op">^</span><span class="fl">2.0</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="6">
<pre><code>(3//2, 2.25)</code></pre>
</div>
</div>
<p>Our estimate improved from something which squared to <span class="math inline">\(4\)</span> down to something which squares to <span class="math inline">\(2.25.\)</span> A big improvement, but there is still more to come. Had we done one more step:</p>
<div class="cell" data-execution_count="6">
<div class="sourceCode cell-code" id="cb6"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a>x₂ <span class="op">=</span> (babylon <span class="op"></span> babylon)(<span class="fl">2</span><span class="op">//</span><span class="fl">1</span>)</span>
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a>x₂, x₂<span class="op">^</span><span class="fl">2.0</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="7">
<pre><code>(17//12, 2.0069444444444446)</code></pre>
</div>
</div>
<p>We now see accuracy until the third decimal point.</p>
<div class="cell" data-execution_count="7">
<div class="sourceCode cell-code" id="cb8"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a>x₃ <span class="op">=</span> (babylon <span class="op"></span> babylon <span class="op"></span> babylon)(<span class="fl">2</span><span class="op">//</span><span class="fl">1</span>)</span>
<span id="cb8-2"><a href="#cb8-2" aria-hidden="true" tabindex="-1"></a>x₃, x₃<span class="op">^</span><span class="fl">2.0</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="8">
<pre><code>(577//408, 2.000006007304883)</code></pre>
</div>
</div>
<p>This is now accurate to the sixth decimal point. That is about as far as we, or the Bablyonians, would want to go by hand. Using rational numbers quickly grows out of hand. The next step shows the explosion.</p>
<div class="cell" data-execution_count="8">
<div class="sourceCode cell-code" id="cb10"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="fu">reduce</span>((x,step) <span class="op">-&gt;</span> <span class="fu">babylon</span>(x), <span class="fl">1</span><span class="op">:</span><span class="fl">4</span>, init<span class="op">=</span><span class="fl">2</span><span class="op">//</span><span class="fl">1</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="9">
<pre><code>665857//470832</code></pre>
</div>
</div>
<p>(In the above, we used <code>reduce</code> to repeat a function call <span class="math inline">\(4\)</span> times, as an alternative to the composition operation. In this section we show a few styles to do this repetition before introducing a packaged function.)</p>
<p>However, with the advent of floating point numbers, the method stays quite manageable:</p>
<div class="cell" data-hold="true" data-execution_count="9">
<div class="sourceCode cell-code" id="cb12"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a>xₙ <span class="op">=</span> <span class="fu">reduce</span>((x, step) <span class="op">-&gt;</span> <span class="fu">babylon</span>(x), <span class="fl">1</span><span class="op">:</span><span class="fl">6</span>, init<span class="op">=</span><span class="fl">2.0</span>)</span>
<span id="cb12-2"><a href="#cb12-2" aria-hidden="true" tabindex="-1"></a>xₙ, xₙ<span class="op">^</span><span class="fl">2</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="10">
<pre><code>(1.414213562373095, 1.9999999999999996)</code></pre>
</div>
</div>
<p>We can see that the algorithm - to the precision offered by floating point numbers - has resulted in an answer <code>1.414213562373095</code>. This answer is an <em>approximation</em> to the actual answer. Approximation is necessary, as <span class="math inline">\(\sqrt{2}\)</span> is an irrational number and so can never be exactly represented in floating point. That being said, we can see that the value of <span class="math inline">\(f(x)\)</span> is accurate to the last decimal place, so our approximation is very close and is achieved in a few steps.</p>
<section id="newtons-generalization" class="level2" data-number="30.1">
<h2 data-number="30.1" class="anchored" data-anchor-id="newtons-generalization"><span class="header-section-number">30.1</span> Newtons generalization</h2>
<p>Let <span class="math inline">\(f(x) = x^3 - 2x -5\)</span>. The value of <span class="math inline">\(2\)</span> is almost a zero, but not quite, as <span class="math inline">\(f(2) = -1\)</span>. We can check that there are no <em>rational</em> roots. Though there is a method to solve the cubic it may be difficult to compute and will not be as generally applicable as some algorithm like the Babylonian method to produce an approximate answer.</p>
<p>Is there some generalization to the Babylonian method?</p>
<p>We know that the tangent line is a good approximation to the function at the point. Looking at this graph gives a hint as to an algorithm:</p>
<div class="cell" data-hold="true" data-execution_count="10">
<div class="cell-output cell-output-display" data-execution_count="11">
<p><img src="newtons_method_files/figure-html/cell-11-output-1.svg" class="img-fluid"></p>
</div>
</div>
<p>The tangent line and the function nearly agree near <span class="math inline">\(2\)</span>. So much so, that the intersection point of the tangent line with the <span class="math inline">\(x\)</span> axis nearly hides the actual zero of <span class="math inline">\(f(x)\)</span> that is near <span class="math inline">\(2.1\)</span>.</p>
<p>That is, it seems that the intersection of the tangent line and the <span class="math inline">\(x\)</span> axis should be an improved approximation for the zero of the function.</p>
<p>Let <span class="math inline">\(x_0\)</span> be <span class="math inline">\(2\)</span>, and <span class="math inline">\(x_1\)</span> be the intersection point of the tangent line at <span class="math inline">\((x_0, f(x_0))\)</span> with the <span class="math inline">\(x\)</span> axis. Then by the definition of the tangent line:</p>
<p><span class="math display">\[
f'(x_0) = \frac{\Delta y }{\Delta x} = \frac{f(x_0)}{x_0 - x_1}.
\]</span></p>
<p>This can be solved for <span class="math inline">\(x_1\)</span> to give <span class="math inline">\(x_1 = x_0 - f(x_0)/f'(x_0)\)</span>. In general, if we had <span class="math inline">\(x_i\)</span> and used the intersection point of the tangent line to produce <span class="math inline">\(x_{i+1}\)</span> we would have Newtons method:</p>
<p><span class="math display">\[
x_{i+1} = x_i - \frac{f(x_i)}{f'(x_i)}.
\]</span></p>
<p>Using automatic derivatives, as brought in with the <code>CalculusWithJulia</code> package, we can implement this algorithm.</p>
<p>The algorithm above starts at <span class="math inline">\(2\)</span> and then becomes:</p>
<div class="cell" data-execution_count="11">
<div class="sourceCode cell-code" id="cb14"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="fu">f</span>(x) <span class="op">=</span> x<span class="op">^</span><span class="fl">3</span> <span class="op">-</span> <span class="fl">2</span>x <span class="op">-</span> <span class="fl">5</span></span>
<span id="cb14-2"><a href="#cb14-2" aria-hidden="true" tabindex="-1"></a>x0 <span class="op">=</span> <span class="fl">2.0</span></span>
<span id="cb14-3"><a href="#cb14-3" aria-hidden="true" tabindex="-1"></a>x1 <span class="op">=</span> x0 <span class="op">-</span> <span class="fu">f</span>(x0) <span class="op">/</span> f<span class="op">'</span>(x0)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="12">
<pre><code>2.1</code></pre>
</div>
</div>
<p>We can see we are closer to a zero:</p>
<div class="cell" data-execution_count="12">
<div class="sourceCode cell-code" id="cb16"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="fu">f</span>(x0), <span class="fu">f</span>(x1)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="13">
<pre><code>(-1.0, 0.06100000000000083)</code></pre>
</div>
</div>
<p>Trying again, we have</p>
<div class="cell" data-execution_count="13">
<div class="sourceCode cell-code" id="cb18"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a>x2 <span class="op">=</span> x1 <span class="op">-</span> <span class="fu">f</span>(x1)<span class="op">/</span> f<span class="op">'</span>(x1)</span>
<span id="cb18-2"><a href="#cb18-2" aria-hidden="true" tabindex="-1"></a>x2, <span class="fu">f</span>(x2), <span class="fu">f</span>(x1)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="14">
<pre><code>(2.094568121104185, 0.00018572317327247845, 0.06100000000000083)</code></pre>
</div>
</div>
<p>And again:</p>
<div class="cell" data-execution_count="14">
<div class="sourceCode cell-code" id="cb20"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb20-1"><a href="#cb20-1" aria-hidden="true" tabindex="-1"></a>x3 <span class="op">=</span> x2 <span class="op">-</span> <span class="fu">f</span>(x2)<span class="op">/</span> f<span class="op">'</span>(x2)</span>
<span id="cb20-2"><a href="#cb20-2" aria-hidden="true" tabindex="-1"></a>x3, <span class="fu">f</span>(x3), <span class="fu">f</span>(x2)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="15">
<pre><code>(2.094551481698199, 1.7397612239733462e-9, 0.00018572317327247845)</code></pre>
</div>
</div>
<div class="cell" data-execution_count="15">
<div class="sourceCode cell-code" id="cb22"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb22-1"><a href="#cb22-1" aria-hidden="true" tabindex="-1"></a>x4 <span class="op">=</span> x3 <span class="op">-</span> <span class="fu">f</span>(x3)<span class="op">/</span> f<span class="op">'</span>(x3)</span>
<span id="cb22-2"><a href="#cb22-2" aria-hidden="true" tabindex="-1"></a>x4, <span class="fu">f</span>(x4), <span class="fu">f</span>(x3)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="16">
<pre><code>(2.0945514815423265, -8.881784197001252e-16, 1.7397612239733462e-9)</code></pre>
</div>
</div>
<p>We see now that <span class="math inline">\(f(x_4)\)</span> is within machine tolerance of <span class="math inline">\(0\)</span>, so we call <span class="math inline">\(x_4\)</span> an <em>approximate zero</em> of <span class="math inline">\(f(x)\)</span>.</p>
<blockquote class="blockquote">
<p><strong>Newtons method:</strong> Let <span class="math inline">\(x_0\)</span> be an initial guess for a zero of <span class="math inline">\(f(x)\)</span>. Iteratively define <span class="math inline">\(x_{i+1}\)</span> in terms of the just generated <span class="math inline">\(x_i\)</span> by:</p>
<p><span class="math display">\[
x_{i+1} = x_i - f(x_i) / f'(x_i).
\]</span></p>
<p>Then for reasonable functions and reasonable initial guesses, the sequence of points converges to a zero of <span class="math inline">\(f\)</span>.</p>
</blockquote>
<p>On the computer, we know that actual convergence will likely never occur, but accuracy to a certain tolerance can often be achieved.</p>
<p>In the example above, we kept track of the previous values. This is unnecessary if only the answer is sought. In that case, the update step could use the same variable. Here we use <code>reduce</code>:</p>
<div class="cell" data-hold="true" data-execution_count="16">
<div class="sourceCode cell-code" id="cb24"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb24-1"><a href="#cb24-1" aria-hidden="true" tabindex="-1"></a>xₙ <span class="op">=</span> <span class="fu">reduce</span>((x, step) <span class="op">-&gt;</span> x <span class="op">-</span> <span class="fu">f</span>(x)<span class="op">/</span>f<span class="op">'</span>(x), <span class="fl">1</span><span class="op">:</span><span class="fl">4</span>, init<span class="op">=</span><span class="fl">2</span>)</span>
<span id="cb24-2"><a href="#cb24-2" aria-hidden="true" tabindex="-1"></a>xₙ, <span class="fu">f</span>(xₙ)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="17">
<pre><code>(2.0945514815423265, -8.881784197001252e-16)</code></pre>
</div>
</div>
<p>In practice, the algorithm is implemented not by repeating the update step a fixed number of times, rather by repeating the step until either we converge or it is clear we wont converge. For good guesses and most functions, convergence happens quickly.</p>
<div class="callout-note callout callout-style-default callout-captioned">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-caption-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>Newton looked at this same example in 1699 (B.T. Polyak, <em>Newtons method and its use in optimization</em>, European Journal of Operational Research. 02/2007; 181(3):1086-1096.) though his technique was slightly different as he did not use the derivative, <em>per se</em>, but rather an approximation based on the fact that his function was a polynomial (though identical to the derivative). Raphson (1690) proposed the general form, hence the usual name of the Newton-Raphson method.</p>
</div>
</div>
<section id="examples" class="level4">
<h4 class="anchored" data-anchor-id="examples">Examples</h4>
<section id="example-visualizing-convergence" class="level5">
<h5 class="anchored" data-anchor-id="example-visualizing-convergence">Example: visualizing convergence</h5>
<p>This graphic demonstrates the method and the rapid convergence:</p>
<div class="cell" data-cache="true" data-hold="true" data-execution_count="18">
<div class="cell-output cell-output-display" data-execution_count="19">
<div class="d-flex justify-content-center"> <figure class="figure"> <img src="data:image/gif;base64,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" class="card-img-top figure-img" alt="A Figure">
<figcaption class="figure-caption"><div class="markdown"><p>Illustration of Newton's Method converging to a zero of a function.</p>
</div> </figcaption>
</figure>
</div>
</div>
</div>
<hr>
<p>This interactive graphic (built using <a href="https://jsxgraph.uni-bayreuth.de/wp/index.html">JSXGraph</a>) allows the adjustment of the point <code>x0</code>, initially at <span class="math inline">\(0.85\)</span>. Five iterations of Newtons method are illustrated. Different positions of <code>x0</code> clearly converge, others will not.</p>
<div id="jsxgraph" style="width: 500px; height: 500px;"></div>
<div class="cell">
<div class="sourceCode cell-code hidden" id="cb26" data-startfrom="302" data-source-offset="-1"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 301;"><span id="cb26-302"><a href="#cb26-302" aria-hidden="true" tabindex="-1"></a>JXG <span class="op">=</span> <span class="pp">require</span>(<span class="st">"jsxgraph"</span>)<span class="op">;</span></span>
<span id="cb26-303"><a href="#cb26-303" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-304"><a href="#cb26-304" aria-hidden="true" tabindex="-1"></a><span class="co">// newton's method</span></span>
<span id="cb26-305"><a href="#cb26-305" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-306"><a href="#cb26-306" aria-hidden="true" tabindex="-1"></a>b <span class="op">=</span> JXG<span class="op">.</span><span class="at">JSXGraph</span><span class="op">.</span><span class="fu">initBoard</span>(<span class="st">'jsxgraph'</span><span class="op">,</span> {</span>
<span id="cb26-307"><a href="#cb26-307" aria-hidden="true" tabindex="-1"></a> <span class="dt">boundingbox</span><span class="op">:</span> [<span class="op">-</span><span class="dv">3</span><span class="op">,</span><span class="dv">5</span><span class="op">,</span><span class="dv">3</span><span class="op">,-</span><span class="dv">5</span>]<span class="op">,</span> <span class="dt">axis</span><span class="op">:</span><span class="kw">true</span></span>
<span id="cb26-308"><a href="#cb26-308" aria-hidden="true" tabindex="-1"></a>})<span class="op">;</span></span>
<span id="cb26-309"><a href="#cb26-309" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-310"><a href="#cb26-310" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-311"><a href="#cb26-311" aria-hidden="true" tabindex="-1"></a>f <span class="op">=</span> <span class="kw">function</span>(x) {<span class="cf">return</span> x<span class="op">*</span>x<span class="op">*</span>x<span class="op">*</span>x<span class="op">*</span>x <span class="op">-</span> x <span class="op">-</span> <span class="dv">1</span>}<span class="op">;</span></span>
<span id="cb26-312"><a href="#cb26-312" aria-hidden="true" tabindex="-1"></a>fp <span class="op">=</span> <span class="kw">function</span>(x) { <span class="cf">return</span> <span class="dv">4</span><span class="op">*</span>x<span class="op">*</span>x<span class="op">*</span>x<span class="op">*</span>x <span class="op">-</span> <span class="dv">1</span>}<span class="op">;</span></span>
<span id="cb26-313"><a href="#cb26-313" aria-hidden="true" tabindex="-1"></a>x0 <span class="op">=</span> <span class="fl">0.85</span><span class="op">;</span></span>
<span id="cb26-314"><a href="#cb26-314" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-315"><a href="#cb26-315" aria-hidden="true" tabindex="-1"></a>nm <span class="op">=</span> <span class="kw">function</span>(x) { <span class="cf">return</span> x <span class="op">-</span> <span class="fu">f</span>(x)<span class="op">/</span><span class="fu">fp</span>(x)<span class="op">;</span>}<span class="op">;</span></span>
<span id="cb26-316"><a href="#cb26-316" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-317"><a href="#cb26-317" aria-hidden="true" tabindex="-1"></a>l <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'point'</span><span class="op">,</span> [<span class="op">-</span><span class="fl">1.5</span><span class="op">,</span><span class="dv">0</span>]<span class="op">,</span> {<span class="dt">name</span><span class="op">:</span><span class="st">''</span><span class="op">,</span> <span class="dt">size</span><span class="op">:</span><span class="dv">0</span>})<span class="op">;</span></span>
<span id="cb26-318"><a href="#cb26-318" aria-hidden="true" tabindex="-1"></a>r <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'point'</span><span class="op">,</span> [<span class="fl">1.5</span><span class="op">,</span><span class="dv">0</span>]<span class="op">,</span> {<span class="dt">name</span><span class="op">:</span><span class="st">''</span><span class="op">,</span> <span class="dt">size</span><span class="op">:</span><span class="dv">0</span>})<span class="op">;</span></span>
<span id="cb26-319"><a href="#cb26-319" aria-hidden="true" tabindex="-1"></a>xaxis <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'line'</span><span class="op">,</span> [l<span class="op">,</span>r])</span>
<span id="cb26-320"><a href="#cb26-320" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-321"><a href="#cb26-321" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-322"><a href="#cb26-322" aria-hidden="true" tabindex="-1"></a>P0 <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'glider'</span><span class="op">,</span> [x0<span class="op">,</span><span class="dv">0</span><span class="op">,</span>xaxis]<span class="op">,</span> {<span class="dt">name</span><span class="op">:</span><span class="st">'x0'</span>})<span class="op">;</span></span>
<span id="cb26-323"><a href="#cb26-323" aria-hidden="true" tabindex="-1"></a>P0a <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'point'</span><span class="op">,</span> [<span class="kw">function</span>() {<span class="cf">return</span> P0<span class="op">.</span><span class="fu">X</span>()<span class="op">;</span>}<span class="op">,</span></span>
<span id="cb26-324"><a href="#cb26-324" aria-hidden="true" tabindex="-1"></a> <span class="kw">function</span>() {<span class="cf">return</span> <span class="fu">f</span>(P0<span class="op">.</span><span class="fu">X</span>())<span class="op">;</span>}]<span class="op">,</span> {<span class="dt">name</span><span class="op">:</span><span class="st">''</span>})<span class="op">;</span></span>
<span id="cb26-325"><a href="#cb26-325" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-326"><a href="#cb26-326" aria-hidden="true" tabindex="-1"></a>P1 <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'point'</span><span class="op">,</span> [<span class="kw">function</span>() {<span class="cf">return</span> <span class="fu">nm</span>(P0<span class="op">.</span><span class="fu">X</span>())<span class="op">;</span>}<span class="op">,</span></span>
<span id="cb26-327"><a href="#cb26-327" aria-hidden="true" tabindex="-1"></a> <span class="dv">0</span>]<span class="op">,</span> {<span class="dt">name</span><span class="op">:</span><span class="st">''</span>})<span class="op">;</span></span>
<span id="cb26-328"><a href="#cb26-328" aria-hidden="true" tabindex="-1"></a>P1a <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'point'</span><span class="op">,</span> [<span class="kw">function</span>() {<span class="cf">return</span> P1<span class="op">.</span><span class="fu">X</span>()<span class="op">;</span>}<span class="op">,</span></span>
<span id="cb26-329"><a href="#cb26-329" aria-hidden="true" tabindex="-1"></a> <span class="kw">function</span>() {<span class="cf">return</span> <span class="fu">f</span>(P1<span class="op">.</span><span class="fu">X</span>())<span class="op">;</span>}]<span class="op">,</span> {<span class="dt">name</span><span class="op">:</span><span class="st">''</span>})<span class="op">;</span></span>
<span id="cb26-330"><a href="#cb26-330" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-331"><a href="#cb26-331" aria-hidden="true" tabindex="-1"></a>P2 <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'point'</span><span class="op">,</span> [<span class="kw">function</span>() {<span class="cf">return</span> <span class="fu">nm</span>(P1<span class="op">.</span><span class="fu">X</span>())<span class="op">;</span>}<span class="op">,</span></span>
<span id="cb26-332"><a href="#cb26-332" aria-hidden="true" tabindex="-1"></a> <span class="dv">0</span>]<span class="op">,</span> {<span class="dt">name</span><span class="op">:</span><span class="st">''</span>})<span class="op">;</span></span>
<span id="cb26-333"><a href="#cb26-333" aria-hidden="true" tabindex="-1"></a>P2a <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'point'</span><span class="op">,</span> [<span class="kw">function</span>() {<span class="cf">return</span> P2<span class="op">.</span><span class="fu">X</span>()<span class="op">;</span>}<span class="op">,</span></span>
<span id="cb26-334"><a href="#cb26-334" aria-hidden="true" tabindex="-1"></a> <span class="kw">function</span>() {<span class="cf">return</span> <span class="fu">f</span>(P2<span class="op">.</span><span class="fu">X</span>())<span class="op">;</span>}]<span class="op">,</span> {<span class="dt">name</span><span class="op">:</span><span class="st">''</span>})<span class="op">;</span></span>
<span id="cb26-335"><a href="#cb26-335" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-336"><a href="#cb26-336" aria-hidden="true" tabindex="-1"></a>P3 <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'point'</span><span class="op">,</span> [<span class="kw">function</span>() {<span class="cf">return</span> <span class="fu">nm</span>(P2<span class="op">.</span><span class="fu">X</span>())<span class="op">;</span>}<span class="op">,</span></span>
<span id="cb26-337"><a href="#cb26-337" aria-hidden="true" tabindex="-1"></a> <span class="dv">0</span>]<span class="op">,</span> {<span class="dt">name</span><span class="op">:</span><span class="st">''</span>})<span class="op">;</span></span>
<span id="cb26-338"><a href="#cb26-338" aria-hidden="true" tabindex="-1"></a>P3a <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'point'</span><span class="op">,</span> [<span class="kw">function</span>() {<span class="cf">return</span> P3<span class="op">.</span><span class="fu">X</span>()<span class="op">;</span>}<span class="op">,</span></span>
<span id="cb26-339"><a href="#cb26-339" aria-hidden="true" tabindex="-1"></a> <span class="kw">function</span>() {<span class="cf">return</span> <span class="fu">f</span>(P3<span class="op">.</span><span class="fu">X</span>())<span class="op">;</span>}]<span class="op">,</span> {<span class="dt">name</span><span class="op">:</span><span class="st">''</span>})<span class="op">;</span></span>
<span id="cb26-340"><a href="#cb26-340" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-341"><a href="#cb26-341" aria-hidden="true" tabindex="-1"></a>P4 <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'point'</span><span class="op">,</span> [<span class="kw">function</span>() {<span class="cf">return</span> <span class="fu">nm</span>(P3<span class="op">.</span><span class="fu">X</span>())<span class="op">;</span>}<span class="op">,</span></span>
<span id="cb26-342"><a href="#cb26-342" aria-hidden="true" tabindex="-1"></a> <span class="dv">0</span>]<span class="op">,</span> {<span class="dt">name</span><span class="op">:</span><span class="st">''</span>})<span class="op">;</span></span>
<span id="cb26-343"><a href="#cb26-343" aria-hidden="true" tabindex="-1"></a>P4a <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'point'</span><span class="op">,</span> [<span class="kw">function</span>() {<span class="cf">return</span> P4<span class="op">.</span><span class="fu">X</span>()<span class="op">;</span>}<span class="op">,</span></span>
<span id="cb26-344"><a href="#cb26-344" aria-hidden="true" tabindex="-1"></a> <span class="kw">function</span>() {<span class="cf">return</span> <span class="fu">f</span>(P4<span class="op">.</span><span class="fu">X</span>())<span class="op">;</span>}]<span class="op">,</span> {<span class="dt">name</span><span class="op">:</span><span class="st">''</span>})<span class="op">;</span></span>
<span id="cb26-345"><a href="#cb26-345" aria-hidden="true" tabindex="-1"></a>P5 <span class="op">=</span> b<span class="op">.</span><span class="fu">create</span>(<span class="st">'point'</span><span class="op">,</span> [<span class="kw">function</span>() {<span class="cf">return</span> <span class="fu">nm</span>(P4<span class="op">.</span><span class="fu">X</span>())<span class="op">;</span>}<span class="op">,</span></span>
<span id="cb26-346"><a href="#cb26-346" aria-hidden="true" tabindex="-1"></a> <span class="dv">0</span>]<span class="op">,</span> {<span class="dt">name</span><span class="op">:</span><span class="st">'x5'</span><span class="op">,</span> <span class="dt">strokeColor</span><span class="op">:</span><span class="st">'black'</span>})<span class="op">;</span></span>
<span id="cb26-347"><a href="#cb26-347" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-348"><a href="#cb26-348" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-349"><a href="#cb26-349" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-350"><a href="#cb26-350" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-351"><a href="#cb26-351" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-352"><a href="#cb26-352" aria-hidden="true" tabindex="-1"></a>P0a<span class="op">.</span><span class="fu">setAttribute</span>({<span class="dt">fixed</span><span class="op">:</span><span class="kw">true</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-1" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-2" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-3" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-4" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-5" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-6" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-7" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-8" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-9" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-10" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-11" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-12" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-13" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-14" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-15" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-16" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-17" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-18" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-19" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-20" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-21" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb27" data-startfrom="353" data-source-offset="-1467"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 352;"><span id="cb27-353"><a href="#cb27-353" aria-hidden="true" tabindex="-1"></a>P1<span class="op">.</span><span class="fu">setAttribute</span>({<span class="dt">fixed</span><span class="op">:</span><span class="kw">true</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-22" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb28" data-startfrom="354" data-source-offset="-1498"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 353;"><span id="cb28-354"><a href="#cb28-354" aria-hidden="true" tabindex="-1"></a>P1a<span class="op">.</span><span class="fu">setAttribute</span>({<span class="dt">fixed</span><span class="op">:</span><span class="kw">true</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-23" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb29" data-startfrom="355" data-source-offset="-1530"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 354;"><span id="cb29-355"><a href="#cb29-355" aria-hidden="true" tabindex="-1"></a>P2<span class="op">.</span><span class="fu">setAttribute</span>({<span class="dt">fixed</span><span class="op">:</span><span class="kw">true</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-24" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb30" data-startfrom="356" data-source-offset="-1561"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 355;"><span id="cb30-356"><a href="#cb30-356" aria-hidden="true" tabindex="-1"></a>P2a<span class="op">.</span><span class="fu">setAttribute</span>({<span class="dt">fixed</span><span class="op">:</span><span class="kw">true</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-25" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb31" data-startfrom="357" data-source-offset="-1593"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 356;"><span id="cb31-357"><a href="#cb31-357" aria-hidden="true" tabindex="-1"></a>P3<span class="op">.</span><span class="fu">setAttribute</span>({<span class="dt">fixed</span><span class="op">:</span><span class="kw">true</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-26" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb32" data-startfrom="358" data-source-offset="-1624"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 357;"><span id="cb32-358"><a href="#cb32-358" aria-hidden="true" tabindex="-1"></a>P3a<span class="op">.</span><span class="fu">setAttribute</span>({<span class="dt">fixed</span><span class="op">:</span><span class="kw">true</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-27" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb33" data-startfrom="359" data-source-offset="-1656"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 358;"><span id="cb33-359"><a href="#cb33-359" aria-hidden="true" tabindex="-1"></a>P4<span class="op">.</span><span class="fu">setAttribute</span>({<span class="dt">fixed</span><span class="op">:</span><span class="kw">true</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-28" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb34" data-startfrom="360" data-source-offset="-1687"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 359;"><span id="cb34-360"><a href="#cb34-360" aria-hidden="true" tabindex="-1"></a>P4a<span class="op">.</span><span class="fu">setAttribute</span>({<span class="dt">fixed</span><span class="op">:</span><span class="kw">true</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-29" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb35" data-startfrom="361" data-source-offset="-1719"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 360;"><span id="cb35-361"><a href="#cb35-361" aria-hidden="true" tabindex="-1"></a>P5<span class="op">.</span><span class="fu">setAttribute</span>({<span class="dt">fixed</span><span class="op">:</span><span class="kw">true</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-30" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb36" data-startfrom="363" data-source-offset="-1751"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 362;"><span id="cb36-363"><a href="#cb36-363" aria-hidden="true" tabindex="-1"></a>sc <span class="op">=</span> <span class="st">'#000000'</span><span class="op">;</span></span>
<span id="cb36-364"><a href="#cb36-364" aria-hidden="true" tabindex="-1"></a>b<span class="op">.</span><span class="fu">create</span>(<span class="st">'segment'</span><span class="op">,</span> [P0<span class="op">,</span>P0a]<span class="op">,</span> {<span class="dt">strokeColor</span><span class="op">:</span>sc<span class="op">,</span> <span class="dt">strokeWidth</span><span class="op">:</span><span class="dv">1</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-31" data-nodetype="declaration">
</div>
</div>
</div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-32" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb37" data-startfrom="365" data-source-offset="-1831"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 364;"><span id="cb37-365"><a href="#cb37-365" aria-hidden="true" tabindex="-1"></a>b<span class="op">.</span><span class="fu">create</span>(<span class="st">'segment'</span><span class="op">,</span> [P0a<span class="op">,</span> P1]<span class="op">,</span> {<span class="dt">strokeColor</span><span class="op">:</span>sc<span class="op">,</span> <span class="dt">strokeWidth</span><span class="op">:</span><span class="dv">1</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-33" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb38" data-startfrom="366" data-source-offset="-1896"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 365;"><span id="cb38-366"><a href="#cb38-366" aria-hidden="true" tabindex="-1"></a>b<span class="op">.</span><span class="fu">create</span>(<span class="st">'segment'</span><span class="op">,</span> [P1<span class="op">,</span>P1a]<span class="op">,</span> {<span class="dt">strokeColor</span><span class="op">:</span>sc<span class="op">,</span> <span class="dt">strokeWidth</span><span class="op">:</span><span class="dv">1</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-34" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb39" data-startfrom="367" data-source-offset="-1960"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 366;"><span id="cb39-367"><a href="#cb39-367" aria-hidden="true" tabindex="-1"></a>b<span class="op">.</span><span class="fu">create</span>(<span class="st">'segment'</span><span class="op">,</span> [P1a<span class="op">,</span> P2]<span class="op">,</span> {<span class="dt">strokeColor</span><span class="op">:</span>sc<span class="op">,</span> <span class="dt">strokeWidth</span><span class="op">:</span><span class="dv">1</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-35" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb40" data-startfrom="368" data-source-offset="-2025"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 367;"><span id="cb40-368"><a href="#cb40-368" aria-hidden="true" tabindex="-1"></a>b<span class="op">.</span><span class="fu">create</span>(<span class="st">'segment'</span><span class="op">,</span> [P2<span class="op">,</span>P2a]<span class="op">,</span> {<span class="dt">strokeColor</span><span class="op">:</span>sc<span class="op">,</span> <span class="dt">strokeWidth</span><span class="op">:</span><span class="dv">1</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-36" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb41" data-startfrom="369" data-source-offset="-2089"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 368;"><span id="cb41-369"><a href="#cb41-369" aria-hidden="true" tabindex="-1"></a>b<span class="op">.</span><span class="fu">create</span>(<span class="st">'segment'</span><span class="op">,</span> [P2a<span class="op">,</span> P3]<span class="op">,</span> {<span class="dt">strokeColor</span><span class="op">:</span>sc<span class="op">,</span> <span class="dt">strokeWidth</span><span class="op">:</span><span class="dv">1</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-37" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb42" data-startfrom="370" data-source-offset="-2154"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 369;"><span id="cb42-370"><a href="#cb42-370" aria-hidden="true" tabindex="-1"></a>b<span class="op">.</span><span class="fu">create</span>(<span class="st">'segment'</span><span class="op">,</span> [P3<span class="op">,</span>P3a]<span class="op">,</span> {<span class="dt">strokeColor</span><span class="op">:</span>sc<span class="op">,</span> <span class="dt">strokeWidth</span><span class="op">:</span><span class="dv">1</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-38" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb43" data-startfrom="371" data-source-offset="-2218"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 370;"><span id="cb43-371"><a href="#cb43-371" aria-hidden="true" tabindex="-1"></a>b<span class="op">.</span><span class="fu">create</span>(<span class="st">'segment'</span><span class="op">,</span> [P3a<span class="op">,</span> P4]<span class="op">,</span> {<span class="dt">strokeColor</span><span class="op">:</span>sc<span class="op">,</span> <span class="dt">strokeWidth</span><span class="op">:</span><span class="dv">1</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-39" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb44" data-startfrom="372" data-source-offset="-2283"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 371;"><span id="cb44-372"><a href="#cb44-372" aria-hidden="true" tabindex="-1"></a>b<span class="op">.</span><span class="fu">create</span>(<span class="st">'segment'</span><span class="op">,</span> [P4<span class="op">,</span>P4a]<span class="op">,</span> {<span class="dt">strokeColor</span><span class="op">:</span>sc<span class="op">,</span> <span class="dt">strokeWidth</span><span class="op">:</span><span class="dv">1</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-40" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb45" data-startfrom="373" data-source-offset="-2347"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 372;"><span id="cb45-373"><a href="#cb45-373" aria-hidden="true" tabindex="-1"></a>b<span class="op">.</span><span class="fu">create</span>(<span class="st">'segment'</span><span class="op">,</span> [P4a<span class="op">,</span> P5]<span class="op">,</span> {<span class="dt">strokeColor</span><span class="op">:</span>sc<span class="op">,</span> <span class="dt">strokeWidth</span><span class="op">:</span><span class="dv">1</span>})<span class="op">;</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-41" data-nodetype="expression">
</div>
</div>
</div>
<div class="sourceCode cell-code hidden" id="cb46" data-startfrom="375" data-source-offset="-2413"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 374;"><span id="cb46-375"><a href="#cb46-375" aria-hidden="true" tabindex="-1"></a>b<span class="op">.</span><span class="fu">create</span>(<span class="st">'functiongraph'</span><span class="op">,</span> [f<span class="op">,</span> <span class="op">-</span><span class="fl">1.5</span><span class="op">,</span> <span class="fl">1.5</span>])</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display hidden">
<div>
<div id="ojs-cell-1-42" data-nodetype="expression">
</div>
</div>
</div>
</div>
</section>
<section id="example-numeric-not-algebraic" class="level5">
<h5 class="anchored" data-anchor-id="example-numeric-not-algebraic">Example: numeric not algebraic</h5>
<p>For the function <span class="math inline">\(f(x) = \cos(x) - x\)</span>, we see that SymPy can not solve symbolically for a zero:</p>
<div class="cell" data-execution_count="19">
<div class="sourceCode cell-code" id="cb47"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb47-1"><a href="#cb47-1" aria-hidden="true" tabindex="-1"></a><span class="pp">@syms</span> x<span class="op">::</span><span class="dt">real</span></span>
<span id="cb47-2"><a href="#cb47-2" aria-hidden="true" tabindex="-1"></a><span class="fu">solve</span>(<span class="fu">cos</span>(x) <span class="op">-</span> x, x)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-error">
<pre><code>LoadError: PyError ($(Expr(:escape, :(ccall(#= /Users/verzani/.julia/packages/PyCall/7a7w0/src/pyfncall.jl:43 =# @pysym(:PyObject_Call), PyPtr, (PyPtr, PyPtr, PyPtr), o, pyargsptr, kw))))) &lt;class 'NotImplementedError'&gt;
NotImplementedError('multiple generators [x, cos(x)]\nNo algorithms are implemented to solve equation -x + cos(x)')
File "/Users/verzani/.julia/conda/3/lib/python3.7/site-packages/sympy/solvers/solvers.py", line 1106, in solve
solution = _solve(f[0], *symbols, **flags)
File "/Users/verzani/.julia/conda/3/lib/python3.7/site-packages/sympy/solvers/solvers.py", line 1720, in _solve
raise NotImplementedError('\n'.join([msg, not_impl_msg % f]))</code></pre>
</div>
</div>
<p>We can find a numeric solution, even though there is no closed-form answer. Here we try Newtons method:</p>
<div class="cell" data-hold="true" data-execution_count="20">
<div class="sourceCode cell-code" id="cb49"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb49-1"><a href="#cb49-1" aria-hidden="true" tabindex="-1"></a><span class="fu">f</span>(x) <span class="op">=</span> <span class="fu">cos</span>(x) <span class="op">-</span> x</span>
<span id="cb49-2"><a href="#cb49-2" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> <span class="fl">.5</span></span>
<span id="cb49-3"><a href="#cb49-3" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> x <span class="op">-</span> <span class="fu">f</span>(x)<span class="op">/</span>f<span class="op">'</span>(x) <span class="co"># 0.7552224171056364</span></span>
<span id="cb49-4"><a href="#cb49-4" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> x <span class="op">-</span> <span class="fu">f</span>(x)<span class="op">/</span>f<span class="op">'</span>(x) <span class="co"># 0.7391416661498792</span></span>
<span id="cb49-5"><a href="#cb49-5" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> x <span class="op">-</span> <span class="fu">f</span>(x)<span class="op">/</span>f<span class="op">'</span>(x) <span class="co"># 0.7390851339208068</span></span>
<span id="cb49-6"><a href="#cb49-6" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> x <span class="op">-</span> <span class="fu">f</span>(x)<span class="op">/</span>f<span class="op">'</span>(x) <span class="co"># 0.7390851332151607</span></span>
<span id="cb49-7"><a href="#cb49-7" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> x <span class="op">-</span> <span class="fu">f</span>(x)<span class="op">/</span>f<span class="op">'</span>(x)</span>
<span id="cb49-8"><a href="#cb49-8" aria-hidden="true" tabindex="-1"></a>x, <span class="fu">f</span>(x)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="21">
<pre><code>(0.7390851332151607, 0.0)</code></pre>
</div>
</div>
<p>To machine tolerance the answer is a zero, even though the exact answer is irrational and all finite floating point values can be represented as rational numbers.</p>
</section>
<section id="example" class="level5">
<h5 class="anchored" data-anchor-id="example">Example</h5>
<p>Use Newtons method to find the <em>largest</em> real solution to <span class="math inline">\(e^x = x^6\)</span>.</p>
<p>A plot shows us roughly where the value lies:</p>
<div class="cell" data-hold="true" data-execution_count="21">
<div class="sourceCode cell-code" id="cb51"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb51-1"><a href="#cb51-1" aria-hidden="true" tabindex="-1"></a><span class="fu">f</span>(x) <span class="op">=</span> <span class="fu">exp</span>(x)</span>
<span id="cb51-2"><a href="#cb51-2" aria-hidden="true" tabindex="-1"></a><span class="fu">g</span>(x) <span class="op">=</span> x<span class="op">^</span><span class="fl">6</span></span>
<span id="cb51-3"><a href="#cb51-3" aria-hidden="true" tabindex="-1"></a><span class="fu">plot</span>(f, <span class="fl">0</span>, <span class="fl">25</span>, label<span class="op">=</span><span class="st">"f"</span>)</span>
<span id="cb51-4"><a href="#cb51-4" aria-hidden="true" tabindex="-1"></a><span class="fu">plot!</span>(g, label<span class="op">=</span><span class="st">"g"</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="22">
<p><img src="newtons_method_files/figure-html/cell-22-output-1.svg" class="img-fluid"></p>
</div>
</div>
<p>Clearly by <span class="math inline">\(20\)</span> the two paths diverge. We know exponentials eventually grow faster than powers, and this is seen in the graph.</p>
<p>To use Newtons method to find the intersection point. Stop when the increment <span class="math inline">\(f(x)/f'(x)\)</span> is smaller than <code>1e-4</code>. We need to turn the solution to an equation into a value where a function is <span class="math inline">\(0\)</span>. Just moving the terms to one side of the equals sign gives <span class="math inline">\(e^x - x^6 = 0\)</span>, or the <span class="math inline">\(x\)</span> we seek is a solution to <span class="math inline">\(h(x)=0\)</span> with <span class="math inline">\(h(x) = e^x - x^6\)</span>.</p>
<div class="cell" data-hold="true" data-term="true" data-execution_count="22">
<div class="sourceCode cell-code" id="cb52"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb52-1"><a href="#cb52-1" aria-hidden="true" tabindex="-1"></a><span class="fu">h</span>(x) <span class="op">=</span> <span class="fu">exp</span>(x) <span class="op">-</span> x<span class="op">^</span><span class="fl">6</span></span>
<span id="cb52-2"><a href="#cb52-2" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> <span class="fl">20</span></span>
<span id="cb52-3"><a href="#cb52-3" aria-hidden="true" tabindex="-1"></a><span class="cf">for</span> step <span class="kw">in</span> <span class="fl">1</span><span class="op">:</span><span class="fl">10</span></span>
<span id="cb52-4"><a href="#cb52-4" aria-hidden="true" tabindex="-1"></a> delta <span class="op">=</span> <span class="fu">h</span>(x)<span class="op">/</span>h<span class="op">'</span>(x)</span>
<span id="cb52-5"><a href="#cb52-5" aria-hidden="true" tabindex="-1"></a> x <span class="op">=</span> x <span class="op">-</span> delta</span>
<span id="cb52-6"><a href="#cb52-6" aria-hidden="true" tabindex="-1"></a> <span class="pp">@show</span> step, x, delta</span>
<span id="cb52-7"><a href="#cb52-7" aria-hidden="true" tabindex="-1"></a><span class="cf">end</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-stdout">
<pre><code>(step, x, delta) = (1, 19.096144519894025, 0.9038554801059746)
(step, x, delta) = (2, 18.279618508448504, 0.8165260114455216)
(step, x, delta) = (3, 17.615584160589165, 0.6640343478593392)
(step, x, delta) = (4, 17.186229687634423, 0.42935447295474183)
(step, x, delta) = (5, 17.02052242498673, 0.1657072626476933)
(step, x, delta) = (6, 16.999206949504874, 0.021315475481855334)
(step, x, delta) = (7, 16.998887423017564, 0.00031952648730976816)
(step, x, delta) = (8, 16.998887352296055, 7.072150775034742e-8)
(step, x, delta) = (9, 16.99888735229605, 2.3862112429152903e-15)
(step, x, delta) = (10, 16.99888735229605, -1.1931056214576512e-15)</code></pre>
</div>
</div>
<p>So it takes <span class="math inline">\(8\)</span> steps to get an increment that small and about <code>10</code> steps to get to full convergence.</p>
</section>
<section id="example-division-as-multiplication" class="level5">
<h5 class="anchored" data-anchor-id="example-division-as-multiplication">Example division as multiplication</h5>
<p><a href="http://tinyurl.com/kjj9w92">Newton-Raphson Division</a> is a means to divide by multiplying.</p>
<p>Why would you want to do that? Well, even for computers division is harder (read slower) than multiplying. The trick is that <span class="math inline">\(p/q\)</span> is simply <span class="math inline">\(p \cdot (1/q)\)</span>, so finding a means to compute a reciprocal by multiplying will reduce division to multiplication.</p>
<p>Well suppose we have <span class="math inline">\(q\)</span>, we could try to use Newtons method to find <span class="math inline">\(1/q\)</span>, as it is a solution to <span class="math inline">\(f(x) = x - 1/q\)</span>. The Newton update step simplifies to:</p>
<p><span class="math display">\[
x - f(x) / f'(x) \quad\text{or}\quad x - (x - 1/q)/ 1 = 1/q
\]</span></p>
<p>That doesnt really help, as Newtons method is just <span class="math inline">\(x_{i+1} = 1/q\)</span>. That is, it just jumps to the answer, the one we want to compute by some other means!</p>
<p>Trying again, we simplify the update step for a related function: <span class="math inline">\(f(x) = 1/x - q\)</span> with <span class="math inline">\(f'(x) = -1/x^2\)</span> and then one step of the process is:</p>
<p><span class="math display">\[
x_{i+1} = x_i - (1/x_i - q)/(-1/x_i^2) = -qx^2_i + 2x_i.
\]</span></p>
<p>Now for <span class="math inline">\(q\)</span> in the interval <span class="math inline">\([1/2, 1]\)</span> we want to get a <em>good</em> initial guess. Here is a claim. We can use <span class="math inline">\(x_0=48/17 - 32/17 \cdot q\)</span>. Lets check graphically that this is a reasonable initial approximation to <span class="math inline">\(1/q\)</span>:</p>
<div class="cell" data-hold="true" data-execution_count="23">
<div class="sourceCode cell-code" id="cb54"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb54-1"><a href="#cb54-1" aria-hidden="true" tabindex="-1"></a><span class="fu">plot</span>(q <span class="op">-&gt;</span> <span class="fl">1</span><span class="op">/</span>q, <span class="fl">1</span><span class="op">/</span><span class="fl">2</span>, <span class="fl">1</span>, label<span class="op">=</span><span class="st">"1/q"</span>)</span>
<span id="cb54-2"><a href="#cb54-2" aria-hidden="true" tabindex="-1"></a><span class="fu">plot!</span>(q <span class="op">-&gt;</span> <span class="fl">1</span><span class="op">/</span><span class="fl">17</span> <span class="op">*</span> (<span class="fl">48</span> <span class="op">-</span> <span class="fl">32</span>q), label<span class="op">=</span><span class="st">"linear approximation"</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="24">
<p><img src="newtons_method_files/figure-html/cell-24-output-1.svg" class="img-fluid"></p>
</div>
</div>
<p>It can be shown that we have for any <span class="math inline">\(q\)</span> in <span class="math inline">\([1/2, 1]\)</span> with initial guess <span class="math inline">\(x_0 = 48/17 - 32/17\cdot q\)</span> that Newtons method will converge to <span class="math inline">\(16\)</span> digits in no more than this many steps:</p>
<p><span class="math display">\[
\log_2(\frac{53 + 1}{\log_2(17)}).
\]</span></p>
<div class="cell" data-execution_count="24">
<div class="sourceCode cell-code" id="cb55"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb55-1"><a href="#cb55-1" aria-hidden="true" tabindex="-1"></a>a <span class="op">=</span> <span class="fu">log2</span>((<span class="fl">53</span> <span class="op">+</span> <span class="fl">1</span>)<span class="op">/</span><span class="fu">log2</span>(<span class="fl">17</span>))</span>
<span id="cb55-2"><a href="#cb55-2" aria-hidden="true" tabindex="-1"></a><span class="fu">ceil</span>(<span class="dt">Integer</span>, a)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="25">
<pre><code>4</code></pre>
</div>
</div>
<p>That is <span class="math inline">\(4\)</span> steps suffices.</p>
<p>For <span class="math inline">\(q = 0.80\)</span>, to find <span class="math inline">\(1/q\)</span> using the above we have</p>
<div class="cell" data-hold="true" data-execution_count="25">
<div class="sourceCode cell-code" id="cb57"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb57-1"><a href="#cb57-1" aria-hidden="true" tabindex="-1"></a>q <span class="op">=</span> <span class="fl">0.80</span></span>
<span id="cb57-2"><a href="#cb57-2" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> (<span class="fl">48</span><span class="op">/</span><span class="fl">17</span>) <span class="op">-</span> (<span class="fl">32</span><span class="op">/</span><span class="fl">17</span>)<span class="op">*</span>q</span>
<span id="cb57-3"><a href="#cb57-3" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> <span class="op">-</span>q<span class="op">*</span>x<span class="op">*</span>x <span class="op">+</span> <span class="fl">2</span><span class="op">*</span>x</span>
<span id="cb57-4"><a href="#cb57-4" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> <span class="op">-</span>q<span class="op">*</span>x<span class="op">*</span>x <span class="op">+</span> <span class="fl">2</span><span class="op">*</span>x</span>
<span id="cb57-5"><a href="#cb57-5" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> <span class="op">-</span>q<span class="op">*</span>x<span class="op">*</span>x <span class="op">+</span> <span class="fl">2</span><span class="op">*</span>x</span>
<span id="cb57-6"><a href="#cb57-6" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> <span class="op">-</span>q<span class="op">*</span>x<span class="op">*</span>x <span class="op">+</span> <span class="fl">2</span><span class="op">*</span>x</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="26">
<pre><code>1.25</code></pre>
</div>
</div>
<p>This method has basically <span class="math inline">\(18\)</span> multiplication and addition operations for one division, so it naively would seem slower, but timing this shows the method is competitive with a regular division.</p>
</section>
</section>
</section>
<section id="wrapping-in-a-function" class="level2" data-number="30.2">
<h2 data-number="30.2" class="anchored" data-anchor-id="wrapping-in-a-function"><span class="header-section-number">30.2</span> Wrapping in a function</h2>
<p>In the previous examples, we saw fast convergence, guaranteed converge in <span class="math inline">\(4\)</span> steps, and an example where <span class="math inline">\(8\)</span> steps were needed to get the requested level of approximation. Newtons method usually converges quickly, but may converge slowly, and may not converge at all. Automating the task to avoid repeatedly running the update step is a task best done by the computer.</p>
<p>The <code>while</code> loop is a good way to repeat commands until some condition is met. With this, we present a simple function implementing Newtons method, we iterate until the update step gets really small (the <code>atol</code>) or the convergence takes more than <span class="math inline">\(50\)</span> steps. (There are other, better choices that could be used to determine when the algorithm should stop, these are just easy to understand.)</p>
<div class="cell" data-execution_count="26">
<div class="sourceCode cell-code" id="cb59"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb59-1"><a href="#cb59-1" aria-hidden="true" tabindex="-1"></a><span class="kw">function</span> <span class="fu">nm</span>(f, fp, x0)</span>
<span id="cb59-2"><a href="#cb59-2" aria-hidden="true" tabindex="-1"></a> atol <span class="op">=</span> <span class="fl">1e-14</span></span>
<span id="cb59-3"><a href="#cb59-3" aria-hidden="true" tabindex="-1"></a> ctr <span class="op">=</span> <span class="fl">0</span></span>
<span id="cb59-4"><a href="#cb59-4" aria-hidden="true" tabindex="-1"></a> delta <span class="op">=</span> <span class="cn">Inf</span></span>
<span id="cb59-5"><a href="#cb59-5" aria-hidden="true" tabindex="-1"></a> <span class="cf">while</span> (<span class="fu">abs</span>(delta) <span class="op">&gt;</span> atol) <span class="op">&amp;&amp;</span> (ctr <span class="op">&lt;</span> <span class="fl">50</span>)</span>
<span id="cb59-6"><a href="#cb59-6" aria-hidden="true" tabindex="-1"></a> delta <span class="op">=</span> <span class="fu">f</span>(x0)<span class="op">/</span><span class="fu">fp</span>(x0)</span>
<span id="cb59-7"><a href="#cb59-7" aria-hidden="true" tabindex="-1"></a> x0 <span class="op">=</span> x0 <span class="op">-</span> delta</span>
<span id="cb59-8"><a href="#cb59-8" aria-hidden="true" tabindex="-1"></a> ctr <span class="op">=</span> ctr <span class="op">+</span> <span class="fl">1</span></span>
<span id="cb59-9"><a href="#cb59-9" aria-hidden="true" tabindex="-1"></a> <span class="cf">end</span></span>
<span id="cb59-10"><a href="#cb59-10" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb59-11"><a href="#cb59-11" aria-hidden="true" tabindex="-1"></a> ctr <span class="op">&lt;</span> <span class="fl">50</span> ? x0 <span class="op">:</span> <span class="cn">NaN</span></span>
<span id="cb59-12"><a href="#cb59-12" aria-hidden="true" tabindex="-1"></a><span class="kw">end</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="27">
<pre><code>nm (generic function with 1 method)</code></pre>
</div>
</div>
<section id="examples-1" class="level5">
<h5 class="anchored" data-anchor-id="examples-1">Examples</h5>
<ul>
<li>Find a zero of <span class="math inline">\(\sin(x)\)</span> starting at <span class="math inline">\(x_0=3\)</span>:</li>
</ul>
<div class="cell" data-execution_count="27">
<div class="sourceCode cell-code" id="cb61"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb61-1"><a href="#cb61-1" aria-hidden="true" tabindex="-1"></a><span class="fu">nm</span>(sin, cos, <span class="fl">3</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="28">
<pre><code>3.141592653589793</code></pre>
</div>
</div>
<p>This is an approximation for <span class="math inline">\(\pi\)</span>, that historically found use, as the convergence is fast.</p>
<ul>
<li>Find a solution to <span class="math inline">\(x^5 = 5^x\)</span> near <span class="math inline">\(2\)</span>:</li>
</ul>
<p>Writing a function to handle this, we have:</p>
<div class="cell" data-execution_count="28">
<div class="sourceCode cell-code" id="cb63"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb63-1"><a href="#cb63-1" aria-hidden="true" tabindex="-1"></a><span class="fu">k</span>(x) <span class="op">=</span> x<span class="op">^</span><span class="fl">5</span> <span class="op">-</span> <span class="fl">5</span><span class="op">^</span>x</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="29">
<pre><code>k (generic function with 1 method)</code></pre>
</div>
</div>
<p>We could find the derivative by hand, but use the automatic one instead:</p>
<div class="cell" data-execution_count="29">
<div class="sourceCode cell-code" id="cb65"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb65-1"><a href="#cb65-1" aria-hidden="true" tabindex="-1"></a>alpha <span class="op">=</span> <span class="fu">nm</span>(k, k<span class="op">'</span>, <span class="fl">2</span>)</span>
<span id="cb65-2"><a href="#cb65-2" aria-hidden="true" tabindex="-1"></a>alpha, <span class="fu">f</span>(alpha)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="30">
<pre><code>(1.764921914525776, 5.8411162339467655)</code></pre>
</div>
</div>
</section>
<section id="functions-in-the-roots-package" class="level3" data-number="30.2.1">
<h3 data-number="30.2.1" class="anchored" data-anchor-id="functions-in-the-roots-package"><span class="header-section-number">30.2.1</span> Functions in the Roots package</h3>
<p>Typing in the <code>nm</code> function might be okay once, but would be tedious if it was needed each time. Besides, it isnt as robust to different inputs as possible. The <code>Roots</code> package provides a <code>Newton</code> method for <code>find_zero</code>.</p>
<p>To use a different method with <code>find_zero</code>, the calling pattern is <code>find_zero(f, x, M)</code> where <code>f</code> represent the function(s), <code>x</code> the initial point(s), and <code>M</code> the method. Here we have:</p>
<div class="cell" data-execution_count="30">
<div class="sourceCode cell-code" id="cb67"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb67-1"><a href="#cb67-1" aria-hidden="true" tabindex="-1"></a><span class="fu">find_zero</span>((sin, cos), <span class="fl">3</span>, Roots.<span class="fu">Newton</span>())</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="31">
<pre><code>3.141592653589793</code></pre>
</div>
</div>
<p>Or, if a derivative is not specified, one can be computed using automatic differentiation:</p>
<div class="cell" data-hold="true" data-execution_count="31">
<div class="sourceCode cell-code" id="cb69"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb69-1"><a href="#cb69-1" aria-hidden="true" tabindex="-1"></a><span class="fu">f</span>(x) <span class="op">=</span> <span class="fu">sin</span>(x)</span>
<span id="cb69-2"><a href="#cb69-2" aria-hidden="true" tabindex="-1"></a><span class="fu">find_zero</span>((f, f<span class="op">'</span>), <span class="fl">2</span>, Roots.<span class="fu">Newton</span>())</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="32">
<pre><code>3.141592653589793</code></pre>
</div>
</div>
<p>The argument <code>verbose=true</code> will force a print out of a message summarizing the convergence and showing each step.</p>
<div class="cell" data-hold="true" data-execution_count="32">
<div class="sourceCode cell-code" id="cb71"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb71-1"><a href="#cb71-1" aria-hidden="true" tabindex="-1"></a><span class="fu">f</span>(x) <span class="op">=</span> <span class="fu">exp</span>(x) <span class="op">-</span> x<span class="op">^</span><span class="fl">4</span></span>
<span id="cb71-2"><a href="#cb71-2" aria-hidden="true" tabindex="-1"></a><span class="fu">find_zero</span>((f,f<span class="op">'</span>), <span class="fl">8</span>, Roots.<span class="fu">Newton</span>(); verbose<span class="op">=</span><span class="cn">true</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display">
<pre><code>Results of univariate zero finding:
* Converged to: 8.6131694564414
* Algorithm: Roots.Newton()
* iterations: 8
* function evaluations ≈ 16
* stopped as x_n ≈ x_{n-1} using atol=xatol, rtol=xrtol
Trace:
x₁ = 8, fx₁ = -1115.0420129582717
x₂ = 9.1951685161021075, fx₂ = 2700.5339924159998
x₃ = 8.7944708020788642, fx₃ = 615.76735783715776
x₄ = 8.6356413896038262, fx₄ = 67.416233795479457
x₅ = 8.6135576545997825, fx₅ = 1.1446528211590703
x₆ = 8.6131695743314562, fx₆ = 0.00034750863687804667
x₇ = 8.6131694564414101, fx₇ = 3.3651303965598345e-11
x₈ = 8.6131694564413994, fx₈ = 1.8189894035458565e-12
x₉ = 8.6131694564413994, fx₉ = 1.8189894035458565e-12
</code></pre>
</div>
<div class="cell-output cell-output-display" data-execution_count="33">
<pre><code>8.6131694564414</code></pre>
</div>
</div>
<section id="example-intersection-of-two-graphs" class="level5">
<h5 class="anchored" data-anchor-id="example-intersection-of-two-graphs">Example: intersection of two graphs</h5>
<p>Find the intersection point between <span class="math inline">\(f(x) = \cos(x)\)</span> and <span class="math inline">\(g(x) = 5x\)</span> near <span class="math inline">\(0\)</span>.</p>
<p>We have Newtons method to solve for zeros of <span class="math inline">\(f(x)\)</span>, i.e.&nbsp;when <span class="math inline">\(f(x) = 0\)</span>. Here we want to solve for <span class="math inline">\(x\)</span> with <span class="math inline">\(f(x) = g(x)\)</span>. To do so, we make a new function <span class="math inline">\(h(x) = f(x) - g(x)\)</span>, that is <span class="math inline">\(0\)</span> when <span class="math inline">\(f(x)\)</span> equals <span class="math inline">\(g(x)\)</span>:</p>
<div class="cell" data-hold="true" data-execution_count="33">
<div class="sourceCode cell-code" id="cb74"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb74-1"><a href="#cb74-1" aria-hidden="true" tabindex="-1"></a><span class="fu">f</span>(x) <span class="op">=</span> <span class="fu">cos</span>(x)</span>
<span id="cb74-2"><a href="#cb74-2" aria-hidden="true" tabindex="-1"></a><span class="fu">g</span>(x) <span class="op">=</span> <span class="fl">5</span>x</span>
<span id="cb74-3"><a href="#cb74-3" aria-hidden="true" tabindex="-1"></a><span class="fu">h</span>(x) <span class="op">=</span> <span class="fu">f</span>(x) <span class="op">-</span> <span class="fu">g</span>(x)</span>
<span id="cb74-4"><a href="#cb74-4" aria-hidden="true" tabindex="-1"></a>x0 <span class="op">=</span> <span class="fu">find_zero</span>((h,h<span class="op">'</span>), <span class="fl">0</span>, Roots.<span class="fu">Newton</span>())</span>
<span id="cb74-5"><a href="#cb74-5" aria-hidden="true" tabindex="-1"></a>x0, <span class="fu">h</span>(x0), <span class="fu">f</span>(x0), <span class="fu">g</span>(x0)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="34">
<pre><code>(0.19616428118784215, 0.0, 0.9808214059392107, 0.9808214059392107)</code></pre>
</div>
</div>
<hr>
<p>We redo the above using a <em>parameter</em> for the <span class="math inline">\(5\)</span>, as there are some options on how it would be done. We let <code>f(x,p) = cos(x) - p*x</code>. Then we can use <code>Roots.Newton</code> by also defining a derivative:</p>
<div class="cell" data-hold="true" data-execution_count="34">
<div class="sourceCode cell-code" id="cb76"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb76-1"><a href="#cb76-1" aria-hidden="true" tabindex="-1"></a><span class="fu">f</span>(x,p) <span class="op">=</span> <span class="fu">cos</span>(x) <span class="op">-</span> p<span class="op">*</span>x</span>
<span id="cb76-2"><a href="#cb76-2" aria-hidden="true" tabindex="-1"></a><span class="fu">fp</span>(x,p) <span class="op">=</span> <span class="fu">-sin</span>(x) <span class="op">-</span> p</span>
<span id="cb76-3"><a href="#cb76-3" aria-hidden="true" tabindex="-1"></a>xn <span class="op">=</span> <span class="fu">find_zero</span>((f,fp), <span class="cn">pi</span><span class="op">/</span><span class="fl">4</span>, Roots.<span class="fu">Newton</span>(); p<span class="op">=</span><span class="fl">5</span>)</span>
<span id="cb76-4"><a href="#cb76-4" aria-hidden="true" tabindex="-1"></a>xn, <span class="fu">f</span>(xn, <span class="fl">5</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="35">
<pre><code>(0.19616428118784215, 0.0)</code></pre>
</div>
</div>
<p>To use automatic differentiation is not straightforward, as we must hold the <code>p</code> fixed. For this, we introduce a closure that fixes <code>p</code> and differentiates in the <code>x</code> variable (called <code>u</code> below):</p>
<div class="cell" data-hold="true" data-execution_count="35">
<div class="sourceCode cell-code" id="cb78"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb78-1"><a href="#cb78-1" aria-hidden="true" tabindex="-1"></a><span class="fu">f</span>(x,p) <span class="op">=</span> <span class="fu">cos</span>(x) <span class="op">-</span> p<span class="op">*</span>x</span>
<span id="cb78-2"><a href="#cb78-2" aria-hidden="true" tabindex="-1"></a><span class="fu">fp</span>(x,p) <span class="op">=</span> (u <span class="op">-&gt;</span> <span class="fu">f</span>(u,p))<span class="ch">'(x)</span></span>
<span id="cb78-3"><a href="#cb78-3" aria-hidden="true" tabindex="-1"></a>xn <span class="op">=</span> <span class="fu">find_zero</span>((f,fp), <span class="cn">pi</span><span class="op">/</span><span class="fl">4</span>, Roots.<span class="fu">Newton</span>(); p<span class="op">=</span><span class="fl">5</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="36">
<pre><code>0.19616428118784215</code></pre>
</div>
</div>
</section>
<section id="example-finding-c-in-rolles-theorem" class="level5">
<h5 class="anchored" data-anchor-id="example-finding-c-in-rolles-theorem">Example: Finding <span class="math inline">\(c\)</span> in Rolles Theorem</h5>
<p>The function <span class="math inline">\(r(x) = \sqrt{1 - \cos(x^2)^2}\)</span> has a zero at <span class="math inline">\(0\)</span> and one at <span class="math inline">\(a\)</span> near <span class="math inline">\(1.77\)</span>.</p>
<div class="cell" data-execution_count="36">
<div class="sourceCode cell-code" id="cb80"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb80-1"><a href="#cb80-1" aria-hidden="true" tabindex="-1"></a><span class="fu">r</span>(x) <span class="op">=</span> <span class="fu">sqrt</span>(<span class="fl">1</span> <span class="op">-</span> <span class="fu">cos</span>(x<span class="op">^</span><span class="fl">2</span>)<span class="op">^</span><span class="fl">2</span>)</span>
<span id="cb80-2"><a href="#cb80-2" aria-hidden="true" tabindex="-1"></a><span class="fu">plot</span>(r, <span class="fl">0</span>, <span class="fl">1.77</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="37">
<p><img src="newtons_method_files/figure-html/cell-37-output-1.svg" class="img-fluid"></p>
</div>
</div>
<p>As <span class="math inline">\(f(x)\)</span> is differentiable between <span class="math inline">\(0\)</span> and <span class="math inline">\(a\)</span>, Rolles theorem says there will be value where the derivative is <span class="math inline">\(0\)</span>. Find that value.</p>
<p>This value will be a zero of the derivative. A graph shows it should be near <span class="math inline">\(1.2\)</span>, so we use that as a starting value to get the answer:</p>
<div class="cell" data-execution_count="37">
<div class="sourceCode cell-code" id="cb81"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb81-1"><a href="#cb81-1" aria-hidden="true" tabindex="-1"></a><span class="fu">find_zero</span>((r<span class="op">'</span>,r<span class="op">''</span>), <span class="fl">1.2</span>, Roots.<span class="fu">Newton</span>())</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="38">
<pre><code>1.2533141373155003</code></pre>
</div>
</div>
</section>
</section>
</section>
<section id="convergence-rates" class="level2" data-number="30.3">
<h2 data-number="30.3" class="anchored" data-anchor-id="convergence-rates"><span class="header-section-number">30.3</span> Convergence rates</h2>
<p>Newtons method is famously known to have “quadratic convergence.” What does this mean? Let the error in the <span class="math inline">\(i\)</span>th step be called <span class="math inline">\(e_i = x_i - \alpha\)</span>. Then Newtons method satisfies a bound of the type:</p>
<p><span class="math display">\[
\lvert e_{i+1} \rvert \leq M_i \cdot e_i^2.
\]</span></p>
<p>If <span class="math inline">\(M\)</span> were just a constant and we suppose <span class="math inline">\(e_0 = 10^{-1}\)</span> then <span class="math inline">\(e_1\)</span> would be less than <span class="math inline">\(M 10^{-2}\)</span> and <span class="math inline">\(e_2\)</span> less than <span class="math inline">\(M^2 10^{-4}\)</span>, <span class="math inline">\(e_3\)</span> less than <span class="math inline">\(M^3 10^{-8}\)</span> and <span class="math inline">\(e_4\)</span> less than <span class="math inline">\(M^4 10^{-16}\)</span> which for <span class="math inline">\(M=1\)</span> is basically the machine precision when values are near <span class="math inline">\(1\)</span>. That is for some problems, with a good initial guess it will take around <span class="math inline">\(4\)</span> or so steps to converge.</p>
<p>To identify <span class="math inline">\(M\)</span>, let <span class="math inline">\(\alpha\)</span> be the zero of <span class="math inline">\(f\)</span> to be approximated. Assume</p>
<ul>
<li>The function <span class="math inline">\(f\)</span> has at continuous second derivative in a neighborhood of <span class="math inline">\(\alpha\)</span>.</li>
<li>The value <span class="math inline">\(f'(\alpha)\)</span> is <em>non-zero</em> in the neighborhood of <span class="math inline">\(\alpha\)</span>.</li>
</ul>
<p>Then this linearization holds at each <span class="math inline">\(x_i\)</span> in the above neighborhood:</p>
<p><span class="math display">\[
f(x) = f(x_i) + f'(x_i) \cdot (x - x_i) + \frac{1}{2} f''(\xi) \cdot (x-x_i)^2.
\]</span></p>
<p>The value <span class="math inline">\(\xi\)</span> is from the mean value theorem and is between <span class="math inline">\(x\)</span> and <span class="math inline">\(x_i\)</span>.</p>
<p>Dividing by <span class="math inline">\(f'(x_i)\)</span> and setting <span class="math inline">\(x=\alpha\)</span> (as <span class="math inline">\(f(\alpha)=0\)</span>) leaves</p>
<p><span class="math display">\[
0 = \frac{f(x_i)}{f'(x_i)} + (\alpha-x_i) + \frac{1}{2}\cdot \frac{f''(\xi)}{f'(x_i)} \cdot (\alpha-x_i)^2.
\]</span></p>
<p>For this value, we have</p>
<p><span class="math display">\[
\begin{align*}
x_{i+1} - \alpha
&amp;= \left(x_i - \frac{f(x_i)}{f'(x_i)}\right) - \alpha\\
&amp;= \left(x_i - \alpha \right) - \frac{f(x_i)}{f'(x_i)}\\
&amp;= (x_i - \alpha) + \left(
(\alpha - x_i) + \frac{1}{2}\frac{f''(\xi) \cdot(\alpha - x_i)^2}{f'(x_i)}
\right)\\
&amp;= \frac{1}{2}\frac{f''(\xi)}{f'(x_i)} \cdot(x_i - \alpha)^2.
\end{align*}
\]</span></p>
<p>That is</p>
<p><span class="math display">\[
e_{i+1} = \frac{1}{2}\frac{f''(\xi)}{f'(x_i)} e_i^2.
\]</span></p>
<p>This convergence to <span class="math inline">\(\alpha\)</span> will be quadratic <em>if</em>:</p>
<ul>
<li>The initial guess <span class="math inline">\(x_0\)</span> is not too far from <span class="math inline">\(\alpha\)</span>, so <span class="math inline">\(e_0\)</span> is managed.</li>
<li>The derivative at <span class="math inline">\(\alpha\)</span> is not too close to <span class="math inline">\(0\)</span>, hence, by continuity <span class="math inline">\(f'(x_i)\)</span> is not too close to <span class="math inline">\(0\)</span>. (As it appears in the denominator). That is, the function cant be too flat, which should make sense, as then the tangent line is nearly parallel to the <span class="math inline">\(x\)</span> axis and would intersect far away.</li>
<li>The function <span class="math inline">\(f\)</span> has a continuous second derivative at <span class="math inline">\(\alpha\)</span>.</li>
<li>The second derivative is not too big (in absolute value) near <span class="math inline">\(\alpha\)</span>. A large second derivative means the function is very concave, which means it is “turning” a lot. In this case, the function turns away from the tangent line quickly, so the tangent lines zero is not necessarily a good approximation to the actual zero, <span class="math inline">\(\alpha\)</span>.</li>
</ul>
<div class="callout-note callout callout-style-default callout-captioned">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-caption-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>The basic tradeoff: methods like Newtons are faster than the bisection method in terms of function calls, but are not guaranteed to converge, as the bisection method is.</p>
</div>
</div>
<p>What can go wrong when one of these isnt the case is illustrated next:</p>
<section id="poor-initial-step" class="level3" data-number="30.3.1">
<h3 data-number="30.3.1" class="anchored" data-anchor-id="poor-initial-step"><span class="header-section-number">30.3.1</span> Poor initial step</h3>
<div class="cell" data-cache="true" data-hold="true" data-execution_count="38">
<div class="cell-output cell-output-display" data-execution_count="39">
<div class="d-flex justify-content-center"> <figure class="figure"> <img src="data:image/gif;base64,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" class="card-img-top figure-img" alt="A Figure">
<figcaption class="figure-caption"><div class="markdown"><p>Illustration of Newton's Method converging to a zero of a function, but slowly as the initial guess, is very poor, and not close to the zero. The algorithm does converge in this illustration, but not quickly and not to the nearest root from the initial guess.</p>
</div> </figcaption>
</figure>
</div>
</div>
</div>
<div class="cell" data-cache="true" data-hold="true" data-execution_count="39">
<div class="cell-output cell-output-display" data-execution_count="40">
<div class="d-flex justify-content-center"> <figure class="figure"> <img src="data:image/gif;base64,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" class="card-img-top figure-img" alt="A Figure">
<figcaption class="figure-caption"><div class="markdown"><p>Illustration of Newton's method failing to coverge as for some \(x_i\), \(f'(x_i)\) is too close to \(0\). In this instance after a few steps, the algorithm just cycles around the local minimum near \(0.66\). The values of \(x_i\) repeat in the pattern: \(1.0002, 0.7503, -0.0833, 1.0002, \dots\). This is also an illustration of a poor initial guess. If there is a local minimum or maximum between the guess and the zero, such cycles can occur.</p>
</div> </figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="the-second-derivative-is-too-big" class="level3" data-number="30.3.2">
<h3 data-number="30.3.2" class="anchored" data-anchor-id="the-second-derivative-is-too-big"><span class="header-section-number">30.3.2</span> The second derivative is too big</h3>
<div class="cell" data-cache="true" data-hold="true" data-execution_count="40">
<div class="cell-output cell-output-display" data-execution_count="41">
<div class="d-flex justify-content-center"> <figure class="figure"> <img src="data:image/gif;base64,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" class="card-img-top figure-img" alt="A Figure">
<figcaption class="figure-caption"><div class="markdown"><p>Illustration of Newton's Method not converging. Here the second derivative is too big near the zero - it blows up near \(0\) - and the convergence does not occur. Rather the iterates increase in their distance from the zero.</p>
</div> </figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="the-tangent-line-at-some-xᵢ-is-flat" class="level3" data-number="30.3.3">
<h3 data-number="30.3.3" class="anchored" data-anchor-id="the-tangent-line-at-some-xᵢ-is-flat"><span class="header-section-number">30.3.3</span> The tangent line at some xᵢ is flat</h3>
<div class="cell" data-cache="true" data-hold="true" data-execution_count="41">
<div class="cell-output cell-output-display" data-execution_count="42">
<div class="d-flex justify-content-center"> <figure class="figure"> <img src="data:image/gif;base64,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" class="card-img-top figure-img" alt="A Figure">
<figcaption class="figure-caption"><div class="markdown"><p>The function \(f(x) = x^{20} - 1\) has two bad behaviours for Newton's method: for \(x &lt; 1\) the derivative is nearly \(0\) and for \(x&gt;1\) the second derivative is very big. In this illustration, we have an initial guess of \(x_0=8/9\). As the tangent line is fairly flat, the next approximation is far away, \(x_1 = 1.313\dots\). As this guess is is much bigger than \(1\), the ratio \(f(x)/f'(x) \approx x^{20}/(20x^{19}) = x/20\), so \(x_i - x_{i-1} \approx (19/20)x_i\) yielding slow, linear convergence until \(f''(x_i)\) is moderate. For this function, starting at \(x_0=8/9\) takes 11 steps, at \(x_0=7/8\) takes 13 steps, at \(x_0=3/4\) takes \(55\) steps, and at \(x_0=1/2\) it takes \(204\) steps.</p>
</div> </figcaption>
</figure>
</div>
</div>
</div>
<section id="example-1" class="level6">
<h6 class="anchored" data-anchor-id="example-1">Example</h6>
<p>Suppose <span class="math inline">\(\alpha\)</span> is a simple zero for <span class="math inline">\(f(x)\)</span>. (The value <span class="math inline">\(\alpha\)</span> is a zero of multiplicity <span class="math inline">\(k\)</span> if <span class="math inline">\(f(x) = (x-\alpha)^kg(x)\)</span> where <span class="math inline">\(g(\alpha)\)</span> is not zero. A simple zero has multiplicity <span class="math inline">\(1\)</span>. If <span class="math inline">\(f'(\alpha) \neq 0\)</span> and the second derivative exists, then a zero <span class="math inline">\(\alpha\)</span> will be simple.) Around <span class="math inline">\(\alpha\)</span>, quadratic convergence should apply. However, consider the function <span class="math inline">\(g(x) = f(x)^k\)</span> for some integer <span class="math inline">\(k \geq 2\)</span>. Then <span class="math inline">\(\alpha\)</span> is still a zero, but the derivative of <span class="math inline">\(g\)</span> at <span class="math inline">\(\alpha\)</span> is zero, so the tangent line is basically flat. This will slow the convergence up. We can see that the update step <span class="math inline">\(g'(x)/g(x)\)</span> becomes <span class="math inline">\((1/k) f'(x)/f(x)\)</span>, so an extra factor is introduced.</p>
<p>The calculation that produces the quadratic convergence now becomes:</p>
<p><span class="math display">\[
x_{i+1} - \alpha = (x_i - \alpha) - \frac{1}{k}(x_i-\alpha + \frac{f''(\xi)}{2f'(x_i)}(x_i-\alpha)^2) =
\frac{k-1}{k} (x_i-\alpha) + \frac{f''(\xi)}{2kf'(x_i)}(x_i-\alpha)^2.
\]</span></p>
<p>As <span class="math inline">\(k &gt; 1\)</span>, the <span class="math inline">\((x_i - \alpha)\)</span> term dominates, and we see the convergence is linear with <span class="math inline">\(\lvert e_{i+1}\rvert \approx (k-1)/k \lvert e_i\rvert\)</span>.</p>
</section>
</section>
</section>
<section id="questions" class="level2" data-number="30.4">
<h2 data-number="30.4" class="anchored" data-anchor-id="questions"><span class="header-section-number">30.4</span> Questions</h2>
<section id="question" class="level6">
<h6 class="anchored" data-anchor-id="question">Question</h6>
<p>Look at this graph with <span class="math inline">\(x_0\)</span> marked with a point:</p>
<div class="cell" data-hold="true" data-execution_count="42">
<div class="cell-output cell-output-display" data-execution_count="43">
<p><img src="newtons_method_files/figure-html/cell-43-output-1.svg" class="img-fluid"></p>
</div>
</div>
<p>If one step of Newtons method was used, what would be the value of <span class="math inline">\(x_1\)</span>?</p>
<div class="cell" data-hold="true" data-execution_count="43">
<div class="cell-output cell-output-display" data-execution_count="44">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="6862846334364595284" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_6862846334364595284">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_6862846334364595284_1">
<input class="form-check-input" type="radio" name="radio_6862846334364595284" id="radio_6862846334364595284_1" value="1">
<span class="label-body px-1">
\(-2.224\)
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_6862846334364595284_2">
<input class="form-check-input" type="radio" name="radio_6862846334364595284" id="radio_6862846334364595284_2" value="2">
<span class="label-body px-1">
\(-2.80\)
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_6862846334364595284_3">
<input class="form-check-input" type="radio" name="radio_6862846334364595284" id="radio_6862846334364595284_3" value="3">
<span class="label-body px-1">
\(-0.020\)
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_6862846334364595284_4">
<input class="form-check-input" type="radio" name="radio_6862846334364595284" id="radio_6862846334364595284_4" value="4">
<span class="label-body px-1">
\(0.355\)
</span>
</label>
</div>
</div>
</div>
<div id="6862846334364595284_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_6862846334364595284"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 1;
var msgBox = document.getElementById('6862846334364595284_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_6862846334364595284")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_6862846334364595284")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
</section>
<section id="question-1" class="level6">
<h6 class="anchored" data-anchor-id="question-1">Question</h6>
<p>Look at this graph of some increasing, concave up <span class="math inline">\(f(x)\)</span> with initial point <span class="math inline">\(x_0\)</span> marked. Let <span class="math inline">\(\alpha\)</span> be the zero.</p>
<div class="cell" data-hold="true" data-execution_count="44">
<div class="cell-output cell-output-display" data-execution_count="45">
<p><img src="newtons_method_files/figure-html/cell-45-output-1.svg" class="img-fluid"></p>
</div>
</div>
<p>What can be said about <span class="math inline">\(x_1\)</span>?</p>
<div class="cell" data-hold="true" data-execution_count="45">
<div class="cell-output cell-output-display" data-execution_count="46">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="1606560572276586394" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_1606560572276586394">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_1606560572276586394_1">
<input class="form-check-input" type="radio" name="radio_1606560572276586394" id="radio_1606560572276586394_1" value="1">
<span class="label-body px-1">
It must be \(x_0 &lt; x_1 &lt; \alpha\)
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_1606560572276586394_2">
<input class="form-check-input" type="radio" name="radio_1606560572276586394" id="radio_1606560572276586394_2" value="2">
<span class="label-body px-1">
It must be \(x_1 &gt; \alpha\)
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_1606560572276586394_3">
<input class="form-check-input" type="radio" name="radio_1606560572276586394" id="radio_1606560572276586394_3" value="3">
<span class="label-body px-1">
It must be \(x_1 &lt; x_0\)
</span>
</label>
</div>
</div>
</div>
<div id="1606560572276586394_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_1606560572276586394"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 2;
var msgBox = document.getElementById('1606560572276586394_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_1606560572276586394")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_1606560572276586394")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
<hr>
<p>Look at this graph of some increasing, concave up <span class="math inline">\(f(x)\)</span> with initial point <span class="math inline">\(x_0\)</span> marked. Let <span class="math inline">\(\alpha\)</span> be the zero.</p>
<div class="cell" data-hold="true" data-execution_count="46">
<div class="cell-output cell-output-display" data-execution_count="47">
<p><img src="newtons_method_files/figure-html/cell-47-output-1.svg" class="img-fluid"></p>
</div>
</div>
<p>What can be said about <span class="math inline">\(x_1\)</span>?</p>
<div class="cell" data-hold="true" data-execution_count="47">
<div class="cell-output cell-output-display" data-execution_count="48">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="4566090323629342608" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_4566090323629342608">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_4566090323629342608_1">
<input class="form-check-input" type="radio" name="radio_4566090323629342608" id="radio_4566090323629342608_1" value="1">
<span class="label-body px-1">
It must be \(x_1 &gt; x_0\)
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_4566090323629342608_2">
<input class="form-check-input" type="radio" name="radio_4566090323629342608" id="radio_4566090323629342608_2" value="2">
<span class="label-body px-1">
It must be \(x_1 &lt; \alpha\)
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_4566090323629342608_3">
<input class="form-check-input" type="radio" name="radio_4566090323629342608" id="radio_4566090323629342608_3" value="3">
<span class="label-body px-1">
It must be \(\alpha &lt; x_1 &lt; x_0\)
</span>
</label>
</div>
</div>
</div>
<div id="4566090323629342608_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_4566090323629342608"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 3;
var msgBox = document.getElementById('4566090323629342608_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_4566090323629342608")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_4566090323629342608")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
<hr>
<p>Suppose <span class="math inline">\(f(x)\)</span> is increasing and concave up. From the tangent line representation: <span class="math inline">\(f(x) = f(c) + f'(c)\cdot(x-c) + f''(\xi)/2 \cdot(x-c)^2\)</span>, explain why it must be that the graph of <span class="math inline">\(f(x)\)</span> lies on or <em>above</em> the tangent line.</p>
<div class="cell" data-hold="true" data-execution_count="48">
<div class="cell-output cell-output-display" data-execution_count="49">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="6053717636326792545" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_6053717636326792545">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_6053717636326792545_1">
<input class="form-check-input" type="radio" name="radio_6053717636326792545" id="radio_6053717636326792545_1" value="1">
<span class="label-body px-1">
This isn't true. The function \(f(x) = x^3\) at \(x=0\) provides a counterexample
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_6053717636326792545_2">
<input class="form-check-input" type="radio" name="radio_6053717636326792545" id="radio_6053717636326792545_2" value="2">
<span class="label-body px-1">
As \(f''(\xi)/2 \cdot(x-c)^2\) is non-negative, we must have \(f(x) - (f(c) + f'(c)\cdot(x-c)) \geq 0\).
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_6053717636326792545_3">
<input class="form-check-input" type="radio" name="radio_6053717636326792545" id="radio_6053717636326792545_3" value="3">
<span class="label-body px-1">
As \(f''(\xi) &lt; 0\) it must be that \(f(x) - (f(c) + f'(c)\cdot(x-c)) \geq 0\).
</span>
</label>
</div>
</div>
</div>
<div id="6053717636326792545_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_6053717636326792545"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 2;
var msgBox = document.getElementById('6053717636326792545_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_6053717636326792545")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_6053717636326792545")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
<p>This question can be used to give a proof for the previous two questions, which can be answered by considering the graphs alone. Combined, they say that if a function is increasing and concave up and <span class="math inline">\(\alpha\)</span> is a zero, then if <span class="math inline">\(x_0 &lt; \alpha\)</span> it will be <span class="math inline">\(x_1 &gt; \alpha\)</span>, and for any <span class="math inline">\(x_i &gt; \alpha\)</span>, <span class="math inline">\(\alpha &lt;= x_{i+1} &lt;= x_\alpha\)</span>, so the sequence in Newtons method is decreasing and bounded below; conditions for which it is guaranteed mathematically there will be convergence.</p>
</section>
<section id="question-2" class="level6">
<h6 class="anchored" data-anchor-id="question-2">Question</h6>
<p>Let <span class="math inline">\(f(x) = x^2 - 3^x\)</span>. This has derivative <span class="math inline">\(2x - 3^x \cdot \log(3)\)</span>. Starting with <span class="math inline">\(x_0=0\)</span>, what does Newtons method converge on?</p>
<div class="cell" data-hold="true" data-execution_count="49">
<div class="cell-output cell-output-display" data-execution_count="50">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="14766251128608283573" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_14766251128608283573">
<div style="padding-top: 5px">
<br>
<div class="input-group">
<input id="14766251128608283573" type="number" class="form-control" placeholder="Numeric answer">
</div>
</div>
</div>
<div id="14766251128608283573_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.getElementById("14766251128608283573").addEventListener("change", function() {
var correct = (Math.abs(this.value - -0.6860267245362514) <= 1.0e-14);
var msgBox = document.getElementById('14766251128608283573_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_14766251128608283573")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_14766251128608283573")
if (explanation != null) {
explanation.style.display = "block";
}
}
});
</script>
</div>
</div>
</section>
<section id="question-3" class="level6">
<h6 class="anchored" data-anchor-id="question-3">Question</h6>
<p>Let <span class="math inline">\(f(x) = \exp(x) - x^4\)</span>. There are 3 zeros for this function. Which one does Newtons method converge to when <span class="math inline">\(x_0=2\)</span>?</p>
<div class="cell" data-hold="true" data-execution_count="50">
<div class="cell-output cell-output-display" data-execution_count="51">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="12807642482449327811" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_12807642482449327811">
<div style="padding-top: 5px">
<br>
<div class="input-group">
<input id="12807642482449327811" type="number" class="form-control" placeholder="Numeric answer">
</div>
</div>
</div>
<div id="12807642482449327811_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.getElementById("12807642482449327811").addEventListener("change", function() {
var correct = (Math.abs(this.value - 1.4296118247255556) <= 0.1);
var msgBox = document.getElementById('12807642482449327811_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_12807642482449327811")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_12807642482449327811")
if (explanation != null) {
explanation.style.display = "block";
}
}
});
</script>
</div>
</div>
</section>
<section id="question-4" class="level6">
<h6 class="anchored" data-anchor-id="question-4">Question</h6>
<p>Let <span class="math inline">\(f(x) = \exp(x) - x^4\)</span>. As mentioned, there are 3 zeros for this function. Which one does Newtons method converge to when <span class="math inline">\(x_0=8\)</span>?</p>
<div class="cell" data-hold="true" data-execution_count="51">
<div class="cell-output cell-output-display" data-execution_count="52">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="22129191844296635" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_22129191844296635">
<div style="padding-top: 5px">
<br>
<div class="input-group">
<input id="22129191844296635" type="number" class="form-control" placeholder="Numeric answer">
</div>
</div>
</div>
<div id="22129191844296635_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.getElementById("22129191844296635").addEventListener("change", function() {
var correct = (Math.abs(this.value - 8.6131694564414) <= 0.1);
var msgBox = document.getElementById('22129191844296635_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_22129191844296635")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_22129191844296635")
if (explanation != null) {
explanation.style.display = "block";
}
}
});
</script>
</div>
</div>
</section>
<section id="question-5" class="level6">
<h6 class="anchored" data-anchor-id="question-5">Question</h6>
<p>Let <span class="math inline">\(f(x) = \sin(x) - \cos(4\cdot x)\)</span>.</p>
<p>Starting at <span class="math inline">\(\pi/8\)</span>, solve for the root returned by Newtons method</p>
<div class="cell" data-hold="true" data-execution_count="52">
<div class="cell-output cell-output-display" data-execution_count="53">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="17518691219046568265" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_17518691219046568265">
<div style="padding-top: 5px">
<br>
<div class="input-group">
<input id="17518691219046568265" type="number" class="form-control" placeholder="Numeric answer">
</div>
</div>
</div>
<div id="17518691219046568265_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.getElementById("17518691219046568265").addEventListener("change", function() {
var correct = (Math.abs(this.value - 0.3141592653589793) <= 0.001);
var msgBox = document.getElementById('17518691219046568265_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_17518691219046568265")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_17518691219046568265")
if (explanation != null) {
explanation.style.display = "block";
}
}
});
</script>
</div>
</div>
</section>
<section id="question-6" class="level6">
<h6 class="anchored" data-anchor-id="question-6">Question</h6>
<p>Using Newtons method find a root to <span class="math inline">\(f(x) = \cos(x) - x^3\)</span> starting at <span class="math inline">\(x_0 = 1/2\)</span>.</p>
<div class="cell" data-hold="true" data-execution_count="53">
<div class="cell-output cell-output-display" data-execution_count="54">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="3416674622820209487" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_3416674622820209487">
<div style="padding-top: 5px">
<br>
<div class="input-group">
<input id="3416674622820209487" type="number" class="form-control" placeholder="Numeric answer">
</div>
</div>
</div>
<div id="3416674622820209487_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.getElementById("3416674622820209487").addEventListener("change", function() {
var correct = (Math.abs(this.value - 0.8654740331016144) <= 0.001);
var msgBox = document.getElementById('3416674622820209487_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_3416674622820209487")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_3416674622820209487")
if (explanation != null) {
explanation.style.display = "block";
}
}
});
</script>
</div>
</div>
</section>
<section id="question-7" class="level6">
<h6 class="anchored" data-anchor-id="question-7">Question</h6>
<p>Use Newtons method to find a root of <span class="math inline">\(f(x) = x^5 + x -1\)</span>. Make a quick graph to find a reasonable starting point.</p>
<div class="cell" data-hold="true" data-execution_count="54">
<div class="cell-output cell-output-display" data-execution_count="55">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="7565855497422298045" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_7565855497422298045">
<div style="padding-top: 5px">
<br>
<div class="input-group">
<input id="7565855497422298045" type="number" class="form-control" placeholder="Numeric answer">
</div>
</div>
</div>
<div id="7565855497422298045_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.getElementById("7565855497422298045").addEventListener("change", function() {
var correct = (Math.abs(this.value - 0.7548776662466927) <= 0.001);
var msgBox = document.getElementById('7565855497422298045_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_7565855497422298045")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_7565855497422298045")
if (explanation != null) {
explanation.style.display = "block";
}
}
});
</script>
</div>
</div>
</section>
<section id="question-8" class="level6">
<h6 class="anchored" data-anchor-id="question-8">Question</h6>
<p>For the following graph, graphically consider the algorithm for a few different starting points.</p>
<div class="cell" data-hold="true" data-execution_count="56">
<div class="cell-output cell-output-display" data-execution_count="57">
<p><img src="newtons_method_files/figure-html/cell-57-output-1.svg" class="img-fluid"></p>
</div>
</div>
<p>If <span class="math inline">\(x_0\)</span> is <span class="math inline">\(1\)</span> what occurs?</p>
<div class="cell" data-execution_count="57">
<div class="cell-output cell-output-display" data-execution_count="58">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="8622224337604293786" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_8622224337604293786">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_8622224337604293786_1">
<input class="form-check-input" type="radio" name="radio_8622224337604293786" id="radio_8622224337604293786_1" value="1">
<span class="label-body px-1">
The algorithm converges very quickly. A good initial point was chosen.
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_8622224337604293786_2">
<input class="form-check-input" type="radio" name="radio_8622224337604293786" id="radio_8622224337604293786_2" value="2">
<span class="label-body px-1">
The algorithm converges, but slowly. The initial point is close enough to the answer to ensure decreasing errors.
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_8622224337604293786_3">
<input class="form-check-input" type="radio" name="radio_8622224337604293786" id="radio_8622224337604293786_3" value="3">
<span class="label-body px-1">
The algrithm fails to converge, as it cycles about
</span>
</label>
</div>
</div>
</div>
<div id="8622224337604293786_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_8622224337604293786"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 1;
var msgBox = document.getElementById('8622224337604293786_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_8622224337604293786")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_8622224337604293786")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
<p>When <span class="math inline">\(x_0 = 1.0\)</span> the following values are true for <span class="math inline">\(f\)</span>:</p>
<div class="cell" data-execution_count="58">
<div class="cell-output cell-output-display" data-execution_count="59">
<pre><code>(e₀ = -0.16730397826141874, f₀ = 6.0, f̄₀ = 31.81133480963258, ē₁ = 0.0742015850567364)</code></pre>
</div>
</div>
<p>Where the values <code>f̄₀</code> and <code>ē₁</code> are worst-case estimates when <span class="math inline">\(\xi\)</span> is between <span class="math inline">\(x_0\)</span> and the zero.</p>
<p>Does the magnitude of the error increase or decrease in the first step?</p>
<div class="cell" data-hold="true" data-execution_count="59">
<div class="cell-output cell-output-display" data-execution_count="60">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="6469702607136678106" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_6469702607136678106">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_6469702607136678106_1">
<input class="form-check-input" type="radio" name="radio_6469702607136678106" id="radio_6469702607136678106_1" value="1">
<span class="label-body px-1">
Appears to increase
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_6469702607136678106_2">
<input class="form-check-input" type="radio" name="radio_6469702607136678106" id="radio_6469702607136678106_2" value="2">
<span class="label-body px-1">
It decreases
</span>
</label>
</div>
</div>
</div>
<div id="6469702607136678106_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_6469702607136678106"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 2;
var msgBox = document.getElementById('6469702607136678106_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_6469702607136678106")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_6469702607136678106")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
<p>If <span class="math inline">\(x_0\)</span> is set near <span class="math inline">\(0.40\)</span> what happens?</p>
<div class="cell" data-hold="true" data-execution_count="60">
<div class="cell-output cell-output-display" data-execution_count="61">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="14834489361796507382" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_14834489361796507382">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_14834489361796507382_1">
<input class="form-check-input" type="radio" name="radio_14834489361796507382" id="radio_14834489361796507382_1" value="1">
<span class="label-body px-1">
The algorithm converges very quickly. A good initial point was chosen.
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_14834489361796507382_2">
<input class="form-check-input" type="radio" name="radio_14834489361796507382" id="radio_14834489361796507382_2" value="2">
<span class="label-body px-1">
The algorithm converges, but slowly. The initial point is close enough to the answer to ensure decreasing errors.
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_14834489361796507382_3">
<input class="form-check-input" type="radio" name="radio_14834489361796507382" id="radio_14834489361796507382_3" value="3">
<span class="label-body px-1">
The algrithm fails to converge, as it cycles about
</span>
</label>
</div>
</div>
</div>
<div id="14834489361796507382_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_14834489361796507382"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 3;
var msgBox = document.getElementById('14834489361796507382_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_14834489361796507382")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_14834489361796507382")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
<p>When <span class="math inline">\(x_0 = 0.4\)</span> the following values are true for <span class="math inline">\(f\)</span>:</p>
<div class="cell" data-hold="true" data-execution_count="61">
<div class="cell-output cell-output-display" data-execution_count="62">
<pre><code>(e₀ = -0.7673039782614187, f₀ = 1.1280000000000001, f̄₀ = 31.81133480963258, ē₁ = 8.301903808997139)</code></pre>
</div>
</div>
<p>Where the values <code>f̄₀</code> and <code>ē₁</code> are worst-case estimates when <span class="math inline">\(\xi\)</span> is between <span class="math inline">\(x_0\)</span> and the zero.</p>
<p>Does the magnitude of the error increase or decrease in the first step?</p>
<div class="cell" data-hold="true" data-execution_count="62">
<div class="cell-output cell-output-display" data-execution_count="63">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="12495716582161077290" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_12495716582161077290">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_12495716582161077290_1">
<input class="form-check-input" type="radio" name="radio_12495716582161077290" id="radio_12495716582161077290_1" value="1">
<span class="label-body px-1">
Appears to increase
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_12495716582161077290_2">
<input class="form-check-input" type="radio" name="radio_12495716582161077290" id="radio_12495716582161077290_2" value="2">
<span class="label-body px-1">
It decreases
</span>
</label>
</div>
</div>
</div>
<div id="12495716582161077290_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_12495716582161077290"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 1;
var msgBox = document.getElementById('12495716582161077290_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_12495716582161077290")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_12495716582161077290")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
<p>If <span class="math inline">\(x_0\)</span> is set near <span class="math inline">\(0.75\)</span> what happens?</p>
<div class="cell" data-hold="true" data-execution_count="63">
<div class="cell-output cell-output-display" data-execution_count="64">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="6797409094054490614" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_6797409094054490614">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_6797409094054490614_1">
<input class="form-check-input" type="radio" name="radio_6797409094054490614" id="radio_6797409094054490614_1" value="1">
<span class="label-body px-1">
The algorithm converges very quickly. A good initial point was chosen.
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_6797409094054490614_2">
<input class="form-check-input" type="radio" name="radio_6797409094054490614" id="radio_6797409094054490614_2" value="2">
<span class="label-body px-1">
The algorithm converges, but slowly. The initial point is close enough to the answer to ensure decreasing errors.
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_6797409094054490614_3">
<input class="form-check-input" type="radio" name="radio_6797409094054490614" id="radio_6797409094054490614_3" value="3">
<span class="label-body px-1">
The algrithm fails to converge, as it cycles about
</span>
</label>
</div>
</div>
</div>
<div id="6797409094054490614_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_6797409094054490614"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 3;
var msgBox = document.getElementById('6797409094054490614_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_6797409094054490614")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_6797409094054490614")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
</section>
<section id="question-9" class="level6">
<h6 class="anchored" data-anchor-id="question-9">Question</h6>
<p>Will Newtons method converge for the function <span class="math inline">\(f(x) = x^5 - x + 1\)</span> starting at <span class="math inline">\(x=1\)</span>?</p>
<div class="cell" data-hold="true" data-execution_count="64">
<div class="cell-output cell-output-display" data-execution_count="65">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="4922472479738442564" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_4922472479738442564">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_4922472479738442564_1">
<input class="form-check-input" type="radio" name="radio_4922472479738442564" id="radio_4922472479738442564_1" value="1">
<span class="label-body px-1">
Yes
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_4922472479738442564_2">
<input class="form-check-input" type="radio" name="radio_4922472479738442564" id="radio_4922472479738442564_2" value="2">
<span class="label-body px-1">
No. The initial guess is not close enough
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_4922472479738442564_3">
<input class="form-check-input" type="radio" name="radio_4922472479738442564" id="radio_4922472479738442564_3" value="3">
<span class="label-body px-1">
No. The second derivative is too big
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_4922472479738442564_4">
<input class="form-check-input" type="radio" name="radio_4922472479738442564" id="radio_4922472479738442564_4" value="4">
<span class="label-body px-1">
No. The first derivative gets too close to \(0\) for one of the \(x_i\)
</span>
</label>
</div>
</div>
</div>
<div id="4922472479738442564_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_4922472479738442564"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 2;
var msgBox = document.getElementById('4922472479738442564_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_4922472479738442564")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_4922472479738442564")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
</section>
<section id="question-10" class="level6">
<h6 class="anchored" data-anchor-id="question-10">Question</h6>
<p>Will Newtons method converge for the function <span class="math inline">\(f(x) = 4x^5 - x + 1\)</span> starting at <span class="math inline">\(x=1\)</span>?</p>
<div class="cell" data-hold="true" data-execution_count="65">
<div class="cell-output cell-output-display" data-execution_count="66">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="5925612931919288257" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_5925612931919288257">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_5925612931919288257_1">
<input class="form-check-input" type="radio" name="radio_5925612931919288257" id="radio_5925612931919288257_1" value="1">
<span class="label-body px-1">
Yes
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_5925612931919288257_2">
<input class="form-check-input" type="radio" name="radio_5925612931919288257" id="radio_5925612931919288257_2" value="2">
<span class="label-body px-1">
No. The initial guess is not close enough
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_5925612931919288257_3">
<input class="form-check-input" type="radio" name="radio_5925612931919288257" id="radio_5925612931919288257_3" value="3">
<span class="label-body px-1">
No. The second derivative is too big, or does not exist
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_5925612931919288257_4">
<input class="form-check-input" type="radio" name="radio_5925612931919288257" id="radio_5925612931919288257_4" value="4">
<span class="label-body px-1">
No. The first derivative gets too close to \(0\) for one of the \(x_i\)
</span>
</label>
</div>
</div>
</div>
<div id="5925612931919288257_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_5925612931919288257"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 2;
var msgBox = document.getElementById('5925612931919288257_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_5925612931919288257")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_5925612931919288257")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
</section>
<section id="question-11" class="level6">
<h6 class="anchored" data-anchor-id="question-11">Question</h6>
<p>Will Newtons method converge for the function <span class="math inline">\(f(x) = x^{10} - 2x^3 - x + 1\)</span> starting from <span class="math inline">\(0.25\)</span>?</p>
<div class="cell" data-hold="true" data-execution_count="66">
<div class="cell-output cell-output-display" data-execution_count="67">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="7327880059351161960" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_7327880059351161960">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_7327880059351161960_1">
<input class="form-check-input" type="radio" name="radio_7327880059351161960" id="radio_7327880059351161960_1" value="1">
<span class="label-body px-1">
Yes
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_7327880059351161960_2">
<input class="form-check-input" type="radio" name="radio_7327880059351161960" id="radio_7327880059351161960_2" value="2">
<span class="label-body px-1">
No. The initial guess is not close enough
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_7327880059351161960_3">
<input class="form-check-input" type="radio" name="radio_7327880059351161960" id="radio_7327880059351161960_3" value="3">
<span class="label-body px-1">
No. The second derivative is too big, or does not exist
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_7327880059351161960_4">
<input class="form-check-input" type="radio" name="radio_7327880059351161960" id="radio_7327880059351161960_4" value="4">
<span class="label-body px-1">
No. The first derivative gets too close to \(0\) for one of the \(x_i\)
</span>
</label>
</div>
</div>
</div>
<div id="7327880059351161960_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_7327880059351161960"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 1;
var msgBox = document.getElementById('7327880059351161960_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_7327880059351161960")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_7327880059351161960")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
</section>
<section id="question-12" class="level6">
<h6 class="anchored" data-anchor-id="question-12">Question</h6>
<p>Will Newtons method converge for <span class="math inline">\(f(x) = 20x/(100 x^2 + 1)\)</span> starting at <span class="math inline">\(0.1\)</span>?</p>
<div class="cell" data-hold="true" data-execution_count="67">
<div class="cell-output cell-output-display" data-execution_count="68">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="8730087032757148508" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_8730087032757148508">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_8730087032757148508_1">
<input class="form-check-input" type="radio" name="radio_8730087032757148508" id="radio_8730087032757148508_1" value="1">
<span class="label-body px-1">
Yes
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_8730087032757148508_2">
<input class="form-check-input" type="radio" name="radio_8730087032757148508" id="radio_8730087032757148508_2" value="2">
<span class="label-body px-1">
No. The initial guess is not close enough
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_8730087032757148508_3">
<input class="form-check-input" type="radio" name="radio_8730087032757148508" id="radio_8730087032757148508_3" value="3">
<span class="label-body px-1">
No. The second derivative is too big, or does not exist
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_8730087032757148508_4">
<input class="form-check-input" type="radio" name="radio_8730087032757148508" id="radio_8730087032757148508_4" value="4">
<span class="label-body px-1">
No. The first derivative gets too close to \(0\) for one of the \(x_i\)
</span>
</label>
</div>
</div>
</div>
<div id="8730087032757148508_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_8730087032757148508"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 4;
var msgBox = document.getElementById('8730087032757148508_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_8730087032757148508")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_8730087032757148508")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
</section>
<section id="question-13" class="level6">
<h6 class="anchored" data-anchor-id="question-13">Question</h6>
<p>Will Newtons method converge to a zero for <span class="math inline">\(f(x) = \sqrt{(1 - x^2)^2}\)</span>?</p>
<div class="cell" data-hold="true" data-execution_count="68">
<div class="cell-output cell-output-display" data-execution_count="69">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="17171956991069004407" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_17171956991069004407">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_17171956991069004407_1">
<input class="form-check-input" type="radio" name="radio_17171956991069004407" id="radio_17171956991069004407_1" value="1">
<span class="label-body px-1">
Yes
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_17171956991069004407_2">
<input class="form-check-input" type="radio" name="radio_17171956991069004407" id="radio_17171956991069004407_2" value="2">
<span class="label-body px-1">
No. The initial guess is not close enough
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_17171956991069004407_3">
<input class="form-check-input" type="radio" name="radio_17171956991069004407" id="radio_17171956991069004407_3" value="3">
<span class="label-body px-1">
No. The second derivative is too big, or does not exist
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_17171956991069004407_4">
<input class="form-check-input" type="radio" name="radio_17171956991069004407" id="radio_17171956991069004407_4" value="4">
<span class="label-body px-1">
No. The first derivative gets too close to \(0\) for one of the \(x_i\)
</span>
</label>
</div>
</div>
</div>
<div id="17171956991069004407_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_17171956991069004407"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 3;
var msgBox = document.getElementById('17171956991069004407_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_17171956991069004407")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_17171956991069004407")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
</section>
<section id="question-14" class="level6">
<h6 class="anchored" data-anchor-id="question-14">Question</h6>
<p>Use Newtons method to find a root of <span class="math inline">\(f(x) = 4x^4 - 5x^3 + 4x^2 -20x -6\)</span> starting at <span class="math inline">\(x_0 = 0\)</span>.</p>
<div class="cell" data-hold="true" data-execution_count="69">
<div class="cell-output cell-output-display" data-execution_count="70">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="9581185798730449798" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_9581185798730449798">
<div style="padding-top: 5px">
<br>
<div class="input-group">
<input id="9581185798730449798" type="number" class="form-control" placeholder="Numeric answer">
</div>
</div>
</div>
<div id="9581185798730449798_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.getElementById("9581185798730449798").addEventListener("change", function() {
var correct = (Math.abs(this.value - -0.27798094871260326) <= 0.001);
var msgBox = document.getElementById('9581185798730449798_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_9581185798730449798")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_9581185798730449798")
if (explanation != null) {
explanation.style.display = "block";
}
}
});
</script>
</div>
</div>
</section>
<section id="question-15" class="level6">
<h6 class="anchored" data-anchor-id="question-15">Question</h6>
<p>Use Newtons method to find a zero of <span class="math inline">\(f(x) = \sin(x) - x/2\)</span> that is <em>bigger</em> than <span class="math inline">\(0\)</span>.</p>
<div class="cell" data-hold="true" data-execution_count="70">
<div class="cell-output cell-output-display" data-execution_count="71">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="11394949529701006511" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_11394949529701006511">
<div style="padding-top: 5px">
<br>
<div class="input-group">
<input id="11394949529701006511" type="number" class="form-control" placeholder="Numeric answer">
</div>
</div>
</div>
<div id="11394949529701006511_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.getElementById("11394949529701006511").addEventListener("change", function() {
var correct = (Math.abs(this.value - 1.895494267033981) <= 0.001);
var msgBox = document.getElementById('11394949529701006511_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_11394949529701006511")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_11394949529701006511")
if (explanation != null) {
explanation.style.display = "block";
}
}
});
</script>
</div>
</div>
</section>
<section id="question-16" class="level6">
<h6 class="anchored" data-anchor-id="question-16">Question</h6>
<p>The Newton baffler (defined below) is so named, as Newtons method will fail to find the root for most starting points.</p>
<div class="cell" data-execution_count="71">
<div class="sourceCode cell-code" id="cb85"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb85-1"><a href="#cb85-1" aria-hidden="true" tabindex="-1"></a><span class="kw">function</span> <span class="fu">newton_baffler</span>(x)</span>
<span id="cb85-2"><a href="#cb85-2" aria-hidden="true" tabindex="-1"></a> <span class="cf">if</span> ( x <span class="op">-</span> <span class="fl">0.0</span> ) <span class="op">&lt;</span> <span class="op">-</span><span class="fl">0.25</span></span>
<span id="cb85-3"><a href="#cb85-3" aria-hidden="true" tabindex="-1"></a> <span class="fl">0.75</span> <span class="op">*</span> ( x <span class="op">-</span> <span class="fl">0</span> ) <span class="op">-</span> <span class="fl">0.3125</span></span>
<span id="cb85-4"><a href="#cb85-4" aria-hidden="true" tabindex="-1"></a> <span class="cf">elseif</span> ( x <span class="op">-</span> <span class="fl">0</span> ) <span class="op">&lt;</span> <span class="fl">0.25</span></span>
<span id="cb85-5"><a href="#cb85-5" aria-hidden="true" tabindex="-1"></a> <span class="fl">2.0</span> <span class="op">*</span> ( x <span class="op">-</span> <span class="fl">0</span> )</span>
<span id="cb85-6"><a href="#cb85-6" aria-hidden="true" tabindex="-1"></a> <span class="cf">else</span></span>
<span id="cb85-7"><a href="#cb85-7" aria-hidden="true" tabindex="-1"></a> <span class="fl">0.75</span> <span class="op">*</span> ( x <span class="op">-</span> <span class="fl">0</span> ) <span class="op">+</span> <span class="fl">0.3125</span></span>
<span id="cb85-8"><a href="#cb85-8" aria-hidden="true" tabindex="-1"></a> <span class="cf">end</span></span>
<span id="cb85-9"><a href="#cb85-9" aria-hidden="true" tabindex="-1"></a><span class="kw">end</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="72">
<pre><code>newton_baffler (generic function with 1 method)</code></pre>
</div>
</div>
<p>Will Newtons method find the zero at <span class="math inline">\(0.0\)</span> starting at <span class="math inline">\(1\)</span>?</p>
<div class="cell" data-hold="true" data-execution_count="72">
<div class="cell-output cell-output-display" data-execution_count="73">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="4781000657058834030" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_4781000657058834030">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_4781000657058834030_1">
<input class="form-check-input" type="radio" name="radio_4781000657058834030" id="radio_4781000657058834030_1" value="1">
<span class="label-body px-1">
Yes
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_4781000657058834030_2">
<input class="form-check-input" type="radio" name="radio_4781000657058834030" id="radio_4781000657058834030_2" value="2">
<span class="label-body px-1">
No
</span>
</label>
</div>
</div>
</div>
<div id="4781000657058834030_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_4781000657058834030"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 2;
var msgBox = document.getElementById('4781000657058834030_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_4781000657058834030")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_4781000657058834030")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
<p>Considering this plot:</p>
<div class="cell" data-hold="true" data-execution_count="73">
<div class="sourceCode cell-code" id="cb87"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb87-1"><a href="#cb87-1" aria-hidden="true" tabindex="-1"></a><span class="fu">plot</span>(newton_baffler, <span class="op">-</span><span class="fl">1.1</span>, <span class="fl">1.1</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="74">
<p><img src="newtons_method_files/figure-html/cell-74-output-1.svg" class="img-fluid"></p>
</div>
</div>
<p>Starting with <span class="math inline">\(x_0=1\)</span>, you can see why Newtons method will fail. Why?</p>
<div class="cell" data-hold="true" data-execution_count="74">
<div class="cell-output cell-output-display" data-execution_count="75">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="3431105032566557125" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_3431105032566557125">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_3431105032566557125_1">
<input class="form-check-input" type="radio" name="radio_3431105032566557125" id="radio_3431105032566557125_1" value="1">
<span class="label-body px-1">
The first derivative is \(0\) at \(1\)
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_3431105032566557125_2">
<input class="form-check-input" type="radio" name="radio_3431105032566557125" id="radio_3431105032566557125_2" value="2">
<span class="label-body px-1">
It doesn't fail, it converges to \(0\)
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_3431105032566557125_3">
<input class="form-check-input" type="radio" name="radio_3431105032566557125" id="radio_3431105032566557125_3" value="3">
<span class="label-body px-1">
The tangent lines for \(|x| &gt; 0.25\) intersect at \(x\) values with \(|x| &gt; 0.25\)
</span>
</label>
</div>
</div>
</div>
<div id="3431105032566557125_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_3431105032566557125"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 3;
var msgBox = document.getElementById('3431105032566557125_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_3431105032566557125")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_3431105032566557125")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
<p>This function does not have a small first derivative; or a large second derivative; and the bump up can be made as close to the origin as desired, so the starting point can be very close to the zero. However, even though the conditions of the error term are satisfied, the error term does not apply, as <span class="math inline">\(f\)</span> is not continuously differentiable.</p>
</section>
<section id="question-17" class="level6">
<h6 class="anchored" data-anchor-id="question-17">Question</h6>
<p>Let <span class="math inline">\(f(x) = \sin(x) - x/4\)</span>. Starting at <span class="math inline">\(x_0 = 2\pi\)</span> Newtons method will converge to a value, but it will take many steps. Using the argument <code>verbose=true</code> for <code>find_zero</code>, how many steps does it take:</p>
<div class="cell" data-hold="true" data-execution_count="75">
<div class="cell-output cell-output-display" data-execution_count="76">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="5835986866942264526" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_5835986866942264526">
<div style="padding-top: 5px">
<br>
<div class="input-group">
<input id="5835986866942264526" type="number" class="form-control" placeholder="Numeric answer">
</div>
</div>
</div>
<div id="5835986866942264526_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.getElementById("5835986866942264526").addEventListener("change", function() {
var correct = (Math.abs(this.value - 22) <= 2);
var msgBox = document.getElementById('5835986866942264526_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_5835986866942264526")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_5835986866942264526")
if (explanation != null) {
explanation.style.display = "block";
}
}
});
</script>
</div>
</div>
<p>What is the zero that is found?</p>
<div class="cell" data-hold="true" data-execution_count="76">
<div class="cell-output cell-output-display" data-execution_count="77">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="5797384934421889060" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_5797384934421889060">
<div style="padding-top: 5px">
<br>
<div class="input-group">
<input id="5797384934421889060" type="number" class="form-control" placeholder="Numeric answer">
</div>
</div>
</div>
<div id="5797384934421889060_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.getElementById("5797384934421889060").addEventListener("change", function() {
var correct = (Math.abs(this.value - -2.4745767873698292) <= 0.001);
var msgBox = document.getElementById('5797384934421889060_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_5797384934421889060")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_5797384934421889060")
if (explanation != null) {
explanation.style.display = "block";
}
}
});
</script>
</div>
</div>
<p>Is this the closest zero to the starting point, <span class="math inline">\(x_0\)</span>?</p>
<div class="cell" data-hold="true" data-execution_count="77">
<div class="cell-output cell-output-display" data-execution_count="78">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="4439696903478098272" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_4439696903478098272">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_4439696903478098272_1">
<input class="form-check-input" type="radio" name="radio_4439696903478098272" id="radio_4439696903478098272_1" value="1">
<span class="label-body px-1">
Yes
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_4439696903478098272_2">
<input class="form-check-input" type="radio" name="radio_4439696903478098272" id="radio_4439696903478098272_2" value="2">
<span class="label-body px-1">
No
</span>
</label>
</div>
</div>
</div>
<div id="4439696903478098272_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_4439696903478098272"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 2;
var msgBox = document.getElementById('4439696903478098272_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_4439696903478098272")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_4439696903478098272")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
</section>
<section id="question-18" class="level6">
<h6 class="anchored" data-anchor-id="question-18">Question</h6>
<p>Quadratic convergence of Newtons method only applies to <em>simple</em> roots. For example, we can see (using the <code>verbose=true</code> argument to the <code>Roots</code> packages <code>newton</code> method, that it only takes <span class="math inline">\(4\)</span> steps to find a zero to <span class="math inline">\(f(x) = \cos(x) - x\)</span> starting at <span class="math inline">\(x_0 = 1\)</span>. But it takes many more steps to find the same zero for <span class="math inline">\(f(x) = (\cos(x) - x)^2\)</span>.</p>
<p>How many?</p>
<div class="cell" data-hold="true" data-execution_count="78">
<div class="cell-output cell-output-display" data-execution_count="79">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="3758309827326110847" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_3758309827326110847">
<div style="padding-top: 5px">
<br>
<div class="input-group">
<input id="3758309827326110847" type="number" class="form-control" placeholder="Numeric answer">
</div>
</div>
</div>
<div id="3758309827326110847_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.getElementById("3758309827326110847").addEventListener("change", function() {
var correct = (Math.abs(this.value - 24) <= 2);
var msgBox = document.getElementById('3758309827326110847_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_3758309827326110847")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_3758309827326110847")
if (explanation != null) {
explanation.style.display = "block";
}
}
});
</script>
</div>
</div>
</section>
<section id="question-implicit-equations" class="level6">
<h6 class="anchored" data-anchor-id="question-implicit-equations">Question: Implicit equations</h6>
<p>The equation <span class="math inline">\(x^2 + x\cdot y + y^2 = 1\)</span> is a rotated ellipse.</p>
<div class="cell" data-hold="true" data-execution_count="79">
<div class="cell-output cell-output-display" data-execution_count="80">
<p><img src="newtons_method_files/figure-html/cell-80-output-1.svg" class="img-fluid"></p>
</div>
</div>
<p>Can we find which point on its graph has the largest <span class="math inline">\(y\)</span> value?</p>
<p>This would be straightforward <em>if</em> we could write <span class="math inline">\(y(x) = \dots\)</span>, for then we would simply find the critical points and investiate. But we cant so easily solve for <span class="math inline">\(y\)</span> interms of <span class="math inline">\(x\)</span>. However, we can use Newtons method to do so:</p>
<div class="cell" data-execution_count="80">
<div class="sourceCode cell-code" id="cb88"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb88-1"><a href="#cb88-1" aria-hidden="true" tabindex="-1"></a><span class="kw">function</span> <span class="fu">findy</span>(x)</span>
<span id="cb88-2"><a href="#cb88-2" aria-hidden="true" tabindex="-1"></a> fn <span class="op">=</span> y <span class="op">-&gt;</span> (x<span class="op">^</span><span class="fl">2</span> <span class="op">+</span> x<span class="op">*</span>y <span class="op">+</span> y<span class="op">^</span><span class="fl">2</span>) <span class="op">-</span> <span class="fl">1</span></span>
<span id="cb88-3"><a href="#cb88-3" aria-hidden="true" tabindex="-1"></a> fp <span class="op">=</span> y <span class="op">-&gt;</span> (x <span class="op">+</span> <span class="fl">2</span>y)</span>
<span id="cb88-4"><a href="#cb88-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">find_zero</span>((fn, fp), <span class="fu">sqrt</span>(<span class="fl">1</span> <span class="op">-</span> x<span class="op">^</span><span class="fl">2</span>), Roots.<span class="fu">Newton</span>())</span>
<span id="cb88-5"><a href="#cb88-5" aria-hidden="true" tabindex="-1"></a><span class="kw">end</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="81">
<pre><code>findy (generic function with 1 method)</code></pre>
</div>
</div>
<p>For a <em>fixed</em> x, this solves for <span class="math inline">\(y\)</span> in the equation: <span class="math inline">\(F(y) = x^2 + x \cdot y + y^2 - 1 = 0\)</span>. It should be that <span class="math inline">\((x,y)\)</span> is a solution:</p>
<div class="cell" data-hold="true" data-execution_count="81">
<div class="sourceCode cell-code" id="cb90"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb90-1"><a href="#cb90-1" aria-hidden="true" tabindex="-1"></a>x <span class="op">=</span> <span class="fl">.75</span></span>
<span id="cb90-2"><a href="#cb90-2" aria-hidden="true" tabindex="-1"></a>y <span class="op">=</span> <span class="fu">findy</span>(x)</span>
<span id="cb90-3"><a href="#cb90-3" aria-hidden="true" tabindex="-1"></a>x<span class="op">^</span><span class="fl">2</span> <span class="op">+</span> x<span class="op">*</span>y <span class="op">+</span> y<span class="op">^</span><span class="fl">2</span> <span class="co">## is this 1?</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="82">
<pre><code>1.0000000000000002</code></pre>
</div>
</div>
<p>So we have a means to find <span class="math inline">\(y(x)\)</span>, but it is implicit.</p>
<p>Using <code>find_zero</code>, find the value <span class="math inline">\(x\)</span> which maximizes <code>y</code> by finding a zero of <code>y'</code>. Use this to find the point <span class="math inline">\((x,y)\)</span> with largest <span class="math inline">\(y\)</span> value.</p>
<div class="cell" data-hold="true" data-execution_count="82">
<div class="cell-output cell-output-display" data-execution_count="83">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="16429128305262743027" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_16429128305262743027">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_16429128305262743027_1">
<input class="form-check-input" type="radio" name="radio_16429128305262743027" id="radio_16429128305262743027_1" value="1">
<span class="label-body px-1">
\((-0.57735, 1.15470)\)
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_16429128305262743027_2">
<input class="form-check-input" type="radio" name="radio_16429128305262743027" id="radio_16429128305262743027_2" value="2">
<span class="label-body px-1">
\((0.57735, 0.57735)\)
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_16429128305262743027_3">
<input class="form-check-input" type="radio" name="radio_16429128305262743027" id="radio_16429128305262743027_3" value="3">
<span class="label-body px-1">
\((0, -0.57735)\)
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_16429128305262743027_4">
<input class="form-check-input" type="radio" name="radio_16429128305262743027" id="radio_16429128305262743027_4" value="4">
<span class="label-body px-1">
\((0,0)\)
</span>
</label>
</div>
</div>
</div>
<div id="16429128305262743027_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_16429128305262743027"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 1;
var msgBox = document.getElementById('16429128305262743027_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_16429128305262743027")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_16429128305262743027")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
<p>(Using automatic derivatives works for values identified with <code>find_zero</code> <em>as long as</em> the initial point has its type the same as that of <code>x</code>.)</p>
</section>
<section id="question-19" class="level6">
<h6 class="anchored" data-anchor-id="question-19">Question</h6>
<p>In the last problem we used an <em>approximate</em> derivative (forward difference) in place of the derivative. This can introduce an error due to the approximation. Would Newtons method still converge if the derivative in the algorithm were replaced with an approximate derivative? In general, this can often be done <em>but</em> the convergence can be <em>slower</em> and the sensitivity to a poor initial guess even greater.</p>
<p>Three common approximations are given by the difference quotient for a fixed <span class="math inline">\(h\)</span>: <span class="math inline">\(f'(x_i) \approx (f(x_i+h)-f(x_i))/h\)</span>; the secant line approximation: <span class="math inline">\(f'(x_i) \approx (f(x_i) - f(x_{i-1})) / (x_i - x_{i-1})\)</span>; and the Steffensen approximation <span class="math inline">\(f'(x_i) \approx (f(x_i + f(x_i)) - f(x_i)) / f(x_i)\)</span> (using <span class="math inline">\(h=f(x_i)\)</span>).</p>
<p>Lets revisit the <span class="math inline">\(4\)</span>-step convergence of Newtons method to the root of <span class="math inline">\(f(x) = 1/x - q\)</span> when <span class="math inline">\(q=0.8\)</span>. Will these methods be as fast?</p>
<p>Lets define the above approximations for a given <code>f</code>:</p>
<div class="cell" data-execution_count="83">
<div class="sourceCode cell-code" id="cb92"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb92-1"><a href="#cb92-1" aria-hidden="true" tabindex="-1"></a>q₀ <span class="op">=</span> <span class="fl">0.8</span></span>
<span id="cb92-2"><a href="#cb92-2" aria-hidden="true" tabindex="-1"></a><span class="fu">fq</span>(x) <span class="op">=</span> <span class="fl">1</span><span class="op">/</span>x <span class="op">-</span> q₀</span>
<span id="cb92-3"><a href="#cb92-3" aria-hidden="true" tabindex="-1"></a><span class="fu">secant_approx</span>(x0,x1) <span class="op">=</span> (<span class="fu">fq</span>(x1) <span class="op">-</span> <span class="fu">f</span>(x0)) <span class="op">/</span> (x1 <span class="op">-</span> x0)</span>
<span id="cb92-4"><a href="#cb92-4" aria-hidden="true" tabindex="-1"></a><span class="fu">diffq_approx</span>(x0, h) <span class="op">=</span> <span class="fu">secant_approx</span>(x0, x0<span class="op">+</span>h)</span>
<span id="cb92-5"><a href="#cb92-5" aria-hidden="true" tabindex="-1"></a><span class="fu">steff_approx</span>(x0) <span class="op">=</span> <span class="fu">diffq_approx</span>(x0, <span class="fu">fq</span>(x0))</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="84">
<pre><code>steff_approx (generic function with 1 method)</code></pre>
</div>
</div>
<p>Then using the difference quotient would look like:</p>
<div class="cell" data-hold="true" data-execution_count="84">
<div class="sourceCode cell-code" id="cb94"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb94-1"><a href="#cb94-1" aria-hidden="true" tabindex="-1"></a>Δ <span class="op">=</span> <span class="fl">1e-6</span></span>
<span id="cb94-2"><a href="#cb94-2" aria-hidden="true" tabindex="-1"></a>x1 <span class="op">=</span> <span class="fl">42</span><span class="op">/</span><span class="fl">17</span> <span class="op">-</span> <span class="fl">32</span><span class="op">/</span><span class="fl">17</span> <span class="op">*</span> q₀</span>
<span id="cb94-3"><a href="#cb94-3" aria-hidden="true" tabindex="-1"></a>x1 <span class="op">=</span> x1 <span class="op">-</span> <span class="fu">fq</span>(x1) <span class="op">/</span> <span class="fu">diffq_approx</span>(x1, Δ) <span class="co"># |x1 - xstar| = 0.06511395862036995</span></span>
<span id="cb94-4"><a href="#cb94-4" aria-hidden="true" tabindex="-1"></a>x1 <span class="op">=</span> x1 <span class="op">-</span> <span class="fu">fq</span>(x1) <span class="op">/</span> <span class="fu">diffq_approx</span>(x1, Δ) <span class="co"># |x1 - xstar| = 0.003391809999860218; etc</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="85">
<pre><code>0.9647072573629651</code></pre>
</div>
</div>
<p>The Steffensen method would look like:</p>
<div class="cell" data-hold="true" data-execution_count="85">
<div class="sourceCode cell-code" id="cb96"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb96-1"><a href="#cb96-1" aria-hidden="true" tabindex="-1"></a>x1 <span class="op">=</span> <span class="fl">42</span><span class="op">/</span><span class="fl">17</span> <span class="op">-</span> <span class="fl">32</span><span class="op">/</span><span class="fl">17</span> <span class="op">*</span> q₀</span>
<span id="cb96-2"><a href="#cb96-2" aria-hidden="true" tabindex="-1"></a>x1 <span class="op">=</span> x1 <span class="op">-</span> <span class="fu">fq</span>(x1) <span class="op">/</span> <span class="fu">steff_approx</span>(x1) <span class="co"># |x1 - xstar| = 0.011117056291670258</span></span>
<span id="cb96-3"><a href="#cb96-3" aria-hidden="true" tabindex="-1"></a>x1 <span class="op">=</span> x1 <span class="op">-</span> <span class="fu">fq</span>(x1) <span class="op">/</span> <span class="fu">steff_approx</span>(x1) <span class="co"># |x1 - xstar| = 3.502579696146313e-5; etc.</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="86">
<pre><code>1.0994223446163458</code></pre>
</div>
</div>
<p>And the secant method like:</p>
<div class="cell" data-hold="true" data-execution_count="86">
<div class="sourceCode cell-code" id="cb98"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb98-1"><a href="#cb98-1" aria-hidden="true" tabindex="-1"></a>Δ <span class="op">=</span> <span class="fl">1e-6</span></span>
<span id="cb98-2"><a href="#cb98-2" aria-hidden="true" tabindex="-1"></a>x1 <span class="op">=</span> <span class="fl">42</span><span class="op">/</span><span class="fl">17</span> <span class="op">-</span> <span class="fl">32</span><span class="op">/</span><span class="fl">17</span> <span class="op">*</span> q₀</span>
<span id="cb98-3"><a href="#cb98-3" aria-hidden="true" tabindex="-1"></a>x0 <span class="op">=</span> x1 <span class="op">-</span> Δ <span class="co"># we need two initial values</span></span>
<span id="cb98-4"><a href="#cb98-4" aria-hidden="true" tabindex="-1"></a>x0, x1 <span class="op">=</span> x1, x1 <span class="op">-</span> <span class="fu">fq</span>(x1) <span class="op">/</span> <span class="fu">secant_approx</span>(x0, x1) <span class="co"># |x1 - xstar| = 8.222358365284066e-6</span></span>
<span id="cb98-5"><a href="#cb98-5" aria-hidden="true" tabindex="-1"></a>x0, x1 <span class="op">=</span> x1, x1 <span class="op">-</span> <span class="fu">fq</span>(x1) <span class="op">/</span> <span class="fu">secant_approx</span>(x0, x1) <span class="co"># |x1 - xstar| = 1.8766323799379592e-6; etc.</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="cell-output cell-output-display" data-execution_count="87">
<pre><code>(0.9647065698627694, 0.9647070425296034)</code></pre>
</div>
</div>
<p>Repeat each of the above algorithms until <code>abs(x1 - 1.25)</code> is <code>0</code> (which will happen for this problem, though not in general). Record the steps.</p>
<ul>
<li>Does the difference quotient need <em>more</em> than <span class="math inline">\(4\)</span> steps?</li>
</ul>
<div class="cell" data-hold="true" data-execution_count="87">
<div class="cell-output cell-output-display" data-execution_count="88">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="10693725185686834160" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_10693725185686834160">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_10693725185686834160_1">
<input class="form-check-input" type="radio" name="radio_10693725185686834160" id="radio_10693725185686834160_1" value="1">
<span class="label-body px-1">
Yes
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_10693725185686834160_2">
<input class="form-check-input" type="radio" name="radio_10693725185686834160" id="radio_10693725185686834160_2" value="2">
<span class="label-body px-1">
No
</span>
</label>
</div>
</div>
</div>
<div id="10693725185686834160_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_10693725185686834160"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 2;
var msgBox = document.getElementById('10693725185686834160_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_10693725185686834160")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_10693725185686834160")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
<ul>
<li>Does the secant method need <em>more</em> than <span class="math inline">\(4\)</span> steps?</li>
</ul>
<div class="cell" data-hold="true" data-execution_count="88">
<div class="cell-output cell-output-display" data-execution_count="89">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="8657586622244441292" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_8657586622244441292">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_8657586622244441292_1">
<input class="form-check-input" type="radio" name="radio_8657586622244441292" id="radio_8657586622244441292_1" value="1">
<span class="label-body px-1">
Yes
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_8657586622244441292_2">
<input class="form-check-input" type="radio" name="radio_8657586622244441292" id="radio_8657586622244441292_2" value="2">
<span class="label-body px-1">
No
</span>
</label>
</div>
</div>
</div>
<div id="8657586622244441292_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_8657586622244441292"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 1;
var msgBox = document.getElementById('8657586622244441292_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_8657586622244441292")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_8657586622244441292")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
<ul>
<li>Does the Steffensen method need <em>more</em> than 4 steps?</li>
</ul>
<div class="cell" data-hold="true" data-execution_count="89">
<div class="cell-output cell-output-display" data-execution_count="90">
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="15118246972029078907" data-controltype="">
<div class="form-group ">
<div class="controls">
<div class="form" id="controls_15118246972029078907">
<div style="padding-top: 5px">
<div class="form-check">
<label class="form-check-label" for="radio_15118246972029078907_1">
<input class="form-check-input" type="radio" name="radio_15118246972029078907" id="radio_15118246972029078907_1" value="1">
<span class="label-body px-1">
Yes
</span>
</label>
</div>
<div class="form-check">
<label class="form-check-label" for="radio_15118246972029078907_2">
<input class="form-check-input" type="radio" name="radio_15118246972029078907" id="radio_15118246972029078907_2" value="2">
<span class="label-body px-1">
No
</span>
</label>
</div>
</div>
</div>
<div id="15118246972029078907_message" style="padding-bottom: 15px"></div>
</div>
</div>
</form>
<script text="text/javascript">
document.querySelectorAll('input[name="radio_15118246972029078907"]').forEach(function(rb) {
rb.addEventListener("change", function() {
var correct = rb.value == 2;
var msgBox = document.getElementById('15118246972029078907_message');
if(correct) {
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍&nbsp; Correct </span></div>";
var explanation = document.getElementById("explanation_15118246972029078907")
if (explanation != null) {
explanation.style.display = "none";
}
} else {
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎&nbsp; Incorrect </span></div>";
var explanation = document.getElementById("explanation_15118246972029078907")
if (explanation != null) {
explanation.style.display = "block";
}
}
})});
</script>
</div>
</div>
<p>All methods work quickly with this well-behaved problem. In general the convergence rates are slightly different for each, with the Steffensen method matching Newtons method and the difference quotient method being slower in general. All can be more sensitive to the initial guess.</p>
</section>
</section>
</main> <!-- /main -->
<script type="ojs-module-contents">
{"contents":[{"methodName":"interpretLenient","cellName":"ojs-cell-1","inline":false,"source":"\nJXG = require(\"jsxgraph\");\n\n// newton's method\n\nb = JXG.JSXGraph.initBoard('jsxgraph', {\n boundingbox: [-3,5,3,-5], axis:true\n});\n\n\nf = function(x) {return x*x*x*x*x - x - 1};\nfp = function(x) { return 4*x*x*x*x - 1};\nx0 = 0.85;\n\nnm = function(x) { return x - f(x)/fp(x);};\n\nl = b.create('point', [-1.5,0], {name:'', size:0});\nr = b.create('point', [1.5,0], {name:'', size:0});\nxaxis = b.create('line', [l,r])\n\n\nP0 = b.create('glider', [x0,0,xaxis], {name:'x0'});\nP0a = b.create('point', [function() {return P0.X();},\n\t\t\t function() {return f(P0.X());}], {name:''});\n\nP1 = b.create('point', [function() {return nm(P0.X());},\n\t\t\t 0], {name:''});\nP1a = b.create('point', [function() {return P1.X();},\n\t\t\t function() {return f(P1.X());}], {name:''});\n\nP2 = b.create('point', [function() {return nm(P1.X());},\n\t\t\t 0], {name:''});\nP2a = b.create('point', [function() {return P2.X();},\n\t\t\t function() {return f(P2.X());}], {name:''});\n\nP3 = b.create('point', [function() {return nm(P2.X());},\n\t\t\t 0], {name:''});\nP3a = b.create('point', [function() {return P3.X();},\n\t\t\t function() {return f(P3.X());}], {name:''});\n\nP4 = b.create('point', [function() {return nm(P3.X());},\n\t\t\t 0], {name:''});\nP4a = b.create('point', [function() {return P4.X();},\n\t\t\t function() {return f(P4.X());}], {name:''});\nP5 = b.create('point', [function() {return nm(P4.X());},\n\t\t\t 0], {name:'x5', strokeColor:'black'});\n\n\n\n\n\nP0a.setAttribute({fixed:true});\nP1.setAttribute({fixed:true});\nP1a.setAttribute({fixed:true});\nP2.setAttribute({fixed:true});\nP2a.setAttribute({fixed:true});\nP3.setAttribute({fixed:true});\nP3a.setAttribute({fixed:true});\nP4.setAttribute({fixed:true});\nP4a.setAttribute({fixed:true});\nP5.setAttribute({fixed:true});\n\nsc = '#000000';\nb.create('segment', [P0,P0a], {strokeColor:sc, strokeWidth:1});\nb.create('segment', [P0a, P1], {strokeColor:sc, strokeWidth:1});\nb.create('segment', [P1,P1a], {strokeColor:sc, strokeWidth:1});\nb.create('segment', [P1a, P2], {strokeColor:sc, strokeWidth:1});\nb.create('segment', [P2,P2a], {strokeColor:sc, strokeWidth:1});\nb.create('segment', [P2a, P3], {strokeColor:sc, strokeWidth:1});\nb.create('segment', [P3,P3a], {strokeColor:sc, strokeWidth:1});\nb.create('segment', [P3a, P4], {strokeColor:sc, strokeWidth:1});\nb.create('segment', [P4,P4a], {strokeColor:sc, strokeWidth:1});\nb.create('segment', [P4a, P5], {strokeColor:sc, strokeWidth:1});\n\nb.create('functiongraph', [f, -1.5, 1.5])\n\n"}]}
</script>
<script type="module">
window._ojs.paths.runtimeToDoc = "../../derivatives";
window._ojs.paths.runtimeToRoot = "../..";
window._ojs.paths.docToRoot = "..";
window._ojs.selfContained = false;
window._ojs.runtime.interpretFromScriptTags();
</script>
<script id="quarto-html-after-body" type="application/javascript">
window.document.addEventListener("DOMContentLoaded", function (event) {
const toggleBodyColorMode = (bsSheetEl) => {
const mode = bsSheetEl.getAttribute("data-mode");
const bodyEl = window.document.querySelector("body");
if (mode === "dark") {
bodyEl.classList.add("quarto-dark");
bodyEl.classList.remove("quarto-light");
} else {
bodyEl.classList.add("quarto-light");
bodyEl.classList.remove("quarto-dark");
}
}
const toggleBodyColorPrimary = () => {
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
if (bsSheetEl) {
toggleBodyColorMode(bsSheetEl);
}
}
toggleBodyColorPrimary();
const icon = "";
const anchorJS = new window.AnchorJS();
anchorJS.options = {
placement: 'right',
icon: icon
};
anchorJS.add('.anchored');
const clipboard = new window.ClipboardJS('.code-copy-button', {
target: function(trigger) {
return trigger.previousElementSibling;
}
});
clipboard.on('success', function(e) {
// button target
const button = e.trigger;
// don't keep focus
button.blur();
// flash "checked"
button.classList.add('code-copy-button-checked');
var currentTitle = button.getAttribute("title");
button.setAttribute("title", "Copied!");
setTimeout(function() {
button.setAttribute("title", currentTitle);
button.classList.remove('code-copy-button-checked');
}, 1000);
// clear code selection
e.clearSelection();
});
function tippyHover(el, contentFn) {
const config = {
allowHTML: true,
content: contentFn,
maxWidth: 500,
delay: 100,
arrow: false,
appendTo: function(el) {
return el.parentElement;
},
interactive: true,
interactiveBorder: 10,
theme: 'quarto',
placement: 'bottom-start'
};
window.tippy(el, config);
}
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
for (var i=0; i<noterefs.length; i++) {
const ref = noterefs[i];
tippyHover(ref, function() {
let href = ref.getAttribute('href');
try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
return note.innerHTML;
});
}
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
for (var i=0; i<bibliorefs.length; i++) {
const ref = bibliorefs[i];
const cites = ref.parentNode.getAttribute('data-cites').split(' ');
tippyHover(ref, function() {
var popup = window.document.createElement('div');
cites.forEach(function(cite) {
var citeDiv = window.document.createElement('div');
citeDiv.classList.add('hanging-indent');
citeDiv.classList.add('csl-entry');
var biblioDiv = window.document.getElementById('ref-' + cite);
if (biblioDiv) {
citeDiv.innerHTML = biblioDiv.innerHTML;
}
popup.appendChild(citeDiv);
});
return popup.innerHTML;
});
}
var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
var filterRegex = new RegExp('/' + window.location.host + '/');
var isInternal = (href) => {
return filterRegex.test(href) || localhostRegex.test(href);
}
// Inspect non-navigation links and adorn them if external
var links = window.document.querySelectorAll('a:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external)');
for (var i=0; i<links.length; i++) {
const link = links[i];
if (!isInternal(link.href)) {
// target, if specified
link.setAttribute("target", "_blank");
}
}
});
</script>
<nav class="page-navigation">
<div class="nav-page nav-page-previous">
<a href="../derivatives/linearization.html" class="pagination-link">
<i class="bi bi-arrow-left-short"></i> <span class="nav-page-text"><span class="chapter-number">29</span>&nbsp; <span class="chapter-title">Linearization</span></span>
</a>
</div>
<div class="nav-page nav-page-next">
<a href="../derivatives/more_zeros.html" class="pagination-link">
<span class="nav-page-text"><span class="chapter-number">31</span>&nbsp; <span class="chapter-title">Derivative-free alternatives to Newtons method</span></span> <i class="bi bi-arrow-right-short"></i>
</a>
</div>
</nav>
</div> <!-- /content -->
<footer class="footer">
<div class="nav-footer">
<div class="nav-footer-center">Copyright 2022, John Verzani</div>
</div>
</footer>
</body></html>