lec 7 newton raphson
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.