lec 7 newton raphson

Upload: arafatasghar

Post on 02-Apr-2018

260 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/27/2019 Lec 7 Newton Raphson

    1/31

    Roots of Nonlinear Equations

    Topic: Newton-Raphson Method

    Dr. Nasir M Mirza

    Numerical Methods

    Email: [email protected]

  • 7/27/2019 Lec 7 Newton Raphson

    2/31

    Newton-Raphson Method

    This method is one of the most widely used methods to solveequations also known as the Newton-Raphson.

    The idea for the method comes from a Taylor series expansion,

    where you know the function and its first derivative.

    f(xk+1) = f(xk) + (xk+1 - xk)*f (xk) + ...

    The goal of the calculations is to find af(x)=0, so setf(xk+1) =

    0 and rearrange the equation. [f (xk) is the first derivative of

    f(x). ]0 = f(xk) + (xk+1 - xk)*f (xk)

    xk+1 = xk - [ f(xk) / f (xk) ]

  • 7/27/2019 Lec 7 Newton Raphson

    3/31

    Newton-Raphson Method

    f(x)

    f(xi)

    f(xi-1)

    xi+2 xi+1 xix

    ii xfx ,

    )(xf

    )f(x-= xx

    i

    iii

    1

    The method uses the slopeof the line to project to the

    x axis and find the root.

    The method converges on

    the solution quickly.

  • 7/27/2019 Lec 7 Newton Raphson

    4/31

    Derivation

    f(x)

    f(xi)

    xi+1 xix

    B

    C

    A

    )('

    )(1

    i

    iiixf

    xfxx

    1

    )()('

    ii

    ii

    xxxfxf

    AC

    ABtan(

  • 7/27/2019 Lec 7 Newton Raphson

    5/31

    Algorithm for Newton-RaphsonMethod

  • 7/27/2019 Lec 7 Newton Raphson

    6/31

    Step 1

    Evaluate df/dx = f(x) symbolically: that is find an analyticalexpression for the first derivative of the function with respect to x.

  • 7/27/2019 Lec 7 Newton Raphson

    7/31

    Newton-Raphson Method: Step 2

    )f'(x

    )f(x-= xx

    i

    iii 1

    010x

    1

    1 x

    - xx=

    i

    iia

    Calculate the next estimate of the root

    Find the absolute relative approximate error

  • 7/27/2019 Lec 7 Newton Raphson

    8/31

    Step 3

    Find if the absolute relative approximate error is greater thanthe pre-specified relative error tolerance.

    If so, go back to step 2, else stop the algorithm.

    Also check if the number of iterations has exceeded themaximum number of iterations.

  • 7/27/2019 Lec 7 Newton Raphson

    9/31

    Newton-Raphson Method: Example You are working for DOWN THE TOILET COMPANY that makes

    floats for ABC commodes. The ball has a specific gravity of 0.6

    and has a radius of 5.5 cm. You are asked to find the distance to

    which the ball will get submerged when floating in water.

  • 7/27/2019 Lec 7 Newton Raphson

    10/31

    Newton-Raphson Method: Example 1

    The equation that gives the depth x to which the ball is submergedunder water is given by

    Use the Newtons method of finding

    roots of equations to find the depth xto which the ball is submerged underwater. Conduct three iterations toestimate the root of the aboveequation.

    x.-xxf

    .+x.-xxf

    -

    3303

    10x99331650

    2

    423

    Solution:

  • 7/27/2019 Lec 7 Newton Raphson

    11/31

    Graph of function f(x)

    -0.02 0.00 0.02 0.04 0.06 0.08 0.10 0.12

    -0.0004

    -0.0003

    -0.0002

    -0.0001

    0.0000

    0.0001

    0.0002

    0.0003

    0.0004

    0.0005

    f(x)

    x

    4

    23

    10x9933

    1650

    -.+

    x.-xxf

  • 7/27/2019 Lec 7 Newton Raphson

    12/31

    Iteration #1

    %96.75

    0.08320

    10x4.5

    10.413x302.0

    '

    02.0

    3

    4

    1

    0

    0

    01

    0

    a

    x

    xf

    xfxx

    x

  • 7/27/2019 Lec 7 Newton Raphson

    13/31

    Iteration #2

    %86.42

    0.05824

    10x689.610x670.108320.0

    '

    08320.0

    3

    4

    2

    1

    112

    1

    a

    x

    xf

    xfxx

    x

  • 7/27/2019 Lec 7 Newton Raphson

    14/31

    Iteration #3

    %592.6

    0.06235

    10x043.9

    10x717.305284.0

    '

    05824.0

    a

    3

    5

    2

    223

    2

    xf

    xfxx

    x

  • 7/27/2019 Lec 7 Newton Raphson

    15/31

    Newtons Method: computer algo

    Do while |x2 - x1| >= tolerance value 1

    or |f(x2)|>= tolerance value 2

    or f(x1) ~= 0

    Set x2 = x1 - f(x1)/f(x1)

    Set x1 = x2;

    END loop

  • 7/27/2019 Lec 7 Newton Raphson

    16/31

    Example 2:

    Let us solve the followingproblem:

    x5 + x3 + 4x2 - 3x2 = 0

    Then f(x) = x5 + x3 + 4x2 - 3x2

    df/dx = 5x4 + 3x2 + 8x - 3

    Let us first draw a graph andsee where are the roots;

    The roots are between (-1.7,-

    1.3), (-1,0), & (0.5,1.5)

    Then let us write a computer

    program in MATLAB thatwill compute the root using

    Newton-Raphson method.

    -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0

    -20

    -10

    0

    10

    20

    30

    40

    50

    f(x)

    x

  • 7/27/2019 Lec 7 Newton Raphson

    17/31

    Computer Program in MATLAB

    % A program that Uses Newton-Raphson method% to find the roots of x = x^3 +x^2 -3x -3

    % Input: x0 = initial guess;

    % n = number of iterations; default: n = 10;

    % Output: x = estimate of the root;

    n = 10; x0 = -2.0

    x = x0; % Initial Guess

    fprintf(' k f(x) dfdx x(k+1)\n');

    for k=1:n

    f = x^5 + x^3 + 4*x^2 - 3*x - 2;

    dfdx = 5*x^4 + 3*x^2 + 8*x - 3;

    x = x - f/dfdx;fprintf('%3d %12.3e %12.3e %18.15f\n',k-1,f,dfdx,x);

    end

  • 7/27/2019 Lec 7 Newton Raphson

    18/31

    Newtons Method

    k f(x) dfdx x(k+1)

    0 -2.000e+001 7.300e+001 -1.726027

    1 -5.367e+000 3.651e+001 -1.579022

    2 -1.043e+000 2.293e+001 -1.533545

    3 -8.054e-002 1.944e+001 -1.5294014 -6.276e-004 1.914e+001 -1.529368

    5 -3.911e-008 1.914e+001 -1.529368

    6 -2.665e-015 1.914e+001 -1.529368

    7 3.553e-015 1.914e+001 -1.529368

    8 -2.665e-015 1.914e+001 -1.5293689 3.553e-015 1.914e+001 -1.529368

    Result of the computer program: x0 = -2.0 and iterations n = 10.

    The root value is x = -1.529368 and it was obtained after 4 iterations.

  • 7/27/2019 Lec 7 Newton Raphson

    19/31

    Advantages

    Converges fast, if it converges

    Requires only one guess

  • 7/27/2019 Lec 7 Newton Raphson

    20/31

    Drawbacks

    -20

    -15

    -10

    -5

    0

    5

    10

    -2 -1 0 1 2

    1

    2 3

    f(x)

    x Inflection Point

    01 3 xxf

  • 7/27/2019 Lec 7 Newton Raphson

    21/31

    Drawbacks (continued)

    -1.00E-05

    -7.50E-06

    -5.00E-06

    -2.50E-06

    0.00E+00

    2.50E-06

    5.00E-06

    7.50E-06

    1.00E-05

    -0.03 -0.02 -0.01 0 0.01 0.02 0.03 0.04

    x

    f(x)

    0.02

    Division by zero

    010x4.203.0 623 xxxf

  • 7/27/2019 Lec 7 Newton Raphson

    22/31

    Drawbacks (continued)

    -1.5

    -1

    -0.5

    0

    0.5

    1

    1.5

    -2 0 2 4 6 8 10

    x

    f(x)

    -0.0630690.54990 4.462 7.53982

    Root Jumping

    0 xSinxf

  • 7/27/2019 Lec 7 Newton Raphson

    23/31

    Drawbacks (continued)

    -1

    0

    1

    2

    3

    4

    5

    6

    -2 -1 0 1 2 3

    f(x)

    x

    3

    4

    2

    1

    -1.75 -0.3040 0.5 3.142

    Oscillations near Local Maxima or Minima

    022 xxf

  • 7/27/2019 Lec 7 Newton Raphson

    24/31

    Example 3:

    Let us solve the following

    problem:

    x3 - 4x2 + x10 = 0

    Then f(x) = x3 - 4x2 + x10

    df/dx = 3x2 -8 x + 1

    Let us first draw a graph andsee where are the roots;

    The roots are between (3,6).

    Then let us write a computer

    program in MATLAB that

    will compute the root usingNewton-Raphson method.

    -6 -4 -2 0 2 4 6

    -400

    -350

    -300

    -250

    -200

    -150

    -100

    -50

    0

    50

    100

    f(x)

    x

  • 7/27/2019 Lec 7 Newton Raphson

    25/31

    Example 3: Computer Program

    % A program that Uses Newton-Raphson method% to find the roots of x = x^3 +x^2 -3x -3

    % Input: x0 = initial guess;

    % n = number of iterations; default: n = 10;

    % Output: x = estimate of the root;

    n = 10; x0 = 3.0

    x = x0; % Initial Guess

    fprintf(' k f(x) dfdx x(k+1)\n');

    for k=1:n

    f = x^3 - 4*x^2 + x 10.0;

    dfdx = 3*x^2 - 8*x + 1.0;

    x = x - f/dfdx;fprintf('%3d %12.3e %12.3e %18.15f\n',k-1,f,dfdx,x);

    end

  • 7/27/2019 Lec 7 Newton Raphson

    26/31

    Example 3: results

    k f(x) dfdx x(k+1)

    0 -1.600e+001 4.000e+000 7.000000

    1 1.440e+002 9.200e+001 5.434783

    2 3.781e+001 4.613e+001 4.615102

    3 7.716e+000 2.798e+001 4.339292

    4 7.280e-001 2.277e+001 4.3073275 9.181e-003 2.220e+001 4.306913

    6 1.526e-006 2.219e+001 4.306913

    7 4.796e-014 2.219e+001 4.306913

    8 3.553e-015 2.219e+001 4.306913

    9 3.553e-015 2.219e+001 4.306913

    >>

    Result of the computer program: x0 = -2.0 and iterations n = 10.

    The root value is x = 4.306913and it was obtained after 5 iterations.

  • 7/27/2019 Lec 7 Newton Raphson

    27/31

    Example 4:

    Let us solve the following

    problem:

    exp(x)+x - 10 = 0

    Then f(x) = exp(x) + x10.

    df/dx = exp(x) + 1.

    Let us first draw a graph and seewhere are the roots;

    The roots are between (0, 4).

    Then let us write a computer

    program in MATLAB that will

    compute the root using Newton-Raphson method.

    -4 -2 0 2 4

    -20

    -10

    0

    10

    20

    30

    40

    50

    f(x)

    x

  • 7/27/2019 Lec 7 Newton Raphson

    28/31

    Example 4: Computer Program

    % A program that Uses Newton-Raphson method

    % to find the roots of x = x^3 +x^2 -3x -3

    % Input: x0 = initial guess;

    % n = number of iterations; default: n = 10;

    % Output: x = estimate of the root;

    n = 10; x0 = 0.0

    x = x0; % Initial Guess

    fprintf(' k f(x) dfdxx(k+1)\n');

    for k=1:n

    f = exp(x) + x 10.0;

    dfdx = exp(x) + 1.0;

    x = x - f/dfdx;fprintf('%3d %12.3e %12.3e %18.15f\n',k-1,f,dfdx,x);

    end

  • 7/27/2019 Lec 7 Newton Raphson

    29/31

    Example 4: results

    k f(x) dfdx x(k+1)

    0 -9.000e+000 2.000e+000 4.500000

    1 8.452e+001 9.102e+001 3.571415

    2 2.914e+001 3.657e+001 2.774566

    3 8.806e+000 1.703e+001 2.257515

    4 1.817e+000 1.056e+001 2.085456

    5 1.337e-001 9.048e+000 2.070678

    6 8.746e-004 8.930e+000 2.070580

    7 3.803e-008 8.929e+000 2.070580

    8 0.000e+000 8.929e+000 2.070580

    9 0.000e+000 8.929e+000 2.070580

    >>

    Result of the computer program: x0 = -2.0 and iterations n = 10.

    The root value is x = 2.070580

  • 7/27/2019 Lec 7 Newton Raphson

    30/31

    Why convergence is so rapid?

    Let us assume that exact root is a and error in nth iteration isen . Then

    However,

    nn eax

    )()(

    1n

    n

    nn xf

    xf

    eax

    The Taylor Series for f(a - en) and its derivative is

    af

    eafeafeaf n

    nn 2

    2

    afe

    afeafeaf nnn2

    2

  • 7/27/2019 Lec 7 Newton Raphson

    31/31

    Why convergence is so rapid?

    )(

    )(1

    n

    nnn

    xf

    xfeax

    Putting the Taylor Series for f(a - en) and its derivative in the formula

    )(2

    )(2

    2

    2

    1

    af

    afea

    af

    afe

    eeax

    n

    n

    nnn

    Hence error in (n+1)th iteration is proportional to (en)2 and that is why it

    converges rapidly.