Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and...

33
수치해석 수치해석 Numerical Analysis Numerical Analysis 161009 161009 Ch4. Ch4. Roundoff and Roundoff and Truncation Errors Truncation Errors

Transcript of Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and...

Page 1: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

수치해석수치해석Numerical AnalysisNumerical Analysis

161009161009

Ch4. Ch4. Roundoff andRoundoff andCh4. Ch4. Roundoff andRoundoff andTruncation ErrorsTruncation Errors

Page 2: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

4.1 오차 (1/4)

� 수치오차• 반올림오차 (컴퓨터 근사에 기인)

• 절단오차 (수학적 근사에 기인)

� 실책

� 모델오차

Numerical AnalysisNumerical Analysis

� 모델오차

� 자료 불확실성

수치해법과 직접연관은 없음

Page 3: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

4.1 오차 (2/4)

� 정확도(accuracy)• 계산하거나 측정한 값이 얼마나 참값에 가까운가

� 정밀도(precision)• 각각의 계산이나 측정한 값이 서로 얼마나 가까운지

(a)

Numerical AnalysisNumerical Analysis

(a)부정확과 비정밀

(b)정확과 비정밀

(c)부정확과 정밀

(d)정확과 정밀

Page 4: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

4.1 오차 (3/4)

� 오차의오차의오차의오차의 정의정의정의정의

[참값을 알고 있을 경우]

• 참값=근사값 + 오차

또는 참 오차, Et =참값-근사값

Numerical AnalysisNumerical Analysis

또는 참 오차, Et =참값-근사값

또는

참값

근사값 참값 상대오차 참

−=

%100

×−

=참값

근사값참값tε

Page 5: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

4.1 오차 (4/4)

� 오차의오차의오차의오차의 정의정의정의정의

[참값을 모르는 경우]

%100×=근사값

근사오차aε

%100 -

×=근사값이전근사값현재

ε

Numerical AnalysisNumerical Analysis

• (반복법에 기초한 수치해법의 경우)

• 계산을 다음의 조건이 만족할 때까지 반복

(백분율 허용치) → "종료 판정기준“

• 백분율 허용치가 이면,

결과는 적어도 n 개의 유효숫자 내에서 정확

%100

- ×=

근사값현재

근사값이전근사값현재aε

sa ε<ε

)%105.0( 2 n

s

−×=ε

Page 6: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

예제 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

Page 7: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

4.2 반올림오차 (1/9)

� 디지털컴퓨터에서 수를 정확하게 처리할 수 없기 때문에 발생

1) 컴퓨터는 수를 표현하는 데 크기와 정밀도에

제한이 있다.

2) 어떤 수치계산은 반올림오차에 매우 민감하다.

Numerical AnalysisNumerical Analysis

Page 8: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

4.2 반올림오차 (2/9)

� 컴퓨터컴퓨터컴퓨터컴퓨터 상에서의상에서의상에서의상에서의 수의수의수의수의 표현표현표현표현

• 비트(bit)

• 바이트(byte)

- 8 비트

Numerical AnalysisNumerical Analysis

• 워드(word )

- 일련의 비트로 구성되어 수를 표시하는 기본 단위

예> 16-비트 또는 2-바이트 워드

Page 9: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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자리까지 정확한 정밀도)

Page 10: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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 정수표현

Page 11: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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

Page 12: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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×

Page 13: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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

Page 14: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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)

Page 15: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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 ))))

Page 16: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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

Page 17: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

4.3 절단오차 (1/11)

� 수학적 연산을 근사적으로 표현하기 때문에 발생. eg) 유한차분(finite difference)

ii

tt

tvtv

t

v

dt

dv

−−

=∆∆

≅+

+1 )()(

Numerical AnalysisNumerical Analysis

ii tttdt −∆ +1

Page 18: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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

′′+′+≅+

Page 19: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

4.3 절단오차 (3/11)

Numerical AnalysisNumerical Analysis

그림 4.6: 0차, 1차, 2차 Taylor 급수전개를 이용하여 x=1에서함수 의 근사212505015010 234 .x+.-x.-x.-x.-f(x) =

Page 20: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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

Page 21: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

예제 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

Page 22: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

예제 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

Page 23: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

4.3 절단오차 (7/11)

� 수치미분

1차 도함수의 전향차분(forward difference) 근사

L−′′

+′+=+2

1!2

)()()()( h

xfhxfxfxf i

iii

Numerical AnalysisNumerical Analysis

에서

)()()(

)( 1 hOh

xfxfxf iii +

−=′ +

Page 24: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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

−−′ ≅ +

Page 25: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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 −

−=′ −+

또는

Page 26: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

예제 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

Page 27: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

예제 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

Page 28: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

예제 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

Page 29: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

예제 4.4 (4/4)

• 중심 차분 근사가 가장 정확하다.

• 전향과 후향 차분의 경우에 간격 크기를 반으로 줄이면 오차도 반으로 준다.

• 중심 차분의 경우에는 간격 크기를 반으로 줄이면 오

차는 1/4로 준다.

Numerical AnalysisNumerical Analysis

Page 30: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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

Page 31: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

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 −+ −−

≅′′

Page 32: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

4.4 전체 수치오차

� 전체 수치오차=절단오차+반올림오차간격 크기를 줄이면 → 절단오차 ↓

but, → 반올림오차 ↑

Numerical AnalysisNumerical Analysis

그림 4.10 수치해법의 과정에서 나타나는 반올림오차와

절단오차의 거동에 대한 도시적 설명

Page 33: Ch4. Roundoff and Truncation Errors · 수치해석 Numerical Analysis 161009 Ch4. Roundoff and Truncation Errors

4.5 실책실책실책실책, , , , 모델오차모델오차모델오차모델오차, , , , 그리고그리고그리고그리고 자료의자료의자료의자료의 불확실성불확실성불확실성불확실성

� 실책

� 모델오차

� 자료의 불확실성

Numerical AnalysisNumerical Analysis