20
6. 수치 적분과 미분 1. 수치적분 1.1 Basic Quadrature Rules Newton interpolatory divided-difference formula ] , , , [ ) ( ) )( ( ] , , [ ) )( ( ] , [ ) ( ) ( ) ( 0 1 1 1 0 0 1 2 1 0 0 1 0 0 x x x f x x x x x x x x x f x x x x x x f x x x f x f n n n n L L L + + + + = 0 1 0 1 1 0 ) ( ) ( ] , [ x x x f x f x x f = o x x x x x f x f x x x f x f x x x f = 2 0 1 0 1 1 2 1 2 2 1 0 ) ( ) ( ) ( ) ( ] , , [ ) ( ) )( ( )! 1 ( )) ( ( ) ( ) ( 1 0 ) 1 ( n n n x x x x x x n x f x f x f + = + L ξ 몇 개의 항을 사용하느냐에 따라 다른 접근 방법이 된다. (Midpoint, Trapezoidal, Simpson Rule) 각각의 경우 error level 은?

6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

6. 수치 적분과 미분

1. 수치적분

1.1 Basic Quadrature Rules

Newton interpolatory divided-difference formula

],,,[)())((

],,[))((],[)()()(

01110

012100100

xxxfxxxxxx

xxxfxxxxxxfxxxfxf

nnn

n

LLL −−−−−++

−−+−+=

01

0110

)()(],[xx

xfxfxxf−−

=

oxxxx

xfxfxx

xfxf

xxxf−

−−

−−−

=2

01

01

12

12

210

)()()()(

],,[

)())(()!1(

))(()()( 10

)1(

n

n

n xxxxxxn

xfxfxf −−−+

=−+

몇 개의 항을 사용하느냐에 따라 다른 접근 방법이 된다.

(Midpoint, Trapezoidal, Simpson Rule)

각각의 경우 error level 은?

Page 2: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

Midpoint Rule

)(2

)]([][)( abbafabxfdxxfdxxf oo

b

a

b

a−⎟

⎠⎞

⎜⎝⎛ +

=−=≈ ∫∫

Error estimation

Page 3: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

Trapezoidal Rule

Error estimation

Page 4: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

Simpson Rule

Page 5: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

Comparisons

Page 6: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

1.2 Composite Quadrature Rules

Page 7: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

Simpson 3/8 공식

3 차까지의 다항식을 이용하여 네 개의 data point 들을 보간하여

적분 값을 구한다.

∫+++

−≅b

ao xfxfxfxfabdxxf

8)()(3)(3)()()( 321

Error, 5

)4(

)(6480

)(ab

fE −−=

ξ

세 개의 data point 로도 같은 정도의 정확도를 얻을 수 있는 일반

Simpson (1/3) 공식이 더 선호되지만 Simpson 3/8 공식은 구간의

개수가 홀수일 때 Simpson 1/3 공식에 대한 보완으로 활용된다.

Problem) x = 0 ~ 0.8 의 구간에서 다음의 식을 적분하라.

5432 400900675200252.0)( xxxxxxf +−+−+=

Mid point, Trapezoidal, Simpson 법을 이용하되, 각

방법에서 구간의 크기를 줄여 가면서, 오차가 줄어드는

정도를 비교하시오. (정답: 1.64053334)

Page 8: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

FUNCTION TrapEq (n, a, b)

h = (b – a)/n

x = a

sum = f(x)

DO i = 1, n-1

x = x + h

sum = sum + 2 * f(x)

ENDDO

sum = sum + f(b)

TrapEq = (b – a) * sum / (2*n)

END TrapEq

FUNCTION SimpEq (n, a, b)

h = (b – a)/n

x = a

sum = f(x)

DO i = 1, n-2, 2

x = x + h

sum = sum + 4 * f(x)

x = x + h

sum = sum + 2 * f(x)

ENDDO

x = x + h

sum = sum + 4 * f(x)

sum = sum + f(b)

SimpEq = (b – a) * sum / (3*n)

END SimpEq

Page 9: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

1.3 방정식의 적분

구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의

정확도를 얻기 위해 필요한 만큼의 f(x) 값을 생성해 낼 수 있을 때.

Richardson Extrapolation

L++++= 33

221)( hKhKhKhNM Eq.(1)

Replace the parameter h by half its value,

L++++=842

)2

(3

3

2

21hKhKhKhNM Eq.(2)

2 Eq.(2) – Eq.(1) = M

L+⎟⎟⎠

⎞⎜⎜⎝

⎛−+⎟⎟

⎞⎜⎜⎝

⎛−+⎥

⎤⎢⎣

⎡⎟⎠⎞

⎜⎝⎛ −+= 3

3

32

2

2 42)()

2()

2( hhKhhKhNhNhNM

define

)()(1 hNhN =

⎟⎠⎞

⎜⎝⎛ −+= )()

2()

2()( 1112 hNhNhNhN

By combining two O(h) approximations, an O(h2) approximation

is produced.

L−−−= 33222 4

32

)( hKhKhNM Eq.(3)

Page 10: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

Replace h by h/2 in Eq.(3),

L−−−= 33222 32

38

)2

( hKhKhNM Eq.(4)

Combine Eqs.(3) and (4) to eliminate the h2 term

4 Eq.(4) – Eq.(3) = 3M

L+⎟⎟⎠

⎞⎜⎜⎝

⎛+−+−= 3

33

22 243)()

2(43 hhKhNhNM

L++⎥⎦⎤

⎢⎣⎡ −

+= 33222 83

)()2/()2

( hKhNhNhNM

define 3)()2/()

2()( 22

23hNhNhNhN −

+=

By combining two O(h2) approximations, an O(h3) approximation

is produced.

L++= 333 8

)( hKhNM

By continuing the process, O(h4) and O(h5) approximations are

reproduced

7)()2/()

2()( 33

34hNhNhNhN −

+=

15)()2/()

2()( 44

45hNhNhNhN −

+=

12)()2/(

)2

()( 111

1 −−

+= −−−

− jjj

jj

hNhNhNhN

Page 11: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

Romberg Integration

Richardson extrapolation is performed to speed the convergence

Composite Trapezoidal rule in [a,b] using m subintervals

)("12

)()(2)()(2

)( 21

1ξfhabxfbfafhdxxf

m

jj

b

a

−−⎥

⎤⎢⎣

⎡++= ∑∫

=

where h = (b-a)/m, xj = a + jh for j = 0, 1, 2, …, m

with m1 = 1, m2 = 2, m3 = 4, …, and mn = 2n-1

hk corresponding to mk is hk = (b-a)/mk = (b-a)/2k-1

)("12

)()(2)()(2

)( 212

1

1

kki

kkb

afhabihafbfafhdxxf

k

ξ−−⎥

⎤⎢⎣

⎡+++= ∑∫

=

Introduction of the notation Rk,1

)]()([2

)()]()([21

1,1 bfafabbfafh

R +−

=+=

)]([21

211,11,2 hafhRR ++=

{ })]3()([21

3321,21,3 hafhafhRR ++++=

in General ⎭⎬⎫

⎩⎨⎧

−++= ∑−

=−−

22

111,11, )12((

21 k

ikkkk hiafhRR

for k = 2, 3, …, n.

Extrapolation 31,11,

1,2,−−

+= kkkk

RRRR

14 11,11,

1,, −−

+= −−−−

− jjkjk

jkjk

RRRR

Page 12: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

Problem) x = 0 ~ 0.8 의 구간에서 다음의 식을 Romberg 적분

법을 이용하여 적분하라.

5432 400900675200252.0)( xxxxxxf +−+−+=

Page 13: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

Gaussian Quadrature

[a,b] 구간 내의 양 끝점 x=a, x=b 에서의 값을 이용하지 않고

구간 내부에서의 n 개의 data point 를 이용하여 다음과 같이 적분

값을 approximation 하는 방법.

∫ ∑=

≈b

a

n

iii xfcdxxf

1)()(

위의 approximation 에서 error 가 최소화되도록 계수 ci 값들과

data 위치 xi 값들을 결정하는 것이 관건.

Page 14: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

Example) f(x)가 3 차 이하의 다항식일 때

)()()( 22

1

1 11 xfcxfcdxxf +≈∫− (*)

를 만족하도록 c1, c2, x1, x2 값을 구하라.

33

221)( xaxaxaaxf o +++=

∫∫∫∫∫ +++=+++ dxxadxxadxxadxadxxaxaxaao3

32

2103

32

21 1)(

이는 f(x)가 1, x, x2, x3 일 때 위 적분식(*)이 성립하는 조건을

구하는 것과 같은 문제임.

21111

121 ==⋅+⋅ ∫− dxcc

01

12211 ==⋅+⋅ ∫− dxxxcxc

3221

1

222

211 ==⋅+⋅ ∫− dxxxcxc

031

1

322

311 ==⋅+⋅ ∫− dxxxcxc

31,

31,1,1 2121 =−=== xxcc

)3

1()3

1()(1

1ffdxxf +−≈∫−

Page 15: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

2 개 이상의 data point 를 사용할 때

Problem) x = 0 ~ 0.8 의 구간에서 다음의 식을 Gaussian

구적법을 이용하여 적분하라.

5432 400900675200252.0)( xxxxxxf +−+−+=

Data point 의 수를 2 개에서부터 증가시켜 가면서

Error 를 check 할 것 (정답: 1.64053334).

적분 구간이 0 ~ 0.8 이 아니라 -1 ~ +1 이 되도록

변수를 변환하고 주어진 식을 변환시켜야 한다는 것에

유의할 것.

Page 16: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

2. 수치미분

2.1 고차 정확도의 미분 공식들

2 개 이상의 data point 를 이용하여 정확도를 높인 공식들

L+++=+2

1 2)(")(')()( hxfhxfxfxf i

iii

)(2

)(")()()(' 21 hOhxfh

xfxfxf iiii +−

−= +

)()()()(' 1 hOh

xfxfxf iii +

−= +

)()()(2)()(" 212 hO

hxfxfxfxf iii

i ++−

= ++

)(2

)()(2)()()()(' 22

121 hOhh

xfxfxfh

xfxfxf iiiiii +

+−−

−= +++

)(2

)(3)(4)()(' 212 hOh

xfxfxfxf iiii +

−+−= ++

Page 17: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

전진 차분 (forward-difference)

※ 1st derivative

)()()()(' 1 hOh

xfxfxf iii +

−= +

)(2

)(3)(4)()(' 212 hOh

xfxfxfxf iiii +

−+−= ++

※ 2nd derivative

)()()(2)()(" 212 hO

hxfxfxfxf iii

i ++−

= ++

)()(2)(5)(4)()(" 22

123 hOh

xfxfxfxfxf iiiii +

+−+−= +++

후진 차분 (backward-difference)

※ 1st derivative

)()()()(' 1 hOh

xfxfxf iii +

−= −

)(2

)()(4)(3)(' 221 hOh

xfxfxfxf iiii +

+−= −−

※ 2nd derivative

)()()(2)()(" 221 hO

hxfxfxfxf iii

i ++−

= −−

)()()(4)(5)(2)(" 22

321 hOh

xfxfxfxfxf iiiii +

−+−= −−−

Page 18: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

중앙 차분 (centered-difference)

※ 1st derivative

)(2

)()()(' 211 hOh

xfxfxf iii +

−= −+

)(12

)()(8)(8)()(' 42112 hOh

xfxfxfxfxf iiiii +

+−+−= −−++

※ 2nd derivative

)()()(2)()(" 22

11 hOh

xfxfxfxf iiii +

+−= −+

)()()(16)(30)(16)()(" 42

2112 hOh

xfxfxfxfxfxf iiiiii +

−+−+−= −−++

Example) 다음 함수의 1 차도함수를 x=0.5, h=0.25 에서 O(h2)로

계산하라. (참값 -0.9125)

2.125.05.015.01.0)( 234 +−−−−= xxxxxf

f(xi-2) = 1.2

f(xi-1) = 1.103516

f(xi) = 0.925

f(xi+1) = 0.6363281

f(xi+2) = 0.2

Forward O(h) Backward O(h) Centered O(h2)

Estimate

Error (%)

-1.155

-26.5

-0.714

21.7

-0.934

-2.4

Forward O(h2) Forward O(h2) Forward O(h4)

Estimate

Error (%)

-0.859375

5.82

-0.878125

3.77

-0.9125

0.0

Page 19: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

2.2 Richardson extrapolation

14 11,11,

1,, −−

+= −−−−

− jjkjk

jkjk

RRRR

)(31)(

34

12 hDhDD −≅

Example) 다음 함수 x=0.5 에서의 1 차도함수를, h=0.5, 0.25 를

사용하여 Richardson extrapolation 법으로 추정하라.

(참값 -0.9125)

2.125.05.015.01.0)( 234 +−−−−= xxxxxf

f(xi-2) = 1.2

f(xi-1) = 1.103516

f(xi+1) = 0.6363281

f(xi+2) = 0.2

0.11

2.12.0)5.0( −=−

=D (-9.6%)

934375.05.0

103516.16363281.0)25.0( −=−

=D

(-2.4%)

9125.0)1(31)934375.0(

34

=−−−=D

Page 20: 6. 수치 적분과 미분 - POSTECH · 2013-02-19 · 1.3 방정식의 적분 구간의 크기를 임의로 조절할 수 있을 때. 즉, 요구되는 수준의 정확도를 얻기

2.3 부등 간격을 가지는 data 의 도함수

인접한 세 개의 data point 를 2 차 Lagrange 보간 다항식으로 접합

))((2)(

))((2)()('

11

11

111

11

+−

+−

+−−

+− −−

−−+

−−−−

=iiii

iii

iiii

iii xxxx

xxxxfxxxx

xxxxfxf

))((2)(

111

11

iiii

iii xxxx

xxxxf−−

−−+

+−+

−+

Example) 토양 표면에서의 온도 기울기?