33
數數數數 2008, Applied Mathematics NDHU 1 An iterative approach for root finding Newton method Lecture 3II Root Finding

Lecture 3II Root Finding

  • Upload
    yori

  • View
    57

  • Download
    0

Embed Size (px)

DESCRIPTION

Lecture 3II Root Finding. An iterative approach for root finding Newton method. Problem statement. Root finding. Find x such that f(x)=0 for a given f f denotes an arbitrary single-variable function. >> x=linspace(-1,3); >> plot(x,2.^x.^2-10*x+1). Root finding. Input: an expression - PowerPoint PPT Presentation

Citation preview

數值方法 2008, Applied Mathematics NDHU 1

An iterative approach for root finding Newton method

Lecture 3II Root Finding

數值方法 2008, Applied Mathematics NDHU 2

Problem statement

• Find x such that f(x)=0 for a given f• f denotes an arbitrary single-variable function

Root finding

數值方法 2008, Applied Mathematics NDHU 3

1102)(2

xxf x >> x=linspace(-1,3);>> plot(x,2.^x.^2-10*x+1)

數值方法 2008, Applied Mathematics NDHU 4

Root finding

Input: an expressionPlot given functionFind a root

數值方法 2008, Applied Mathematics NDHU 5

Tangent line

xxn

y=f(x)

yn=f(xn)

xn+1

)(')(

)('

)('

1

1

n

nn

n

nnn

nn

nn

xfxfx

xfyxx

xxyxfslope

Taylor series

數值方法 2008, Applied Mathematics NDHU 6

)('/)()('/)()(0))((')(

)( ))((')()(

at

nnn

nnn

nnn

nnn

n

xfxfxxxfxfxx

xxxfxfxfzero toSet

xxxfxfxfxxExpand

數值方法 2008, Applied Mathematics NDHU 7

An iterative approach

Start at some guessRefine current guess by

Find a tangent line that passes (xn,f(xn)) Set xn to a point at intersection of the

tangent line to horizontal axis

數值方法 2008, Applied Mathematics NDHU 8

Updating rule

)(')(

1n

nnn xf

xfxx

數值方法 2008, Applied Mathematics NDHU 9

Newton method

An Iterative approach

Random guess Refine current guess by an updating rule If a halting condition holds, go to step 2

otherwise exit

數值方法 2008, Applied Mathematics NDHU 10

An iterative approach

n=0 ; Set xn

Determine xn+1

Increase n by one

Halting condition

T

F

數值方法 2008, Applied Mathematics NDHU 11

An iterative approach

Set x randomly

Apply an updating rule

to refine x

~( halting condition)exit

數值方法 2008, Applied Mathematics NDHU 12

Halting condition

Let x denote the current guessThe absolute value of f(x) is expected as

close as possible to zeroHalting Condition

abs(f(x)) < epslonepslon denotes a predefined small positive

number

數值方法 2008, Applied Mathematics NDHU 13

Initialization

Random initialization A guess by the user

數值方法 2008, Applied Mathematics NDHU 14

An iterative approach

x = rand*2-1; s=sym(ss); ep=10^-6f=inline(s); s1=diff(s); f1=inline(s1)

x=x-f(x)/f1(x);fprintf('%f\n' ,x)

~( abs(f(x)) < ep)exit

input an expression, ss

數值方法 2008, Applied Mathematics NDHU 15

Demo_newton

source code demo_newtonfstr=input('input a function:','s');x_ini=input('guess its zero:');x_zero=newton(fstr,x_ini);

newton.m

數值方法 2008, Applied Mathematics NDHU 16

Main Program

數值方法 2008, Applied Mathematics NDHU 17

Newton method

數值方法 2008, Applied Mathematics NDHU 18

>> demo_newtoninput a function:cos(x)guess its zero:2 iter=1 x=1.542342 fx=0.028450 iter=2 x=1.570804 fx=-0.000008 iter=3 x=1.570796 fx=0.000000>>

數值方法 2008, Applied Mathematics NDHU 19

Example

demo_newtoninput a function:2.^x.^2-10*x+1guess its zero:1.5

數值方法 2008, Applied Mathematics NDHU 20

Example

>> demo_newtoninput a function:2.^x.^2-10*x+1guess its zero:0.5

Second order expansion

數值方法 2008, Applied Mathematics NDHU 21

2

22

2

2

!2)('')(')(

),(')('',!2

)(''2

4 ,0

0)(!2

)(''))((')(

)(

)(!2

)(''))((')()(

at

nn

nnn

nnn

nn

nnn

nn

nnn

n

xxfxfxxfc

xfxfbxfa

aacbbxcbxax

xxxfxxxfxf

xfzero toSet

xxxfxxxfxfxf

xxExpand

Second order method

Update rule

數值方法 2008, Applied Mathematics NDHU 22

2

2

1

!2)('')(')(

),(')('',!2

)(''2

4

nn

nnn

nnn

n

xxfxfxxfc

xfxfbxfa

aacbbx

數值方法 2008, Applied Mathematics NDHU 23

An iterative approachx = rand*2-1; s=sym(ss); ep=10^-6f=inline(s); s1=diff(s); f1=inline(s1)

s2=diff(s1); f2=inline(s2)

a=f2(x)/2;b=-f2(x)+f1(x);c=f(x)-x*f1(x)+f2(x)*x^2/2;

x=…fprintf('%f\n' ,x)

~( abs(f(x)) < ep)exit

input an expression, ss

2

2

1

!2)('')(')(

),(')('',!2

)(''2

4

nn

nnn

nnn

n

xxfxfxxfc

xfxfbxfa

aacbbx

數值方法 2008, Applied Mathematics NDHU 24

Unconstrained Optimization

Problem statement Given a differentiable function, y=g(x),

unconstrained optimization aims to find the minimum of g(x)

Let x denote a minimum and dxxdgxf )()(

0 that suchx Then

f(x)find

數值方法 2008, Applied Mathematics NDHU 25

Optimization by Newton method

Use symbolic differentiation to find the first derivative of a given function

Apply the Newton method to find zeros of the first derivative

數值方法 2008, Applied Mathematics NDHU 26

An iterative approachx = rand*2-1; s=sym(ss); ep=10^-6g=inline(s); s1=diff(s); f=inline(s1);

s2=diff(s1); f1=inline(s2)

x=x-f(x)/f1(x);fprintf('%f gx=%f\n' ,x, g(x))

~( abs(f(x)) < ep)exit

input an expression, ss

數值方法 2008, Applied Mathematics NDHU 27

First derivative ss=input('input a function:','s');s=sym(ss);f=inline(s);s1=diff(s);f1=inline(s1);x=linspace(-5,5);plot(x,f(x));hold on;plot(x,f1(x));

數值方法 2008, Applied Mathematics NDHU 28

>> x=linspace(-2*pi,2*pi);>> plot(x,(x-tanh(2*x+10)).^2)

數值方法 2008, Applied Mathematics NDHU 29

>> demo_mininput a function:(x-tanh(2*x+10)).^2guess its minimum:4

Local minimum

數值方法 2008, Applied Mathematics NDHU 30

>> demo_mininput a function:(x-tanh(2*x+10)).^2guess its minimum:-4

Local Minimum

數值方法 2008, Applied Mathematics NDHU 31

Global minimum

數值方法 2008, Applied Mathematics NDHU 32

>> demo_mininput a function:0.2*x.^3-3*x+cos(x)guess its minimum:2

數值方法 2008, Applied Mathematics NDHU 33

Exercise

ex3II.pdf