1 장수치미분 1.1 소개및배경 1. 고정확도미분공식 1.3 Richardson 외삽법 1.4 부등간격의미분 1.5 오차가있는데이터의도함수와적분 1.6 MATLAB 을이용한수치미분
1.1 소개및배경 (1/4) 미분이란무엇인가? 도함수 : 독립변수에대한종속변수의변화율 y f( xi + x) f( xi) dy f( x = i + x) f( xi) = lim = y = f ( xi ) x 0 x x dx x 차분근사도함수 수치적정의 1 차도함수 : 곡선의한점에서접선의구배 수학적정의
1.1 소개및배경 (/4) 차도함수 : 구배가얼마나빨리변하는지의정도, 곡율 d y d dy dx dx dx = r curvature: r 이작으면 기울기가빨리변함 편도함수 (partial derivatives) 는두개이상의변수에의존하는함수에대해사용한다. 한개의변수를고정시키고, 한점에서함수의도함수를취한다. f f( x+ xy, ) f( xy, ) = lim : y 고정 x x 0 x f f( xy, + y) f( xy, ) = lim y y 0 y : x 고정 3
1. 고정확도미분공식 (1/5) 4 장에서 Taylor series expansion 을이용하여도함수에대한유한차분근사를유도하였다. 1 차및고차도함수에대한전향, 후향, 중심유한차분근사를소개하였고, 이들추정값의오차는 O(h) 나 O(h ) 이었다. 정확도의수준은사용하는 Taylor series 의항의개수에따른다. 4
1. 고정확도미분공식 (/5) 차도함수에대한전향차분근사 f( xi+ ) f( xi+ 1) + f( xi) f ( xi ) = + Oh ( ) h 식 (1.13) 에대입하면, f( x ) f( x ) f( x ) f( x ) + f( x ) f x = h+ Oh h h i+ 1 i i+ i+ 1 i ( i ) ( ) 고정확도미분공식이란 : (4.3 절에서유도 ) Taylor series 의 차도함수항을절단소거하지않고포함시켜정확도를높인방법이다. f( x ) + 4 f( x ) 3 f( x ) f x = + Oh h i+ i+ 1 i ( i ) ( ) 위의경우정확도를 O(h) 에서 O(h ) 으로향상시켰다. 5
1. 고정확도미분공식 (3/5) Forward Finite-Difference Fig. 1.3 6
1. 고정확도미분공식 (4/5) Backward Finite-Difference Fig. 1.4 7
1. 고정확도미분공식 (5/5) Centered Finite-Difference Fig. 1.5 8
예제 1.1 (1/3) Q. 아래함수에대해 4장에서구한도함수 ( 간격크기 h=0.5로 x=0.5에서 ) 결과는 4 3 f( x) = 0.1x 0.15x 0.5x 0.5x+ 1. 다음표와같다. 여기서오차는정해 f'(0.5)= -0.915에기초한다. 후향 O(h) 중심 O(h ) 전향 O(h) 추정값 -0.714-0.934-1.155 ε t 1.7% -.4% -6.5% 그림 1.3-그림 1.5의고정확도공식을사용하여다시계산하라. 9
예제 1.1 (/3) 풀이 ) 필요한데이터는다음과같다. x x x x x = 0 f( x ) = 1. i i = 0.5 f( x ) = 1.1035156 i 1 i 1 i = 0.5 f( x ) = 0.95 = 0.75 f( x ) = 0.636381 i+ 1 i+ 1 = 1 f( x ) = 0. i+ i+ i O(h ) 의전향차분은다음과같이계산된다 ( 그림 1.3) 0. + 4(0.636381) 3(0.95) f (0.5) = = 0.859375 ε t =5.8 % (0.5) O(h ) 의후향차분은다음과같이계산된다 ( 그림 1.4) 3(0.95) 4(1.1035156) + 1. f (0.5) = = 0.87815 ε t =3.77 % (0.5) 10
예제 1.1 (3/3) O(h 4 ) 의중심차분은다음과같이계산된다 ( 그림 1.5) 0. + 8(0.636381) 8(1.1035156) + 1. f (0.5) = = 0.915 ε t =0 % 1(0.5) 11
1.3 Richardson 외삽법 (1/) 유한차분을사용할때도함수추정값을향상시키는두가지방법 - 간격크기 (h) 의축소 - 더많은점을포함하는고차공식의사용 Richardson 외삽법은두개의저차의도함수추정값을이용하여고차정확도의추정값을계산할수있게한다. 1
1.3 Richardson 외삽법 (/) 위식은컴퓨터알고리듬을쓰기쉽게편의상 h =h 1 / 을사용하여표현하는것이일반적이다. 4 1 D= Dh ( ) Dh ( 1) 3 3 O(h ) 의중심차분근사에이공식을사용하면, O(h 4 ) 의도함수추정값을구할수있다. 13
예제 1. Q. 예제 1.1의함수와간격 h 1 =0.5, h =0.5를사용하여 x=0.5에서의 1차도함수를구하라. 그리고 Richardson 외삽법을사용하여향상된추정값을구하라. 정해는 -0.915이다. f x x x x x 4 3 ( ) = 0.1 0.15 0.5 0.5 + 1. 풀이 ) 중심차분으로 1 차도함수를계산하면다음과같다. 0. 1. D(0.5) = = 1.0 ε t = 9.6% 1 0.636381 1.103516 D(0.5) = = 0.934375 ε t =.4% 0.5 Richardson 외삽법을이용한개선된추정값 4 1 D = ( 0.934375) ( 1) = 0.915 3 3 고려하는함수가 4차다항식이므로정확한값을도출한다. ( 도함수에서의 O(h 4 ) 는 f (5) (x) 를포함하므로 f(x) 를 5 번미분하면 0 임 ) 14
1.4 부등간격데이터에대한도함수 실험또는현장에서획득하는데이터는부등간격으로배열된다. 측정데이터에서직접도함수를계산하는방법은다항식보간을수행한후도함수를구하는것이다. 예로서, 세개의점을지나는 차의 Lagrange 다항식을구하고, 이다항식의도함수를구하면다음과같다. f ( x)= f x 0 장점 x x 1 x x x 0 x ( ) ( x 0 x 1 )( x 0 x ) + f ( x 1) ( x 1 x 0 )( x 1 x ) + f ( x ) ( x x 0 )( x x 1 ) W 1( x ) 세점으로주어진구간내의어떤점에서도도함수를구할수있다. 주어진점들이등간격으로분포되지않아도된다. x x 0 x 1 도함수값이중심차분값의정확도와같다. 특히등간격일때 x=x 1 에서, f( x) f( x0) f ( x1 ) = + Oh ( ) 식 (4.5) h 15
16
예제 1.3 (1/) Q. 땅속의온도에대한측정값은그림과같다. 흙과공기의경계에서의열플 럭스는 Fourier 법칙에따라다음과같이계산된다. T(z)= 차식 = 포물선 T (z)=dt/dz? dt qz ( = 0) = k dz z = 0 여기서 q(x)= 열플럭스 (W/m ), k= 흙의열전도계수 (=0.5 W/(m K), T= 온도 (K), z= 경계면으로부터의땅속깊이 수치미분을사용하여흙과공기의경계에서의온도구배를구하고, 이를 이용하여땅속으로의열플럭스를계산하라. 17
예제 1.3 (/) 풀이 ) 식 (1.1) 을사용하여흙과공기의경계에서도함수를 구하면, (0) 0.015 0.0375 (0) 0 0.0375 f 0 = 13.5 + 1 ( ) ( 0 0.015)( 0 0.0375) ( 0.015 0)( 0.015 0.0375) (0) 0 0.015 + 10 = 1440 + 1440 133.333 = 133.333 K / m ( 0.0375 0)( 0.0375 0.015) 이를이용하여열플럭스를구하면, W WK W qz ( = 0) = 0.5 133.333 = 66.667 mk m m 18
1.5 오차를가지는데이터에대한도함수와적분 실험데이터의미분에관련된문제점은데이터에포함된오차를증폭시키는것이며, 반면에수치적분은데이터의오차를완화시킨다. 오차를가지는데이터에대해서도함수를결정하는방법은최소제곱회귀분석을사용하여데이터에매끄럽고미분가능한함수를접합한후, 그함수의도함수를구하는것이다. 데이터에포함된작은오차가수치미분을통해얼마나증폭되는지를나타내는그림 : (a) 오차가없는데이터, (b) 곡선 (a) 의수치미분결과, (c) 조금수정된데이터, 그리고 (d) 증가된변동을분명히보여주는곡선 (c) 의수치미분결과. 대조적으로반대연산인적분 [ 곡선 (d) 아래의면적을취함으로써 (d) 에서 (c) 로이동함 ] 은오차를줄이거나완화시킨다. 미분의기능 변화의증폭 19
1.6 편도함수 일차원편도함수는도함수와같은방법으로계산된다. f f( x+ xy, ) f( x xy, ) = x x f f( xy, + y) f( xy, y) = y y 고차도함수를구하기 위해서두개이상의변수에대한함수를미분할수도있다. 그결과를혼합편도함수라칭한다. f x y = x 1{ f y = 1 1 f f ( x + x, y) y y x { ( x x, y) 1 : x 를 x+δx 로고정 1 : x 를 x-δx 로고정 f f( x+ xy, + y) f( x+ xy, y) f( x xy, + y) + f( x xy, y) = xy 4 x y 0
1.7 MATLAB 을이용한수치미분 MATLAB 함수 : diff yi = diff(xi) ; 변화량계산 xi = n개의요소를가지는 1차원벡터 yi = n-1 개의요소를가지는 1차원벡터 xi 벡터내인접한요소두개값의차이 1차도함수의유한차분근사값을계산하는데사용된다. See also GRADIENT 1