수치해석 수치해석 Numerical Analysis Numerical Analysis 161009 161009 Ch4. Ch4. Roundoff and Roundoff and Truncation Errors Truncation Errors
수치해석수치해석Numerical AnalysisNumerical Analysis
161009161009
Ch4. Ch4. Roundoff andRoundoff andCh4. Ch4. Roundoff andRoundoff andTruncation ErrorsTruncation Errors
4.1 오차 (1/4)
� 수치오차• 반올림오차 (컴퓨터 근사에 기인)
• 절단오차 (수학적 근사에 기인)
� 실책
� 모델오차
Numerical AnalysisNumerical Analysis
� 모델오차
� 자료 불확실성
수치해법과 직접연관은 없음
4.1 오차 (2/4)
� 정확도(accuracy)• 계산하거나 측정한 값이 얼마나 참값에 가까운가
� 정밀도(precision)• 각각의 계산이나 측정한 값이 서로 얼마나 가까운지
(a)
Numerical AnalysisNumerical Analysis
(a)부정확과 비정밀
(b)정확과 비정밀
(c)부정확과 정밀
(d)정확과 정밀
4.1 오차 (3/4)
� 오차의오차의오차의오차의 정의정의정의정의
[참값을 알고 있을 경우]
• 참값=근사값 + 오차
또는 참 오차, Et =참값-근사값
Numerical AnalysisNumerical Analysis
또는 참 오차, Et =참값-근사값
•
또는
참값
근사값 참값 상대오차 참
−=
%100
×−
=참값
근사값참값tε
4.1 오차 (4/4)
� 오차의오차의오차의오차의 정의정의정의정의
[참값을 모르는 경우]
•
•
%100×=근사값
근사오차aε
%100 -
×=근사값이전근사값현재
ε
Numerical AnalysisNumerical Analysis
• (반복법에 기초한 수치해법의 경우)
• 계산을 다음의 조건이 만족할 때까지 반복
(백분율 허용치) → "종료 판정기준“
• 백분율 허용치가 이면,
결과는 적어도 n 개의 유효숫자 내에서 정확
%100
- ×=
근사값현재
근사값이전근사값현재aε
sa ε<ε
)%105.0( 2 n
s
−×=ε
예제 4.1
Q. e0.5(=1.648721...)의 값을 계산할 때, Maclaurin 급수전개로 그 결
과가 3자리 유효숫자까지 정확한 것에 해당하는 εs보다 작은 백분
율 상대오차를 가지려면 몇 개의 항을 포함시켜야 하는가?
sol) Maclaurin 급수!!3!2
132
n
xxxxe
nx +++++= L
%05.0)%105.0()%105.0(322 =×=×=ε −−n
s
Numerical AnalysisNumerical Analysis
s
항항항항수수수수 결과결과결과결과 오차오차오차오차 εεεεt(%) 근사오차근사오차근사오차근사오차 εεεε
a(%)
1
2
3
4
5
6
1
1.5
1.625
1.645800000
1.648437500
1.648697917
39.3
9.02
1.44
0.175
0.0172
0.00142
33.3
7.69
1.27
0.158
0.0158
4.2 반올림오차 (1/9)
� 디지털컴퓨터에서 수를 정확하게 처리할 수 없기 때문에 발생
1) 컴퓨터는 수를 표현하는 데 크기와 정밀도에
제한이 있다.
2) 어떤 수치계산은 반올림오차에 매우 민감하다.
Numerical AnalysisNumerical Analysis
4.2 반올림오차 (2/9)
� 컴퓨터컴퓨터컴퓨터컴퓨터 상에서의상에서의상에서의상에서의 수의수의수의수의 표현표현표현표현
• 비트(bit)
• 바이트(byte)
- 8 비트
Numerical AnalysisNumerical Analysis
• 워드(word )
- 일련의 비트로 구성되어 수를 표시하는 기본 단위
예> 16-비트 또는 2-바이트 워드
4.2 반올림오차 (3/9)
� 컴퓨터컴퓨터컴퓨터컴퓨터 상에서의상에서의상에서의상에서의 수의수의수의수의 표현표현표현표현• 십진법
예>
• 이진법예>
)109()102()104()106()108(9.8642 10123 −×+×+×+×+×=
5.55.0104)21()21()20()21(1.101 1012 =+++=×+×+×+×= −
Numerical AnalysisNumerical Analysis
컴퓨터에서컴퓨터에서컴퓨터에서컴퓨터에서컴퓨터에서컴퓨터에서컴퓨터에서컴퓨터에서 등의등의등의등의등의등의등의등의 무리수무리수무리수무리수무리수무리수무리수무리수 표현은표현은표현은표현은표현은표현은표현은표현은 ????????7,,eπ
π = 3.141593 16-비트 워드를 할당하는 컴퓨터(약 7자리까지 정확한 정밀도)
π = 3.14159265358979 32-비트 워드 할당하는 컴퓨터(약 15자리까지 정확한 정밀도)
4.2 반올림오차 (4/9)
� 정수정수정수정수 표현표현표현표현
• 16-bit integer
‘173’의 표현7 5 3 2 0
2
10
(10101101) 2 2 2 2 2 128 32 8 4 1
(173)
= + + + + = + + + +
=
Numerical AnalysisNumerical Analysis
‘-173’의 표현
그림 4.2 16bit Signed integer 정수표현
4.2 반올림오차 (5/9)
• 정수의정수의정수의정수의 표현표현표현표현– 최대값, 최소값 및 0 (16bit의 경우)
2(0000 000) 0⋅ ⋅⋅ ⋅ =
(1000 000) 32,768⋅ ⋅⋅ ⋅ = −
)12(767,32)22222()1111111( 150121314
2 −−=−=++++−= LL
12767,3222222)1110111( 150121314
2 −==++++= LL
Numerical AnalysisNumerical Analysis
– n-bit의 경우
– 실제 상용 컴퓨터에서는 2’s complement를 이용 (참고자료)
-32,768 (-215 ) ~ 32,767 (215-1)
2(1000 000) 32,768⋅ ⋅⋅ ⋅ = −
-2n-1 ~ 2n-1-1
4.2 반올림오차 (6/9)
• 실수실수실수실수 : : : : 부동소수점부동소수점부동소수점부동소수점 (floating point) (floating point) (floating point) (floating point) 표현표현표현표현
– 일반적인 과학적 표기법과 유사하다.
where s= 유효숫자(significand, mantissa)b = 기저(base, radix)
ebs×±
Numerical AnalysisNumerical Analysis
b = 기저(base, radix)
e = 지수(exponent)
– 정규화(normalization): 0을 제거 � 메모리의 낭비를 막는다.
Ex) 0.005678 35.678 10−×0 )(Cf : 0.005678 10×
4.2 반올림오차 (7/9)
• The sign is determined by a sign bit
• The mantissa f is determined by 52-bit
그림 4.5 IEEE 64bit 부동소수점 표현방식
efn 2)1( ×+±=(-1022~ 1023)
Numerical AnalysisNumerical Analysis
• The exponent e is determined by 11-bit from which 1023 is subtracted to get e(-1023 & +1024 used for special meanings�-1022~1023)
� The largest possible number � 21024 = 1.7997×10308
� f of all 1’s, giving a significand of 2 − 2-52, or approximately 2
� e of 111111111102, giving an exponent of 2047 − 1023 = 1024
� The smallest possible number � 2−1022 = 2.2251×10−308
� f of all 0’s, giving a significand of 1
� e of 000000000012, giving an exponent of 1−1023 = −1022
Q. 5자리수 계산을 수행하는 10진법의 가상컴퓨터부호 : 1자리, 지수 : 2자리 (부호 : 1자리, 크기 : 1자리), 가수 : 2자리
풀이) 부동소수점 표현으로 나타낸다.
where s0, s1= 부호, d0 = 지수의 크기, d1과 d2 = 유효숫자의 크기
예제 4.2
0 0
1 1 2 . 10s dd ds ×
Numerical AnalysisNumerical Analysis
- 최대값 : +9.9×10+9 if greater than this, overflow !
- 양의 최소값 : +1.0×10-9
제한된 지수와 유효숫자의 자리수는 숫자의 범위와 정확도에
한계 초래 → 반올림오차(roundoff error)
4.2 반올림오차 (8/9)
� MATLAB에서 표현할 수 있는 수의 한계• default (8bit)
>> format long>> format long>> format long>> format long>> realmax>> realmax>> realmax>> realmaxans =ans =ans =ans =
1.797693134862316e+308 (1.797693134862316e+308 (1.797693134862316e+308 (1.797693134862316e+308 (21024 ))))
Numerical AnalysisNumerical Analysis
1.797693134862316e+308 (1.797693134862316e+308 (1.797693134862316e+308 (1.797693134862316e+308 (21024 ))))>> realmin>> realmin>> realmin>> realminans =ans =ans =ans =
2.225073858507201e2.225073858507201e2.225073858507201e2.225073858507201e----308 (308 (308 (308 (2−1022 ))))>> eps >> eps >> eps >> eps (machine relative error)(machine relative error)(machine relative error)(machine relative error)ans =ans =ans =ans =
2.220446049250313e2.220446049250313e2.220446049250313e2.220446049250313e----016016016016 (2−52 ))))
4.2 반올림오차 (9/9)
� 컴퓨터의컴퓨터의컴퓨터의컴퓨터의 산술적산술적산술적산술적 연산시연산시연산시연산시 수치적수치적수치적수치적 문제문제문제문제
• 뺄셈의 무효화 (subtractive cancellation)
→ 정규화 → 0.1000×100
• 큰 수와 작은 수의 덧셈
3
3
3
0.7642 10
0.7641 10
0.0001 10
×
− ××
Numerical AnalysisNumerical Analysis
• 큰 수와 작은 수의 덧셈
→ 4-자리 가수 → 0.4000×104
• 오점(smearing) - 덧셈 과정에서 각 항들이 합산 자체보다 매우 클 때 발생
에서 x = -10 인 경우는?
4
4
4
104000001.0
100000001.0
104000.0
××+
×
L++++=!3!2
132 xx
xe x
4.3 절단오차 (1/11)
� 수학적 연산을 근사적으로 표현하기 때문에 발생. eg) 유한차분(finite difference)
ii
tt
tvtv
t
v
dt
dv
−−
=∆∆
≅+
+1 )()(
Numerical AnalysisNumerical Analysis
ii tttdt −∆ +1
4.3 절단오차 (2/11)
� Taylor Taylor Taylor Taylor 급수급수급수급수
여기서 , (xi ≤ ξ ≤ xi+1)
• 한 점에서의 함수와 도함수 값으로 다른 점에서의
n
ni
n
iiiii Rh
n
xfh
xfh
xfhxfxfxf ++++
′′+′+=+
!
)(
!3
)(
!2
)()()()(
)(3
)3(2
1 L
1)1(
)!1(
)( ++
+ξ
= nn
n hn
fR
Numerical AnalysisNumerical Analysis
• 한 점에서의 함수와 도함수 값으로 다른 점에서의
함수 값을 예측하는 경우
�0차 근사
�1차 근사
�2차 근사
)()( 1 ii xfxf ≅+
hxfxfxf iii )()()( 1′+≅+
2
1!2
)()()()( h
xfhxfxfxf i
iii
′′+′+≅+
4.3 절단오차 (3/11)
Numerical AnalysisNumerical Analysis
그림 4.6: 0차, 1차, 2차 Taylor 급수전개를 이용하여 x=1에서함수 의 근사212505015010 234 .x+.-x.-x.-x.-f(x) =
4.3 절단오차 (4/11)
Taylor's theorem.Let k ≥ 1 be an integer and let the function f : R → R be k times differentiableat the point a ∈ R. Then there exists a function hk : R → R such that
Numerical AnalysisNumerical Analysis
충분히충분히충분히충분히충분히충분히충분히충분히 근접한근접한근접한근접한근접한근접한근접한근접한 값을값을값을값을값을값을값을값을 얻기얻기얻기얻기얻기얻기얻기얻기 위해위해위해위해위해위해위해위해 얼마나얼마나얼마나얼마나얼마나얼마나얼마나얼마나 많은많은많은많은많은많은많은많은 항이항이항이항이항이항이항이항이 필요한가필요한가필요한가필요한가필요한가필요한가필요한가필요한가????????
정답은 아니나, h의 영향을 비교할 수는 있음
절단오차 � 간격 크기 h의 (n+1) 제곱에 비례함)( 1+= n
n hOR
,!
)(
!3
)(
!2
)()()()(
)(3
)3(2
1 n
ni
n
iiiii Rh
n
xfh
xfh
xfhxfxfxf ++++
′′+′+=+ L 1
)1(
)!1(
)( ++
+ξ
= nn
n hn
fR
예제 4.3 (1/2)
Q. xi+1 = π/3 에서 f(x)=cos x를 근사하기 위해, xi = π/4 에
서의 f(x)값 및 그 도함수들을 이용하여 Taylor 급수전개
를 n=0에서 6까지 수행하라.
풀이) 2차 근사2)(
)()()( hxf
hxfxfxf i′′
+′+≅+
Numerical AnalysisNumerical Analysis
2
1!2
)()()( hhxfxfxf iiii +′+≅+
444444444 3444444444 21
44444 344444 21
44 344 21
497754491.0
2
521986659.0
707106781.0
122
)4/cos(
124sin
4cos
3
=
=
=
ππ−
π
π−
π≅
πf
5.03
cf) =
πf
예제 4.3 (2/2)
41.441.441.441.4
4.404.404.404.40
0.4490.4490.4490.449
0.7071067810.7071067810.7071067810.707106781
0.5219866590.5219866590.5219866590.521986659
0.4977544910.4977544910.4977544910.497754491
0000
1111
2222
εεεεtttt (%)(%)(%)(%)f(f(f(f(ππππ/3)/3)/3)/3)차차차차 수수수수 nnnn
Numerical AnalysisNumerical Analysis
0.4490.4490.4490.449
2.62 2.62 2.62 2.62 ×××× 10101010----2222
1.51 1.51 1.51 1.51 ×××× 10101010----3333
6.08 6.08 6.08 6.08 ×××× 10101010----5555
2.44 2.44 2.44 2.44 ×××× 10101010----6666
0.4977544910.4977544910.4977544910.497754491
0.4998691470.4998691470.4998691470.499869147
0.5000075510.5000075510.5000075510.500007551
0.5000003040.5000003040.5000003040.500000304
0.4999999880.4999999880.4999999880.499999988
2222
3333
4444
5555
6666
4.3 절단오차 (7/11)
� 수치미분
1차 도함수의 전향차분(forward difference) 근사
L−′′
+′+=+2
1!2
)()()()( h
xfhxfxfxf i
iii
Numerical AnalysisNumerical Analysis
에서
)()()(
)( 1 hOh
xfxfxf iii +
−=′ +
4.3 절단오차 (8/11)
1차 도함수의 후향차분 (backward difference) 근사
L−′′
+′−=−2
1!2
)()()()( h
xfhxfxfxf i
iii
Numerical AnalysisNumerical Analysis
에서
1( ) ( )( ) ( )i ii
f x f xf x O h
h
−−′ ≅ +
4.3 절단오차 (9/11)
1차 도함수의 중심차분(centered difference) 근사
L++′=− −+3
)3(
11!3
)(2)(2)()( h
xfhxfxfxf i
iii
Numerical AnalysisNumerical Analysis
L+−−
=′ −+ 2)3(
11
6
)(
2
)()()( h
xf
h
xfxfxf iiii
)(2
)()()( 211 hO
h
xfxfxf iii −
−=′ −+
또는
예제 4.4 (1/4)
Q. O(h)의 전향 및 후향 차분 근사와 O(h2)의 중심 차분 근사를 사용하여 다음 함수 f(x)에 대해 1차 도함수를x=0.5에서 h=0.5로 놓고 계산하라.
또, h = 0.25로 놓고 계산을 반복하라.
2.125.05.015.01.0)( 234 +−−−−= xxxxxf
Numerical AnalysisNumerical Analysis
(실제 도함수는 이므로
참값은 이다.)
25.00.145.04.0)( 23 −−−−=′ xxxxf
9125.0)5.0( −=′f
예제 4.4 (2/4)
sol) h = 0.5인 경우
01 =−ix 5.0=ix 0.11 =+ix
2.1)( 1 =−ixf 925.0)( =ixf 2.0)( 1 =+ixf
925.02.0)()( −− xfxf
Numerical AnalysisNumerical Analysis
45.15.0
925.02.0)()()( 1 −=
−=
−=′ +
h
xfxfxf iii
55.05.0
2.0925.0)()()( 1 −=
−=
−≅′ +
h
xfxfxf iii
0.10.1
2.12.0
2
)()()( 11 −=
−=
−≅′ −+
h
xfxfxf iii
%9.58=ε t
%7.39=ε t
%6.9=ε t
예제 4.4 (3/4)
sol) h = 0.25인 경우
25.01 =−ix 5.0=ix 75.01 =+ix
10351563.1)( 1 =−ixf 925.0)( =ixf 63632813.0)( 1 =+ixf
925.063632813.0)()(−=
−=
−=′ + xfxf
%5.26=ε
Numerical AnalysisNumerical Analysis
155.125.0
925.063632813.0)()()( 1 −=
−=
−=′ +
h
xfxfxf iii
%5.26=ε t
714.025.0
10351563.1925.0)()()( 1 −=
−=
−≅′ +
h
xfxfxf iii
%7.21=ε t
934.05.0
10351563.163632813.0
2
)()()( 11 −=
−=
−≅′ −+
h
xfxfxf iii
%4.2=ε t
예제 4.4 (4/4)
• 중심 차분 근사가 가장 정확하다.
• 전향과 후향 차분의 경우에 간격 크기를 반으로 줄이면 오차도 반으로 준다.
• 중심 차분의 경우에는 간격 크기를 반으로 줄이면 오
차는 1/4로 준다.
Numerical AnalysisNumerical Analysis
4.3 절단오차 (10/11)
� 고차고차고차고차 도함수의도함수의도함수의도함수의 유한차분유한차분유한차분유한차분 근사근사근사근사
f(xi+2)에 대해 f(xi)의 항으로 Taylor 급수를 전개하면
(1) )2(!2
)()2)(()()( 2
2 L+′′
+′+=+ hxf
hxfxfxf iiii
Numerical AnalysisNumerical Analysis
f(xi+1)에 대해 f(xi)의 항으로 Taylor 급수를 전개하면
(1)-2(2)
L+′′+−=− ++2
12 )()()(2)( hxfxfxfxf iiii
(2) !2
)()()()( 2
1 L−′′
+′+=+ hxf
hxfxfxf iiii
4.3 절단오차 (11/11)
2차 전향 유한차분
2차 후향 유한차분 )()()(2)(
)(2
21 hOh
xfxfxfxf iiii +
+−=′′ −−
)()()(2)(
)(2
12 hOh
xfxfxfxf iiii +
+−=′′ ++
Numerical AnalysisNumerical Analysis
2차 중심 유한차분
다르게 표현하면
)()()(2)(
)( 2
2
11 hOh
xfxfxfxf iiii +
+−=′′ −+
h
h
xfxf
h
xfxf
xf
iiii
i
)()()()(
)(
11 −+ −−
−
≅′′
4.4 전체 수치오차
� 전체 수치오차=절단오차+반올림오차간격 크기를 줄이면 → 절단오차 ↓
but, → 반올림오차 ↑
Numerical AnalysisNumerical Analysis
그림 4.10 수치해법의 과정에서 나타나는 반올림오차와
절단오차의 거동에 대한 도시적 설명
4.5 실책실책실책실책, , , , 모델오차모델오차모델오차모델오차, , , , 그리고그리고그리고그리고 자료의자료의자료의자료의 불확실성불확실성불확실성불확실성
� 실책
� 모델오차
� 자료의 불확실성
Numerical AnalysisNumerical Analysis
�