345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs....

39
수치해석 수치해석 Numerical Analysis Numerical Analysis 161009 161009 Ch22. Ch22. Initial Initial-Value Problems Value Problems

Upload: others

Post on 31-Dec-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

수치해석수치해석Numerical AnalysisNumerical Analysis

161009161009

Ch22. Ch22. InitialInitial--Value ProblemsValue ProblemsCh22. Ch22. InitialInitial--Value ProblemsValue Problems

Page 2: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

Part 6. Part 6. Part 6. Part 6. 개요개요개요개요(1/2)(1/2)(1/2)(1/2)

� 상미분방정식을 유도하고 해를 구하는 과정.

Numerical AnalysisNumerical Analysis

Page 3: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

� 미분방정식의 분류

• 상미분방정식(한 개의 독립변수)

vs. 편미분방정식(두 개이상의독립변수)

• 고차 미분방정식 � 1차 방정식계로 변환

Part 6. Part 6. Part 6. Part 6. 개요개요개요개요(2/2)(2/2)(2/2)(2/2)

d xv

d t=2

20

d x dxm c kxdt dt

+ + =

Numerical AnalysisNumerical Analysis

• n차 미분방정식의 유일 해를 구하기 위해서는 n개의 조건이 필요.

• 초기값 문제(동일한 독립변수 값에서(t=0) 모든 조건이 부여됨)

vs. 경계값 문제(다른 독립변수 값에서 조건들이 부여됨)

d t

d v c kv x

d t m m= − −

20m c kx

dt dt+ + =

0dv

m cv kxdt+ + =

2

2

dv, then

t

dx d xv

dt d dt= =

Page 4: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.1 개요

� 상미분방정식의 일반적인 형태:

� 수치해법:

• 수학적으로 표현하면

),( ytfdt

dy=

크기간격기울기값이전값새로운 ×+=

여기서 φ = 기울기 = 증분함수

Numerical AnalysisNumerical Analysis

• 수학적으로 표현하면

• 어떻게 기울기를 추정하는가?

� 미분방정식을 사용하여 ti에서의 1차 도함수의 형태로 추정

hyy ii φ+=+1

여기서 φ = 기울기 = 증분함수→ 거리 h 에 대해 이전 값 yi에서 새로운 값yi+1을 구하기 위해 적용

Page 5: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.2 22.2 22.2 22.2 EulerEulerEulerEuler법법법법 (1/5)(1/5)(1/5)(1/5)

� Euler법

• 1차 도함수가 곧 ti에서의 기울기 추정값

• 이 식을 대입하면

dy

dt ti

= f ti , yi( )

Numerical AnalysisNumerical Analysis

• 이 식을 대입하면

(Euler-Cauchy법 또는 점-기울기 법)

φ = f ti, yi( )yi+1 = yi + f ti , yi( )h

Page 6: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

예제 22.1 (Euler법) (1/3)

� Q. Euler법을 이용하여 y' = 4e0.8t – 0.5y를 t = 0에서

4까지 간격 크기를 1로 놓고 적분하라. 초기 조건은 t = 0

에서 y = 2이다.

참고로 엄밀해는 ttt eeey 5.05.08.0 2)(3.1

4 −− +−=

Numerical AnalysisNumerical Analysis

Page 7: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

예제 22.1 (Euler법) (2/3)

Sol)

첫 번째 단계에 대해

초기조건은 y(0) = 2이므로 t = 0에서 기울기는

t = 1에서의 정해:

)1)(2,0()0()1( fyy +=

3)2(5.04)2,0(0 =−= ef 5)1(32)1( =+=y

19463.62)(3.1

4 )1(5.0)1(5.0)1(8.0 =+−= −− eeey

Numerical AnalysisNumerical Analysis

백분율 상대오차:

두 번째 단계에 대해

t = 2에서의 정해: 14.84392

백분율 상대오차: 23.19%

3.1

%28.19%10019463.6

519463.6=×

−=ε t

40216.11)1)](5(5.04[5

)1)(5,1()1()2(

)1(8.0 =−+=

+=

e

fyy

Page 8: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

예제 22.1 (Euler법) (3/3)

t ytrue

yEuler

(%)

0

1

2

3

4

2.00000

6.19463

14.84392

33.67717

75.33896

2.00000

5.00000

11.40216

25.51321

56.84931

19.28

23.19

24.24

24.54

Numerical AnalysisNumerical Analysis

Page 9: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

� Euler법에 대한 오차해석

� 절단오차

- y의 값을 근사적으로 구하는 기법에서 자연스럽게 발생

- 전체전체전체전체 절단오차절단오차절단오차절단오차=국부국부국부국부 절단오차절단오차절단오차절단오차(한 단계에 대해)+전파전파전파전파 절단오차절단오차절단오차절단오차(모든 단계에 대해)

� 반올림오차

- 계산기의 사용에서 유한 자리의 유효숫자를 취함으로써 발생

22.2 22.2 22.2 22.2 EulerEulerEulerEuler법법법법 (2/5)(2/5)(2/5)(2/5)

Numerical AnalysisNumerical Analysis

• 점 (ti, yi)부근에서의 Taylor 급수 전개

: 국부 절단오차의 정확한 표현

: 국부 절단오차의 근사적 표현

)(!

),(

!2

),(),( 1

)1(2

1

+−

+ +++′

++= nnii

n

iiiiii hOh

n

ytfh

ytfhytfyy L

)(!2

),( 12 +++′

= niit hOh

ytfE L

2

!2

),(h

ytfE iia

′=

Page 10: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.2 22.2 22.2 22.2 EulerEulerEulerEuler법법법법 (3/5)(3/5)(3/5)(3/5)

• 전체오차는 O(h)로 간격 크기에 비례한다는 것을 증명.

� 전체오차는 h를 작게 하면 줄어든다.

� 미분방정식이 해가 선형인 경우는 정해를 산출한다.

→ Euler법은 1차 방법

Numerical AnalysisNumerical Analysis

Page 11: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

� Euler법의 안정성

• 절단오차는 간격의 크기에 의존하며, 이는 Taylor 급수에 기초하여

예측할 수 있음 → 정확도

• 오차가 기하급수적으로 증가하면 수치해는 불안정함

• 안정성 : 미분방정식, 수치기법과 간격 크기에 의존

22.2 22.2 22.2 22.2 EulerEulerEulerEuler법법법법 (4/5)(4/5)(4/5)(4/5)

-

0 0 (0) atdyay with y y y y e

dt= − = ⇒ =

Numerical AnalysisNumerical Analysis

� 확대인자 : g = 1-ah

– 만약 |g|>1 (즉, h > 2/a)이면 해는 무한대로 커진다

– Euler법은 조건부로 안정함(conditionally stable)

• 부정확성과 안정성은 별개의 특성

0 0dt

Euler 법: 1 1 (1 )ii i i i

dyy y h y y ah

dt+ += + ⇒ = −

Page 12: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.2 22.2 22.2 22.2 EulerEulerEulerEuler법법법법 (5/5)(5/5)(5/5)(5/5)

>> dydt = @(t,y) 4*exp(0.8*t)-0.5*y ;>> [t,y] = eulode(dydt, [0 4], 2, 1);>> disp([t,y])

0 2.00001.0000 5.00002.0000 11.40223.0000 25.51324.0000 56.8493

Numerical AnalysisNumerical Analysis

Page 13: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.3 22.3 22.3 22.3 EulerEulerEulerEuler법의법의법의법의 개선개선개선개선 (1/6)(1/6)(1/6)(1/6)

� Heun법

• 간격 전체 기울기의 추정값을 개선하는 방법

- 간격의 두 끝점, 즉 시작점과 끝점에서의 도함수를 이용

• 예측자예측자예측자예측자----수정자수정자수정자수정자(predictor(predictor(predictor(predictor----corrector)corrector)corrector)corrector) 방법

Numerical AnalysisNumerical Analysis

Heun법의 그래픽 표현. (a) 예측자와 (b) 수정자

Page 14: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.3 22.3 22.3 22.3 EulerEulerEulerEuler법의법의법의법의 개선개선개선개선 (2/6)(2/6)(2/6)(2/6)

• 간격의 시작점에서의 기울기:

• 선형적으로 외삽:

� 표준 Euler법에서의 해

Heun법에서는 중간 예측 결과

의 계산을 위한 예측자 방정식

),( iii ytfy =′

hytfyy iiii ),(0

1 +=+

),( 0

111 +++ =′iii ytfy

Numerical AnalysisNumerical Analysis

• 간격 전체의 평균 기울기:

수정자 방정식2

),(),( 0

11 +++=′ iiii ytfytf

y hytfytf

yy iiiiii

2

),(),( 0

111

+++

++=

Page 15: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.3 22.3 22.3 22.3 EulerEulerEulerEuler법의법의법의법의 개선개선개선개선 (3/6)(3/6)(3/6)(3/6)

� Heun법을 간략하게 정리하면

• 예측자

• 수정자

hytfyy ii

m

ii ),(0

1 +=+

),,2,1 ( 2

),(),( 1

111 mjh

ytfytfyy

j

ii

m

iim

i

j

i K=+

+=−++

+

Numerical AnalysisNumerical Analysis

• 수정자의 수렴에 대한 종료 판정:%100

1

1

11 ×−

=ε+

−++

j

i

j

i

j

ia

y

yy

Page 16: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

예제 22.2 (Heun법) (1/3)

� Q. 반복적인 Heun법을 이용하여 y' = 4e0.8t – 0.5y 를 t =

0 에서 4까지 간격 크기를 1로 놓고 적분하라.

초기 조건은 t = 0 에서 y = 2이다.

수정자의 반복을 끝내기 위한 수렴기준을 0.00001%로

잡아라.

Numerical AnalysisNumerical Analysis

Page 17: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

예제 22.2 (Heun법) (2/3)

Sol)

(t0, y0):

예측자: → 19.28%의 백분율 상대오차 (Euler법)

3)2(5.04 0

0 =−=′ ey

5)1(320

1 =+=y

402164.6)5(5.04),()1(8.00

111 =−==′ eyxfy

701082.42

402164.63=

+=′y

Numerical AnalysisNumerical Analysis

� 수정자: →-8.18%의 백분율 상대오차

추정 오차:

�수정자:

추정 오차:

701082.6)1(701082.421

1 =+=y

%39.25%100701082.6

5701082.6=×

−=εa

275811.612

)701082.6(5.0432

)1(8.02

1 =−+

+=e

y

%776.6%100275811.6

701082.6275811.6=×

−=ε a

Page 18: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

�수정자:

추정 오차:

… (12번 반복해야 종료기준 0.00001% 만족.)

예제 22.2 (Heun법) (3/3)

0.8(1)3

1

3 4 0.5(6.275811)2 1 6.382129

2

ey

+ −= + =

%666.1%100382129.6

275811.6382129.6=×

−=aε

Numerical AnalysisNumerical Analysis

t ytrue

yEuler

(%) 반복반복반복반복없음없음없음없음 반복반복반복반복있음있음있음있음

yHeun

(%) yHeun

(%)

0

1

2

3

4

2.00000

6.19463

14.84392

33.67717

75.33896

2.00000

5.00000

11.40216

25.51321

56.84931

19.28

23.19

24.24

24.51

2.00000

6.70108

16.31978

37.19925

83.33777

8.18

9.94

10.46

10.62

2.00000

6.36087

15.30224

34.74328

77.73510

2.68

3.09

3.17

3.18

tε tε

Page 19: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

� Heun법의 국부 오차

수정 단계를 거친 결과는

↔사다리꼴과 유사!!

상미분방정식:

22.3 22.3 22.3 22.3 EulerEulerEulerEuler법의법의법의법의 개선개선개선개선 (4/6)(4/6)(4/6)(4/6)

htftf

yy iiii

2

)()( 11

++

++=

2

)()()(

bfafabI

+−=

)(tfdt

dy=

ty

Numerical AnalysisNumerical Analysis

변수 분리하여 풀면 →

사다리꼴 공식 →

Heun 법은 바로 사다리꼴 공식이기 때문에 국부 절단오차

: 2차 방법

국부 오차 = O(h3) 그리고 전체 오차 = O(h2)

dt

∫∫++

=11

)(i

i

i

i

t

t

y

ydttfdy ∫

+

+=+

1

)(1

i

i

t

tii dttfyy

htftf

dttf iit

t

i

i 2

)()()( 11 ++

=∫+

htftf

yy iiii

2

)()( 11

++

++=

3

12

)(h

fEt

ξ′′−=

Page 20: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.3 22.3 22.3 22.3 EulerEulerEulerEuler법의법의법의법의 개선개선개선개선 (5/6)(5/6)(5/6)(5/6)

� 중점법

• 간격의 중점에서 기울기를 예측하여 사용.

Numerical AnalysisNumerical Analysis

중점법의 그래픽 표현 (a) 예측자와 (b) 수정자.

Page 21: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.3 22.3 22.3 22.3 EulerEulerEulerEuler법의법의법의법의 개선개선개선개선 (6/6)(6/6)(6/6)(6/6)

• 간격의 중점에서의 y 값을 예측하기 위하여 Euler법을 사용.

• 이렇게 예측한 값으로 중점에서의 기울기 계산.

• 이 평균 기울기를 전체 간격에 적용하면

2),(2/1

hytfyy iiii +=+

),( 2/12/12/1 +++ =′iii ytfy

hytfyy iiii ),( 2/12/11 +++ +=

Numerical AnalysisNumerical Analysis

• 중점법은 Newton-Cotes 개구간 적분공식과 연관이 있다.

• 국부 오차 = O(h3) 그리고 전체 오차 = O(h2)

hytfyy iiii ),( 2/12/11 +++ +=

)()()( 1xfabdxxfb

a−≅∫ )()( 2/1

1

+≅∫+

i

t

tthfdttf

i

i

∫+

+ +=1

1 )(i

i

t

tii dttfyyhytfyy iiii ),( 2/12/11 +++ +=

Page 22: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.4 22.4 22.4 22.4 RungeRungeRungeRunge----KuttaKuttaKuttaKutta법법법법 (1/5)(1/5)(1/5)(1/5)

• 고차 도함수를 구하지 않고도 Taylor 급수가 가지는 정확도를 가짐

• 일반적인 형식:

여기서:증분함수(간격 전체를 대표하는 기울기)

a's = 상수

hyy ii φ+=+1

nnkakaka +++=φ L2211

),(

),(

11112

1

hkqyhptfk

ytfk

ii

ii

++=

=

Numerical AnalysisNumerical Analysis

• 1차 RK법: n = 1인 경우 ⇒ Euler법

: 순환적 관계

p's, q's = 상수

),(

),(

),(

11,122,111,11

22212123

11112

hkqhkqhkqyhptfk

hkqhkqyhptfk

hkqyhptfk

nnnnninin

ii

ii

−−−−−− +++++=

+++=

++=

M

Page 23: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

� 2차 Runge-Kutta법

• 상수 a1, a2, p1, q11를 결정하기 위하여 2차 Taylor 급수와 비교

여기서

22.4 22.4 22.4 22.4 RungeRungeRungeRunge----KuttaKuttaKuttaKutta법법법법 (2/5)(2/5)(2/5)(2/5)

hkakayy ii )( 22111 ++=+

),(1 ii ytfk =

),( 11112 hkqyhptfk ii ++=

)(!2

),(

)(!2

),(),(

32

32

1

hOh

dt

dy

y

f

t

fhytfy

hOhytf

hytfyy

iii

iiiiii

+

∂∂

+∂∂

++=

+′

++=+

dt

dy

y

ytf

t

ytfytf ii ∂

∂+

∂∂

=′),(),(

),(

Numerical AnalysisNumerical Analysis

• k2:

)(!2

),( hOdtyt

hytfy iii +

+∂

++=

)(),(),( 2

111111112 hOy

fhkq

t

fhpytfhkqyhptfk iiii +

∂∂

+∂∂

+=++=

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

)(),(),(),(

)(

32

1121221

32

112

2

1221

22111

hOhy

fytfqa

t

fpahytfaytfay

hOy

fytfhqa

t

fhpaythfaythfay

hkakayy

iiiiiii

iiiiiii

ii

+

∂∂

+∂∂

+++=

+∂∂

+∂∂

+++=

++=+

Page 24: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.4 22.4 22.4 22.4 RungeRungeRungeRunge----KuttaKuttaKuttaKutta법법법법 (3/5)(3/5)(3/5)(3/5)

• 두 식의 계수를 비교하면

→ 4개의 미지 상수에 대한 3개의

방정식 "부정인 경우"

• a2의 값을 배정 → ,

2/1

2/1

1

112

12

21

=

=

=+

qa

pa

aa

21 1 aa −=2

1112

1

aqp ==

Numerical AnalysisNumerical Analysis

• 2차 RK법은 a2의 배정에 따라 무한히 많은 종류가 있다.

� 반복이 없는 Heun법

a2 = 1/2 → a1 = 1/2 , p1 = q11 = 1

⇒ Heun법에서 수정자의 반복이 없는 경우에 해당

hkkyy ii

++=+ 211

2

1

2

1 ),(1 ii ytfk =),( 12 hkyhtfk ii ++=

Page 25: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.4 22.4 22.4 22.4 RungeRungeRungeRunge----KuttaKuttaKuttaKutta법법법법 (3/5)(3/5)(3/5)(3/5)

� 중점법

a2 = 1 → a1 = 0 , p1 = q11 = 1/2

� Ralston법

hkyy ii 21 +=+

:간격의 시작에서의 기울기

:간격의 끝에서의 기울기

),(1 ii ytfk =

)2/,2/( 12 hkyhtfk ii ++=

Numerical AnalysisNumerical Analysis

� Ralston법

2차 RK 알고리즘에서 절단오차가 최소인 경우

a2 = 2/3 → a1 = 1/3 , p1 = q11 = 3/4

hkkyy ii

++=+ 211

3

2

3

1 ),(1 ii ytfk =

++= hkyhtfk ii 12

4

3,

4

3

Page 26: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.4 22.4 22.4 22.4 RungeRungeRungeRunge----KuttaKuttaKuttaKutta법법법법 (4/5)(4/5)(4/5)(4/5)

� 전형적인 4차 Runge-Kutta법

• 가장 보편적으로 사용되는 4차 RK법

• 가장 흔히 사용되는 방법

( )hkkkkyy ii 43211 226

1++++=+

),(1 ii ytfk = 11

Numerical AnalysisNumerical Analysis

• Simpson 1/3 공식과 유사함

• 간격에 대한 평균 기울기를 개선하기 위해 여러 기울기 값을 추정

→ Heun법과 유사

++= hkyhtfk ii 12

2

1,

2

1

++= hkyhtfk ii 23

2

1,

2

1

( )hkyhtfk ii 34 , ++=

Page 27: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

예제 22.3 (전형적인 4차 RK법) (1/2)

� Q. 전형적인 4차 RK법을 이용하여 를

t = 0에서 1까지 간격 크기를 1로 놓고 적분하라. 초기 조건은 y(0) = 2이다.

Sol) 간격의 시작점에서의 기울기

yeyt

5.048.0 −=′

3)2(5.04)2,0( )0(8.0

1 =−== efk

5.3)5.0(32)5.0( =+=y

Numerical AnalysisNumerical Analysis

중점에서의 기울기

중점에서의 또 다른 기울기

간격 끝에서의 기울기

5.3)5.0(32)5.0( =+=y

217299.4)5.3(5.04)5.3,5.0()5.0(8.0

2 =−== efk

108649.4)5.0(217299.42)5.0( =+=y

912974.3)108649.4(5.04)108649.4,5.0( )5.0(8.0

3 =−== efk

912974.5)0.1(912974.32)0.1( =+=y

0.8(0.5)

4 (1.0, 5.912974) 4 0.5 (5.912974) 5.945677k f e= = − =

Page 28: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

예제 22.3 (전형적인 4차 RK법) (2/2)

평균 기울기

수치 해

정해 6.194631에 비해 εt = 0.103%의 오차

[ ] 201037.4945677.5)912974.3(2)217299.4(236

1=+++=φ

(1.0) 2 4.201037 (1.0) 6.201037y = + =

Numerical AnalysisNumerical Analysis

εt

Page 29: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.4 22.4 22.4 22.4 RungeRungeRungeRunge----KuttaKuttaKuttaKutta법법법법 (5/5)(5/5)(5/5)(5/5)

� Butcher의 5차 Runge-Kutta법

hkkkkkyy ii )73212327(90

1654311 +++++=+

),(1 ii ytfk =

++= hkyhtfk ii 12

4

1,

4

1

+++= hkhkyhtfk ii 213

8

1

8

1,

4

1

11

Numerical AnalysisNumerical Analysis

• 전체 절단오차는 크기가 O(h5)이다.

• 4차 RK 법에 비해 정확하나 계산량에서 비효율적 (6개 함수 값을 계산)

+−+= hkhkyhtfk ii 324

2

1,

2

1

+++= hkhkyhtfk ii 41516

9

16

3,

4

3

+−++−+= hkhkhkhkhkyhtfk ii 5432167

8

7

12

7

12

7

2

7

3,

Page 30: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.5 22.5 22.5 22.5 연립방정식연립방정식연립방정식연립방정식 (1/4)(1/4)(1/4)(1/4)

� 연립 상미분방정식

( n 개의 초기 조건이 필요)

),,,,(

),,,,(

),,,,(

21

2122

2111

nnn

n

n

yyytfdt

dy

yyytfdt

dy

yyytfdt

dy

K

M

K

K

=

=

=

Numerical AnalysisNumerical Analysis

• 실제 문제에서는 연립 상미분방정식을 풀어야 하는 경우가 발생

• 기존의 미분방정식 해법을 사용할 수 있다.

),,,,( 21 nn yyytfdt

K=

Page 31: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

예제 22.4 (Euler법을 이용한 연립 ODE 풀이) (1/3)

� Q. 자유낙하 할 때의 속도와 위치를 Euler법으로 풀어라. 초기 조건

을 t = 0일 때, x = v = 0로 가정하고,

간격 크기를 2s로 하여 t = 10s까지 적분을 수행하라. 예제 1.1에서

와 같이 중력가속도는 9.81 m/s2, 사람의 질량은 68.1 kg, 항력계수

는 0.25 kg/m로 놓는다.

속도에 대한 해석 해

= t

m

gc

c

gmtv d

d

tanh)(

Numerical AnalysisNumerical Analysis

위치에 대한 해석 해

해석 해를 이용하여 수치 해의 상대오차를 계산하라.

mcd

= t

m

gc

c

mtx d

d

coshln)(

Page 32: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

예제 22.4 (Euler법을 이용한 연립 ODE 풀이) (2/3)

Sol)

t = 0에서의 기울기:

EulerEulerEulerEuler법법법법 ( ( ( ( tttt = 2s)= 2s)= 2s)= 2s) 해석해석해석해석 해해해해 백분율백분율백분율백분율 상대상대상대상대 오차오차오차오차

x(2) = 19.16629 100%

v(2) = 18.72919 4.756%

0=dt

dx

81.9)0(1.68

25.081.9 2 =−=

dt

dv

0)2(00 =+=x62.19)2(81.90 =+=v

Numerical AnalysisNumerical Analysis

v(2) = 18.72919 4.756%

EulerEulerEulerEuler법법법법 ( ( ( ( tttt = 4s)= 4s)= 4s)= 4s)

62.19)2(81.90 =+=v

24.39)2(62.190 =+=x

20.2519.62 9.81 (19.62) (2)

68.1

36.41368

v = + −

=

Page 33: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

예제 22.4 (Euler법을 이용한 연립 ODE 풀이) (3/3)

t xtrue vtrue xEuler vEuler εt(x) εt(v)

0

2

4

6

8

10

0

19.1663

71.9304

147.9462

237.5104

334.1782

0

18.7292

33.1118

42.0762

46.9575

49.4214

0

0

39.2400

112.0674

204.6640

305.0244

0

19.6200

36.4137

46.2983

50.1802

51.3123

100.00

45.45

24.25

13.83

8.72

4.76

9.97

10.03

6.86

3.83

Numerical AnalysisNumerical Analysis

• 간격 크기가 커서 결과가 정확하지 않다.

• 두 번째 반복을 수행하기까지 xEuler는 0으로 계산된다.

• 간격 크기를 줄이면 결과를 개선시킬 수 있다.

• 고차 방법을 사용하면 상대적으로 큰 간격에 대해서도 좋은 결과를

얻을 수 있다.

Page 34: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.5 22.5 22.5 22.5 연립방정식연립방정식연립방정식연립방정식 (2/4)(2/4)(2/4)(2/4)

� Runge-Kutta 법

• 고차 RK법은 연립방정식의 해를 구하는데 적용할 수 있다.

• 기울기를 구하는데 주의해야 한다.

• 간격의 시작점에서 모든 변수에 대해 기울기(k1)를 결정한다.

• 의 결과를 이용하여 간격의 중점에서의 기울기(k2)를 예측한다.

• 중점에서의 새로운 기울기(k3)를 예측한다.

Numerical AnalysisNumerical Analysis

• 중점에서의 새로운 기울기(k3)를 예측한다.

• 간격의 끝점에서의 기울기(k4)를 예측한다.

• 모든 k가 증분함수에서 합성되어 간격 끝에서의 함수 값이

결정된다.

Page 35: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

예제 22.5 (4차 RK법을 이용한 연립 상미분방정식의 풀이) (1/3)

� Q. 예제 22.4에서 다루었던 문제의 해를 4차 RK법으로

구하라.

Sol)

연립 상미분방정식 vvxtfdt

dx== ),,(1

2

2 ),,( vm

cgvxtf

dt

dv d−==

Numerical AnalysisNumerical Analysis

� 간격의 시작점에서 x와 v에 대한 기울기를 계산.

� 간격의 중점에서 x와 v의 첫 번째 값을 계산.

mdt

0)0,0,0(11,1 == fk

81.9)0(1.68

25.081.9)0,0,0( 2

22,1 =−== fk

ki,j는 j번째 종속변수의 i번째 k값

02

200

2)0()1( 1,1 =+=+=

hkxx

81.92

281.90

2)0()1( 2,1 =+=+=

hkvv

Page 36: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

예제 22.5 (4차 RK법을 이용한 연립 상미분방정식의 풀이) (2/3)

� 간격의 중점에서 x와 v에 대한 기울기를 계산.

� 간격의 중점에서 x와 v의 두 번째 값을 계산.

8100.9)81.9,0,1(11,2 == fk

4567.9)81.9,0,1(22,2 == fk

8100.92

28100.90

2)0()1( 1,2 =+=+=

hkxx

4567.92

4567.90)0()1( =+=+=h

kvv

Numerical AnalysisNumerical Analysis

� 간격의 중점에서 x와 v에 대한 기울기를 다시 계산.

간격의 끝점에서 x와 v의 값을 계산.

4567.92

24567.90

2)0()1( 2,2 =+=+=

hkvv

4567.9)4567.9,8100.9,1(11,3 == fk

4817.9)4567.9,8100.9,1(22,3 == fk

9134.18)2(4567.90)0()2( 1,3 =+=+= hkxx

9634.18)2(4817.90)0()2( 2,3 =+=+= hkvv

Page 37: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

예제 22.5 (4차 RK법을 이용한 연립 상미분방정식의 풀이) (3/3)

간격의 끝점에서 x와 v의 기울기를 계산.

� 위에서 구한 k를 합하여 최종적으로 x와 v의 값을 계산.

9634.18)9634.18,9134.18,2(11,4 == fk

4898.8)9634.18,9134.18,2(22,4 == fk

1656.192]9634.18)4567.98100.9(20[6

10)2( =++++=x

7256.182]4898.8)4817.94567.9(28100.9[1

0)2( =++++=v

Numerical AnalysisNumerical Analysis

7256.182]4898.8)4817.94567.9(28100.9[6

0)2( =++++=v

t xtrue vtrue xRK4 vRK4 εt(x) εt(v)

0

2

4

6

8

10

0

19.1663

71.9304

147.9642

237.5104

334.1782

0

18.7292

33.1118

42.0762

46.9575

49.4214

0

19.1656

71.9311

147.9521

237.5104

334.1626

0

18.7256

33.0995

42.0547

46.9345

49.4207

0.004

0.001

0.004

0.000

0.005

0.019

0.037

0.051

0.049

0.038

Page 38: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.5 22.5 22.5 22.5 연립방정식연립방정식연립방정식연립방정식 (3/4)(3/4)(3/4)(3/4)

Numerical AnalysisNumerical Analysis

Page 39: 345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs. 편미분방정식(두개이상의독립변수) •고차미분방정식 1차방정식계로변환

22.5 22.5 22.5 22.5 연립방정식연립방정식연립방정식연립방정식 (4/4)(4/4)(4/4)(4/4)

>> [t y] = rk4sys(@dydtsys, [0 10], [0 0], 2);>> disp ([t’ y(:, 1) y(:, 2)])

0 0 02.0000 19.1656 18.72564.0000 71.9311 33.09956.0000 147.9521 42.05478.0000 237.5104 46.9345

function dy = dydtsys(t,y)dy = [y(2); 9.81-0.25/68.1*y(2)^2];

Numerical AnalysisNumerical Analysis

8.0000 237.5104 46.934510.0000 334.1626 49.4027

>> tspan=[0 6 10] ;>> [t y] = rk4sys(@dydtsys, tspan, [0 0], 2);>> disp ([t’ y(:, 1) y(:, 2)])

0 0 06.0000 147.9521 42.0547

10.0000 334.1626 49.4027