roots of equations chapter 3. roots of equations also called “zeroes” of the equation –a value...
TRANSCRIPT
![Page 1: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/1.jpg)
Roots of Equations
Chapter 3
![Page 2: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/2.jpg)
Roots of Equations
• Also called “zeroes” of the equation– A value x such that f(x) = 0
• Extremely important in applications– Can represent optimal shapes for structures,
equilibrium points for the economy, etc.
• Polynomials up to degree 4 can be solved “exactly”– But we’ve already seen the care you need to
exercise with even a quadratic equation!
![Page 3: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/3.jpg)
Solution Methods
• Two categories:• Iterative (“open”) methods
– Fixed-point Iteration– Newton’s method– Secant method
• Bracketing methods– Bisection– False position
• We’ll do a hybrid of bisection and false position Program 3
![Page 4: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/4.jpg)
Fixed-point Methods
• Rewrite f(x) = 0 as x = g(x)
• Choose a starting value, x0
• Calculate the sequence xi+1 = g(xi)
• Maybe it will converge, maybe it won’t :-)– We’ll investigate convergence criteria
![Page 5: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/5.jpg)
Example
• Consider f(x) = x2 – 5x + 4– The solutions are 4 and 1
• Rewrite as x = (x2 + 4) / 5
• Try initial guesses of 2, then 5– One converges to 1, the other diverges!– See iterate.cpp
![Page 6: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/6.jpg)
Convergence Criterion
• If the xi converge, then their difference diminishes– In other words |xi+1 – xi| decreases
• By the Mean Value Theorem:
baab
agbgg
,)()(
)(
![Page 7: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/7.jpg)
Convergence Criterion(continued)
• Let a = xi-1, b = xi in the MVT• Remember that xi+1 = g(xi)
11
11
)(
))(()()(
iiii
iiii
xxgxx
xxgxgxg
![Page 8: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/8.jpg)
Convergence Criterion(continued)
• Suppose that the derivative of g(x) is bounded in the region of interest, say |g'(x)| <= M
• The reasoning that follows shows that |g'(x)| < 1 will guarantee convergence:
011
012
1223
2334
1223
0112
...
...
xxMxx
xxMxxMxx
xxMxx
xxMxx
xxMxx
iii
![Page 9: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/9.jpg)
Newton’s Method
• An iterative method with a quadratic order of convergence (g'(r) = 0)
• Uses g(x) = x – f(x)/f'(x)
• Two derivations:– Geometric– Taylor Series
• See newton.cpp
![Page 10: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/10.jpg)
Newton’s MethodGeometric Approach
• Given a guess x0, x1 is obtained by finding where the tangent line at (x0, f(x0)) intersects the x-axis
• The line can be found by setting y1 to 0 and solving the following for x1:
)(
)(
)()(
0
001
0100
0101
xf
xfxx
xxxfxf
xxmyy
![Page 11: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/11.jpg)
Newton’s MethodTaylor Series Approach
• Expand f(x) about xi, evaluate at xi+1, and drop terms after second term:
))(()()( 11 iiiii xxxfxfxf
• We want the iterates to approach zero, so substitute 0 for f(xi+1) on the left:
)(
)(
)())((
))(()(0
1
1
1
i
iii
iiii
iiii
xf
xfxx
xfxxxf
xxxfxf
![Page 12: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/12.jpg)
Newton’s MethodProblems
• The obvious problem is the divisor f'(x)– If it’s zero, bad news!– Happens when you have a double root (like the
vertex of a parabola on the x-axis (y = x2)• Because the first derivative is zero (horizontal)
• The closer the derivative goes to zero, the worse Newton’s Method behaves– Flat tangents send you all over the place– And it can spin forever if there’s no real root (like x2
+ 2 = 0)
![Page 13: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/13.jpg)
Order of Convergence
• The smaller the first derivative, the faster the iteration will converge– If the first derivative is zero, it will converge an order
of magnitude faster– We will show this by looking at the Taylor series
• Definition:– The Order of Convergence of an iterative method is
the order of its lowest, non-zero derivative– Simple iteration as we just saw is linear
• Because the first derivative is not necessarily 0
![Page 14: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/14.jpg)
Newton’s MethodOrder of Convergence
• Newton’s method is quadratic because g'(r) = 0 (remember f(r) = 0):
0)(
)()()(
)(
)()(
)(
)()()(1)(
)(
)()(
2
22
2
rf
rfrfrg
xf
xfxf
xf
xfxfxfxg
xf
xfxxg
![Page 15: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/15.jpg)
Complex Roots
• Can just use Newton’s method with complex numbers– Must start with a non-zero imaginary part!– In C++ we use the complex class template– See cnewton.cpp
• Can also solve an equivalent system of real equations– But we’ll skip that (it’s mathy)
![Page 16: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/16.jpg)
Secant Method
• Like Newton’s Method, but uses the difference approximation to f'(x)– Linear Interpolation technique ((a,f(a))—(b,f(b)))– Order of Convergence ≈ 1.618
• (1 + √5)/2 (Fibonacci!)
– Only requires 1 function evaluation per iteration• Newton’s requires two• Secant avoids evaluating a costly derivative
• See secant.cpp (see next two slides first)
![Page 17: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/17.jpg)
Secant Method
![Page 18: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/18.jpg)
Secant MethodProblems
• Requires 2 initial guesses• Might still divide by 0• Two places where cancellation can occur
)()()(
1
11
nn
nnnnn xfxf
xxxfxx
![Page 19: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/19.jpg)
Bracketing Methods
• Begin with the endpoints of an interval that “bracket” a root– Signs of f(a) and f(b) differ– A root is guaranteed to be found
• Bisection (bisect.cpp)– Halves the interval, like binary search– Sure, but slow (linear)
• False Position (false.cpp)– Like secant, but maintains the bracketing behavior– Can perform poorly
![Page 20: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/20.jpg)
Hybrid Methods
• Combine the safety of bracketing methods with the speed of iterative methods
• Program 4– Will use False Position
• Maintains bracketing
– Also will use a “secondary secant”• To reduce interval at both ends
– Reverts to bisection if the secants don’t “sufficiently reduce” the interval
![Page 21: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/21.jpg)
Secondary Secants
• Connect f(a) to f(c)• Replace [a, b] by [c, d]
![Page 22: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/22.jpg)
Secondary Secants
• Or, replace [a, b] by [d, c]– Governed by what will maintain a sign change
![Page 23: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/23.jpg)
Program 4
• Using false position, compute c– If c <= a or c >= b, bisect– (After each bisection, return to attempt false position)
• Compute d (depends on sign(f(c)))– If d <= a or d >= b, bisect– If |d – c| > |b – a|/2, bisect
• Exit when f evaluates to 0 at c or d, or if the bisection step narrows to 1 ulp– Check for f(c) == 0 or f(d) == 0 immediately– Never evaluate f at the same x-value twice– Should have no more than 3 function evaluations per
iteration
![Page 24: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/24.jpg)
Optimizations
- After computing c, insert the following code: if (c <= a)
c = a + eps*abs(a); // 1-2 ulps past a
else if (c >= b)
c = b - eps*abs(b); // 1-2 ulps before b
- Then test for c <= a or c >= b again as before…
(It makes a tremendous difference!)
- Always use the smallest, current interval whenever you degrade to bisection ([a,c], [c,b], [c,d] or [d,c])- Not the original [a,b]
![Page 25: Roots of Equations Chapter 3. Roots of Equations Also called “zeroes” of the equation –A value x such that f(x) = 0 Extremely important in applications](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649de75503460f94ae163d/html5/thumbnails/25.jpg)
Root Finding in Matlab
• fzero function
• fzero(f, x0)– Searches for sign change
• fzero(f,[a b])– [a b] must contain a sign change– Uses a method similar to our Program 3
• Trace options:– options = optimset('display','iter')– [x,fx] = fzero('x^10-1',[-.14 1.14],options)