-
2. 반올림 오차와 절단 오차 (feat. 진법, bit, byte, 정확도, 정밀도)수치해석 with MATLAB 2019. 10. 29. 20:40
1. 진법에 대하여
진법은 초등학생,, 혹은 중학생(?) 때 배운 개념이다. (그래도 복습하는 겸으로 다시 기억을 더듬어 보았다.)
2진법, 10진법이 대표적이다.
컴퓨터 내의 기억장치(주로 RAM)에서는 on/off (1과 0)의 2진법을 사용한다.
하지만 인간은 10진법을 사용하기 때문에 따라서 상호 변환이 필요하다.
2진법과 10진법은 밑수를 통해 표현하는데,
이진법의 경우는 (1001.11)₂ 이런식으로 표현하며, 우리가 사용하는 10진법의 경우에 밑수는 보통 생략한다.
(abcd.ef)r 이라는 r진법의 수가 있을 때 이를 10진법으로 변환하는 방법은 다음과 같은 식으로 계산 할 수 있다.
예를 들어, (1001.11)₂ 이 수를 10진법으로 변환시켜 보면 다음과 같은 결과가 나온다.
2. bit와 byte의 개념
bit는 binary digit의 약자로 컴퓨터 내에서 하나의 기록 셀(cell)이라고 할 수 있다.
즉, binary의 의미가 2진법 이라는 뜻을 가지고 있으므로, bit 하나가 on/off, 0과 1로 표현되는 것이다.
bit 하나로는 충분한 정보를 표현할 수 없기 때문에, 이 bit를 8개로 모아 하나의 byte으로 표현한다.
[ 8bit (b) = 1byte(B), 4byte = 1word = 32bit ]
통상적으로 숫자를 표현하는 방법
-
정수는 2byte (=16 bit)로 표현
-
실수는 4byte ( = 32 bit)로 표현
4byte를 가지고 숫자를 표현하는 방법을 "단정도 (single precision)"라고 한다.
숫자를 더 정밀하게, 폭넓게 표현하고 싶으면 byte를 더 많이 사용하면 된다.
따라서 단정도의 2배인 8 byte를 사용하는 것을 "배정도 (double precision)" 라고 하며,
MATLAB은 기본적으로 배정도를 사용한 프로그램이다.
3. 오차 (Error)
오차를 얘기할 때는 보통 정확도(accuracy)와 정밀도(precision)을 구분할 필요가 있다.
-
정확도 (accuracy): 계산값 또는 측정값이 참값에 얼마나 가까운가?
-
정확도를 높인 다는 것은 과녁의 중심으로 값들을 이동시키는 것
-
-
정밀도 (precision): 계산값 또는 측정값이 서로 얼마나 가까운가?
위 그림을 통해 정확도와 정밀도를 구분해볼 수 있다.
1번은 정확도가 참값에서 멀리 떨어져 있기 때문에 정확도는 낮지만, 값들 끼리 서로 가까이 있으므로 정밀도는 높다.
2번은 값들이 참값에서도 멀리 떨어져 있고, 또 서로 흩어져 있으므로 정확도와 정밀도 모두 낮다.
4번은 값들이 모두 가깝게 붙어 있으면서 참값 안에 들어가 있기 때문에 정확도와 정밀도 모두 높다.
3번은 값들이 참값에 비교적 가깝지만 4번보다 정확도는 낮은 편이다. 또한 측정값 끼리의 거리를 보면 정밀도는 4번보다는 낮지만 2번보다는 높다.
→ 오차의 의미는 부정확도 및 비정밀도의 총칭이이라고 할 수 있다.
오차는 절대오차와 상대오차가 있다.
하지만 반도체 공정에서의 오차와 건축 설계할 때의 오차를 절대 오차로 놓고 비교하면 안되듯이, 오차에 있어서 상대오차가 더 중요하다.
하지만, 수치해석에서는 참값을 모른다. 따라서 참값을 근사값으로 대체하게 되는데,
근사오차를 근사값으로 나눈 것을 여러번 반복하여 (수치해법) 오차를 구한다.
4. 수치해석의 오차
수치해석에서 오차는 절단오차와 반올림 오차로 구분할 수 있다.
-
절단오차 (truncation error) : 수학적 근사에 의해 발생하는 오차.
-
ex) taylor 급수의 전개이다. 정확하게 계산하기 위해서는 무한대로 계산해야 하지만, 이는 불가능한 일이다. 따라서 식을 어느정도 잘라 사용하게 된다. 이때 근사값을 사용하게 되는 것이다.
-
-
반올림 오차 (roundoff error) : 컴퓨터 내의 한정된 자리수에 의해 발생하는 오차
-
8byte를 가지고 숫자 표현을 할 때, 자리수가 한정되어 있다보니 모든 실수를 다 연속적으로 표현할 수 없다. 따라서 컴퓨터가 표현할 수 없는 값을 반올림하여 사용하게 되어 생긴다.
-
[참고] 순천향대, 이상욱교수님 강의
https://www.youtube.com/watchv=a43dezd74ag&list=PLczEhXyH_pUfKl9SPn-9j3K7olfBj5cpl&index=1
반응형'수치해석 with MATLAB' 카테고리의 다른 글
3. 머신입실론과 반올림오차 (0) 2019.11.02 1. 수학적 모델링과 수치해법 (0) 2019.10.14 -