280 likes | 411 Views
Numerical Analysis - Root Finding I -. Hanyang University Jong-Il Park. Root Finding. Analytic 하게 근을 구할 수 없을 때 수치해법 필요 eg. F(t) = e -t (3cos2t + 4sin2t). F(t). t. F(t)=0. General procedure of root finding. Step 1. 해의 근방을 찾는 과정 graphical method incremental search experience
E N D
Numerical Analysis- Root Finding I- Hanyang University Jong-Il Park
Root Finding • Analytic하게 근을 구할 수 없을 때 수치해법 필요 eg. F(t) = e-t(3cos2t + 4sin2t) F(t) t F(t)=0
General procedure of root finding Step 1. 해의 근방을 찾는 과정 • graphical method • incremental search • experience • solution of a simplified model Step 2. 정확한 해를 찾는 과정 • Bracketing method • Open method Graphical method
Bracketing method • 구간 [a,b]의 양끝점 사이에 근이 존재한다고 가정하고, 구간의 폭을 체계적으로 좁혀감 • 정확한 근으로의 수렴성이 좋음 • 종류 • bisection method • linear interpolation method
Open method • 임의의 시작점에서 시작 • 규칙적 반복계산으로 근을 구함 • 초기값에 따라 발산가능성 있음 • bracketing method보다 수렴속도 빠름 • 종류 • fixed-point iteration • Newton-Raphson method • Secant method • Muller method
대략적 구간 찾기 • Graphical method
대략적 구간 찾기 Incremental search method • 초기값 x와 dx 사이의 함수값의 부호 조사 • 변화가 생기면 그 구간 안에 해가 존재 • 난점: • dx의 크기 • 작으면 긴 계산시간, 크면 해를 놓침 • 중근일 경우 • 해를 놓칠 가능성 큼 양끝점의 도함수를 계산 if 서로 다른 부호 => 극소점 존재 • 정확한 해를 찾기 위해 반드시 프로그램의 앞부분에 있어야 함
Bisection method(I) =Half Interval method = Bolzano method
Bisection method(II) - 한번 반복할 때마다 구간이 1/2로 감소 - 간단하고, 오차범위의 확인이 용이 n 번 반복시, 최대오차 < (초기구간간격/2n) - 수렴속도가 느린 편임 - 다중근의 경우에 부호변화가 없으므로 적절치 못함
Linear interpolation method(I) = False position method • Principle Algorithm
Linear interpolation method(II) Algorithm
Convergence speed • Bisection보다 대체로 빠른 수렴성 • 수렴 속도가 곡률에 의존(경우에 따라 매우 느린 수렴) Modified linear interpolation method 제안됨
Modified linear interpolation 0.5f(x2 ) x2 x2 Faster convergence Slow convergence Modified Linear Interpolation
Newton-Raphson method(II) • Fast convergence – quadratic convergence • 도함수 계산이 복잡할 때는 비효율적 • Initial guess가 중요함 • Troubles • Cycling • Wandering • Overshooting
Secant method(II) • Linear interpolation과 비슷한 복잡성 • update rule만 다름 • Linear interpolation 보다 빠른 수렴성 • Newton-Raphson method 보다 우수한 안정성
Fixed point iteration(I) • 원리 f(x)=0 x=g(x) • Iteration rule xk+1=g(xk) • Convergent if contraction mapping
Muller method(I) • Generalization of the Secant method • Fast convergence Secant Muller
Muller method(II) • Algorithm
Error analysis • Linear convergence • Quadratic convergence
Accelerating convergence • Aitken’s D2 method Rapid convergence!
Fail-safe methods • Combination of Newton and Bisection • if(out of bound || small reduction of bracket) update by Bisection method rtsafe.c in NR in C • Ridder's method (good performance) zriddr.c in NR in C
Homework #3 (I) • Programming: Find the roots of the Bessel function Jo in the interval [1.0, 10.0] using the following methods: a) Bisection (rtbis.c) b) Linear interpolation (rtflsp.c) c) Secant (rtsec.c) d) Newton-Raphson (rtnewt.c) e) Newton with bracketing (rtsafe.c) • Hint • First, use bracketing routine (zbrak.c). • Then, call proper routines in NR in C. • Set xacc=10-6 x • Use “pointer to function” to write succinct source codes [Due: 9/26] (Cont’)
Homework #3 (II) • Write source codes for Muller method (muller.c) and do the same job as above. • Discuss the convergence speed of the methods. • Solve the following problems using the routine of rtsafe.c in NR in C • 10 e-x sin(2p x)-2= 0, on [0.1,1] • x2 - 2xe-x + e-2x = 0, on [0,1] • cos(x+sqrt(2))+x(x/2+sqrt(2)) = 0, on [-2,-1]