330 likes | 521 Views
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
E N D
Lecture 3II Root Finding • An iterative approach for root finding • Newton method 數值方法2008, Applied Mathematics NDHU
Problem statement Root finding • Find x such that f(x)=0 for a given f • f denotes an arbitrary single-variable function 數值方法2008, Applied Mathematics NDHU
>> x=linspace(-1,3); >> plot(x,2.^x.^2-10*x+1) 數值方法2008, Applied Mathematics NDHU
Root finding • Input: an expression • Plot given function • Find a root 數值方法2008, Applied Mathematics NDHU
Tangent line y=f(x) yn=f(xn) x xn+1 xn 數值方法2008, Applied Mathematics NDHU
Taylor series 數值方法2008, Applied Mathematics NDHU
An iterative approach • Start at some guess • Refine current guess by • Find a tangent line that passes (xn,f(xn)) • Set xn to a point atintersection of the tangent line to horizontal axis 數值方法2008, Applied Mathematics NDHU
Updating rule 數值方法2008, Applied Mathematics NDHU
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
An iterative approach n=0 ; Setxn Determine xn+1 Increase n by one Halting condition F T 數值方法2008, Applied Mathematics NDHU
An iterative approach Setx randomly ~( halting condition) exit Apply an updating rule to refine x 數值方法2008, Applied Mathematics NDHU
Halting condition • Let xdenote the current guess • The absolute value of f(x) is expected as close as possible to zero • Halting Condition abs(f(x)) < epslon • epslon denotes a predefined small positive number 數值方法2008, Applied Mathematics NDHU
Initialization • Random initialization • A guess by the user 數值方法2008, Applied Mathematics NDHU
An iterative approach x = rand*2-1; s=sym(ss);ep=10^-6 f=inline(s); s1=diff(s); f1=inline(s1) input an expression, ss ~( abs(f(x)) < ep) exit x=x-f(x)/f1(x); fprintf('%f\n' ,x) 數值方法2008, Applied Mathematics NDHU
Demo_newton source code demo_newton fstr=input('input a function:','s'); x_ini=input('guess its zero:'); x_zero=newton(fstr,x_ini); newton.m 數值方法2008, Applied Mathematics NDHU
Main Program 數值方法2008, Applied Mathematics NDHU
Newton method 數值方法2008, Applied Mathematics NDHU
>> demo_newton input 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
Example demo_newton input a function:2.^x.^2-10*x+1 guess its zero:1.5 數值方法2008, Applied Mathematics NDHU
Example >> demo_newton input a function:2.^x.^2-10*x+1 guess its zero:0.5 數值方法2008, Applied Mathematics NDHU
Second order expansion 數值方法2008, Applied Mathematics NDHU
Second order method • Update rule 數值方法2008, Applied Mathematics NDHU
An iterative approach x = rand*2-1; s=sym(ss);ep=10^-6 f=inline(s); s1=diff(s); f1=inline(s1) s2=diff(s1); f2=inline(s2) input an expression, ss ~( abs(f(x)) < ep) exit 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) 數值方法2008, Applied Mathematics NDHU
Unconstrained Optimization Problem statement Given a differentiable function, y=g(x), unconstrained optimization aims to find the minimum of g(x) Let xdenote a minimum and 數值方法2008, Applied Mathematics NDHU
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
An iterative approach x = rand*2-1; s=sym(ss);ep=10^-6 g=inline(s); s1=diff(s); f=inline(s1); s2=diff(s1); f1=inline(s2) input an expression, ss ~( abs(f(x)) < ep) exit x=x-f(x)/f1(x); fprintf('%f gx=%f\n' ,x, g(x)) 數值方法2008, Applied Mathematics NDHU
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
>> x=linspace(-2*pi,2*pi); >> plot(x,(x-tanh(2*x+10)).^2) 數值方法2008, Applied Mathematics NDHU
Local minimum >> demo_min input a function:(x-tanh(2*x+10)).^2 guess its minimum:4 數值方法2008, Applied Mathematics NDHU
Local Minimum >> demo_min input a function:(x-tanh(2*x+10)).^2 guess its minimum:-4 數值方法2008, Applied Mathematics NDHU
Global minimum 數值方法2008, Applied Mathematics NDHU
>> demo_min input a function:0.2*x.^3-3*x+cos(x) guess its minimum:2 數值方法2008, Applied Mathematics NDHU
Exercise • ex3II.pdf 數值方法2008, Applied Mathematics NDHU