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