3장 근사값과 반올림오차

Download Report

Transcript 3장 근사값과 반올림오차

강의 내용
 유효숫자
 오차의 정의
 반올림 오차
 컴퓨터에서 수의 표현
 오차에 영향을 주는 산술 연산
근사값과 반올림오차
수치해석
Slide 1
유효숫자(1/3)
 신뢰를 가지고 사용할 수 있는 숫자의 자릿수
 정확한 자릿수에 하나의 추정자릿수를 더한 것
 예) 48.5:
3
87,324.45
7
 숫자 0이 단지 소수점의 위치를 표시하는데 사용할 때
는 유효숫자가 되지 않음
 예) 0.00001845
0.0001845
0.001845
근사값과 반올림오차
4
4
4
수치해석
Slide 2
유효숫자(2/3)
근사값과 반올림오차
수치해석
Slide 3
유효숫자(3/3)
 숫자 0이 큰 수의 뒷부분에 나올 때 0이 유효숫자에 포
함되는지는 명백하지 않음
 예) 45,000
 뒤의 0이 신뢰성이 있는 냐에 따라 유효숫자가 3, 4, 5개가 될 수
있음
 이런 문제는 지수형태로 표현하면 해결할 수 있음
 4.53 × 104
4.530 × 104
4.5300 × 104
근사값과 반올림오차
3
4
5
수치해석
Slide 4
오차의 정의(1/3)
 참값 = 근사값 + 오차
 𝐸𝑡 = 참값 − 근사값
 𝐸𝑡 를 참오차라 함
 수치의 크기에 고려가 없는 단점이 있음
 예를 들어, 1cm의 오차는 교각의 길이 보다는 못의 길이를 측정
할 때 중요해짐
 오차의 정규화
 참상대오차 =
참오차
참값
 참백분율 생대오차 = 𝜀𝑡 =
근사값과 반올림오차
참오차
× 100%
참값
수치해석
Slide 5
오차의 정의(2/3)
 참값은 해석적으로 풀릴 수 있는 함수를 다룰 경우에만
알 수 있음
 실제의 경우엔 참값을 사전에 알지 못하는 경우가 대부분임
 𝜀𝑡 에 대한 대안
 𝜀𝑎 =
근사오차
× 100%
근사값
 반복법을 사용할 경우
 𝜀𝑎 =
현재의 근사값−이전의 근사값
× 100%
현재의 근사값
근사값과 반올림오차
수치해석
Slide 6
오차의 정의(3/3)
 반복법으로 계산을 수행할 때 오차의 부호는 의미가 없
고 오차의 절대값이 중요함
 반복 조건
 𝜀𝑎 < 𝜀𝑠
 𝜀𝑠 : 미리 주어진 허용치
근사값과 반올림오차
수치해석
Slide 7
반올림 오차
 𝜋, 𝑒, 7과 같은 무리수는 한정된 유효숫자로는 정확히
표현할 수 없음
 컴퓨터는 2진법을 사용하기 때문에 어떤 유리수는 정
확히 나타낼 수 없음
 예)
1
10
= 0.110 = 0.000112
 이와 같이 한정된 유효숫자로 인해 발생하는 오차를 반
올림오차라 함
근사값과 반올림오차
수치해석
Slide 8
컴퓨터에서 수의 표현(1/4)
 정수의 표현
 부호 크기 방법
 2의 보수법
 1의 보수법
 2바이트 메모리에 부호 크기 방법을 이용한 -173의 표
현
근사값과 반올림오차
수치해석
Slide 9
컴퓨터에서 수의 표현(2/4)
 유동소수점에 의한 실수의 표현
Integer part
m.be
mantissa
근사값과 반올림오차
exponent
Base of the number system
used
수치해석
Slide 10
컴퓨터에서 수의 표현(3/4)
 156.78 = 0.15678 × 103

1
34
= 0.029411765
 만약 소수점 이하 4자리만 사용하는 시스템인 경우
 0.0294 × 100
 가수의 정규화
 0.2941 × 10−1
 유효숫자 한 개를 추가로 저장할 수 있음
근사값과 반올림오차
수치해석
Slide 11
컴퓨터에서 수의 표현(4/4)
 가수의 정규화로 가수의 절대값의 범위는 제한됨

1
𝑏
≤ 𝑚 <1
 10진법 체계에서 m은 0.1과 1 사이, 2진법 체계에서 0.5와 1 사이
의 범위를 가짐
근사값과 반올림오차
수치해석
Slide 12
유동소수점 수의 집합: 7-bit word(1/3)
 처음 1 비트는 수의 부호, 다음 3 비트는 지수의 부호와
크기, 마지막 3 비트는 가수의 크기를 나타낸다고 가정
 표현 가능한 양수
 0111100 = 1 × 2−1 + 0 × 2−2 + 0 × 2−3 × 2−3 = 0.0625
 가장 작은 양수
 0111101 = 1 × 2−1 + 0 × 2−2 + 1 × 2−3 × 2−3 = 0.078125
 0111110 = 1 × 2−1 + 1 × 2−2 + 0 × 2−3 × 2−3 = 0.093750
 0111111 = 1 × 2−1 + 1 × 2−2 + 1 × 2−3 × 2−3 = 0.109375
 간격: 2−3 × 2−3 = 0.015625
근사값과 반올림오차
수치해석
Slide 13
유동소수점 수의 집합: 7-bit word(2/3)




0110100 =
0110101 =
0110110 =
0110111 =
1 × 2−1 + 0 × 2−2 + 0 × 2−3
1 × 2−1 + 0 × 2−2 + 1 × 2−3
1 × 2−1 + 1 × 2−2 + 0 × 2−3
1 × 2−1 + 1 × 2−2 + 1 × 2−3
× 2−2
× 2−2
× 2−2
× 2−2
= 0.125000
= 0.156250
= 0.187500
= 0.218750
 간격: 2−3 × 2−2 = 0.03125
⋯
 0011111 = 1 × 2−1 + 1 × 2−2 + 1 × 2−3 × 23 = 7
 가장 큰 양수
근사값과 반올림오차
수치해석
Slide 14
유동소수점 수의 집합: 7-bit word(3/3)
근사값과 반올림오차
수치해석
Slide 15
유동소수점 표현의 특징(1/3)
 표현될 수 있는 실수의 범위에는 한계가 있음
 Overflow
 허용된 범위를 벗어난 수를 사용할 경우 발생
 예) 7보다 큰 수
 Underflow
 매우 작은 숫자를 사용할 경우 발생
 예) 0과 첫 번째 양수 사이의 수
 주어진 범위 안에서 표현할 수 있는 수의 개수는 유한
하여 정밀도에 한계가 있음
근사값과 반올림오차
수치해석
Slide 16
유동소수점 표현의 특징(2/3)
 예를 들어, 𝜋 = 3.14159265358 … 를 7개의 유효숫자를
가지는 컴퓨터에 저장할 경우
 버림(chopping)에 의한 방법
 𝜋 = 3.141592
𝐸𝑡 = 0.00000065 …
 반올림(rounding)에 의한 방법
 𝜋 = 3.141593
𝐸𝑡 = −0.00000035 …
 반올림은 버림에 비해 계산 비용이 요구되어 단순 버림
을 채택할 수도 있음
 유효숫자의 수가 충분하다면 버림 오차는 미미하여 무시될 수
있음
근사값과 반올림오차
수치해석
Slide 17
유동소수점 표현의 특징(3/3)
 인접한 두 개의 수 사이의 간격 ∆𝑥는 수의 크기가 증가
함에 따라 커짐
근사값과 반올림오차
수치해석
Slide 18
오차에 영향을 주는 산술 연산(1/2)
 4자리 가수와 한 자리 지수를 가지는 가상의 10진수 컴
퓨터에서 버림이 사용된 것으로 가정
 덧셈
 0.1557 ∙ 101 + 0.4381 ∙ 10−1
⟹ 0.1557 ∙ 101 + 0.004381 ∙ 101 = 0.160081 ∙ 101
⟹ 0.1600 ∙ 101
 4000 + 0.0010
⟹ 0.4000 ∙ 104 + 0.0000001 ∙ 104 = 0.4000001 ∙ 104
⟹ 0.4000 ∙ 104
근사값과 반올림오차
수치해석
Slide 19
오차에 영향을 주는 산술 연산(2/2)
 뺄셈
 76.42 − 76.41
⟹ 0.7642 ∙ 103 + 0.7641 ∙ 103 = 0.0001 ∙ 103
⟹ 0.1000 ∙ 101
 곱셈
 0.1363 ∙ 103 × 0.6423 ∙ 10−1
⟹ 0.08754549 ∙ 102 = 0.8754549 ∙ 101
⟹ 0.8754 ∙ 101
근사값과 반올림오차
수치해석
Slide 20
정밀도
 단일 정밀도(single precision)
 32 비트 워드
 10−38 에서 1039 의 범위를 가지는 7 개의 유효숫자에 해당하는 정
밀도를 가짐
 C 언어) float x;
 배 정밀도(double precision)
 64 비트 워드
 10−308 에서 10308 의 범위를 가지는 15 개 또는 16 개의 유효숫자
에 해당하는 정밀도를 가짐
 C 언어) double x;
 메모리와 계산 시간이 증가되므로 신중하게 사용해야 함
근사값과 반올림오차
수치해석
Slide 21
뺄셈의 무효화(1/2)
 비슷한 크기를 갖는 유동소수점 수들을 뺄 때 발생하는
반올림오차가 커지는 현상
 근의 공식 =
−𝑏± 𝑏2 −4𝑎𝑐
2𝑎
 변형된 근의 공식 =
근사값과 반올림오차
−2𝑐
𝑏± 𝑏2 −4𝑎𝑐
수치해석
Slide 22
뺄셈의 무효화(2/2)
 예) 𝑎 = 1, 𝑏 = 3000.001, 𝑐 = 3인 2차방정식의 근:
𝑥1 = 0.001, 𝑥2 = −3000
 단일정밀도 사용시,
𝑥1 = 0.000976563, 𝑥2 = −3000.0
 배 정밀도 사용시,
𝑥1 = 0.001, 𝑥2 = −3000.0
 변형된 근의 공식에서 단일정밀도 사용시,
𝑥1 = 0.001, 𝑥2 = −3000.0
근사값과 반올림오차
수치해석
Slide 23