+ All Categories
Home > Documents > Numerical Methods

Numerical Methods

Date post: 05-Jan-2016
Category:
Upload: tangia
View: 65 times
Download: 1 times
Share this document with a friend
Description:
Numerical Methods. Applications of Loops: The power of MATLAB Mathematics + Coding. Numerical Methods. Numerical methods are techniques used to find quantitative solutions to mathematical problems . - PowerPoint PPT Presentation
Popular Tags:
41
Numerical Methods Applications of Loops: The power of MATLAB Mathematics + Coding 1
Transcript
Page 1: Numerical Methods

Numerical Methods

Applications of Loops:

The power of MATLAB

Mathematics + Coding

1

Page 2: Numerical Methods

Numerical MethodsNumerical methods are techniques used to find quantitative solutions

to mathematical problems.

Many numerical methods are iterative solutions – this means that the technique is applied over and over, gradually getting closer (i.e. converging) on the final answer.

Iterative solutions are complete when the answer from the current iteration is not significantly different from the answer of the previous iteration.

“Significantly different” is determined by the program or user – for example, it might mean that there is less than 1% change or it might mean less than 0.00001% change.

2

Page 3: Numerical Methods

Ex 1. Newton’s Method

Prepare a MATLAB program that uses Newton’s Method to find the roots of the equation:

y(x) = x3 + 2x2 – 300/x

Newton’s Method is used to find the roots of an equation.

“When the curve crosses the x-axis.”

“When f(x)=0.”

3

Page 4: Numerical Methods

Newton’s Method

f(x) = x3 + 2x2 – 300/x

What does it seem the answer is?

4

Page 5: Numerical Methods

Newton’s Method

Closer look…

Actual Root!

5

Page 6: Numerical Methods

Newton’s Method

X is the root we’re trying to find – the value where the function becomes 0

Xn is the initial guess

Xn+1 is the next approximation using the tangent line

Credit to: http://en.wikipedia.org/wiki/Newton’s_method6

Page 7: Numerical Methods

The Big Picture (1/4)

1st: guess! xn

7

Page 8: Numerical Methods

The Big Picture (1/4)

2nd: Go hit the actual curve

At this (xn , yn), calculate the slope of the curve using the derivatives:

m = f’(xn)

8

Page 9: Numerical Methods

The Big Picture (1/4)3rd: Using the slope m, the coordinates (Xn , Yn), calculate Xn+1 :

9

Page 10: Numerical Methods

The Big Picture (2/4)

Guess again!

TOO FAR

10

Page 11: Numerical Methods

The Big Picture (2/4)

Iterate! 11

Page 12: Numerical Methods

The Big Picture (2/4)

Guess again!

TOO FAR

12

Page 13: Numerical Methods

The Big Picture (3/4) – Eventually…

Stop the loop, when there is not much difference between the guess and the new value!

CLOSE ENOUGH! guess

X inter-ecept

13

Page 14: Numerical Methods

Ex 1: algorithm, skeleton

% Provide an initial guess at the answer

% Find the slope of the tangent line at the point (requires derivative)

% Using the line’s equation, find the x intercept

% Repeat above until close enough, using the x intercept as the new “guess”

14

Page 15: Numerical Methods

Newton’s Method% Define initial difference as very large (force loop to start)

% Repeat as long as change in x is large enough

% Make the “new x” act as the current x

% Find slope of tangent line using f’(x)

% Compute y-value

% Use tangent slope to find the next value: % two points on line are the current point (x, y) % and the x-intercept (x_new, 0)

15

Page 16: Numerical Methods

% Define initial difference as very large % (force loop to start)x_n = 1000;x_np1 = 5; % initial guess

% Repeat as long as change in x is large enoughwhile (abs(x_np1 – x_n) > 0.0000001) % x_np1 now becomes the new guess x_n = x_np1;

% Find slope of tangent line f'(x) at x_n m = 3*x_n^2 + 4*x_n + 300/(x_n^2);

% Compute y-valuey = x_n^3 + 2*x_n^2 - 300/x_n;

% Use tangent slope to find the next value: % two points on line: the current point (x_n, y_n) % and the x-intercept (x_np1, 0) x_np1 = ((0 - y) / m) + x_n; end

TOO FAR XnXn+1

? XnXn+1

16

Page 17: Numerical Methods

Newton’s Method

Add fprintf’s and see the results:

x y

------------------- -------------------

5.000000000000000 115.000000000000000

3.925233644859813 14.864224007996924

3.742613907949879 0.279824373263295

3.739045154311932 0.000095471294827

3.739043935883257 0.000000000011084

Root of f(x) = x3 + 2x2 – 300/x is approximately 3.7390439 17

Page 18: Numerical Methods

Real-World

Numerical Methods are used in CFD, where convergence can take weeks/months to complete (get “close enough”)...

while loops are generally used, since the number of iteration depends on how-close the result should be, i.e. the precision.

Practice! Code this, and usea scientific calculator to see how close the results are.

18

Page 19: Numerical Methods

Secant Method:

Find the Derivative

Numerical Methods

19

Page 20: Numerical Methods

Derivatives, intro.

Another numerical method involves finding the derivative at a point on a curve.

Basically, this method uses the secant line as an approximation – bringing it closer and closer to the tangent line

This method is used when the actual symbolic derivative is hard to find! f’(x)=

20

Page 21: Numerical Methods

Derivatives, big picture

What is the slope at this point? 21

Page 22: Numerical Methods

Derivatives (1/5)

Choose a and b to be equidistant from that point, calculate slope 1

Slope 1

X

22

Page 23: Numerical Methods

Derivatives (1/5)

Reduce the range for the second iteration.

Slope 1

X

range/2 range/2

range

23

Page 24: Numerical Methods

Derivatives (2/5)

Zoom in on x

Slope 1

xloX

hiX

24

Page 25: Numerical Methods

Derivatives (3/5)

Find new secant line.

Slope 1

xloX

hiX

25

Page 26: Numerical Methods

Derivatives (3/5)

Calculate new slope

Slope 1

xloX

hiX

loY

hiY

Slope 2

26

Page 27: Numerical Methods

Derivatives (3/5)

Slope 1

xloX

hiX

Slope 2

Is slope 2 “significantly different” from slope 1?Assume they are different… let’s iterate!...

27

Page 28: Numerical Methods

Derivatives (4/5)

Zoom in again..

xloX

hiX

Slope3

Slope 2

Slope 1

28

Page 29: Numerical Methods

Derivatives (4/5)

Zoom in again..

xloX

hiX

Slope3

Is Slope2 very different from Slope3?

Iterate while yes!

Slope 2

Slope 1

29

Page 30: Numerical Methods

(5/5) Eventually…

Stop the loop when the slopes are no longer “significantly different”

Remember: “significantly different” means maybe a 1% difference? maybe a 0.1% difference? maybe a 0.000001% difference?

30

Page 31: Numerical Methods

Derivatives - Algorithm% Define initial difference as very large % (force loop to start)

% Specify starting range % Repeat as long as slope has changed “a lot”

% Cut range in half

% Compute the new low x value

% Compute the new high x value

% Compute the new low y value

% Compute the new high y value

% Compute the slope of the secant line % end of loop

Let’s do this for f(x) = sin(x) + 3/sqrt(x)

31

Page 32: Numerical Methods

Code% Define initial difference as very large % (force loop to start)m = 1; oldm = 2;

% Specify starting range and desired pointrange = 10; x=5; ctr=0;

% Repeat as long as slope has changed a lot while (ctr<3 || (abs((m-oldm)/oldm) > 0.00000001))

% Cut range in halfrange = range / 2;

% Compute the new low x valuelox = x – range ;

% Compute the new high x valuehix = x + range ;

% Compute the new low y value loy = sin(lox) + 3/sqrt(lox);

% Compute the new high y valuehiy = sin(hix) + 3/sqrt(hix);

% Save the old slopeoldm = m;

% Compute the slope of the secant linem = (hiy – loy) / (hix – lox);

% increment counterctr = ctr + 1;

end % end of loop

(or have just started)

32

Page 33: Numerical Methods

Derivatives - the endAdd some fprintf’s and…

LOW x HIGH x Slope Difference in slope 1: 0.000000000000000, 10.000000000000000 -Inf -Inf 2: 2.500000000000000, 7.500000000000000 -0.092478729683983 Inf 3: 3.750000000000000, 6.250000000000000 0.075675505484728 0.168154235168711 4: 4.375000000000000, 5.625000000000000 0.130061340134248 0.054385834649520 5: 4.687500000000000, 5.312500000000000 0.144575140383541 0.014513800249293 6: 4.843750000000000, 5.156250000000000 0.148263340290110 0.003688199906569 7: 4.921875000000000, 5.078125000000000 0.149189163013407 0.000925822723297 8: 4.960937500000000, 5.039062500000000 0.149420855093148 0.000231692079740 9: 4.980468750000000, 5.019531250000000 0.149478792897432 0.000057937804284 10: 4.990234375000000, 5.009765625000000 0.149493278272689 0.000014485375257 11: 4.995117187500000, 5.004882812500000 0.149496899674250 0.000003621401561 12: 4.997558593750000, 5.002441406250000 0.149497805028204 0.000000905353954 13: 4.998779296875000, 5.001220703125000 0.149498031366966 0.000000226338761 14: 4.999389648437500, 5.000610351562500 0.149498087951815 0.000000056584850 15: 4.999694824218750, 5.000305175781250 0.149498102098005 0.000000014146190 16: 4.999847412109375, 5.000152587890625 0.149498105634484 0.000000003536479 17: 4.999923706054688, 5.000076293945313 0.149498106518877 0.000000000884393

Slope of f(x) = sin(x) + 3/sqrt(x) at x=5 is approximately 0.1494981 33

Page 34: Numerical Methods

Numerical Methods

Bisection Method

A general purpose mathematical solution finder

34

Page 35: Numerical Methods

More ExamplesES206 Fluid Dynamics

35

fRD

e

f N

5 1.2

7.3lo g0.2

1

Solve for f

The Colebrook Equation

Page 36: Numerical Methods

ES206 – Fluid Dynamics

36

fRD

e

f N

5 1.2

7.3lo g0.2

1

“WOW – that’s hard to solve!”

How about this instead:

“By hand, find the square root of 127.3”

Both problems use the same technique to solve: the Bisection Method.

Page 37: Numerical Methods

Bisection Method

The Bisection Method is a very common technique for solving mathematical problems numerically.

Most people have done this even if they didn’t know the name.

The technique involves taking a guess for the desired variable, then applying that value to see how close the result is to a known value.

Based upon the result of the previous step, a better “guess” is made and the test repeated. 37

Page 38: Numerical Methods

Bisection Method

For example: Find the square root of 127.3 First guess: 11 (since we know that 112 is 121) 11*11 = 121 too low (looking for 127.3) Adjust: 12 is the new guess 12*12 = 144 too high Adjust: 11.5 (“bisect” the difference) 11.5*11.5 = 132.25 too high Adjust: 11.25 11.25 * 11.25 = 126.5625 too low etc.

38

Page 39: Numerical Methods

Bisection Method

For the Colebrook Equation, we know that this equation must hold:

Guess for f and compare the left side value to the right side

value. If they’re not the same, adjust f and try again.

This is the same as solving for 127.3 = X2 :

we guessed at X and then compared the two sides.

39

fRD

e

f N

5 1.2

7.3lo g0.2

1

Page 40: Numerical Methods

Wrapping Up

Very small amount of code to solve a mathematical problem

MATLAB can iterate 5 times, or 1,000 times, or a million!

The more precision needed, the more iterations, the more time!

Try to code it. See it you can find the slope of any equation.

40

Page 41: Numerical Methods

Wrapping Up

We learned about three numerical methods

1. Newton’s Method for finding the roots of an equation Requires the symbolic derivative

2. Secant line approximation of a tangent point Finds the numerical value of the derivative at a point

3. Bisection Method Finds numerical solutions to complex mathematical problems Very general – essentially “Guess, Test, Adjust”

41


Recommended