Newton–Raphson Method

4.5 Newton–Raphson Method

The Newton–Raphson algorithm is the best-known method of finding roots for a good reason: it is simple and fast. The only drawback of the method is that it uses the derivative f ′ (x) of the function as well as the function f (x) itself. Therefore, the Newton–Raphson method is usable only in problems where f ′ (x) can be readily com- puted.

The Newton–Raphson formula can be derived from the Taylor series expansion of f (x) about x:

i+1 ) = f (x i )+f ′ (x i )(x i+1 −x i ) + O(x i+1 −x i ) (a) If x i+1 is a root of f (x) = 0, Eq. (a) becomes

f (x

0 = f (x 2 i )+f (x i ) (x i+1 −x i ) + O(x i+1 −x i ) (b) Assuming that x i is a close to x i+1 , we can drop the last term in Eq. (b) and solve for

x i+1 . The result is the Newton–Raphson formula

If x denotes the true value of the root, the error in x i is E i =x−x i . It can be shown that if x i+1 is computed from Eq. (4.3), the corresponding error is

indicating that the Newton–Raphson method converges quadratically (the error is the square of the error in the previous step). As a consequence, the number of significant figures is roughly doubled in every iteration, provided that x i is close to the root.

Tangent line f (x)

Figure 4.4. Graphical interpretation of the Newton–Raphson

A graphical depiction of the Newton–Raphson formula is shown in Fig. 4.4. The for- mula approximates f (x) by the straight line that is tangent to the curve at x i . Thus x i+1 is at the intersection of the x-axis and the tangent line.

The algorithm for the Newton–Raphson method is simple: it repeatedly applies Eq. (4.3), starting with an initial value x 0 , until the convergence criterion

|x i+1 −x 1 |<ε

is reached, ε being the error tolerance. Only the latest value of x has to be stored. Here is the algorithm:

1. Let x be a guess for the root of f (x) = 0.

Figure 4.5. Examples where the Newton–Raphson method diverges.

Although the Newton–Raphson method converges fast near the root, its global convergence characteristics are poor. The reason is that the tangent line is not al- ways an acceptable approximation of the function, as illustrated in the two examples in Fig. 4.5. But the method can be made nearly fail-safe by combining it with bisection, as in Brent’s method.

The following safe version of the Newton–Raphson method assumes that the root to be computed is initially bracketed in (a,b) . The midpoint of the bracket is used as the initial guess of the root. The brackets are updated after each iteration. If a

Newton–Raphson iteration does not stay within the brackets, it is disregarded and replaced with bisection. Since newtonRaphson uses the function f(x) as well as its derivative, function routines for both (denoted by func and dfunc in the listing) must

be provided by the user.

function root = newtonRaphson(func,dfunc,a,b,tol) % Newton-Raphson method combined with bisection for % finding a root of f(x) = 0. % USAGE: root = newtonRaphson(func,dfunc,a,b,tol) % INPUT: % func

= handle of function that returns f(x). % dfunc = handle of function that returns f’(x). % a,b

= brackets (limits) of the root. % tol

= error tolerance (default is 1.0e6*eps). % OUTPUT: % root = zero of f(x) (root = NaN if no convergence).

if nargin < 5; tol = 1.0e6*eps; end fa = feval(func,a); fb = feval(func,b); if fa == 0; root = a; return; end if fb == 0; root = b; return; end if fa*fb > 0.0

error(’Root is not bracketed in (a,b)’) end x = (a + b)/2.0; for i = 1:30

fx = feval(func,x); if abs(fx) < tol; root = x; return; end % Tighten brackets on the root if fa*fx < 0.0; b = x; else; a = x; end % Try Newton--Raphson step dfx = feval(dfunc,x); if abs(dfx) == 0; dx = b - a; else; dx = -fx/dfx; end x = x + dx; % If x not in bracket, use bisection if (b - x)*(x - a) < 0.0 fx = feval(func,x); if abs(fx) < tol; root = x; return; end % Tighten brackets on the root if fa*fx < 0.0; b = x; else; a = x; end % Try Newton--Raphson step dfx = feval(dfunc,x); if abs(dfx) == 0; dx = b - a; else; dx = -fx/dfx; end x = x + dx; % If x not in bracket, use bisection if (b - x)*(x - a) < 0.0

end % Check for convergence if abs(dx) < tol*max(b,1.0)

root = x; return end end root = NaN

EXAMPLE 4.6

A root of f (x) = x 3 − 10x 2 + 5 = 0 lies close to x = 0.7. Compute this root with the Newton–Raphson method.

Solution The derivative of the function is f ′ (x) = 3x 2 − 20x, so that the Newton– Raphson formula in Eq. (4.3) is

x←x− f ′ (x) =x− 3x 2 =

x (3x − 20) It takes only two iterations to reach five decimal place accuracy:

EXAMPLE 4.7 Find the smallest positive zero of

f (x) = x 4 − 6.4x 3 + 6.45x 2 + 20.538x − 31.752

Solution

20 f (x)

Inspecting the plot of the function, we suspect that the smallest positive zero is a double root near x = 2. Bisection and Brent’s method would not work here, since they

depend on the function changing its sign at the root. The same argument applies to the function newtonRaphson . But there no reason why the unrefined version of the Newton–Raphson method should not succeed. We used the following program, which prints the number of iterations in addition to the root:

function [root,numIter] = newton _ simple(func,dfunc,x,tol) % Simple version of Newton-Raphson method used in Example 4.7.

if nargin < 5; tol = 1.0e6*eps; end for i = 1:30

dx = -feval(func,x)/feval(dfunc,x); x = x + dx; if abs(dx) < tol

root = x; numIter = i; return end end root = NaN

The two functions called by the program are function y = fex4 _ 7(x)

% Function used in Example 4.7. y = xˆ4 - 6.4*xˆ3 + 6.45*xˆ2 + 20.538*x - 31.752;

function y = dfex4 _ 7(x) % Function used in Example 4.7. y = 4.0*xˆ3 - 19.2*xˆ2 + 12.9*x + 20.538;

Here are the results: >> [root,numIter] = newton _ simple(@fex4 _ 7,@dfex4 _ 7,2.0)

root = 2.1000 numIter = 27

It can be shown that near a multiple root the convergence of the Newton–Raphson method is linear, rather than quadratic, which explains the large number of iterations. Convergence to a multiple root can be speeded up by replacing the Newton–Raphson It can be shown that near a multiple root the convergence of the Newton–Raphson method is linear, rather than quadratic, which explains the large number of iterations. Convergence to a multiple root can be speeded up by replacing the Newton–Raphson

i ) i+1 =x i −m f ′ (x i )

f (x

where m is the multiplicity of the root (m = 2 in this problem). After making the change in the above program, we obtained the result in 5 iterations.

Dokumen yang terkait

WARTA ARDHIA Jurnal Perhubungan Udara Harapan dan Kepentingan Pengguna Jasa Angkutan Udara Terhadap Pelayanan di Bandar Udara H.AS Hanandjoeddin–Tanjung Pandan Belitung Air Transport Passenger Expectations and Interest of Airport Services in H.A.S Hanandj

0 0 12

The Evaluation of Air Transportation Infrastructure Performance in Indonesian Capital Province

0 0 10

Demand Forecasting of Modal Share of Bandara Internasional Jawa Barat (BJIB) in Kertajati Majalengka

0 1 12

WARTA ARDHIA Jurnal Perhubungan Udara Analisis Flutter Pada Uji Model Separuh Sayap Pesawat N219 di Terowongan Angin Kecepatan Rendah The Analysis of Half Wing Flutter Test N219 Aircraft Model in The Low Speed Wind Tunnel

0 0 8

WARTA ARDHIA Jurnal Perhubungan Udara Penerapan Skema Badan Layanan Umum Dalam Pengelolaan Keuangan Bandar Udara Internasional Jawa Barat The Application of Badan Layanan Umum Scheme in The Financial Management of Jawa Barat International Airport

0 0 16

Speech Recognition Conceptual Design in Aircraft Communications to Reduce Flight Communication Mistake

0 0 10

WARTA ARDHIA Jurnal Perhubungan Udara Perencanaan Integrasi Transportasi Antarmoda Dalam Pembangunan Bandar Udara (Studi Kasus: Pembangunan Bandar Udara di Kertajati) Intermodal Transportation Integration Planning in Airport Development (Case Study: Airpo

0 0 8

WARTA ARDHIA Jurnal Perhubungan Udara Gaya Hambat Saat Hidro Planing dan Gaya Angkat Aerodinamika Saat Cruise di Efek Permukaan pada Pesawat Wing in Surface Effect The Hump Drags During Hydro Planing and Aerodynamic Lift During Cruise in Surface Effect Al

0 0 8

WARTA ARDHIA Jurnal Perhubungan Udara Peran Jasa Ground Handling Terhadap Pelayanan Perusahaan Air Freight di Bali dalam Menghadapi Kompetisi Global The Role of Ground Handling Services to The Air Freight Services in Bali in The Face of Global Competition

0 1 14

Advance Engineering Mathematic chaper 1

0 0 63