345])...미분방정식의분류 •상미분방정식(한개의독립변수) vs....
TRANSCRIPT
수치해석수치해석Numerical AnalysisNumerical Analysis
161009161009
Ch22. Ch22. InitialInitial--Value ProblemsValue ProblemsCh22. Ch22. InitialInitial--Value ProblemsValue Problems
Part 6. Part 6. Part 6. Part 6. 개요개요개요개요(1/2)(1/2)(1/2)(1/2)
� 상미분방정식을 유도하고 해를 구하는 과정.
Numerical AnalysisNumerical Analysis
� 미분방정식의 분류
• 상미분방정식(한 개의 독립변수)
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= =
22.1 개요
� 상미분방정식의 일반적인 형태:
� 수치해법:
• 수학적으로 표현하면
),( ytfdt
dy=
크기간격기울기값이전값새로운 ×+=
여기서 φ = 기울기 = 증분함수
Numerical AnalysisNumerical Analysis
• 수학적으로 표현하면
• 어떻게 기울기를 추정하는가?
� 미분방정식을 사용하여 ti에서의 1차 도함수의 형태로 추정
hyy ii φ+=+1
여기서 φ = 기울기 = 증분함수→ 거리 h 에 대해 이전 값 yi에서 새로운 값yi+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
예제 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
예제 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
예제 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
tε
Numerical AnalysisNumerical Analysis
� 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
′=
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
� 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+ += + ⇒ = −
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
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) 수정자
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
+++
++=
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
예제 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
예제 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
�수정자:
추정 오차:
… (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ε tε
� 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
ξ′′−=
22.3 22.3 22.3 22.3 EulerEulerEulerEuler법의법의법의법의 개선개선개선개선 (5/6)(5/6)(5/6)(5/6)
� 중점법
• 간격의 중점에서 기울기를 예측하여 사용.
Numerical AnalysisNumerical Analysis
중점법의 그래픽 표현 (a) 예측자와 (b) 수정자.
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 +++ +=
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
� 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
+
∂∂
+∂∂
+++=
+∂∂
+∂∂
+++=
++=+
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 ++=
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
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 , ++=
예제 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= = − =
예제 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
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,
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=
예제 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)(
예제 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 = + −
=
예제 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으로 계산된다.
• 간격 크기를 줄이면 결과를 개선시킬 수 있다.
• 고차 방법을 사용하면 상대적으로 큰 간격에 대해서도 좋은 결과를
얻을 수 있다.
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가 증분함수에서 합성되어 간격 끝에서의 함수 값이
결정된다.
예제 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
예제 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
예제 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
22.5 22.5 22.5 22.5 연립방정식연립방정식연립방정식연립방정식 (3/4)(3/4)(3/4)(3/4)
Numerical AnalysisNumerical Analysis
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