Heun's method: Difference between revisions

Content deleted Content added
Derivation: Change `\Delta y /h` to `\frac{\Delta y}{h}`, i.e. put the `\Delta y` directly over the `h`. Also remove redundant `\textstyle`s from the math.
Reverting edit(s) by 193.49.248.18 (talk) to rev. 1184167418 by Remsense: Vandalism (RW 16.1)
 
(18 intermediate revisions by 18 users not shown)
Line 1:
{{Short description|Procedure for solving ODEs}}
In [[mathematics]] and [[computational science]], '''Heun's method''' may refer to the '''improved'''<ref>{{Citation | last1=Süli | first1=Endre | last2=Mayers | first2=David | title=An Introduction to Numerical Analysis | publisher=[[Cambridge University Press]] | isbn=0-521-00794-1 | year=2003}}.</ref> or '''modified Euler's method''' (that is, the '''explicit trapezoidal rule'''<ref>
{{Citation | last1=Ascher | first1=Uri M. | last2=Petzold | first2=Linda R.|author2-link=Linda Petzold | title=Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations | publisher=[[Society for Industrial and Applied Mathematics]] | ___location=Philadelphia | isbn=978-0-89871-412-8 | year=1998}}.</ref>), or a similar two-stage [[Runge–Kutta method]]. It is named after [[Karl Heun]] and is a [[numerical analysis|numerical]] procedure for solving [[ordinary differential equation]]s (ODEs) with a given [[Initial value problem|initial value]]. Both variants can be seen as extensions of the [[Euler method]] into two-stage second-order Runge–Kutta methods.
 
The procedure for calculating the numerical solution to the initial value problem via the improved Euler's method is:
 
:<math>y'(t) = f(t,y(t)), \qquad \qquad y(t_0)=y_0, </math>
Line 8 ⟶ 9:
:<math>\tilde{y}_{i+1} = y_i + h f(t_i,y_i)</math>
:<math>y_{i+1} = y_i + \frac{h}{2}[f(t_i, y_i) + f(t_{i+1},\tilde{y}_{i+1})],</math>
:
where <math>h</math> is the step size and <math>t_{i+1}=t_i+h</math>.
 
==Description==
Euler’sEuler's method is used as the foundation for Heun’sHeun's method. Euler's method uses the line tangent to the function at the beginning of the interval as an estimate of the slope of the function over the interval, assuming that if the step size is small, the error will be small. However, even when extremely small step sizes are used, over a large number of steps the error starts to accumulate and the estimate diverges from the actual functional value.
 
Where the solution curve is concave up, its tangent line will underestimate the vertical coordinate of the next point and vice versa for a concave down solution. The ideal prediction line would hit the curve at its next predicted point. In reality, there is no way to know whether the solution is concave-up or concave-down, and hence if the next predicted point will overestimate or underestimate its vertical value. The concavity of the curve cannot be guaranteed to remain consistent either and the prediction may overestimate and underestimate at different points in the ___domain of the solution.
Heun’sHeun's Method addresses this problem by considering the interval spanned by the tangent line segment as a whole. Taking a concave-up example, the left tangent prediction line underestimates the slope of the curve for the entire width of the interval from the current point to the next predicted point. If the tangent line at the right end point is considered (which can be estimated using Euler’sEuler's Method), it has the opposite problem.<ref>{{cite web
<ref>{{cite web
|title=Numerical Methods for Solving Differential Equations
|publisher=San Joaquin Delta College
Line 21 ⟶ 22:
|archiveurl=https://web.archive.org/web/20090212005921/http://calculuslab.deltacollege.edu/ODE/7-C-2/7-C-2-h.html
|archivedate=2009-02-12}}</ref>
The points along the tangent line of the left end point have vertical coordinates which all underestimate those that lie on the solution curve, including the right end point of the interval under consideration. The solution is to make the slope greater by some amount. Heun’sHeun's Method considers the tangent lines to the solution curve at ''both'' ends of the interval, one which ''overestimates'', and one which ''underestimates'' the ideal vertical coordinates. A prediction line must be constructed based on the right end point tangent’stangent's slope alone, approximated using Euler's Method. If this slope is passed through the left end point of the interval, the result is evidently too steep to be used as an ideal prediction line and overestimates the ideal point. Therefore, the ideal point lies approximately halfway between the erroneous overestimation and underestimation, the average of the two slopes.
[[File:Heun's Method Diagram.jpg|thumb|right|alt=Heun's Method.|A diagram depicting the use of Heun's method to find a less erroneous prediction when compared to the lower order Euler's Method]]
Euler’sEuler's Method is used to roughly estimate the coordinates of the next point in the solution, and with this knowledge, the original estimate is re-predicted or ''corrected''.<ref>
{{Citation | last1=Chen
| first1=Wenfang.
Line 37 ⟶ 38:
:<math>\text{Slope}_{\text{left}} = f(x_i, y_i)</math>
:<math>\text{Slope}_{\text{right}} = f(x_i + h, y_i + h f(x_i, y_i))</math>
:<math>\text{Slope}_{\text{ideal}} = (\frac{1/}{2)} (\text{Slope}_{\text{left}} + \text{Slope}_{\text{right}})</math>
 
Using the principle that the slope of a line equates to the rise/run, the coordinates at the end of the interval can be found using the following formula:
Line 51 ⟶ 52:
 
The accuracy of the Euler method improves only linearly with the step size is decreased, whereas the Heun Method improves accuracy quadratically
.<ref>{{cite web|url=http://livetoad.org/Courses/Documents/214a/Notes/euler-heun_method.pdf|title=The Euler-Heun Method|last=|first=|date=|website=|publisher=LiveToad.org|url-status=dead|archive-url=https://web.archive.org/web/20181014204120/http://livetoad.org/Courses/Documents/214a/Notes/euler-heun_method.pdf|archive-date=2018-10-14|access-date=}}</ref> The scheme can be compared with the [[Explicit and implicit methods|implicit]] [[trapezoidal method]], but with <math>f(t_{i+1},y_{i+1})</math> replaced by <math>f(t_{i+1},\tilde{y}_{i+1})</math> in order to make it explicit. <math>\tilde{y}_{i+1}</math> is the result of one step of [[Euler's method]] on the same initial value problem. So, Heun's method is a [[predictor-corrector method]] with forward [[Euler's method]] as predictor and [[trapezoidal method]] as corrector.
.<ref>{{cite web
|title=The Euler-Heun Method
|publisher=LiveToad.org
|url=http://livetoad.org/Courses/Documents/214a/Notes/euler-heun_method.pdf
}}</ref> The scheme can be compared with the [[Explicit and implicit methods|implicit]] [[trapezoidal method]], but with <math>f(t_{i+1},y_{i+1})</math> replaced by <math>f(t_{i+1},\tilde{y}_{i+1})</math> in order to make it explicit. <math>\tilde{y}_{i+1}</math> is the result of one step of [[Euler's method]] on the same initial value problem. So, Heun's method is a [[predictor-corrector method]] with forward [[Euler's method]] as predictor and [[trapezoidal method]] as corrector.
 
==Runge–Kutta method==
Line 70 ⟶ 67:
|}
 
The other method referred to as Heun's method (also known as Ralston's method) has the Butcher tabletableau:<ref>
{{Citation | last1=Leader | first1=Jeffery J.| title=Numerical Analysis and Scientific Computation | publisher=[[Addison-Wesley]] | ___location=Boston | isbn=0-201-73499-0 | year=2004}}.</ref>