수치해석 Numercal Analyss 6009 Ch6. Roots: Open Methods
개방법 : 한개의초기값에서시작하거나구간내에근을포함하지않을수도있는두개의초기값에서시작한다. 구간법과개방법의비교 (a 구간법 ( 이분법 (b 개방법 발산하는경우 (c 개방법-수렴하는경우 Numercal Analyss
6. 단순고정점반복법 (/3 f ( = 0 을재배열하여유도 단일점반복법 (fed pont teraton 또는연속대입법 대수적조작을통하여 f ( = 0 를 를방정식좌변에오게한다. = g( 이전계산단계의 값을사용하여새로운 를예측 = g( + 근사오차 ε a = + + 00% Numercal Analyss
예제 6. Q. 고정점반복법을이용하여 f ( = e 의근을구하라. Sol 함수를정리하면 e = + 초기가정값 0 = 0 에서출발 ε a % ε t % ε t / ε t - 0 0.0000 00.000.0000 00.000 76.322 0.763 2 0.3679 7.828 35.35 0.460 3 0.6922 46.854 22.050 0.628 4 0.5005 38.309.755 0.533 5 0.6062 7.447 6.894 0.586 6 0.5454.57 3.835 0.556 원하는오차이내에도달할때까지반복 ( 근의참값은 0.5674329 Numercal Analyss
6. 단순고정점반복법 (2/3 수렴여부 추정근에서미분값 g( 이 보다작을경우수렴한다. a Convergent, 0 g < b Convergent, -<g 0 c Dvergent, g > d Dvergent, g <- Numercal Analyss
6. 단순고정점반복법 (3/3 고정점반복법에서는 g ( < 일때, 즉 g( 의기울기의절대값이 f( = 의기울기보다작을때수렴 고정점반복법공식 참값을 r 라하면 = g( + = r g ( r r + = g( r g( = ( g ( ξ r ( 도함수의평균값정리를이용 g( g( = ( r g ( ξ r 반복에서 참오차를 E = 라고정의하면, (ξ t, E t, + = g Et, r Numercal Analyss
6.2 Newton-Raphson 법 (/3 근의초기가정값 = 라면점 [, f(] 에서의접선을연장하여 축과만나는점을개선된근으로선택 f ' ( = f ( 0 + + = f ( f ' ( Numercal Analyss
예제 6.2 Q. Newton-Raphson 법을사용해서추정하라. 초기가정은 0 = 0이다. f ( = e 의근을 Sol f ( = e 이므로공식은 + e = e ε t % 0 0 00 0.500000000.8 2 0.5663003 0.47 3 0.5674365 0.0000220 4 0.56743290 < 0-8 Numercal Analyss
6.2 Newton-Raphson 법 (2/3 에대하여 Taylor 급수를전개하고, 을대입하면 r 이참값이므로, f ( = 0 & r E t, = r = f ( f ( = + r f ( f ( ( r + ( r 2! r 2 +L f ( 2 0= f ( + f ( ( r + Et, +L 2! f ( Newton-Raphson 공식 = f ( + = f ( ( +, f ( f ( 0= f ( + ( + f ( ( r + Et, 2! 2 +L E t, + = r + 이므로 f ( 0= f ( Et, + + Et, 2! 2 +L E t, + = f ( r 2f ( r E 2 t, Numercal Analyss
예제 6.3 (/2 Q. Newton-Raphson 법을사용해서 f ( = 0 의 양의근을구하라. 단, 0 = 0.5 Sol + = 0 0 9 ε t % 0 2 3 4 M 40 4 42 0.5 5.65 46.485 4.8365 37.65285.00236.000024 99.032... 2.30 0.229 0.002 Numercal Analyss
예제 6.3 (2/2 Numercal Analyss
6.2 Newton-Raphson 법 (3/3 Newton-Raphson 법이느리게수렴되지않는네가지경우 기울기가 0 [f'( = 0] 이면 N-R 공식에서 0 으로나누는경우가발생 N-R 법의수렴 ~ 함수의성질 2 초기가정의정확도 Numercal Analyss
functon [root, ea, ter] = newtraph(func, dfunc, r, es, mat, varargn % [root, ea, ter] =newtraph(func, dfunc, r, es, mat, p, p2, ; % uses Newton-Raphson method to fnd root of a func % nput: % func = name of functon % dfunc = name of dervatve of functon % r = ntal guess % es = desred relatve error (default = 0.000% % mat = mamum allowable teratons (default = 50 % p, p2, = addtonal parameters used by functon % output: % root = real root % ea = appromate relatve error (% % ter = number of teratons f nargn<3, error( at least 3 nput arguments requred, end f nargn<4 sempty(es, es= 0.000; end f nargn<5 sempty (mat, mat =50 ; end ter = 0; whle ( rold = r; r = r feval(func,r/feval(dfunc,r; ter = ter +; f r ~= 0, ea = abs((r - rold/r * 00; end f ea <= es ter >= mat, break, end end root = r; Numercal Analyss
6.3 할선법 (secant methods (/2 N-R 의문제는도함수가 0 에가까운값을가지거나도함수를계산할수없을때발생 N-R 법에서도함수의표현을없앤방법 f ( f ( f ( N-R 법에서나타나는도함수를후향유한차분으로근사시키면 + = f ( f ( + = f ( f ( ( f ( 에대해도함수값대신두개의초기값이필요 초기값사이에서 f( 의부호가바뀔필요는없음 Numercal Analyss
6.3 할선법 (2/2 또다른방법으로독립변수에약간의변동을주면, f ( f ( +δ δ f ( 반복계산식 + = f ( δ +δ f ( f ( 수정된할선법 (modfed Secant method Numercal Analyss
예제 6.5 (/2 Q. 수정된할선법으로항력계수가 0.25 kg/m 일때자유낙하 4 초후의속도가 36 m/s 가되도록번지점프하는사람의질량을구하라. 중력가속도는 9.8 m/s2 이다. 질량의초기가정으로 50 kg 으로놓고, 변동량을 0-6 으로잡아라. Sol 첫번째반복 : 0 0 = 50 f +δ 0 = 50 = 50.00005 f 0 4.579388 ( 4.57938708 = 88.3993( ε 6 t ( ( (50( 4.57938708 = 38.%; ε a 0 0 =4.57938708 +δ 0 = 43.4% =4.579388 Numercal Analyss
예제 6.5 (2/2 두번째반복 : 2 = 88.3993 f +δ = 88.39940 f = 88.3993 = 24.08970( ε 0 6 ( ( (88.3993 =.6922077 =.69220356 (.6922077.69220356 (.6922077 t = 3.%; ε +δ a = 28.76% (% (% 0 2 3 4 5 6 50.0000 88.3993 24.0897 40.547 42.7072 42.7376 42.7376 ε a 64.97 38.069 3.064.538 0.02 4. 0-6 3.4 0-2 ε t 43.438 28.762.706.57 0.02 4. 0-6 Numercal Analyss
6.4 Brent methods 구간법과개방법을혼합하여사용 구간법은이분법이용 개방법은할선법또는역2차보간법이용 할선법과역 2 차보간법의비교 가능하면빠른개방법을사용하나구간을벗어나면구간법 ( 이분법 이용 Numercal Analyss
6.5 MATLAB 함수 : fzero (/3 fzero 는단일방정식의실근을구할때구간법과개방법의장점을만족하도록설계되었다. -Usng an ntal guess: = fzero(functon, functon, 0 [, f] = fzero(functon, functon, 0 functon s a functon handle to the functon beng evaluated 0 s the ntal guess s the locaton of the root f s the functon evaluated at that root -Usng an ntal bracket: = fzero(functon, functon, [0 ] [, f] = fzero(functon, functon, [0 ] As above, ecept 0 and are guesses that must bracket a sgn change Numercal Analyss
6.5 MATLAB 함수 : fzero (2/3 f ( = 2 9 의근을 MATLAB으로구해보자. >> =fzero(@( ^2-9, -4 % 음의근 = -3 >> =fzero(@( ^2-9, 4 % 양의근 = 3 >> =fzero(@( ^2-9, 0 = -3 >> =fzero(@( ^2-9, [0 4] % 확실히양의근 = 3 Numercal Analyss
6.5 MATLAB 함수 : fzero (3/3 [, f] = fzero(functon, functon, 0, optons, p, p2, ] Fzero 에 optons 을부여할수있다. optons = optmset( par, val, par2, val2, par n : 부여할파라미터명 val n : 파라미터에부여할값 fzero 에주로사용되는파라미터값 dsplay: 모든반복에대한자세한기록을표시할때 ter ter 지정 tol: 에대한종료허용값을지정하는양수의스칼라값 Numercal Analyss
예제 6.7 (fzero 와 optmset (/2 Q. 예제 6.3의의 f ( = 0 optmset과 fzero로풀어라. 근을구하는문제를 >> optons = optmset('dsplay','ter','tol',0.0000; >> [,f] = fzero(@( ^0-, 0.5, optons Func-count f( Procedure 0.5-0.999023 ntal 2 0.485858-0.999267 search 25.4 2.70722 search Lookng for a zero n the nterval [-0.4,.4] 26 0.205272 - nterpolaton 27 0.672636-0.98042 bsecton 28 0.90638-0.626056 bsecton 29.0236 0.257278 bsecton 30 0.98928-0.0355 nterpolaton 3 0.998894-0.0007 nterpolaton 32.0000 7.68385e-005 nterpolaton 33 0.999988-0.0002359 nterpolaton Zero found n the nterval: [-0.4,.4]. =.0000 f = 7.6838e-005 Numercal Analyss
예제 6.7 (fzero 와 optmset (2/2 >> optons = optmset('dsplay','ter','tol',0.00; >> [,f] = fzero(@( ^0-, 0.5, optons Func-count f( Procedure 0.5-0.999023 ntal 32.00089 0.00897957 nterpolaton Zero found n the nterval: [-0.4,.4]. =.0009 f = 0.0090 Numercal Analyss
6.6 다항식 (/2 roots 는고차다항식의모든근을구할때사용하는함수 =roots(c : 근을나타내는열벡터 c: 다항식의계수를나타내는행벡터 Eample: f(= 5-3.5 4 +2.75 3 +2.25 2-3.875+.25 의근을찾으려면 = roots([ -3.5 2.75 2.25-3.875.25] Numercal Analyss
6.6 다항식 (2/2 poly 함수는근의값이전달되면다항식의계수를산출 -roots 의역함수 Eample: b = poly([0.5 -] (=0.5 and =-을 f( =0의근으로갖는방정식 f( 를찾는다. >> b = [.000 0.5000-0.5000] (f(= 2 +0.5-0.5 의의미 polyval 함수는한점내지여러점에서다항식의값을계산 Eample: a = [ -3.5 2.75 2.25-3.875.25]; (f(= 5-3.5 4 +2.75 3 +2.25 2-3.875+.25 polyval(a, >> -0.2500 (f( 을계산 Numercal Analyss