Download presentation
Presentation is loading. Please wait.
1
Second Term 05/061 Roots of Equations Bracketing Methods
2
Second Term 05/062 Root We are given f(x), a function of x, and we want to find α such that f(α) = 0 α is called the root of the equation f(x) = 0, or the zero of the function f(x)
3
Second Term 05/063 Example: Interest Rate Suppose you want to buy an electronic appliance from a shop and you can either pay an amount of 12,000 or have a monthly payment of 1,065 for 12 months. What is the corresponding interest rate? A is the monthly payment P is the loan amount x is the interest rate per period of time n is the loan period To find the yearly interest rate, x, you have to find the zero of We know the payment formulae is:
4
Second Term 05/064 Finding Roots Graphically Not accurate However, graphical view can provide useful info about a function. –Multiple roots? –Continuous? –etc.
5
Second Term 05/065 The following root finding methods will be introduced: A. Bracketing Methods A.1. Bisection Method A.2. Regula Falsi B. Open Methods B.1. Fixed Point Iteration B.2. Newton Raphson's Method B.3. Secant Method
6
Second Term 05/066 Bracketing Methods By Mean Value Theorem, we know that if a function f(x) is continuous in the interval [a, b] and f(a)f(b) < 0, then the equation f(x) = 0 has at least one real root in the interval (a, b).
7
Second Term 05/067 Usually f(a)f(b) > 0 implies zero or even number of roots –[figure (a) and (c)] f(a)f(b) < 0 implies odd number of roots –[figure (b) and (d)]
8
Second Term 05/068 Exceptional Cases Multiple roots –Roots that overlap at one point. –e.g.: f(x) = (x-1)(x-1)(x-2) has a multiple root at x=1. Functions that discontinue within the interval
9
Second Term 05/069 Algorithm for bracketing methods Step 1: Choose two points x l and x u such that f(x l )f(x u ) < 0 Step 2: Estimate the root x r (note: x l < x r < x u ) Step 3: Determine which subinterval the root lies: if f(x l )f(x r ) < 0 // the root lies in the lower subinterval set x u to x r and goto step 2 if f(x l )f(x r ) > 0 // the root lies in the upper subinterval set x l to x r and goto step 2 if f(x l )f(x r ) = 0 x r is the root
10
Second Term 05/0610 How to select x r in step 2? 1.Bisection Method Guess without considering the characteristics of f(x) in (xl, xu) 2.False Position Method (Regula Falsi) Use "average slope" to predict the root
11
Second Term 05/0611 A.1. Bisection Method Each guess reduce the search interval by half
12
Second Term 05/0612 Bisection Method – Example Find the root of f(x) = 0 with an approximated error below 0.5%. (True root: α=14.7802 )
13
Second Term 05/0613 Example (continue) nxlxl xrxr xuxu f(xl)f(xl)f(xr)f(xr)f(xu)f(xu)f(xl)f(xu)f(xl)f(xu)εaεa 012166.067-2.269 11214166.0671.569-2.269> 0 21415161.569-0.425-2.269< 06.667% 31414.5151.5690.552-0.425> 03.448% 414.514.75150.5520.0590-0.425> 01.695% 514.7514.875150.0590-0.184-0.425< 00.840% 614.7514.812514.8750.0590-0.0629-0.184< 00.422%
14
Second Term 05/0614 Error Bounds The true root, α, must lie between x l and x u. xlxl xuxu xrxr x l (1) x u (1) After the 1 st iteration, the solution, x r (1), should be within an accuracy of x r (1) Let x r (n) denotes x r in the n th iteration
15
Second Term 05/0615 Error Bounds x l (2) x u (1) x u (2) Suppose the root lies in the lower subinterval. x r (2) After the 2 nd iteration, the solution, x r (2), should be within an accuracy of
16
Second Term 05/0616 Error Bounds In general, after the n th iteration, the solution, x r (n), should be within an accuracy of If we want to achieve an absolute error of no more than E α
17
Second Term 05/0617 Implementation Issues The condition f(x l )f(x r ) = 0 (in step 3) is difficult to achieve due to errors. We should repeat until x r is close enough to the root, but we don't know what the root is! Therefore, we have to estimate the error as and repeat until e a < e s (acceptable error)
18
Second Term 05/0618 Bisection Method (as C function) // xl, xu: Lower and upper bound of the interval // es: Acceptable relative percentage error // xr: Estimated root in zero iteration (can simply // take xl or xu) // iter_max: Maximum # of iterations double Bisect(double xl, double xu, double es, double xr, int iter_max) { double xr_old; // Est. root in the previous step double ea; // Est. error int iter = 0; // Keep track of # of iterations do { iter++; xr_old = xr;
19
Second Term 05/0619 xr = (xl + xu) / 2; // Estimate root if (xr != 0) ea = fabs((xr – xr_old) / xr) * 100; test = f(xl) * f(xr); if (test < 0) xu = xr; else if (test > 0) xl = xr; else ea = 0; } while (ea > es && iter < iter_max); return xr; }
20
Second Term 05/0620 Additional Implementation Issues Function call is a relatively slow operation. In the previous example, function f() is called twice in each iteration. Is it necessary? –We only need to update one of the bounds (see step 3 in the algorithm for the bracketing method).
21
Second Term 05/0621 Revised Bisection Method (as C function) double Bisect(double xl, double xu, double es, double xr, int iter_max) { double xr_old; // Est. root in the previous step double ea; // Est. error int iter = 0; // Keep track of # of iterations double fl, fr; // Save values of f(xl) and f(xr) fl = f(xl); do { iter++; xr_old = xr; xr = (xl + xu) / 2; // Estimate root fr = f(xr);
22
Second Term 05/0622 if (xr != 0) ea = fabs((xr – xr_old) / xr) * 100; test = fl * fr; if (test < 0) xu = xr; else if (test > 0) { xl = xr; fl = fr; } else ea = 0; } while (ea > es && iter < iter_max); return xr; }
23
Second Term 05/0623 Comments on Bisection Method The method is guaranteed to converge. However, the convergence is slow as we gain only one binary digit in accuracy in each iteration.
24
Second Term 05/0624 A.2. Regula Falsi Method Also known as the false-position method, or linear interpolation method. Unlike the bisection method which divides the search interval by half, regula falsi interpolates f(x u ) and f(x l ) by a straight line and the intersection of this line with the x-axis Is used as the new search position. The slope of the line connecting f(x u ) and f(x l ) represents the "average slope" (i.e., the value of f'(x)) of the points in [x l, x u ].
25
Second Term 05/0625
26
Second Term 05/0626 False-position vs Bisection False position in general performs better than bisection method. Exceptional Cases: –(Usually) When the deviation of f'(x) is high and the end points of the interval are selected poorly. –For example,
27
Second Term 05/0627 Iteration xlxl xuxu xrxr ε a (%)ε t (%) 101.30.6535 20.651.30.97533.325 30.9751.31.137514.313.8 40.9751.13751.056257.75.6 50.9751.056251.0156254.01.6 Iteration xlxl xuxu xrxr ε a (%)ε t (%) 101.30.0943090.6 20.094301.30.1817648.181.8 30.181761.30.2628730.973.7 40.262871.30.3381122.366.2 50.338111.30.4078817.159.2 Bisection Method (Converge quicker) False-position Method
28
Second Term 05/0628
29
Second Term 05/0629 Summary Bracketing Methods –f(x) has the be continuous in the interval [ x l, x u ] and f(x l )f(x u ) < 0 –Always converge –Usually slower than open methods Bisection Method –Slow but guarantee the best worst-case convergent rate. False-position method –In general performs better than bisection method (with some exceptions).
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.