2078 lines
203 KiB
HTML
2078 lines
203 KiB
HTML
<!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 - 46 Arc length</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="../integrals/surface_area.html" rel="next">
|
||
<link href="../integrals/volumes_slice.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 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">46</span> <span class="chapter-title">Arc length</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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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 collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-3" aria-expanded="false">Derivatives</a>
|
||
<a class="sidebar-item-toggle text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-3" aria-expanded="false">
|
||
<i class="bi bi-chevron-right ms-2"></i>
|
||
</a>
|
||
</div>
|
||
<ul id="quarto-sidebar-section-3" class="collapse list-unstyled sidebar-section depth1 ">
|
||
<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> <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> <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> <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> <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> <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> <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> <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> <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"><span class="chapter-number">30</span> <span class="chapter-title">Newton’s 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> <span class="chapter-title">Derivative-free alternatives to Newton’s 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> <span class="chapter-title">L’Hospital’s 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> <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> <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> <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" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-4" aria-expanded="true">Integrals</a>
|
||
<a class="sidebar-item-toggle text-start" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-4" aria-expanded="true">
|
||
<i class="bi bi-chevron-right ms-2"></i>
|
||
</a>
|
||
</div>
|
||
<ul id="quarto-sidebar-section-4" class="collapse list-unstyled sidebar-section depth1 show">
|
||
<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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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 active"><span class="chapter-number">46</span> <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> <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> <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> <span class="chapter-title">Euler’s 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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <span class="chapter-title">Green’s 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> <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> <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> <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> <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> <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> <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> <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> <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="#arc-length-formula" id="toc-arc-length-formula" class="nav-link active" data-scroll-target="#arc-length-formula"> <span class="header-section-number">46.1</span> Arc length formula</a></li>
|
||
<li><a href="#questions" id="toc-questions" class="nav-link" data-scroll-target="#questions"> <span class="header-section-number">46.2</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/integrals/arc_length.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">46</span> <span class="chapter-title">Arc length</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">QuadGK</span></span>
|
||
<span id="cb1-5"><a href="#cb1-5" 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>
|
||
<div class="quarto-figure quarto-figure-center">
|
||
<figure class="figure">
|
||
<p><img src="../integrals/figures/jump-rope.png" class="img-fluid figure-img"></p>
|
||
<p></p><figcaption class="figure-caption">A kids’ jump rope by Lifeline is comprised of little plastic segments of uniform length around a cord. The length of the rope can be computed by adding up the lengths of each segment, regardless of how the rope is arranged.</figcaption><p></p>
|
||
</figure>
|
||
</div>
|
||
<p>The length of the jump rope in the picture can be computed by either looking at the packaging it came in, or measuring the length of each plastic segment and multiplying by the number of segments. The former is easier, the latter provides the intuition as to how we can find the length of curves in the <span class="math inline">\(x-y\)</span> plane. The idea is old, <a href="http://www.maa.org/external_archive/joma/Volume7/Aktumen/Polygon.html">Archimedes</a> used fixed length segments of polygons to approximate <span class="math inline">\(\pi\)</span> using the circumference of circle producing the bounds <span class="math inline">\(3~\frac{1}{7} > \pi > 3~\frac{10}{71}\)</span>.</p>
|
||
<p>A more modern application is the algorithm used by GPS devices to record a path taken. However, rather than record times for a fixed distance traveled, the GPS device records position (<span class="math inline">\((x,y)\)</span>) or longitude and latitude at fixed units of time - similar to how parametric functions are used. The device can then compute distance traveled and speed using some familiar formulas.</p>
|
||
<section id="arc-length-formula" class="level2" data-number="46.1">
|
||
<h2 data-number="46.1" class="anchored" data-anchor-id="arc-length-formula"><span class="header-section-number">46.1</span> Arc length formula</h2>
|
||
<p>Recall the distance formula gives the distance between two points: <span class="math inline">\(\sqrt{(x_1 - x_0)^2 + (y_1 - y_0)^2}\)</span>.</p>
|
||
<p>Consider now two functions <span class="math inline">\(g(t)\)</span> and <span class="math inline">\(f(t)\)</span> and the parameterized graph between <span class="math inline">\(a\)</span> and <span class="math inline">\(b\)</span> given by the points <span class="math inline">\((g(t), f(t))\)</span> for <span class="math inline">\(a \leq t \leq b\)</span>. Assume that both <span class="math inline">\(g\)</span> and <span class="math inline">\(f\)</span> are differentiable on <span class="math inline">\((a,b)\)</span> and continuous on <span class="math inline">\([a,b]\)</span> and furthermore that <span class="math inline">\(\sqrt{g'(t)^2 + f'(t)^2}\)</span> is Riemann integrable.</p>
|
||
<blockquote class="blockquote">
|
||
<p><strong>The arc length of a curve</strong>. For <span class="math inline">\(f\)</span> and <span class="math inline">\(g\)</span> as described, the arc length of the parameterized curve is given by</p>
|
||
<p><span class="math inline">\(L = \int_a^b \sqrt{g'(t)^2 + f'(t)^2} dt.\)</span></p>
|
||
<p>For the special case of the graph of a function <span class="math inline">\(f(x)\)</span> between <span class="math inline">\(a\)</span> and <span class="math inline">\(b\)</span> the formula becomes <span class="math inline">\(L = \int_a^b \sqrt{ 1 + f'(x)^2} dx\)</span> (taking <span class="math inline">\(g(t) = t\)</span>).</p>
|
||
</blockquote>
|
||
<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 form of the integral may seem daunting with the square root and the derivatives. A more general writing would create a vector out of the two functions: <span class="math inline">\(\phi(t) = \langle g(t), f(t) \rangle\)</span>. It is natural to then let <span class="math inline">\(\phi'(t) = \langle g'(t), f'(t) \rangle\)</span>. With this, the integrand is just the norm - or length - of the derivative, or <span class="math inline">\(L=\int \| \phi'(t) \| dt\)</span>. This is similar to the distance traveled being the integral of the speed, or the absolute value of the derivative of position.</p>
|
||
</div>
|
||
</div>
|
||
<p>To see why, any partition of the interval <span class="math inline">\([a,b]\)</span> by <span class="math inline">\(a = t_0 < t_1 < \cdots < t_n =b\)</span> gives rise to <span class="math inline">\(n+1\)</span> points in the plane given by <span class="math inline">\((g(t_i), f(t_i))\)</span>.</p>
|
||
<div class="cell" data-cache="true" data-execution_count="5">
|
||
<div class="cell-output cell-output-display" data-execution_count="6">
|
||
<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 arc length of the parametric curve can be approximated using straight line segments connecting points. This gives rise to an integral expression defining the length in terms of the functions \(f\) and \(g\).</p>
|
||
</div> </figcaption>
|
||
</figure>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>The distance between points <span class="math inline">\((g(t_i), f(t_i))\)</span> and <span class="math inline">\((g(t_{i-1}), f(t_{i-1}))\)</span> is just</p>
|
||
<p><span class="math display">\[
|
||
d_i = \sqrt{(g(t_i)-g(t_{i-1}))^2 + (f(t_i)-f(t_{i-1}))^2}
|
||
\]</span></p>
|
||
<p>The total approximate distance of the curve would be <span class="math inline">\(L_n = d_1 + d_2 + \cdots + d_n\)</span>. This is exactly how we would compute the length of the jump rope or the distance traveled from GPS recordings.</p>
|
||
<p>However, differences, such as <span class="math inline">\(f(t_i)-f(t_{i-1})\)</span>, are the building blocks of approximate derivatives. With an eye towards this, we multiply both top and bottom by <span class="math inline">\(t_i - t_{i-1}\)</span> to get:</p>
|
||
<p><span class="math display">\[
|
||
L_n = d_1 \cdot \frac{t_1 - t_0}{t_1 - t_0} + d_2 \cdot \frac{t_2 - t_1}{t_2 - t_1} + \cdots + d_n \cdot \frac{t_n - t_{n-1}}{t_n - t_{n-1}}.
|
||
\]</span></p>
|
||
<p>But looking at each term, we can push the denominator into the square root as:</p>
|
||
<p><span class="math display">\[
|
||
\begin{align*}
|
||
d_i &= d_i \cdot \frac{t_i - t_{i-1}}{t_i - t_{i-1}}
|
||
\\
|
||
&= \sqrt{ \left(\frac{g(t_i)-g(t_{i-1})}{t_i-t_{i-1}}\right)^2 +
|
||
\left(\frac{f(t_i)-f(t_{i-1})}{t_i-t_{i-1}}\right)^2} \cdot (t_i - t_{i-1}) \\
|
||
&= \sqrt{ g'(\xi_i)^2 + f'(\psi_i)^2} \cdot (t_i - t_{i-1}).
|
||
\end{align*}
|
||
\]</span></p>
|
||
<p>The values <span class="math inline">\(\xi_i\)</span> and <span class="math inline">\(\psi_i\)</span> are guaranteed by the mean value theorem and must be in <span class="math inline">\([t_{i-1}, t_i]\)</span>.</p>
|
||
<p>With this, if <span class="math inline">\(\sqrt{f'(t)^2 + g'(t)^2}\)</span> is integrable, as assumed, then as the size of the partition goes to zero, the sum of the <span class="math inline">\(d_i\)</span>, <span class="math inline">\(L_n\)</span>, must converge to the integral:</p>
|
||
<p><span class="math display">\[
|
||
L = \int_a^b \sqrt{f'(t)^2 + g'(t)^2} dt.
|
||
\]</span></p>
|
||
<p>(This needs a technical adjustment to the Riemann theorem, as we are evaluating our function at two points in the interval. A general proof is <a href="https://randomproofs.files.wordpress.com/2010/11/arc_length.pdf">here</a>.)</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><a href="http://www.math.harvard.edu/~knill/teaching/math1a_2011/exhibits/bressoud/">Bressoud</a> notes that Gregory (1668) proved this formula for arc length of the graph of a function by showing that the length of the curve <span class="math inline">\(f(x)\)</span> is defined by the area under <span class="math inline">\(\sqrt{1 + f'(x)^2}\)</span>. (It is commented that this was also known a bit earlier by von Heurat.) Gregory went further though, as part of the fundamental theorem of calculus was contained in his work. Gregory then posed this inverse question: given a curve <span class="math inline">\(y=g(x)\)</span> find a function <span class="math inline">\(u(x)\)</span> so that the area under <span class="math inline">\(g\)</span> is equal to the length of the second curve. The answer given was <span class="math inline">\(u(x) = (1/c)\int_a^x \sqrt{g^2(t) - c^2}\)</span>, which if <span class="math inline">\(g(t) = \sqrt{1 + f'(t)^2}\)</span> and <span class="math inline">\(c=1\)</span> says <span class="math inline">\(u(x) = \int_a^x f(t)dt\)</span>.</p>
|
||
<p>An analogy might be a sausage maker. These take a mass of ground-up sausage material and return a long length of sausage. The material going in would depend on time via an equation like <span class="math inline">\(\int_0^t g(u) du\)</span> and the length coming out would be a constant (accounting for the cross section) times <span class="math inline">\(u(t) = \int_0^t \sqrt{1 + g'(s)} ds\)</span>.</p>
|
||
</div>
|
||
</div>
|
||
<section id="examples" class="level4">
|
||
<h4 class="anchored" data-anchor-id="examples">Examples</h4>
|
||
<p>Let <span class="math inline">\(f(x) = x^2\)</span>. The arc length of the graph of <span class="math inline">\(f(x)\)</span> over <span class="math inline">\([0,1]\)</span> is then <span class="math inline">\(L=\int_0^1 \sqrt{1 + (2x)^2} dx\)</span>. A trigonometric substitution of <span class="math inline">\(2x = \sin(\theta)\)</span> leads to the antiderivative:</p>
|
||
<div class="cell" data-execution_count="6">
|
||
<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="pp">@syms</span> x</span>
|
||
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a>F <span class="op">=</span> <span class="fu">integrate</span>(<span class="fu">sqrt</span>(<span class="fl">1</span> <span class="op">+</span> (<span class="fl">2</span>x)<span class="op">^</span><span class="fl">2</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="7">
|
||
<span class="math-left-align" style="padding-left: 4px; width:0; float:left;">
|
||
\[
|
||
\frac{x \sqrt{4 x^{2} + 1}}{2} + \frac{\operatorname{asinh}{\left(2 x \right)}}{4}
|
||
\]
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<div class="cell" data-execution_count="7">
|
||
<div class="sourceCode cell-code" id="cb3"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="fu">F</span>(<span class="fl">1</span>) <span class="op">-</span> <span class="fu">F</span>(<span class="fl">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">
|
||
<span class="math-left-align" style="padding-left: 4px; width:0; float:left;">
|
||
\[
|
||
\frac{\operatorname{asinh}{\left(2 \right)}}{4} + \frac{\sqrt{5}}{2}
|
||
\]
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<p>That number has some context, as can be seen from the graph, which gives simple lower and upper bounds of <span class="math inline">\(\sqrt{1^2 + 1^2} = 1.414...\)</span> and <span class="math inline">\(1 + 1 = 2\)</span>.</p>
|
||
<div class="cell" data-execution_count="8">
|
||
<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><span class="fu">f</span>(x) <span class="op">=</span> x<span class="op">^</span><span class="fl">2</span></span>
|
||
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a><span class="fu">plot</span>(f, <span class="fl">0</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">
|
||
<p><img src="arc_length_files/figure-html/cell-9-output-1.svg" class="img-fluid"></p>
|
||
</div>
|
||
</div>
|
||
<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 integrand <span class="math inline">\(\sqrt{1 + f'(x)^2}\)</span> may seem odd at first, but it can be interpreted as the length of the hypotenuse of a right triangle with “run” of <span class="math inline">\(1\)</span> and “rise” of <span class="math inline">\(f'(x)\)</span>. This triangle is easily formed using the tangent line to the graph of <span class="math inline">\(f(x)\)</span>. By multiplying by <span class="math inline">\(dx\)</span>, the integral is “summing” up the lengths of infinitesimal pieces of the tangent line approximation.</p>
|
||
</div>
|
||
</div>
|
||
<section id="example" class="level5">
|
||
<h5 class="anchored" data-anchor-id="example">Example</h5>
|
||
<p>Let <span class="math inline">\(f(t) = R\cos(t)\)</span> and <span class="math inline">\(g(t) = R\sin(t)\)</span>. Then the parametric curve over <span class="math inline">\([0, 2\pi]\)</span> is a circle. As the curve does not wrap around, the arc-length of the curve is just the circumference of the circle. To see that the arc length formula gives us familiar answers, we have:</p>
|
||
<p><span class="math display">\[
|
||
L = \int_0^{2\pi} \sqrt{(R\cos(t))^2 + (-R\sin(t))^2} dt = R\int_0^{2\pi} \sqrt{\cos(t)^2 + \sin(t)^2} dt =
|
||
R\int_0^{2\pi} dt = 2\pi R.
|
||
\]</span></p>
|
||
</section>
|
||
<section id="example-1" class="level5">
|
||
<h5 class="anchored" data-anchor-id="example-1">Example</h5>
|
||
<p>Let <span class="math inline">\(f(x) = \log(x)\)</span>. Find the length of the graph of <span class="math inline">\(f\)</span> over <span class="math inline">\([1/e, e]\)</span>.</p>
|
||
<p>The answer is</p>
|
||
<p><span class="math display">\[
|
||
L = \int_{1/e}^e \sqrt{1 + \left(\frac{1}{x}\right)^2} dx.
|
||
\]</span></p>
|
||
<p>This has a <em>messy</em> antiderivative, so we let <code>SymPy</code> compute for us:</p>
|
||
<div class="cell" data-execution_count="9">
|
||
<div class="sourceCode cell-code" id="cb5"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a>ex <span class="op">=</span> <span class="fu">integrate</span>(<span class="fu">sqrt</span>(<span class="fl">1</span> <span class="op">+</span> (<span class="fl">1</span><span class="op">/</span>x)<span class="op">^</span><span class="fl">2</span>), (x, <span class="fl">1</span><span class="op">/</span>sympy.E, sympy.E)) <span class="co"># sympy.E is symbolic</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">
|
||
<span class="math-left-align" style="padding-left: 4px; width:0; float:left;">
|
||
\[
|
||
- \frac{1}{\sqrt{e^{-2} + 1}} - \operatorname{asinh}{\left(e^{-1} \right)} - \frac{1}{\sqrt{e^{-2} + 1} e^{2}} + \frac{1}{\sqrt{1 + e^{2}}} + \operatorname{asinh}{\left(e \right)} + \frac{e^{2}}{\sqrt{1 + e^{2}}}
|
||
\]
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<p>Which isn’t so satisfying. From a quick graph, we see the answer should be no more than 4, and we see in fact it is</p>
|
||
<div class="cell" data-execution_count="10">
|
||
<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><span class="fu">N</span>(ex)</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="11">
|
||
<pre><code>3.196198513599507</code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="example-2" class="level5">
|
||
<h5 class="anchored" data-anchor-id="example-2">Example</h5>
|
||
<p>A <a href="http://en.wikipedia.org/wiki/Catenary">catenary shape</a> is the shape a hanging chain will take as it is suspended between two posts. It appears elsewhere, for example, power wires will also have this shape as they are suspended between towers. A formula for a catenary can be written in terms of the hyperbolic cosine, <code>cosh</code> in <code>julia</code> or exponentials.</p>
|
||
<p><span class="math display">\[
|
||
y = a \cosh(x/a) = a \cdot \frac{e^{x/a} + e^{-x/a}}{2}.
|
||
\]</span></p>
|
||
<p>Suppose we have the following chain hung between <span class="math inline">\(x=-1\)</span> and <span class="math inline">\(x=1\)</span> with <span class="math inline">\(a = 2\)</span>:</p>
|
||
<div class="cell" data-execution_count="11">
|
||
<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><span class="fu">chain</span>(x; a<span class="op">=</span><span class="fl">2</span>) <span class="op">=</span> a <span class="op">*</span> <span class="fu">cosh</span>(x<span class="op">/</span>a)</span>
|
||
<span id="cb8-2"><a href="#cb8-2" aria-hidden="true" tabindex="-1"></a><span class="fu">plot</span>(chain, <span class="op">-</span><span class="fl">1</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="12">
|
||
<p><img src="arc_length_files/figure-html/cell-12-output-1.svg" class="img-fluid"></p>
|
||
</div>
|
||
</div>
|
||
<p>How long is the chain? Looking at the graph we can guess an answer is between <span class="math inline">\(2\)</span> and <span class="math inline">\(2.5\)</span>, say, but it isn’t much work to get an approximate numeric answer. Recall, the accompanying <code>CalculusWithJulia</code> package defines <code>f'</code> to find the derivative using the <code>ForwardDiff</code> package.</p>
|
||
<div class="cell" data-execution_count="12">
|
||
<div class="sourceCode cell-code" id="cb9"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="fu">quadgk</span>(x <span class="op">-></span> <span class="fu">sqrt</span>(<span class="fl">1</span> <span class="op">+</span> chain<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="fl">1</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="13">
|
||
<pre><code>2.0843812219749895</code></pre>
|
||
</div>
|
||
</div>
|
||
<p>We used a numeric approach, but this can be solved by hand and the answer is surprising.</p>
|
||
</section>
|
||
<section id="example-3" class="level5">
|
||
<h5 class="anchored" data-anchor-id="example-3">Example</h5>
|
||
<p>This picture of Jasper John’s <a href="http://www.artic.edu/aic/collections/artwork/184095">Near the Lagoon</a> was taken at The Art Institute Chicago.</p>
|
||
<div class="quarto-figure quarto-figure-center">
|
||
<figure class="figure">
|
||
<p><img src="../integrals/figures/johns-catenary.jpg" class="img-fluid figure-img"></p>
|
||
<p></p><figcaption class="figure-caption">One of Jasper Johns’ Catenary series. Art Institute of Chicago.</figcaption><p></p>
|
||
</figure>
|
||
</div>
|
||
<p>The museum notes have</p>
|
||
<blockquote class="blockquote">
|
||
<p>For his Catenary series (1997–2003), of which Near the Lagoon is the largest and last work, Johns formed catenaries—a term used to describe the curve assumed by a cord suspended freely from two points—by tacking ordinary household string to the canvas or its supports.</p>
|
||
</blockquote>
|
||
<p>This particular catenary has a certain length. The basic dimensions are <span class="math inline">\(78\)</span>in wide and <span class="math inline">\(118\)</span>in drop. We shift the basic function for catenaries to have <span class="math inline">\(f(78/2) = f(-78/2) = 0\)</span> and <span class="math inline">\(f(0) = -118\)</span> (the top curve segment is on the <span class="math inline">\(x\)</span> axis and centered). We let our shifted function be parameterized by</p>
|
||
<p><span class="math display">\[
|
||
f(x; a, b) = a \cosh(x/a) - b.
|
||
\]</span></p>
|
||
<p>Evaluating at <span class="math inline">\(0\)</span> gives:</p>
|
||
<p><span class="math display">\[
|
||
-118 = a - b \text{ or } b = a + 118.
|
||
\]</span></p>
|
||
<p>Evaluating at <span class="math inline">\(78/2\)</span> gives: <span class="math inline">\(a \cdot \cosh(78/(2a)) - (a + 118) = 0\)</span>. This can be solved numerically for a:</p>
|
||
<div class="cell" data-execution_count="14">
|
||
<div class="sourceCode cell-code" id="cb11"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cat</span>(x; a<span class="op">=</span><span class="fl">1</span>, b<span class="op">=</span><span class="fl">0</span>) <span class="op">=</span> <span class="fu">a*cosh</span>(x<span class="op">/</span>a) <span class="op">-</span> b</span>
|
||
<span id="cb11-2"><a href="#cb11-2" aria-hidden="true" tabindex="-1"></a><span class="fu">find_zero</span>(a <span class="op">-></span> <span class="fu">cat</span>(<span class="fl">78</span><span class="op">/</span><span class="fl">2</span>, a<span class="op">=</span>a, b<span class="op">=</span><span class="fl">118</span> <span class="op">+</span> a), <span class="fl">10</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="15">
|
||
<pre><code>12.994268574805428</code></pre>
|
||
</div>
|
||
</div>
|
||
<p>Rounding, we take <span class="math inline">\(a=13\)</span>. With these parameters (<span class="math inline">\(a=13\)</span>, <span class="math inline">\(b = 131\)</span>), we compute the length of Johns’ catenary in inches:</p>
|
||
<div class="cell" data-hold="true" data-execution_count="15">
|
||
<div class="sourceCode cell-code" id="cb13"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a>a <span class="op">=</span> <span class="fl">13</span></span>
|
||
<span id="cb13-2"><a href="#cb13-2" aria-hidden="true" tabindex="-1"></a>b <span class="op">=</span> <span class="fl">118</span> <span class="op">+</span> a</span>
|
||
<span id="cb13-3"><a href="#cb13-3" aria-hidden="true" tabindex="-1"></a><span class="fu">f</span>(x) <span class="op">=</span> <span class="fu">cat</span>(x; a<span class="op">=</span><span class="fl">13</span>, b<span class="op">=</span><span class="fl">118</span><span class="op">+</span><span class="fl">13</span>)</span>
|
||
<span id="cb13-4"><a href="#cb13-4" aria-hidden="true" tabindex="-1"></a><span class="fu">quadgk</span>(x <span class="op">-></span> <span class="fu">sqrt</span>(<span class="fl">1</span> <span class="op">+</span> f<span class="op">'</span>(x)<span class="op">^</span><span class="fl">2</span>), <span class="op">-</span><span class="fl">78</span><span class="op">/</span><span class="fl">2</span>, <span class="fl">78</span><span class="op">/</span><span class="fl">2</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="16">
|
||
<pre><code>260.46474811265745</code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="example-4" class="level5">
|
||
<h5 class="anchored" data-anchor-id="example-4">Example</h5>
|
||
<p>Suspension bridges, like the Verrazzano-Narrows Bridge, have different loading than a cable and hence a different shape. A parabola is the shape the cable takes under uniform loading (cf. <a href="http://calteches.library.caltech.edu/4007/1/Calculus.pdf">page 19</a> for a picture).</p>
|
||
<p>The Verrazzano-Narrows <a href="https://www.brownstoner.com/brooklyn-life/verrazano-narrows-bridge-anniversary-historic-photos/">Bridge</a> has a span of <span class="math inline">\(1298\)</span>m.</p>
|
||
<p>Suppose the drop of the main cables is <span class="math inline">\(147\)</span> meters over this span. Then the cable itself can be modeled as a parabola with</p>
|
||
<ul>
|
||
<li>The <span class="math inline">\(x\)</span>-intercepts <span class="math inline">\(a = 1298/2\)</span> and <span class="math inline">\(-a\)</span> and</li>
|
||
<li>vertex <span class="math inline">\((0,b)\)</span> with <span class="math inline">\(b=-147\)</span>.</li>
|
||
</ul>
|
||
<p>The parabola that fits these three points is</p>
|
||
<p><span class="math display">\[
|
||
y = \frac{-b}{a^2}(x^2 - a^2)
|
||
\]</span></p>
|
||
<p>Find the length of the cable in meters.</p>
|
||
<div class="cell" data-hold="true" data-execution_count="16">
|
||
<div class="sourceCode cell-code" id="cb15"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a>a <span class="op">=</span> <span class="fl">1298</span><span class="op">/</span><span class="fl">2</span>;</span>
|
||
<span id="cb15-2"><a href="#cb15-2" aria-hidden="true" tabindex="-1"></a>b <span class="op">=</span> <span class="op">-</span><span class="fl">147</span>;</span>
|
||
<span id="cb15-3"><a href="#cb15-3" aria-hidden="true" tabindex="-1"></a><span class="fu">f</span>(x) <span class="op">=</span> (<span class="op">-</span>b<span class="op">/</span>a<span class="op">^</span><span class="fl">2</span>)<span class="fu">*</span>(x<span class="op">^</span><span class="fl">2</span> <span class="op">-</span> a<span class="op">^</span><span class="fl">2</span>);</span>
|
||
<span id="cb15-4"><a href="#cb15-4" aria-hidden="true" tabindex="-1"></a>val, _ <span class="op">=</span> <span class="fu">quadgk</span>(x <span class="op">-></span> <span class="fu">sqrt</span>(<span class="fl">1</span> <span class="op">+</span> f<span class="op">'</span>(x)<span class="op">^</span><span class="fl">2</span>), <span class="op">-</span>a, a)</span>
|
||
<span id="cb15-5"><a href="#cb15-5" aria-hidden="true" tabindex="-1"></a>val</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>1341.1191077638794</code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="quarto-figure quarto-figure-center">
|
||
<figure class="figure">
|
||
<p><img src="../integrals/figures/verrazzano-unloaded.jpg" class="img-fluid figure-img"></p>
|
||
<p></p><figcaption class="figure-caption">The Verrazzano-Narrows Bridge during construction. The unloaded suspension cables form a catenary.</figcaption><p></p>
|
||
</figure>
|
||
</div>
|
||
<div class="quarto-figure quarto-figure-center">
|
||
<figure class="figure">
|
||
<p><img src="../integrals/figures/verrazzano-loaded.jpg" class="img-fluid figure-img"></p>
|
||
<p></p><figcaption class="figure-caption">A rendering of the Verrazzano-Narrows Bridge after construction (cf. <a href="https://www.nycgovparks.org/highlights/verrazano-bridge">nycgovparks.org</a>). The uniformly loaded suspension cables would form a parabola, presumably a fact the artist of this rendering knew. (The spelling in the link is not the official spelling, which carries two zs.)</figcaption><p></p>
|
||
</figure>
|
||
</div>
|
||
</section>
|
||
<section id="example-5" class="level5">
|
||
<h5 class="anchored" data-anchor-id="example-5">Example</h5>
|
||
<p>The <a href="http://www-history.mcs.st-and.ac.uk/Curves/Nephroid.html">nephroid</a> is a curve that can be described parametrically by</p>
|
||
<p><span class="math display">\[
|
||
\begin{align*}
|
||
g(t) &= a(3\cos(t) - \cos(3t)), \\
|
||
f(t) &= a(3\sin(t) - \sin(3t)).
|
||
\end{align*}
|
||
\]</span></p>
|
||
<p>Taking <span class="math inline">\(a=1\)</span> we have this graph:</p>
|
||
<div class="cell" data-execution_count="19">
|
||
<div class="sourceCode cell-code" id="cb17"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a>a <span class="op">=</span> <span class="fl">1</span></span>
|
||
<span id="cb17-2"><a href="#cb17-2" aria-hidden="true" tabindex="-1"></a><span class="fu">𝒈</span>(t) <span class="op">=</span> <span class="fu">a*</span>(<span class="fl">3</span><span class="fu">cos</span>(t) <span class="op">-</span> <span class="fu">cos</span>(<span class="fl">3</span>t))</span>
|
||
<span id="cb17-3"><a href="#cb17-3" aria-hidden="true" tabindex="-1"></a><span class="fu">𝒇</span>(t) <span class="op">=</span> <span class="fu">a*</span>(<span class="fl">3</span><span class="fu">sin</span>(t) <span class="op">-</span> <span class="fu">sin</span>(<span class="fl">3</span>t))</span>
|
||
<span id="cb17-4"><a href="#cb17-4" aria-hidden="true" tabindex="-1"></a><span class="fu">plot</span>(𝒈, 𝒇, <span class="fl">0</span>, <span class="fl">2</span>pi)</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="20">
|
||
<p><img src="arc_length_files/figure-html/cell-20-output-1.svg" class="img-fluid"></p>
|
||
</div>
|
||
</div>
|
||
<p>Find the length of the perimeter of the closed figure formed by the graph.</p>
|
||
<p>We have <span class="math inline">\(\sqrt{g'(t)^2 + f'(t)^2} = \sqrt{18 - 18\cos(2t)}\)</span>. An antiderivative isn’t forthcoming through <code>SymPy</code>, so we take a numeric approach to find the length:</p>
|
||
<div class="cell" data-execution_count="20">
|
||
<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><span class="fu">quadgk</span>(t <span class="op">-></span> <span class="fu">sqrt</span>(𝒈<span class="ch">'(t)^2 + 𝒇'</span>(t)<span class="op">^</span><span class="fl">2</span>), <span class="fl">0</span>, <span class="fl">2</span>pi)[<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="21">
|
||
<pre><code>23.999999999999993</code></pre>
|
||
</div>
|
||
</div>
|
||
<p>The answer seems like a floating point approximation of <span class="math inline">\(24\)</span>, which suggests that this integral is tractable. Pursuing this, the integrand simplifies:</p>
|
||
<p><span class="math display">\[
|
||
\begin{align*}
|
||
\sqrt{g'(t)^2 + f'(t)^2}
|
||
&= \sqrt{(-3\sin(t) + 3\sin(3t))^2 + (3\cos(t) - 3\cos(3t))^2} \\
|
||
&= 3\sqrt{(\sin(t)^2 - 2\sin(t)\sin(3t) + \sin(3t)^2) + (\cos(t)^2 -2\cos(t)\cos(3t) + \cos(3t)^2)} \\
|
||
&= 3\sqrt{(\sin(t)^2+\cos(t)^2) + (\sin(3t)^2 + \cos(3t)^2) - 2(\sin(t)\sin(3t) + \cos(t)\cos(3t))}\\
|
||
&= 3\sqrt{2(1 - (\sin(t)\sin(3t) + \cos(t)\cos(3t)))}\\
|
||
&= 3\sqrt{2}\sqrt{1 - \cos(2t)}\\
|
||
&= 3\sqrt{2}\sqrt{2\sin(t)^2}.
|
||
\end{align*}
|
||
\]</span></p>
|
||
<p>The second to last line comes from a double angle formula expansion of <span class="math inline">\(\cos(3t - t)\)</span> and the last line from the half angle formula for <span class="math inline">\(\cos\)</span>.</p>
|
||
<p>By graphing, we see that integrating over <span class="math inline">\([0,2\pi]\)</span> gives twice the answer to integrating over <span class="math inline">\([0, \pi]\)</span>, which allows the simplification to:</p>
|
||
<p><span class="math display">\[
|
||
L = \int_0^{2\pi} \sqrt{g'(t)^2 + f'(t)^2}dt = \int_0^{2\pi} 3\sqrt{2}\sqrt{2\sin(t)^2} =
|
||
3 \cdot 2 \cdot 2 \int_0^\pi \sin(t) dt = 3 \cdot 2 \cdot 2 \cdot 2 = 24.
|
||
\]</span></p>
|
||
</section>
|
||
<section id="example-6" class="level5">
|
||
<h5 class="anchored" data-anchor-id="example-6">Example</h5>
|
||
<p>A teacher of small children assigns his students the task of computing the length of a jump rope by counting the number of <span class="math inline">\(1\)</span>-inch segments it is made of. He knows that if a student is accurate, no matter how fast or slow they count the answer will be the same. (That is, unless the student starts counting in the wrong direction by mistake). The teacher knows this, as he is certain that the length of curve is independent of its parameterization, as it is a property intrinsic to the curve.</p>
|
||
<p>Mathematically, suppose a curve is described parametrically by <span class="math inline">\((g(t), f(t))\)</span> for <span class="math inline">\(a \leq t \leq b\)</span>. A new parameterization is provided by <span class="math inline">\(\gamma(t)\)</span>. Suppose <span class="math inline">\(\gamma\)</span> is strictly increasing, so that an inverse function exists. (This assumption is implicitly made by the teacher, as it implies the student won’t start counting in the wrong direction.) Then the same curve is described by composition through <span class="math inline">\((g(\gamma(u)), f(\gamma(u)))\)</span>, <span class="math inline">\(\gamma^{-1}(a) \leq u \leq \gamma^{-1}(b)\)</span>. That the arc length is the same follows from substitution:</p>
|
||
<p><span class="math display">\[
|
||
\begin{align*}
|
||
\int_{\gamma^{-1}(a)}^{\gamma^{-1}(b)} \sqrt{([g(\gamma(t))]')^2 + ([f(\gamma(t))]')^2} dt
|
||
&=\int_{\gamma^{-1}(a)}^{\gamma^{-1}(b)} \sqrt{(g'(\gamma(t) )\gamma'(t))^2 + (f'(\gamma(t) )\gamma'(t))^2 } dt \\
|
||
&=\int_{\gamma^{-1}(a)}^{\gamma^{-1}(b)} \sqrt{g'(\gamma(t))^2 + f'(\gamma(t))^2} \gamma'(t) dt\\
|
||
&=\int_a^b \sqrt{g'(u)^2 + f'(u)^2} du = L
|
||
\end{align*}
|
||
\]</span></p>
|
||
<p>(Using <span class="math inline">\(u=\gamma(t)\)</span> for the substitution.)</p>
|
||
<p>In traveling there are two natural parameterizations: one by time, as in “how long have we been driving?”; and the other by distance, as in “how far have we been driving?” Parameterizing by distance, or more technically arc length, has other mathematical advantages.</p>
|
||
<p>To parameterize by arc length, we just need to consider a special <span class="math inline">\(\gamma\)</span> defined by:</p>
|
||
<p><span class="math display">\[
|
||
\gamma(u) = \int_0^u \sqrt{g'(t)^2 + f'(t)^2} dt.
|
||
\]</span></p>
|
||
<p>Supposing <span class="math inline">\(\sqrt{g'(t)^2 + f'(t)^2}\)</span> is continuous and positive, This transformation is increasing, as its derivative by the Fundamental Theorem of Calculus is <span class="math inline">\(\gamma'(u) = \sqrt{g'(u)^2 + f'(u)^2}\)</span>, which by assumption is positive. (It is certainly non-negative.) So there exists an inverse function. That it exists is one thing, computing all of this is a different matter, of course.</p>
|
||
<p>For a simple example, we have <span class="math inline">\(g(t) = R\cos(t)\)</span> and <span class="math inline">\(f(t)=R\sin(t)\)</span> parameterizing the circle of radius <span class="math inline">\(R\)</span>. The arc length between <span class="math inline">\(0\)</span> and <span class="math inline">\(t\)</span> is simply <span class="math inline">\(\gamma(t) = Rt\)</span>, which we can easily see from the formula. The inverse of this function is <span class="math inline">\(\gamma^{-1}(u) = u/R\)</span>, so we get the parameterization <span class="math inline">\((g(Rt), f(Rt))\)</span> for <span class="math inline">\(0/R \leq t \leq 2\pi/R\)</span>.</p>
|
||
<p>What looks at first glance to be just a slightly more complicated equation is that of an ellipse, with <span class="math inline">\(g(t) = a\cos(t)\)</span> and <span class="math inline">\(f(t) = b\sin(t)\)</span>. Taking <span class="math inline">\(a=1\)</span> and <span class="math inline">\(b = a + c\)</span>, for <span class="math inline">\(c > 0\)</span> we get the equation for the arc length as a function of <span class="math inline">\(t\)</span> is just</p>
|
||
<p><span class="math display">\[
|
||
\begin{align*}
|
||
s(u) &= \int_0^u \sqrt{(-\sin(t))^2 + b\cos(t)^2} dt\\
|
||
&= \int_0^u \sqrt{\sin(t))^2 + \cos(t)^2 + c\cos(t)^2} dt \\
|
||
&=\int_0^u \sqrt{1 + c\cos(t)^2} dt.
|
||
\end{align*}
|
||
\]</span></p>
|
||
<p>But, despite it not looking too daunting, this integral is not tractable through our techniques and has an answer involving elliptic integrals. We can work numerically though. Letting <span class="math inline">\(a=1\)</span> and <span class="math inline">\(b=2\)</span>, we have the arc length is given by:</p>
|
||
<div class="cell" data-execution_count="21">
|
||
<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>𝒂, 𝒃 <span class="op">=</span> <span class="fl">1</span>, <span class="fl">2</span></span>
|
||
<span id="cb20-2"><a href="#cb20-2" aria-hidden="true" tabindex="-1"></a><span class="fu">𝒔</span>(u) <span class="op">=</span> <span class="fu">quadgk</span>(t <span class="op">-></span> <span class="fu">sqrt</span>(𝒂<span class="op">^</span><span class="fl">2</span> <span class="op">*</span> <span class="fu">sin</span>(t)<span class="op">^</span><span class="fl">2</span> <span class="op">+</span> 𝒃<span class="op">^</span><span class="fl">2</span> <span class="op">*</span> <span class="fu">cos</span>(t)<span class="op">^</span><span class="fl">2</span>), <span class="fl">0</span>, u)[<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="22">
|
||
<pre><code>𝒔 (generic function with 1 method)</code></pre>
|
||
</div>
|
||
</div>
|
||
<p>This has a graph, which does not look familiar, but we can see is monotonically increasing, so will have an inverse function:</p>
|
||
<div class="cell" data-execution_count="22">
|
||
<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><span class="fu">plot</span>(𝒔, <span class="fl">0</span>, <span class="fl">2</span>pi)</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="23">
|
||
<p><img src="arc_length_files/figure-html/cell-23-output-1.svg" class="img-fluid"></p>
|
||
</div>
|
||
</div>
|
||
<p>The range is <span class="math inline">\([0, s(2\pi)]\)</span>.</p>
|
||
<p>The inverse function can be found by solving, we use the bracketing version of <code>find_zero</code> for this:</p>
|
||
<div class="cell" data-execution_count="23">
|
||
<div class="sourceCode cell-code" id="cb23"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb23-1"><a href="#cb23-1" aria-hidden="true" tabindex="-1"></a><span class="fu">sinv</span>(u) <span class="op">=</span> <span class="fu">find_zero</span>(x <span class="op">-></span> <span class="fu">𝒔</span>(x) <span class="op">-</span> u, (<span class="fl">0</span>, <span class="fu">𝒔</span>(<span class="fl">2</span>pi)))</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">
|
||
<pre><code>sinv (generic function with 1 method)</code></pre>
|
||
</div>
|
||
</div>
|
||
<p>Here we see visually that the new parameterization yields the same curve:</p>
|
||
<div class="cell" data-hold="true" data-execution_count="24">
|
||
<div class="sourceCode cell-code" id="cb25"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb25-1"><a href="#cb25-1" aria-hidden="true" tabindex="-1"></a><span class="fu">g</span>(t) <span class="op">=</span> 𝒂 <span class="op">*</span> <span class="fu">cos</span>(t)</span>
|
||
<span id="cb25-2"><a href="#cb25-2" aria-hidden="true" tabindex="-1"></a><span class="fu">f</span>(t) <span class="op">=</span> 𝒃 <span class="op">*</span> <span class="fu">sin</span>(t)</span>
|
||
<span id="cb25-3"><a href="#cb25-3" aria-hidden="true" tabindex="-1"></a></span>
|
||
<span id="cb25-4"><a href="#cb25-4" aria-hidden="true" tabindex="-1"></a><span class="fu">plot</span>(t <span class="op">-></span> <span class="fu">g</span>(<span class="fu">𝒔</span>(t)), t <span class="op">-></span> <span class="fu">f</span>(<span class="fu">𝒔</span>(t)), <span class="fl">0</span>, <span class="fu">𝒔</span>(<span class="fl">2</span><span class="op">*</span><span class="cn">pi</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="25">
|
||
<p><img src="arc_length_files/figure-html/cell-25-output-1.svg" class="img-fluid"></p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
<section id="example-an-implication-of-concavity" class="level4">
|
||
<h4 class="anchored" data-anchor-id="example-an-implication-of-concavity">Example: An implication of concavity</h4>
|
||
<p>Following (faithfully) <a href="https://www.researchgate.net/publication/341676916_The_English_Galileo_and_His_Vision_of_Projectile_Motion_under_Air_Resistance">Kantorwitz and Neumann</a>, we consider a function <span class="math inline">\(f(x)\)</span> with the property that <strong>both</strong> <span class="math inline">\(f\)</span> and <span class="math inline">\(f'\)</span> are strictly concave down on <span class="math inline">\([a,b]\)</span> and suppose <span class="math inline">\(f(a) = f(b)\)</span>. Further, assume <span class="math inline">\(f'\)</span> is continuous. We will see this implies facts about arc-length and other integrals related to <span class="math inline">\(f\)</span>.</p>
|
||
<p>The following figure is clearly of a concave down function. The asymmetry about the critical point will be seen to be a result of the derivative also being concave down. This asymmetry will be characterized in several different ways in the following including showing that the arc length from <span class="math inline">\((a,0)\)</span> to <span class="math inline">\((c,f(c))\)</span> is longer than from <span class="math inline">\((c,f(c))\)</span> to <span class="math inline">\((b,0)\)</span>.</p>
|
||
<div class="cell" data-hold="true" data-execution_count="25">
|
||
<div class="cell-output cell-output-display" data-execution_count="26">
|
||
<p><img src="arc_length_files/figure-html/cell-26-output-1.svg" class="img-fluid"></p>
|
||
</div>
|
||
</div>
|
||
<p>Take <span class="math inline">\(a < u < c < v < b\)</span> with <span class="math inline">\(f(u) = f(v)\)</span> and <span class="math inline">\(c\)</span> a critical point, as in the picture. There must be a critical point by Rolle’s theorem, and it must be unique, as the derivative, which exists by the assumptions, must be strictly decreasing due to concavity of <span class="math inline">\(f\)</span> and hence there can be at most <span class="math inline">\(1\)</span> critical point.</p>
|
||
<p>Some facts about this picture can be proven from the definition of concavity:</p>
|
||
<blockquote class="blockquote">
|
||
<p>The slope of the tangent line at <span class="math inline">\(u\)</span> goes up slower than the slope of the tangent line at <span class="math inline">\(v\)</span> declines: <span class="math inline">\(f'(u) < -f'(v)\)</span>.</p>
|
||
</blockquote>
|
||
<p>Since <span class="math inline">\(f'\)</span> is <em>strictly</em> concave, we have for any <span class="math inline">\(a<u<v<b\)</span> from the definition of concavity that for all <span class="math inline">\(0 \leq t \leq 1\)</span></p>
|
||
<p><span class="math display">\[
|
||
tf'(u) + (1-t)f'(v) < f'(tu + (1-t)v).
|
||
\]</span></p>
|
||
<p>So</p>
|
||
<p><span class="math display">\[
|
||
\begin{align*}
|
||
\int_0^1 (tf'(u) + (1-t)f'(v)) dt &< \int_0^1 f'(tu + (1-t)v) dt, \text{or}\\
|
||
\frac{f'(u) + f'(v)}{2} &< \frac{1}{v-u}\int_u^v f'(w) dw,
|
||
\end{align*}
|
||
\]</span></p>
|
||
<p>by the substitution <span class="math inline">\(w = tu + (1-t)v\)</span>. Using the fundamental theorem of calculus to compute the mean value of the integral of <span class="math inline">\(f'\)</span> over <span class="math inline">\([u,v]\)</span> gives the following as a consequence of strict concavity of <span class="math inline">\(f'\)</span>:</p>
|
||
<p><span class="math display">\[
|
||
\frac{f'(u) + f'(v)}{2} < \frac{f(v)-f(u)}{v-u}
|
||
\]</span></p>
|
||
<p>The above is true for any <span class="math inline">\(u\)</span> and <span class="math inline">\(v\)</span>, but, by assumption our <span class="math inline">\(u\)</span> and <span class="math inline">\(v\)</span> under consideration have <span class="math inline">\(f(u) = f(v)\)</span>, hence it must be <span class="math inline">\(f'(u) < -f'(v)\)</span>.</p>
|
||
<blockquote class="blockquote">
|
||
<p>The critical point is greater than the midpoint between <span class="math inline">\(u\)</span> and <span class="math inline">\(v\)</span>: <span class="math inline">\((u+v)/2 < c\)</span>.</p>
|
||
</blockquote>
|
||
<p>The function <span class="math inline">\(f\)</span> restricted to <span class="math inline">\([a,c]\)</span> and <span class="math inline">\([c,b]\)</span> is strictly monotone, as <span class="math inline">\(f'\)</span> only changes sign at <span class="math inline">\(c\)</span>. Hence, there are inverse functions, say <span class="math inline">\(f_1^{-1}\)</span> and <span class="math inline">\(f_2^{-1}\)</span> taking <span class="math inline">\([0,m]\)</span> to <span class="math inline">\([a,c]\)</span> and <span class="math inline">\([c,b]\)</span> respectively. The inverses are differentiable, as <span class="math inline">\(f'\)</span> exists, and must satisfy: <span class="math inline">\([f_1^{-1}]'(y) > 0\)</span> (as <span class="math inline">\(f'\)</span> is positive on <span class="math inline">\([a,c]\)</span>) and, similarly, <span class="math inline">\([f_2^{-1}]'(y) < 0\)</span>. By the previous result, the inverses also satisfy:</p>
|
||
<p><span class="math display">\[
|
||
[f_1^{-1}]'(y) > -[f_2^{-1}]'(y)
|
||
\]</span></p>
|
||
<p>(The inequality reversed due to the derivative of the inverse function being related to the reciprocal of the derivative of the function.)</p>
|
||
<p>For any <span class="math inline">\(0 \leq \alpha < \beta \leq m\)</span> we have:</p>
|
||
<p><span class="math display">\[
|
||
\int_{\alpha}^{\beta} ([f_1^{-1}]'(y) +[f_2^{-1}]'(y)) dy > 0
|
||
\]</span></p>
|
||
<p>By the fundamental theorem of calculus:</p>
|
||
<p><span class="math display">\[
|
||
(f_1^{-1}(y) + f_2^{-1}(y))\big|_\alpha^\beta > 0
|
||
\]</span></p>
|
||
<p>On rearranging:</p>
|
||
<p><span class="math display">\[
|
||
f_1^{-1}(\alpha) + f_2^{-1}(\alpha) < f_1^{-1}(\beta) + f_2^{-1}(\beta)
|
||
\]</span></p>
|
||
<p>That is <span class="math inline">\(f_1^{-1} + f_2^{-1}\)</span> is strictly increasing.</p>
|
||
<p>Taking <span class="math inline">\(\beta=m\)</span> gives a bound in terms of <span class="math inline">\(c\)</span> for any <span class="math inline">\(0 \leq \alpha < m\)</span>:</p>
|
||
<p><span class="math display">\[
|
||
f_1^{-1}(\alpha) + f_2^{-1}(\alpha) < 2c.
|
||
\]</span></p>
|
||
<p>The result comes from setting <span class="math inline">\(\alpha=f(u)\)</span>; setting <span class="math inline">\(\alpha=0\)</span> shows the result for <span class="math inline">\([a,b]\)</span>.</p>
|
||
<blockquote class="blockquote">
|
||
<p>The intersection point of the two tangent lines, <span class="math inline">\(d\)</span>, satisfies <span class="math inline">\((u+v)/2 < d\)</span>.</p>
|
||
</blockquote>
|
||
<p>If <span class="math inline">\(f(u) = f(v)\)</span>, the previously established relationship between the slopes of the tangent lines suggests the answer. However, this statement is actually true more generally, with just the assumption that <span class="math inline">\(u < v\)</span> and not necessarily that <span class="math inline">\(f(u)=f(v)\)</span>.</p>
|
||
<p>Solving for <span class="math inline">\(d\)</span> from equations of the tangent lines gives</p>
|
||
<p><span class="math display">\[
|
||
d = \frac{f(v)-f(u) + uf'(u) - vf'(v)}{f'(u) - f'(v)}
|
||
\]</span></p>
|
||
<p>So <span class="math inline">\((u+v)/2 < d\)</span> can be re-expressed as</p>
|
||
<p><span class="math display">\[
|
||
\frac{f'(u) + f'(v)}{2} < \frac{f(v) - f(u)}{v-u}
|
||
\]</span></p>
|
||
<p>which holds by the strict concavity of <span class="math inline">\(f'\)</span>, as found previously.</p>
|
||
<blockquote class="blockquote">
|
||
<p>Let <span class="math inline">\(h=f(u)\)</span>. The areas under <span class="math inline">\(f\)</span> are such that there is more area in <span class="math inline">\([a,u]\)</span> than <span class="math inline">\([v,b]\)</span> and more area under <span class="math inline">\(f(x)-h\)</span> in <span class="math inline">\([u,c]\)</span> than <span class="math inline">\([c,v]\)</span>. In particular more area under <span class="math inline">\(f\)</span> over <span class="math inline">\([a,c]\)</span> than <span class="math inline">\([c,b]\)</span>.</p>
|
||
</blockquote>
|
||
<p>Using the substitution <span class="math inline">\(x = f_i^{-1}(u)\)</span> as needed to see:</p>
|
||
<p><span class="math display">\[
|
||
\begin{align*}
|
||
\int_a^u f(x) dx &= \int_0^{f(u)} u [f_1^{-1}]'(u) du \\
|
||
&> -\int_0^h u [f_2^{-1}]'(u) du \\
|
||
&= \int_h^0 u [f_2^{-1}]'(u) du \\
|
||
&= \int_v^b f(x) dx.
|
||
\end{align*}
|
||
\]</span></p>
|
||
<p>For the latter claim, integrating in the <span class="math inline">\(y\)</span> variable gives</p>
|
||
<p><span class="math display">\[
|
||
\begin{align*}
|
||
\int_u^c (f(x)-h) dx &= \int_h^m (c - f_1^{-1}(y)) dy\\
|
||
&> \int_h^m (c - f_2^{-1}(y)) dy\\
|
||
&= \int_c^v (f(x)-h) dx
|
||
\end{align*}
|
||
\]</span></p>
|
||
<p>Now, the area under <span class="math inline">\(h\)</span> over <span class="math inline">\([u,c]\)</span> is greater than that over <span class="math inline">\([c,v]\)</span> as <span class="math inline">\((u+v)/2 < c\)</span> or <span class="math inline">\(v-c < c-u\)</span>. That means the area under <span class="math inline">\(f\)</span> over <span class="math inline">\([u,c]\)</span> is greater than that over <span class="math inline">\([c,v]\)</span>.</p>
|
||
<blockquote class="blockquote">
|
||
<p>There is more arc length for <span class="math inline">\(f\)</span>over <span class="math inline">\([a,u]\)</span> than <span class="math inline">\([v,b]\)</span>; more arc length for <span class="math inline">\(f\)</span> over <span class="math inline">\([u,c]\)</span> than <span class="math inline">\([c,v]\)</span>. In particular more arc length over <span class="math inline">\([a,c]\)</span> than <span class="math inline">\([c,b]\)</span>.</p>
|
||
</blockquote>
|
||
<p>let <span class="math inline">\(\phi(z) = f_2^{-1}(f_1(z))\)</span> be the function taking <span class="math inline">\(u\)</span> to <span class="math inline">\(v\)</span>, and <span class="math inline">\(a\)</span> to <span class="math inline">\(b\)</span> and moreover the interval <span class="math inline">\([a,u]\)</span> to <span class="math inline">\([v,b]\)</span>. Further, <span class="math inline">\(f(z) = f(\phi(z))\)</span>. The function is differentiable, as it is a composition of differentiable functions and for any <span class="math inline">\(a \leq z \leq u\)</span> we have</p>
|
||
<p><span class="math display">\[
|
||
f'(\phi(z)) \cdot \phi'(z) = f'(z) < 0
|
||
\]</span></p>
|
||
<p>or <span class="math inline">\(\phi'(z) < 0\)</span>. Moreover, we have by the first assertion that <span class="math inline">\(f'(z) < -f'(\phi(z))\)</span> so <span class="math inline">\(|\phi'(z)| = |f(z)/f'(\phi(z))| < 1\)</span>.</p>
|
||
<p>Using the substitution <span class="math inline">\(x = \phi(z)\)</span> gives:</p>
|
||
<p><span class="math display">\[
|
||
\begin{align*}
|
||
\int_v^b \sqrt{1 + f'(x)^2} dx &=
|
||
\int_u^a \sqrt{1 + f'(\phi(z))^2} \phi'(z) dz\\
|
||
&= \int_a^u \sqrt{1 + f'(\phi(z))^2} |\phi'(z)| dz\\
|
||
&= \int_a^u \sqrt{\phi'(z)^2 + (f'(\phi(z))\phi'(z))^2} dz\\
|
||
&= \int_a^u \sqrt{\phi'(z)^2 + f'(z)^2} dz\\
|
||
&< \int_a^u \sqrt{1 + f'(z)^2} dz
|
||
\end{align*}
|
||
\]</span></p>
|
||
<p>Letting <span class="math inline">\(h=f(u) \rightarrow c\)</span> we get the <em>inequality</em></p>
|
||
<p><span class="math display">\[
|
||
\int_c^b \sqrt{1 + f'(x)^2} dx \leq \int_a^c \sqrt{1 + f'(x)^2} dx,
|
||
\]</span></p>
|
||
<p>which must also hold for any paired <span class="math inline">\(u,v=\phi(u)\)</span>. This allows the use of the strict inequality over <span class="math inline">\([v,b]\)</span> and <span class="math inline">\([a,u]\)</span> to give:</p>
|
||
<p><span class="math display">\[
|
||
\int_c^b \sqrt{1 + f'(x)^2} dx < \int_a^c \sqrt{1 + f'(x)^2} dx,
|
||
\]</span></p>
|
||
<p>which would also hold for any paired <span class="math inline">\(u, v\)</span>.</p>
|
||
<p>Now, why is this of interest. Previously, we have considered the example of the trajectory of an arrow on a windy day given in function form by:</p>
|
||
<p><span class="math display">\[
|
||
f(x) = \left(\frac{g}{k v_0\cos(\theta)} + \tan(\theta) \right) x + \frac{g}{k^2}\log\left(1 - \frac{k}{v_0\cos(\theta)} x \right)
|
||
\]</span></p>
|
||
<p>This comes from solving the projectile motion equations with a drag force <em>proportional</em> to the velocity. This function satisfies:</p>
|
||
<div class="cell" data-hold="true" data-execution_count="26">
|
||
<div class="sourceCode cell-code" id="cb26"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb26-1"><a href="#cb26-1" aria-hidden="true" tabindex="-1"></a><span class="pp">@syms</span> gₑ<span class="op">::</span><span class="dt">postive</span>, k<span class="op">::</span><span class="dt">postive</span>, v₀<span class="op">::</span><span class="dt">positive</span>, θ<span class="op">::</span><span class="dt">postive</span>, x<span class="op">::</span><span class="dt">postive</span></span>
|
||
<span id="cb26-2"><a href="#cb26-2" aria-hidden="true" tabindex="-1"></a>ex <span class="op">=</span> (gₑ<span class="op">/</span>(<span class="fu">k*v₀*cos</span>(θ)) <span class="op">+</span> <span class="fu">tan</span>(θ))<span class="op">*</span>x <span class="op">+</span> gₑ<span class="op">/</span>k<span class="op">^</span><span class="fl">2</span> <span class="op">*</span> <span class="fu">log</span>(<span class="fl">1</span> <span class="op">-</span> k<span class="op">/</span>(<span class="fu">v₀*cos</span>(θ))<span class="op">*</span>x)</span>
|
||
<span id="cb26-3"><a href="#cb26-3" aria-hidden="true" tabindex="-1"></a><span class="fu">diff</span>(ex, x, x), <span class="fu">diff</span>(ex, x, 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-display" data-execution_count="27">
|
||
<pre><code>(-gₑ/(v₀^2*(k*x/(v₀*cos(θ)) - 1)^2*cos(θ)^2), 2*gₑ*k/(v₀^3*(k*x/(v₀*cos(θ)) - 1)^3*cos(θ)^3))</code></pre>
|
||
</div>
|
||
</div>
|
||
<p>Both the second and third derivatives are negative (as <span class="math inline">\(0 \leq x < (v_0\cos(\theta))/k\)</span> due to the logarithm term), so, both <span class="math inline">\(f\)</span> and <span class="math inline">\(f'\)</span> are strictly concave down. Hence the results above apply. That is the arrow will fly further as it goes up, than as it comes down and will carve out more area on its way up, than its way down. The trajectory could also show time versus height, and the same would hold, e.g, the arrow would take longer to go up than come down.</p>
|
||
<p>In general, the drag force need not be proportional to the velocity, but merely in opposite direction to the velocity vector <span class="math inline">\(\langle x'(t), y'(t) \rangle\)</span>:</p>
|
||
<p><span class="math display">\[
|
||
-m W(t, x(t), x'(t), y(t), y'(t)) \cdot \langle x'(t), y'(t)\rangle,
|
||
\]</span></p>
|
||
<p>with the case above corresponding to <span class="math inline">\(W = -m(k/m)\)</span>. The set of equations then satisfy:</p>
|
||
<p><span class="math display">\[
|
||
\begin{align*}
|
||
x''(t) &= - W(t,x(t), x'(t), y(t), y'(t)) \cdot x'(t)\\
|
||
y''(t) &= -g - W(t,x(t), x'(t), y(t), y'(t)) \cdot y'(t)\\
|
||
\end{align*}
|
||
\]</span></p>
|
||
<p>with initial conditions: <span class="math inline">\(x(0) = y(0) = 0\)</span> and <span class="math inline">\(x'(0) = v_0 \cos(\theta), y'(0) = v_0 \sin(\theta)\)</span>.</p>
|
||
<p>Only with certain drag forces, can this set of equations be be solved exactly, though it can be approximated numerically for admissible <span class="math inline">\(W\)</span>, but if <span class="math inline">\(W\)</span> is strictly positive then it can be shown <span class="math inline">\(x(t)\)</span> is increasing on <span class="math inline">\([0, x_\infty)\)</span> and so invertible, and <span class="math inline">\(f(u) = y(x^{-1}(u))\)</span> is three times differentiable with both <span class="math inline">\(f\)</span> and <span class="math inline">\(f'\)</span> being strictly concave, as it can be shown that (say <span class="math inline">\(x(v) = u\)</span> so <span class="math inline">\(dv/du = 1/x'(v) > 0\)</span>):</p>
|
||
<p><span class="math display">\[
|
||
\begin{align*}
|
||
f''(u) &= -\frac{g}{x'(v)^2} < 0\\
|
||
f'''(u) &= \frac{2gx''(v)}{x'(v)^3} \\
|
||
&= -\frac{2gW}{x'(v)^2} \cdot \frac{dv}{du} < 0
|
||
\end{align*}
|
||
\]</span></p>
|
||
<p>The latter by differentiating, the former a consequence of the following formulas for derivatives of inverse functions</p>
|
||
<p><span class="math display">\[
|
||
\begin{align*}
|
||
[x^{-1}]'(u) &= 1 / x'(v) \\
|
||
[x^{-1}]''(u) &= -x''(v)/(x'(v))^3
|
||
\end{align*}
|
||
\]</span></p>
|
||
<p>For then</p>
|
||
<p><span class="math display">\[
|
||
\begin{align*}
|
||
f(u) &= y(x^{-1}(u)) \\
|
||
f'(u) &= y'(x^{-1}(u)) \cdot {x^{-1}}'(u) \\
|
||
f''(u) &= y''(x^{-1}(u))\cdot[x^{-1}]'(u)^2 + y'(x^{-1}(u)) \cdot [x^{-1}]''(u) \\
|
||
&= y''(v) / (x'(v))^2 - y'(v) \cdot x''(v) / x'(v)^3\\
|
||
&= -g/(x'(v))^2 - W y'/(x'(v))^2 - y'(v) \cdot (- W \cdot x'(v)) / x'(v)^3\\
|
||
&= -g/x'(v)^2.
|
||
\end{align*}
|
||
\]</span></p>
|
||
</section>
|
||
</section>
|
||
<section id="questions" class="level2" data-number="46.2">
|
||
<h2 data-number="46.2" class="anchored" data-anchor-id="questions"><span class="header-section-number">46.2</span> Questions</h2>
|
||
<section id="question" class="level6">
|
||
<h6 class="anchored" data-anchor-id="question">Question</h6>
|
||
<p>The length of the curve given by <span class="math inline">\(f(x) = e^x\)</span> between <span class="math inline">\(0\)</span> and <span class="math inline">\(1\)</span> is certainly longer than the length of the line connecting <span class="math inline">\((0, f(0))\)</span> and <span class="math inline">\((1, f(1))\)</span>. What is that length?</p>
|
||
<div class="cell" data-hold="true" data-execution_count="27">
|
||
<div class="cell-output cell-output-display" data-execution_count="28">
|
||
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="4314161126995591641" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_4314161126995591641">
|
||
<div style="padding-top: 5px">
|
||
<br>
|
||
<div class="input-group">
|
||
<input id="4314161126995591641" type="number" class="form-control" placeholder="Numeric answer">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="4314161126995591641_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.getElementById("4314161126995591641").addEventListener("change", function() {
|
||
var correct = (Math.abs(this.value - 1.397316156785056) <= 0.001);
|
||
var msgBox = document.getElementById('4314161126995591641_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_4314161126995591641")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_4314161126995591641")
|
||
if (explanation != null) {
|
||
explanation.style.display = "block";
|
||
}
|
||
}
|
||
|
||
});
|
||
|
||
</script>
|
||
</div>
|
||
</div>
|
||
<p>The length of the curve is certainly less than the length of going from <span class="math inline">\((0,f(0))\)</span> to <span class="math inline">\((1, f(0))\)</span> and then up to <span class="math inline">\((1, f(1))\)</span>. What is the length of this upper bound?</p>
|
||
<div class="cell" data-hold="true" data-execution_count="28">
|
||
<div class="cell-output cell-output-display" data-execution_count="29">
|
||
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="2838585702148015238" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_2838585702148015238">
|
||
<div style="padding-top: 5px">
|
||
<br>
|
||
<div class="input-group">
|
||
<input id="2838585702148015238" type="number" class="form-control" placeholder="Numeric answer">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="2838585702148015238_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.getElementById("2838585702148015238").addEventListener("change", function() {
|
||
var correct = (Math.abs(this.value - 2.718281828459045) <= 0.001);
|
||
var msgBox = document.getElementById('2838585702148015238_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_2838585702148015238")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_2838585702148015238")
|
||
if (explanation != null) {
|
||
explanation.style.display = "block";
|
||
}
|
||
}
|
||
|
||
});
|
||
|
||
</script>
|
||
</div>
|
||
</div>
|
||
<p>Now find the actual length of the curve numerically:</p>
|
||
<div class="cell" data-hold="true" data-execution_count="29">
|
||
<div class="cell-output cell-output-display" data-execution_count="30">
|
||
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="10691388003219912233" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_10691388003219912233">
|
||
<div style="padding-top: 5px">
|
||
<br>
|
||
<div class="input-group">
|
||
<input id="10691388003219912233" type="number" class="form-control" placeholder="Numeric answer">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="10691388003219912233_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.getElementById("10691388003219912233").addEventListener("change", function() {
|
||
var correct = (Math.abs(this.value - 2.0034971116273526) <= 0.001);
|
||
var msgBox = document.getElementById('10691388003219912233_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_10691388003219912233")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_10691388003219912233")
|
||
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>Find the length of the graph of <span class="math inline">\(f(x) = x^{3/2}\)</span> between <span class="math inline">\(0\)</span> and <span class="math inline">\(4\)</span>.</p>
|
||
<div class="cell" data-hold="true" data-execution_count="30">
|
||
<div class="cell-output cell-output-display" data-execution_count="31">
|
||
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="13180364860313850238" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_13180364860313850238">
|
||
<div style="padding-top: 5px">
|
||
<br>
|
||
<div class="input-group">
|
||
<input id="13180364860313850238" type="number" class="form-control" placeholder="Numeric answer">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="13180364860313850238_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.getElementById("13180364860313850238").addEventListener("change", function() {
|
||
var correct = (Math.abs(this.value - 9.073415289387619) <= 0.001);
|
||
var msgBox = document.getElementById('13180364860313850238_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_13180364860313850238")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_13180364860313850238")
|
||
if (explanation != null) {
|
||
explanation.style.display = "block";
|
||
}
|
||
}
|
||
|
||
});
|
||
|
||
</script>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="question-2" class="level6">
|
||
<h6 class="anchored" data-anchor-id="question-2">Question</h6>
|
||
<p>A <a href="http://www-history.mcs.st-and.ac.uk/Curves/Pursuit.html">pursuit</a> curve is a track an optimal pursuer will take when chasing prey. The function <span class="math inline">\(f(x) = x^2 - \log(x)\)</span> is an example. Find the length of the curve between <span class="math inline">\(1/10\)</span> and <span class="math inline">\(2\)</span>.</p>
|
||
<div class="cell" data-hold="true" data-execution_count="31">
|
||
<div class="cell-output cell-output-display" data-execution_count="32">
|
||
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="15544498946287140582" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_15544498946287140582">
|
||
<div style="padding-top: 5px">
|
||
<br>
|
||
<div class="input-group">
|
||
<input id="15544498946287140582" type="number" class="form-control" placeholder="Numeric answer">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="15544498946287140582_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.getElementById("15544498946287140582").addEventListener("change", function() {
|
||
var correct = (Math.abs(this.value - 3.5719968650115566) <= 0.001);
|
||
var msgBox = document.getElementById('15544498946287140582_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_15544498946287140582")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_15544498946287140582")
|
||
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>Find the length of the graph of <span class="math inline">\(f(x) = \tan(x)\)</span> between <span class="math inline">\(-\pi/4\)</span> and <span class="math inline">\(\pi/4\)</span>.</p>
|
||
<div class="cell" data-hold="true" data-execution_count="32">
|
||
<div class="cell-output cell-output-display" data-execution_count="33">
|
||
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="14882330909349160726" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_14882330909349160726">
|
||
<div style="padding-top: 5px">
|
||
<br>
|
||
<div class="input-group">
|
||
<input id="14882330909349160726" type="number" class="form-control" placeholder="Numeric answer">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="14882330909349160726_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.getElementById("14882330909349160726").addEventListener("change", function() {
|
||
var correct = (Math.abs(this.value - 2.5559561185558684) <= 0.001);
|
||
var msgBox = document.getElementById('14882330909349160726_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_14882330909349160726")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_14882330909349160726")
|
||
if (explanation != null) {
|
||
explanation.style.display = "block";
|
||
}
|
||
}
|
||
|
||
});
|
||
|
||
</script>
|
||
</div>
|
||
</div>
|
||
<p>Note, the straight line segment should be a close approximation and has length:</p>
|
||
<div class="cell" data-hold="true" data-execution_count="33">
|
||
<div class="sourceCode cell-code" id="cb28"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb28-1"><a href="#cb28-1" aria-hidden="true" tabindex="-1"></a><span class="fu">sqrt</span>((<span class="fu">tan</span>(<span class="cn">pi</span><span class="op">/</span><span class="fl">4</span>) <span class="op">-</span> <span class="fu">tan</span>(<span class="op">-</span><span class="cn">pi</span><span class="op">/</span><span class="fl">4</span>))<span class="op">^</span><span class="fl">2</span> <span class="op">+</span> (<span class="cn">pi</span><span class="op">/</span><span class="fl">4</span> <span class="op">-</span> <span class="op">-</span><span class="cn">pi</span><span class="op">/</span><span class="fl">4</span>)<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="34">
|
||
<pre><code>2.543108550627035</code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="question-4" class="level6">
|
||
<h6 class="anchored" data-anchor-id="question-4">Question</h6>
|
||
<p>Find the length of the graph of the function <span class="math inline">\(g(x) =\int_0^x \tan(x)dx\)</span> between <span class="math inline">\(0\)</span> and <span class="math inline">\(\pi/4\)</span> by hand or numerically:</p>
|
||
<div class="cell" data-hold="true" data-execution_count="34">
|
||
<div class="cell-output cell-output-display" data-execution_count="35">
|
||
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="11201027514838620424" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_11201027514838620424">
|
||
<div style="padding-top: 5px">
|
||
<br>
|
||
<div class="input-group">
|
||
<input id="11201027514838620424" type="number" class="form-control" placeholder="Numeric answer">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="11201027514838620424_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.getElementById("11201027514838620424").addEventListener("change", function() {
|
||
var correct = (Math.abs(this.value - 0.881373587019543) <= 0.001);
|
||
var msgBox = document.getElementById('11201027514838620424_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_11201027514838620424")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_11201027514838620424")
|
||
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>A boat sits at the point <span class="math inline">\((a, 0)\)</span> and a man holds a rope taut attached to the boat at the origin <span class="math inline">\((0,0)\)</span>. The man walks on the <span class="math inline">\(y\)</span> axis. The position <span class="math inline">\(y\)</span> depends then on the position <span class="math inline">\(x\)</span> of the boat, and if the rope is taut, the position satisfies:</p>
|
||
<p><span class="math display">\[
|
||
y = a \ln\frac{a + \sqrt{a^2 - x^2}}{x} - \sqrt{a^2 - x^2}
|
||
\]</span></p>
|
||
<p>This can be entered into <code>julia</code> as:</p>
|
||
<div class="cell" data-execution_count="35">
|
||
<div class="sourceCode cell-code" id="cb30"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb30-1"><a href="#cb30-1" aria-hidden="true" tabindex="-1"></a><span class="fu">h</span>(x, a) <span class="op">=</span> a <span class="op">*</span> <span class="fu">log</span>((a <span class="op">+</span> <span class="fu">sqrt</span>(a<span class="op">^</span><span class="fl">2</span> <span class="op">-</span> x<span class="op">^</span><span class="fl">2</span>))<span class="op">/</span>x) <span class="op">-</span> <span class="fu">sqrt</span>(a<span class="op">^</span><span class="fl">2</span> <span class="op">-</span> 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="36">
|
||
<pre><code>h (generic function with 2 methods)</code></pre>
|
||
</div>
|
||
</div>
|
||
<p>Let <span class="math inline">\(a=12\)</span>, <span class="math inline">\(f(x) = h(x, a)\)</span>. Compute the length the bow of the boat has traveled between <span class="math inline">\(x=1\)</span> and <span class="math inline">\(x=a\)</span> using <code>quadgk</code>.</p>
|
||
<div class="cell" data-hold="true" data-execution_count="36">
|
||
<div class="cell-output cell-output-display" data-execution_count="37">
|
||
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="407816312314117113" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_407816312314117113">
|
||
<div style="padding-top: 5px">
|
||
<br>
|
||
<div class="input-group">
|
||
<input id="407816312314117113" type="number" class="form-control" placeholder="Numeric answer">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="407816312314117113_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.getElementById("407816312314117113").addEventListener("change", function() {
|
||
var correct = (Math.abs(this.value - 29.818879797456006) <= 0.001);
|
||
var msgBox = document.getElementById('407816312314117113_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_407816312314117113")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_407816312314117113")
|
||
if (explanation != null) {
|
||
explanation.style.display = "block";
|
||
}
|
||
}
|
||
|
||
});
|
||
|
||
</script>
|
||
</div>
|
||
</div>
|
||
<p>(The most elementary description of this curve is in terms of the relationship <span class="math inline">\(dy/dx = -\sqrt{a^2-x^2}/x\)</span> which could be used in place of <code>D(f)</code> in your work.)</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>To see an example of how the tractrix can be found in an everyday observation, follow this link on a description of <a href="https://simonsfoundation.org/multimedia/mathematical-impressions-bicycle-tracks">bicycle</a> tracks.</p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="question-6" class="level6">
|
||
<h6 class="anchored" data-anchor-id="question-6">Question</h6>
|
||
<p><code>SymPy</code> fails with the brute force approach to finding the length of a catenary, but can with a little help:</p>
|
||
<div class="cell" data-hold="true" data-execution_count="37">
|
||
<div class="sourceCode cell-code" id="cb32"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb32-1"><a href="#cb32-1" aria-hidden="true" tabindex="-1"></a><span class="pp">@syms</span> x<span class="op">::</span><span class="dt">real </span>a<span class="op">::</span><span class="dt">real</span></span>
|
||
<span id="cb32-2"><a href="#cb32-2" aria-hidden="true" tabindex="-1"></a><span class="fu">f</span>(x,a) <span class="op">=</span> a <span class="op">*</span> <span class="fu">cosh</span>(x<span class="op">/</span>a)</span>
|
||
<span id="cb32-3"><a href="#cb32-3" aria-hidden="true" tabindex="-1"></a>inside <span class="op">=</span> <span class="fl">1</span> <span class="op">+</span> <span class="fu">diff</span>(<span class="fu">f</span>(x,a), 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="38">
|
||
<span class="math-left-align" style="padding-left: 4px; width:0; float:left;">
|
||
\[
|
||
\sinh^{2}{\left(\frac{x}{a} \right)} + 1
|
||
\]
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<p>Just trying <code>integrate(sqrt(inside), x)</code> will fail, but if we try <code>integrate(sqrt(simplify(inside), x))</code> an antiderivative can be found. What is it?</p>
|
||
<div class="cell" data-execution_count="38">
|
||
<div class="cell-output cell-output-display" data-execution_count="39">
|
||
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="16794444701704865644" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_16794444701704865644">
|
||
<div style="padding-top: 5px">
|
||
<div class="form-check">
|
||
<label class="form-check-label" for="radio_16794444701704865644_1">
|
||
<input class="form-check-input" type="radio" name="radio_16794444701704865644" id="radio_16794444701704865644_1" value="1">
|
||
|
||
<span class="label-body px-1">
|
||
\(\frac{a \sinh{\left(\frac{x}{a} \right)} \cosh{\left(\frac{x}{a} \right)}}{2} - \frac{x \sinh^{2}{\left(\frac{x}{a} \right)}}{2} + \frac{x \cosh^{2}{\left(\frac{x}{a} \right)}}{2}\)
|
||
</span>
|
||
</label>
|
||
</div>
|
||
<div class="form-check">
|
||
<label class="form-check-label" for="radio_16794444701704865644_2">
|
||
<input class="form-check-input" type="radio" name="radio_16794444701704865644" id="radio_16794444701704865644_2" value="2">
|
||
|
||
<span class="label-body px-1">
|
||
\(a \sinh{\left(\frac{x}{a} \right)}\)
|
||
</span>
|
||
</label>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="16794444701704865644_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.querySelectorAll('input[name="radio_16794444701704865644"]').forEach(function(rb) {
|
||
rb.addEventListener("change", function() {
|
||
var correct = rb.value == 2;
|
||
var msgBox = document.getElementById('16794444701704865644_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_16794444701704865644")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_16794444701704865644")
|
||
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>A curve is parameterized by <span class="math inline">\(g(t) = t + \sin(t)\)</span> and <span class="math inline">\(f(t) = \cos(t)\)</span>. Find the arc length of the curve between <span class="math inline">\(t=0\)</span> and <span class="math inline">\(\pi\)</span>.</p>
|
||
<div class="cell" data-execution_count="39">
|
||
<div class="cell-output cell-output-display" data-execution_count="40">
|
||
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="18036804711317940970" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_18036804711317940970">
|
||
<div style="padding-top: 5px">
|
||
<br>
|
||
<div class="input-group">
|
||
<input id="18036804711317940970" type="number" class="form-control" placeholder="Numeric answer">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="18036804711317940970_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.getElementById("18036804711317940970").addEventListener("change", function() {
|
||
var correct = (Math.abs(this.value - 4.0) <= 0.001);
|
||
var msgBox = document.getElementById('18036804711317940970_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_18036804711317940970")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_18036804711317940970")
|
||
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>The <a href="http://www-history.mcs.st-and.ac.uk/Curves/Astroid.html">astroid</a> is a curve parameterized by <span class="math inline">\(g(t) = \cos(t)^3\)</span> and <span class="math inline">\(f(t) = \sin(t)^3\)</span>. Find the arc length of the curve between <span class="math inline">\(t=0\)</span> and <span class="math inline">\(2\pi\)</span>. (This can be computed by hand or numerically.)</p>
|
||
<div class="cell" data-execution_count="40">
|
||
<div class="cell-output cell-output-display" data-execution_count="41">
|
||
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="3223246077178638086" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_3223246077178638086">
|
||
<div style="padding-top: 5px">
|
||
<br>
|
||
<div class="input-group">
|
||
<input id="3223246077178638086" type="number" class="form-control" placeholder="Numeric answer">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="3223246077178638086_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.getElementById("3223246077178638086").addEventListener("change", function() {
|
||
var correct = (Math.abs(this.value - 6.0) <= 0.001);
|
||
var msgBox = document.getElementById('3223246077178638086_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_3223246077178638086")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_3223246077178638086")
|
||
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>A curve is parameterized by <span class="math inline">\(g(t) = (2t + 3)^{2/3}/3\)</span> and <span class="math inline">\(f(t) = t + t^2/2\)</span>, for <span class="math inline">\(0\leq t \leq 3\)</span>. Compute the arc-length numerically or by hand:</p>
|
||
<div class="cell" data-execution_count="41">
|
||
<div class="cell-output cell-output-display" data-execution_count="42">
|
||
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="9417010986995755482" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_9417010986995755482">
|
||
<div style="padding-top: 5px">
|
||
<br>
|
||
<div class="input-group">
|
||
<input id="9417010986995755482" type="number" class="form-control" placeholder="Numeric answer">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="9417010986995755482_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.getElementById("9417010986995755482").addEventListener("change", function() {
|
||
var correct = (Math.abs(this.value - 7.547109045293191) <= 0.001);
|
||
var msgBox = document.getElementById('9417010986995755482_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_9417010986995755482")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_9417010986995755482")
|
||
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>The cycloid is parameterized by <span class="math inline">\(g(t) = a(t - \sin(t))\)</span> and <span class="math inline">\(f(t) = a(1 - \cos(t))\)</span> for <span class="math inline">\(a > 0\)</span>. Taking <span class="math inline">\(a=3\)</span>, and <span class="math inline">\(t\)</span> in <span class="math inline">\([0, 2\pi]\)</span>, find the length of the curve traced out. (This was solved by the architect and polymath <a href="https://www.maa.org/sites/default/files/pdf/cmj_ftp/CMJ/January%202010/3%20Articles/3%20Martin/08-170.pdf">Wren</a> in 1650.)</p>
|
||
<div class="cell" data-execution_count="42">
|
||
<div class="cell-output cell-output-display" data-execution_count="43">
|
||
<form class="mx-2 my-3 mw-100" name="WeaveQuestion" data-id="3242569993871494937" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_3242569993871494937">
|
||
<div style="padding-top: 5px">
|
||
<br>
|
||
<div class="input-group">
|
||
<input id="3242569993871494937" type="number" class="form-control" placeholder="Numeric answer">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="3242569993871494937_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.getElementById("3242569993871494937").addEventListener("change", function() {
|
||
var correct = (Math.abs(this.value - 24.000000000000004) <= 0.001);
|
||
var msgBox = document.getElementById('3242569993871494937_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_3242569993871494937")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_3242569993871494937")
|
||
if (explanation != null) {
|
||
explanation.style.display = "block";
|
||
}
|
||
}
|
||
|
||
});
|
||
|
||
</script>
|
||
</div>
|
||
</div>
|
||
<p>A cycloid parameterized this way can be generated by a circle of radius <span class="math inline">\(a\)</span>. Based on this example, what do you think Wren wrote to Pascal about this length:</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="6882076463813570893" data-controltype="">
|
||
<div class="form-group ">
|
||
<div class="controls">
|
||
<div class="form" id="controls_6882076463813570893">
|
||
<div style="padding-top: 5px">
|
||
<div class="form-check">
|
||
<label class="form-check-label" for="radio_6882076463813570893_1">
|
||
<input class="form-check-input" type="radio" name="radio_6882076463813570893" id="radio_6882076463813570893_1" value="1">
|
||
|
||
<span class="label-body px-1">
|
||
The length of the cycloidal arch is exactly <strong>two</strong> times the radius of the generating circle.
|
||
</span>
|
||
</label>
|
||
</div>
|
||
<div class="form-check">
|
||
<label class="form-check-label" for="radio_6882076463813570893_2">
|
||
<input class="form-check-input" type="radio" name="radio_6882076463813570893" id="radio_6882076463813570893_2" value="2">
|
||
|
||
<span class="label-body px-1">
|
||
The length of the cycloidal arch is exactly <strong>four</strong> times the radius of the generating circle.
|
||
</span>
|
||
</label>
|
||
</div>
|
||
<div class="form-check">
|
||
<label class="form-check-label" for="radio_6882076463813570893_3">
|
||
<input class="form-check-input" type="radio" name="radio_6882076463813570893" id="radio_6882076463813570893_3" value="3">
|
||
|
||
<span class="label-body px-1">
|
||
The length of the cycloidal arch is exactly <strong>eight</strong> times the radius of the generating circle.
|
||
</span>
|
||
</label>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div id="6882076463813570893_message" style="padding-bottom: 15px"></div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script text="text/javascript">
|
||
document.querySelectorAll('input[name="radio_6882076463813570893"]').forEach(function(rb) {
|
||
rb.addEventListener("change", function() {
|
||
var correct = rb.value == 3;
|
||
var msgBox = document.getElementById('6882076463813570893_message');
|
||
if(correct) {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>";
|
||
var explanation = document.getElementById("explanation_6882076463813570893")
|
||
if (explanation != null) {
|
||
explanation.style.display = "none";
|
||
}
|
||
} else {
|
||
msgBox.innerHTML = "<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>";
|
||
var explanation = document.getElementById("explanation_6882076463813570893")
|
||
if (explanation != null) {
|
||
explanation.style.display = "block";
|
||
}
|
||
}
|
||
|
||
})});
|
||
|
||
</script>
|
||
</div>
|
||
</div>
|
||
<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>In <a href="https://www.maa.org/sites/default/files/pdf/cmj_ftp/CMJ/January%202010/3%20Articles/3%20Martin/08-170.pdf">Martin</a> we read why Wren was mailing Pascal:</p>
|
||
<p>After demonstrating mathematical talent at an early age, Blaise Pascal turned his attention to theology, denouncing the study of mathematics as a vainglorious pursuit. Then one night, unable to sleep as the result of a toothache, he began thinking about the cycloid and to his surprise, his tooth stopped aching. Taking this as a sign that he had God’s approval to continue, Pascal spent the next eight days studying the curve. During this time he discovered nearly all of the geometric properties of the cycloid. He issued some of his results in <span class="math inline">\(1658\)</span> in the form of a contest, offering a prize of forty Spanish gold pieces and a second prize of twenty pieces.</p>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</section>
|
||
</section>
|
||
|
||
</main> <!-- /main -->
|
||
<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="../integrals/volumes_slice.html" class="pagination-link">
|
||
<i class="bi bi-arrow-left-short"></i> <span class="nav-page-text"><span class="chapter-number">45</span> <span class="chapter-title">Volumes by slicing</span></span>
|
||
</a>
|
||
</div>
|
||
<div class="nav-page nav-page-next">
|
||
<a href="../integrals/surface_area.html" class="pagination-link">
|
||
<span class="nav-page-text"><span class="chapter-number">47</span> <span class="chapter-title">Surface Area</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> |