파트6 상미분방정식 -...
TRANSCRIPT
2017-11-30
1
파트 6 상미분방정식
6.1 개요
6.2 파트의 구성
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
6.1 개요(1/4)
§ 공학과 과학에서 상미분방정식을 유도하고 해를 구하는 과정.
2017-11-30
2
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
6.1 개요(2/4)
§ 번지 점프하는 사람의 속도 변화율을 기술하는 미분방정식
§ 미분방정식의 분류
- 상미분방정식 : 한 개의 독립변수
편미분방정식 : 두 개 이상의 독립변수
- 2차 방정식 : 2차 도함수를 포함
- n차 방정식 : n차 도함수를 포함
여기서 v = 종속변수
t = 독립변수
2dcdv g vdt m
= -
2
2 0d x dxm c kxdt dt
+ + =
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
6.1 개요(3/4)
§ 고차 미분방정식 → 1차 방정식계로 변환
-종속변수의 1차 도함수를 새로운 변수로 정의한다.
-식(PT6.3)과 식(PT6.4) 를 식(PT6.2) 에 대입하면,
-따라서 최종 1차 방정식계는 다음과 같다.
식(PT6.2)
식(PT6.3), 식(PT6.4)
dx vdtdv c kv xdt m m
=
= - -
2
2 0d x dxm c kxdt dt
+ + =
0dvm cv kxdt
+ + =
2
2
dv, then t
dx d xvdt d dt
= =
2017-11-30
3
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
6.1 개요(4/4)
§ n차 미분방정식의 유일 해를 구하기 위해서는 n개의 조건이 필요하다.
§ 초기값 문제 : 같은 독립변수 값에서(예를 들면 x=0 또는t=0 에서) 모든 조건이 부여됨
§ 경계값 문제 : 다른 독립변수 값에서 조건들이 부여됨
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
6.2 파트의 구성
20장 : 초기값 문제
21장 : 적응식 방법과 강성시스템
22장 : 경계값 문제
2017-11-30
4
20장 초기값 문제
20.1 개요20.2 Euler법20.3 Euler법의 개선20.4 Runge-Kutta법20.5 연립방정식
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20장 초기값 문제 (1/2)
번지 점프하는 사람의 자유낙하 속도를 구하는 문제로 돌아가자.
여기서 sign(x) = sgn(x) = 시그넘 함수
떨어지는 경우 ® sign(v)=1 ® 음의 항력(위쪽)
올라가는 경우 ® sign(v)=–1 ® 양의 항력(아래쪽)
점프 줄이 늘어날 때 위 방향으로 작용하는 추가의 힘을 고려
� 근사화하는데 Hooke의 법칙을 사용
‚ 줄이 늘어나거나 줄어들 때 발생하는 마찰로 인한 감쇠력
2)(sign vmc
vgdtdv d-=
2017-11-30
5
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20장 초기값 문제 (2/2)
( x > L인 경우에만 성립)
vmγLx
mkv
mc
vgdtdv d ----= )()(sign 2
여기서 v = 속도 (m/s)
t = 시간 (s)
g = 중력가속도 = 9.81 m/s2
cd = 항력 계수 (kg/m)
m = 질량 (kg)
k = 줄의 스프링상수 (N/m)
x = 출발지점으로부터 아래로 측정한 거리 (m)
L = 늘어나지 않은 줄의 길이 (m)
g = 감쇠계수 (N×s/m)
vdtdx
=
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.1 개요
상미분방정식의 일반적인 형태:
1장에서 소개된 단일단계법 (또는 Runge-Kutta법):
이것을 수학적으로 표현하면
어떻게 기울기를 추정하는가?
® 미분방정식을 사용하여 ti에서의 1차 도함수의 형태로 추정
),( ytfdtdy
=
크기간격기울기값이전값새로운 ´+=
hyy ii f+=+1여기서 f = 기울기 = 증분함수
® 이전 값 yi에서 새로운 값 yi+1을 구하기 위해거리 h 에 대해 적용
® & 다단계법: 이전의 여러 점에서의 정보를 사용
2017-11-30
6
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.2 Euler법 (1/8)
1차 도함수가 곧 ti에서의 기울기 추정값
이 식을 대입하면
Euler법 (또는 Euler-Cauchy법 또는 점-기울기 법)
),( ii ytf=f
hytfyy iiii ),(1 +=+
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.1 (Euler법) (1/4)
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 -- +-=
2017-11-30
7
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.1 (Euler법) (2/4)
풀이)
첫 번째 단계에 대해
초기조건은 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
%28.19%10019463.6
519463.6=´
-=e t
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.1 (Euler법) (3/4)
두 번째 단계에 대해
t = 2에서의 정해: 14.84392
백분율 상대오차: 23.19%
40216.11)1)](5(5.04[5
)1)(5,1()1()2()1(8.0 =-+=
+=
efyy
t ytrue yEuler (%)01234
2.000006.19463
14.8439233.6771775.33896
2.000005.0000011.4021625.5132156.84931
19.2823.1924.2424.54
te
2017-11-30
8
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.1 (Euler법) (4/4)
정해와 Euler법을 사용한 수치 해의 비교(y' = 4e0.8t – 0.5y의 초기조건은 y(0) = 2이고,t = 0에서 4까지 간격 크기를 1로 놓음)
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
여기서 h = ti+1 – ti
= 나머지 항
20.2 Euler법 (2/8)
Euler법에 대한 오차해석� 절단오차
- y의 값을 근사적으로 구하는 기법에서 자연스럽게 발생
- 전체 절단오차=국부 절단오차(한 단계에 대해)+전파 절단오차(모든 단계에 대해)
‚ 반올림오차- 계산기의 사용에서 유한 자리의 유효숫자를 취함으로써 발생
Euler법은 점 (ti, yi)부근에서의 Taylor 급수 전개
nn
nii
iii Rhny
hy
hyyy +++¢¢
+¢+=+ !!2
)(2
1 L
1)1(
)!1()( +
+
+x
= nn
n hnyR
2017-11-30
9
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.2 Euler법 (3/8)
또 다른 형태로는
Euler법에서는
: 국부 절단오차의 정확한 표현
충분히 작은 h에 대해서
또는
: 국부 절단오차의 근사적 표현
)(!
),(!2
),(),( 1
)1(2
1+
-
+ +++¢
++= nniin
iiiiii hOh
nytf
hytf
hytfyy L
hytfyy iiii ),(1 +=+
)(!2
),( 12 +++¢
= niit hOh
ytfE L
2
!2),(h
ytfE iia
¢= )( 2hOEa =
여기서 O(hn+1) = 국부 절단오차 µ 간격 크기의 (n+1)거듭제곱
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.2 Euler법 (4/8)
전체오차는 O(h)로 간격 크기에 비례한다는 것을
증명할 수도 있다.
� 전체오차는 h를 작게 하면 줄어든다.
‚ 미분방정식이 해가 선형인 경우는 정해를 산출한다.
® Euler법은 1차 방법
2017-11-30
10
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.2 Euler법 (5/8)
Euler법의 안정성
절단오차는 간격의 크기에 의존하며, 이는 Taylor 급수에 기초하여 예측할 수 있음 → 정확도
오차가 기하급수적으로 증가하면 수치해는 불안정함
안정성 : 미분방정식, 수치기법과 간격 크기에 의존
- 확대인자 : g = 1-ah
- 만약 |g|>1 (즉 만약 h > 2/a), 해는 무한대로 커진다
- Euler법은 조건부로 안정함(conditionally stable)
-0 0 (0) atdy ay with y y y y e
dt= - = Þ =
1 1 (1 )ii i i i
dyy y h y y ahdt+ += + Þ = -Euler 법 :
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.2 Euler법 (6/8)
수치기법에 무관하게 오차가 항상 증가하는 상미분방정식:
- 불량조건(ill-conditioned)
부정확성과 안정성은 별개의 특성이다.
- 부정확한 방법도 안정성 있는 방법일 수 있다.
2017-11-30
11
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.3 Euler법의 개선 (1/8)
Euler법에서 발생하는 오차의 근본적인 출처
- 시작점에서의 도함수를 간격 전체에 적용
Heun법
간격 전체 기울기의 추정값을 개선하는 방법
- 간격의 두 끝점, 즉 시작점과 끝점에서의 도함수를 이용
예측자-수정자 방법이라고도 함
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.3 Euler법의 개선 (2/8)
Heun법의 그래픽 표현. (a) 예측자와 (b) 수정자
2017-11-30
12
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.3 Euler법의 개선 (3/8)
간격의 시작점에서의 기울기:
선형적으로 외삽:
® 표준 Euler법에서의 해
® Heun법에서는 중간 예측 결과
의 계산을 위한 예측자 방정식
간격 전체의 평균 기울기:
®
: 수정자 방정식
),( iii ytfy =¢
hytfyy iiii ),(01 +=+
),( 0111 +++ =¢ iii ytfy
2),(),( 0
11 +++=¢ iiii ytfytf
y hytfytf
yy iiiiii 2
),(),( 011
1++
+
++=
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.3 Euler법의 개선 (4/8)
Heun법을 간략하게 정리하면
예측자
수정자
수정자의 수렴에 대한 종료 판정:
hytfyy iimii ),(0
1 +=+
),,2,1 ( 2
),(),( 111
1 mjhytfytfyyjii
miim
iji K=
++=
-++
+
%1001
111 ´
-=e
+
-++
ji
ji
ji
a yyy
개선된 결과를 얻기 위한 Heun법 수정자의 그래픽 표현
2017-11-30
13
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.2 (Heun법) (1/4)
Q. 반복적인 Heun법을 이용하여 y' = 4e0.8t – 0.5y 를
t = 0 에서 4까지 간격 크기를 1로 놓고 적분하라.
초기 조건은 t = 0 에서 y = 2이다.
수정자의 반복을 끝내기 위한 수렴기준을 0.00001%로
잡아라.
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.2 (Heun법) (2/4)
풀이)
� (t0, y0):
예측자: ® 19.28%의 백분율 상대오차 (Euler법)
수정자: ®-8.18%의 백분율 상대오차
추정 오차:
3)2(5.04 00 =-=¢ ey
5)1(3201 =+=y
402164.6)5(5.04),( )1(8.00111 =-==¢ eyxfy
701082.42402164.63
=+
=¢y
701082.6)1(701082.4211 =+=y
%39.25%100701082.6
5701082.6=´
-=e a
2017-11-30
14
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.2 (Heun법) (3/4)
‚ 수정자:
추정 오차:
ƒ 수정자:
추정 오차:
275811.612
)701082.6(5.0432)1(8.0
21 =
-++=
ey
%776.6%100275811.6
701082.6275811.6=´
-=e a
0.8(1)31
3 4 0.5(6.275811)2 1 6.3821292
ey + -= + =
%666.1%100382129.6
275811.6382129.6=´
-=ae
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.2 (Heun법) (4/4)
반복없음 반복있음
t ytrue yEuler (%) yHeun (%) yHeun (%)
01234
2.000006.19463
14.8439233.6771775.33896
2.000005.00000
11.4021625.5132156.84931
19.2823.1924.2424.51
2.000006.70108
16.3197837.1992583.33777
8.189.94
10.4610.62
2.000006.36087
15.3022434.7432877.73510
2.683.093.173.18
y' = 4e0.8t – 0.5y의 적분에서 정해와 수치해의 비교. 초기 조건은 t = 0에서
y = 2이고, Euler법과 Heun법에서 간격 크기를 1로 놓고 수치해를 계산하였으며, Heun법에서는 수정자 반복이 없는 경우와 있는 경우를 모두 수행하였음.
te te te
2017-11-30
15
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.3 Euler법의 개선 (5/8)
Heun법의 국부 오차
수정 단계를 거친 결과는
«사다리꼴과 유사!!
상미분방정식:
변수 분리하여 풀면
®
또는
htftf
yy iiii 2
)()( 11
++
++= 2
)()()( bfafabI +-=
)(tfdtdy
=
òò++
=11
)(i
i
i
i
t
t
y
ydttfdy
ò+
+ =-1
1 )(i
i
t
tii dttfyy ò+
+ +=1
1 )(i
i
t
tii dttfyy
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.3 Euler법의 개선 (6/8)
사다리꼴 공식을 적용하면
®
Heun 법은 바로 사다리꼴 공식이기 때문에 국부 절단오차
: 2차 방법
국부 오차 = O(h3) 그리고 전체 오차 = O(h2)
htftf
dttf iit
t
i
i 2)()(
)( 11 ++ +=ò h
tftfyy iiii 2
)()( 11
++
++=
3
12)( hfEt
x¢¢-=
2017-11-30
16
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.3 Euler법의 개선 (7/8)
중점법
중점법의 그래픽 표현. (a) 예측자와 (b) 수정자.
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.3 Euler법의 개선 (8/8)
간격의 중점에서의 y 값을 예측하기 위하여 Euler법을 사용한다.
이렇게 예측한 값으로 중점에서의 기울기를 구한다.
이 평균 기울기를 전체 간격에 적용하면
중점법은 Newton-Cotes 개구간 적분공식과 연관이 있다.
®
따라서
®
2),(2/1hytfyy iiii +=+
),( 2/12/12/1 +++ =¢ iii ytfy
hytfyy iiii ),( 2/12/11 +++ +=
)()()( 1xfabdxxfb
a-@ò )()( 2/1
1
+@ò+
i
t
tthfdttfi
i
ò+
+ +=1
1 )(i
i
t
tii dttfyyhytfyy iiii ),( 2/12/11 +++ +=
2017-11-30
17
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.4 Runge-Kutta법 (1/14)
고차 도함수를 구하지 않고도 Taylor 급수 방법이가지는 정확도를 가짐
일반적인 형식:
1차 RK법: n = 1인 경우 Þ Euler법
여기서:증분함수(간격 전체를 대표하는 기울기)
a's = 상수
: 순환적 관계
p's, q's = 상수
hyy ii f+=+1
nnkakaka +++=f L2211
),(
),(),(
),(
11,122,111,11
22212123
11112
1
hkqhkqhkqyhptfk
hkqhkqyhptfkhkqyhptfk
ytfk
nnnnninin
ii
ii
ii
------ +++++=
+++=++=
=
M
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
여기서
20.4 Runge-Kutta법 (2/14)
2차 Runge-Kutta법
2차 표현은 다음과 같다.
상수 a1, a2, p1 그리고 q11를 결정하기 위하여 2차
Taylor 급수와 같다고 놓는다.
따라서 는
와 같아야 한다.
hkakayy ii )( 22111 ++=+),(1 ii ytfk =
),( 11112 hkqyhptfk ii ++=
21 !2
),(),( h
ytfhytfyy ii
iiii¢
++=+
!2),(
2
1h
dtdy
yf
tfhytfyy iiii ÷÷
ø
öççè
涶
+¶¶
++=+
hkakayy ii )( 22111 ++=+
여기서 dtdy
yytf
tytfytf ii ¶
¶+
¶¶
=¢ ),(),(),(
2017-11-30
18
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.4 Runge-Kutta법 (3/14)
2변수 함수의 Taylor 급수 전개는
k2는 다음에서 유도하면
따라서
정리하면
L+¶¶
+¶¶
+=++ygs
tgrytgsyrtg ),(),(
)(),(),( 211111111 hO
yfhkq
tfhpytfhkqyhptf iiii +
¶¶
+¶¶
+=++
)(),(),(),( 32112
212211 hO
yfytfhqa
tfhpaythfaythfayy iiiiiiii +
¶¶
+¶¶
+++=+
[ ] )(),(),(),( 3211212211 hOh
yfytfqa
tfpahytfaytfayy iiiiiiii +ú
û
ùêë
鶶
+¶¶
+++=+
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.4 Runge-Kutta법 (4/14)
두 식의 계수를 비교하면
® 4개의 미지 상수에 대한 3개의
방정식 "부정인 경우"
a2의 값을 배정 ® 그리고
2차 RK법은 a2의 배정에 따라 무한히 많은 종류가 있다.
2/12/11
112
12
21
==
=+
qapaaa
21 1 aa -=2
111 21a
qp ==
2017-11-30
19
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.4 Runge-Kutta법 (5/14)
반복이 없는 Heun법(a2 = 1/2)a2 = 1/2 ® a1 = 1/2 그리고 p1 = q11 = 1
Þ Heun법에서 수정자의 반복이 없는 경우에 해당
중점법a2 = 1 ® a1 = 0 그리고 p1 = q11 = 1/2
hkkyy ii ÷øö
çèæ ++=+ 211 2
121 여기서 ),(1 ii ytfk =
),( 12 hkyhtfk ii ++=
hkyy ii 21 +=+ 여기서
:간격의 시작에서의 기울기
:간격의 끝에서의 기울기
),(1 ii ytfk =
)2/,2/( 12 hkyhtfk ii ++=
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.4 Runge-Kutta법 (6/14)
Ralston법2차 RK 알고리즘에서 절단오차가 최소인 경우
a2 = 2/3 ® a1 = 1/3 그리고 p1 = q11 = 3/4
hkkyy ii ÷øö
çèæ ++=+ 211 3
231
여기서 ),(1 ii ytfk =
÷øö
çèæ ++= hkyhtfk ii 12 4
3,43
2017-11-30
20
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.4 Runge-Kutta법 (7/14)
전형적인 4차 Runge-Kutta법가장 보편적으로 사용되는 4차 RK법
무한히 많은 종류 중에서 가장 흔히 사용되는 방법
Simpson 1/3 공식과 유사함
간격에 대한 평균 기울기를 개선하기 위해 여러 기울기값을 추정® Heun법과 유사
여기서
( )hkkkkyy ii 43211 2261
++++=+
),(1 ii ytfk =
÷øö
çèæ ++= hkyhtfk ii 12 2
1,21
÷øö
çèæ ++= hkyhtfk ii 23 2
1,21
( )hkyhtfk ii 34 , ++=
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.4 Runge-Kutta법 (8/14)
4차 RK법을 구성하는 기울기 추정값의 그래픽 표현.
2017-11-30
21
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.3 (전형적인 4차 RK법) (1/2)
Q. 전형적인 4차 RK법을 이용하여 를
t = 0에서 1까지 간격 크기를 1로 놓고 적분하라. 초기 조건은 y(0) = 2이다.
풀이)
간격의 시작점에서의 기울기
중점에서의 기울기
중점에서의 또 다른 기울기
yey t 5.04 8.0 -=¢
3)2(5.04)2,0( )0(8.01 =-== efk
5.3)5.0(32)5.0( =+=y217299.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.03 =-== efk
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.3 (전형적인 4차 RK법) (2/2)
간격의 끝에서의 기울기
평균 기울기
수치 해
정해 6.194631에 비해 et = 0.103%의 오차를 갖는
비교적 좋은 해를 산출하였다.
912974.5)0.1(912974.32)0.1( =+=y0.8(0.5)
4 (1.0, 5.912974) 4 0.5 (5.912974) 5.945677k f e= = - =
[ ] 201037.4945677.5)912974.3(2)217299.4(2361
=+++=f
(1.0) 2 4.201037 (1.0) 6.201037y = + =
2017-11-30
22
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.5 연립방정식 (1/10)
실제 공학에서는 여러 상미분방정식을 동시에 풀어야 한다.
( n 개의 초기 조건이 필요)
번지점프를 하는 사람의 속도와 위치를 결정하는 문제를
다루어 보자.
초기 조건: x(0) = v(0) = 0
),,,,(
),,,,(
),,,,(
21
2122
2111
nnn
n
n
yyytfdtdy
yyytfdtdy
yyytfdtdy
K
M
K
K
=
=
=
vdtdx
=
2vmc
gdtdv d-=
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.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
mgc
cgmtv d
d
tanh)(
úúû
ù
êêë
é
÷÷ø
öççè
æ= t
mgc
cmtx d
d
coshln)(
2017-11-30
23
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.4 (Euler법을 이용한 연립 ODE 풀이) (2/3)
풀이)
t = 0에서의 기울기:
Euler법 ( t = 2 s) 해석 해 백분율 상대 오차
x(2) = 19.16629 100%
v(2) = 18.72919 4.756%
Euler법 ( t = 4 s)
0=dtdx
81.9)0(1.68
25.081.9 2 =-=dtdv
0)2(00 =+=x62.19)2(81.90 =+=v
24.39)2(62.190 =+=x
20.2519.62 9.81 (19.62) (2)68.1
36.41368
v æ ö= + -ç ÷è ø
=
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.4 (Euler법을 이용한 연립 ODE 풀이) (3/3)
간격 크기가 커서 결과가 정확하지 않다.
두 번째 반복을 수행하기까지 xEuler는 0으로 계산된다.
간격 크기를 줄이면 결과를 개선시킬 수 있다.
고차 방법을 사용하면 상대적으로 큰 간격에 대해서도 좋은 결과를얻을 수 있다.
t xtrue vtrue xEuler vEuler et(x) et(v)
02468
10
019.166371.9304
147.9462237.5104334.1782
018.729233.111842.076246.957549.4214
00
39.2400112.0674204.6640305.0244
019.620036.413746.298350.180251.3123
100.0045.4524.2513.83
8.72
4.769.97
10.036.863.83
2017-11-30
24
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
20.5 연립방정식 (2/10)
Runge-Kutta 법
� 고차 RK법은 연립방정식의 해를 구하는데 적용할 수 있다.
‚ 기울기를 구하는데 주의해야 한다.
ƒ 간격의 시작점에서 모든 변수에 대해 기울기( k1's )를 결정한다.
„ ƒ의 결과를 이용하여 간격의 중점에서의 기울기( k2's )를
예측한다.
… 중점에서의 새로운 기울기(k3's)를 예측한다.
† 간격의 끝점에서의 기울기(k4's)를 예측한다.
‡ 모든 k가 증분함수에서 합성되어 간격 끝에서의 함수 값이
결정된다.
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.4 (4차 RK법을 이용한 연립 상미분방정식의 풀이) (1/4)
Q. 예제 20.4에서 다루었던 문제의 해를 4차 RK법으로 구하라.
풀이)상미분방정식을 다음과 같이 표시한다.
� 간격의 시작점에서 x와 v에 대한 기울기를 계산한다.
vvxtfdtdx
== ),,(1
22 ),,( v
mc
gvxtfdtdv d-==
0)0,0,0(11,1 == fk
81.9)0(1.68
25.081.9)0,0,0( 222,1 =-== fk
여기서 ki,j는 j번째 종속변수의 i번째 k값이다.
2017-11-30
25
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.4 (4차 RK법을 이용한 연립 상미분방정식의 풀이) (2/4)
‚ 간격의 중점에서 x와 v의 첫 번째 값을 구한다.
ƒ 간격의 중점에서 x와 v에 대한 기울기를 계산한다.
„ 간격의 중점에서 x와 v의 두 번째 값을 구한다.
02200
2)0()1( 1,1 =+=+=
hkxx
81.92281.90
2)0()1( 2,1 =+=+=
hkvv
8100.9)81.9,0,1(11,2 == fk
4567.9)81.9,0,1(22,2 == fk
8100.9228100.90
2)0()1( 1,2 =+=+=
hkxx
4567.9224567.90
2)0()1( 2,2 =+=+=
hkvv
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.4 (4차 RK법을 이용한 연립 상미분방정식의 풀이) (3/4)
… 간격의 중점에서 x와 v에 대한 기울기를 다시 계산한다.
† 간격의 끝점에서 x와 v의 값을 구한다.
‡ 간격의 끝점에서 x와 v의 기울기를 계산한다.
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
9634.18)9634.18,9134.18,2(11,4 == fk
4898.8)9634.18,9134.18,2(22,4 == fk
2017-11-30
26
Applied Numerical Methods 20장 상미분방정식: 초기값 문제
예제 20.4 (4차 RK법을 이용한 연립 상미분방정식의 풀이) (4/4)
ˆ 위에서 구한 k를 합하여 최종적으로 x와 v의 값을 구한다.
Euler법으로 얻은 결과와는 대조적으로 4차 RK법으로 구한
예측한 값은 정해에 매우 가깝다.
1656.192]9634.18)4567.98100.9(20[610)2( =++++=x
7256.182]4898.8)4817.94567.9(28100.9[610)2( =++++=v
t xtrue vtrue xRK4 vRK4 et(x) et(v)
02468
10
019.166371.9304
147.9642237.5104334.1782
018.729233.111842.076246.957549.4214
019.165671.9311
147.9521237.5104334.1626
018.725633.099542.054746.934549.4207
0.0040.0010.0040.0000.005
0.0190.0370.0510.0490.038