분수 1/3을 소수로 쓰면 0.333…처럼 끝나지 않는다. 컴퓨터는 숫자를 정해진 자릿수 안에 저장하므로 이 값을 계산에 쓸 때는 가까운 수로 나타내야 한다. 계산수학은 이런 근삿값이 얼마나 정확한지, 반복 계산이나 큰 문제에서도 믿을 수 있는지, 계산에 시간과 메모리를 얼마나 쓰는지 살피는 분야다.[1] 정확한 답을 간단한 공식으로 바로 쓰기 어려운 문제나 측정값을 이용하는 문제에서 근사 방법을 설계한다.
1. 범위와 목적
수치해석과 계산수학은 실제 문제를 계산 가능한 식으로 바꾸고, 그 식을 푸는 순서인 알고리즘을 설계하며, 답과 계산량을 점검한다. 예를 들어 이미 아는 몇 개의 값 사이를 추정하는 보간, 곡선 아래 넓이를 근사하는 적분, 시간에 따라 변하는 양을 계산하는 미분방정식이 있다. MIT 강의는 근 찾기와 선형대수 등도 다룬다. 계산수학은 특정 계산기 기능이 아니라 알고리즘을 활용해 여러 문제를 푸는 분야다.[2]
이 분야는 응용수학, 컴퓨터 과학, 공학의 교차점에 놓인다. 응용수학은 문제를 수학적으로 표현하고 성질을 분석하며, 컴퓨터 과학은 자료 표현과 알고리즘의 실행 가능성을 다룬다. 계산수학은 근사 문제와 계산 절차가 서로 맞는지 살핀다. 이러한 관계는 과학 계산, 알고리즘, 수학적 모델의 방법을 함께 쓰는 이유를 설명한다.[2]
2. 근사와 오차
컴퓨터가 숫자를 제한된 자릿수로 저장할 때 생기는 차이를 반올림 오차라고 한다. 계산이 길어지면 작은 차이가 쌓일 수 있다. 크기가 거의 같은 두 수를 빼면 앞쪽의 중요한 숫자가 사라져 남은 결과의 믿을 만한 자릿수가 줄어들기도 한다. 이런 중요한 자릿수를 유효 자릿수라고 한다. MIT 강의는 반복 연산과 수의 상쇄가 오차를 키울 수 있어 계산 방법을 함께 살펴야 한다고 설명한다.[1]
오차가 커지는 이유는 문제 자체가 입력 변화에 민감해서일 수도 있고, 계산 절차가 반올림 차이를 키워서일 수도 있다. 조건수는 입력값을 조금 바꿨을 때 정확한 답이 얼마나 달라지는지를 나타낸다. 알고리즘 안정성은 실제 계산 절차가 작은 반올림 차이를 과도하게 키우지 않는지를 살핀다. 따라서 어려운 문제에서는 입력 자료의 한계와 계산 방법의 한계를 따로 확인해야 한다.[1]
3. 대표 문제와 알고리즘
여러 미지수가 얽힌 연립방정식은 선형대수의 대표 문제다. 행렬은 이런 식을 표로 묶어 나타내는 방법이고, 고유값·고유벡터는 행렬이 어떤 방향을 늘이거나 줄이는지 요약할 때 쓰인다. 큰 행렬에는 0인 값이 대부분인 경우가 있는데, 이를 희소 구조라고 한다. 0을 따로 계산하지 않는 저장·계산 방법이나 반복 계산을 쓰면 자원을 아낄 수 있다. 답을 원래 식에 다시 넣었을 때 좌우 차이인 잔차가 작으면 식을 잘 만족하는지 점검하는 단서가 된다.[2]
보간은 알려진 몇 개의 값 사이의 값을 추정하는 방법이다. 수치 적분은 곡선 아래의 넓이를 몇 개의 계산값으로 어림하고, 미분방정식 수치해법은 연속적으로 변하는 현상을 작은 구간으로 나누어 계산한다. 이때 구간의 끝에서 주어진 값이나 조건을 경계조건이라 하고, 변화가 급격하지 않은 정도를 문제의 매끄러움이라고 한다. 작은 구간을 쓰거나 더 높은 차수의 식을 쓴다고 항상 정확해지는 것은 아니므로 문제의 조건과 계산 자원을 고려해야 한다.[2]
4. 수렴성과 계산 비용
수렴성은 반복 계산이나 구간 세분화로 얻은 근삿값이 목표에 가까워지는 성질이다. 어떤 방법은 특정 조건에서만 가까워지고, 반복을 시작하는 값과 멈추기로 정한 기준에 따라 결과와 시간이 달라진다. 수렴 여부를 확인하면 원하는 오차 수준에 도달했는지 판단하고 계산을 언제 멈출지 정할 수 있다.[2]
정확도와 비용은 함께 평가한다. 더 촘촘한 격자나 높은 정밀도는 오차를 줄일 수 있지만 메모리와 실행 시간을 늘린다. 큰 문제에서는 연산 횟수의 증가율, 저장량, 병렬화 가능성도 중요하다. 실용적인 계산은 필요한 정확도를 정하고 그 기준을 만족하는 방법 중 자원 사용과 안정성이 적절한 것을 선택하는 과정이다.[2]
5. 검증과 응용
계산 결과는 답을 원래 식에 넣어 잔차를 확인하거나, 정답을 아는 작은 문제와 비교하거나, 자릿수와 구간 크기를 바꾸어 다시 계산해 점검할 수 있다. 서로 다른 방법의 값이 비슷하면 참고가 되지만 두 방법이 같은 잘못된 가정을 쓸 수도 있어 그것만으로 정확성이 증명되지는 않는다. 입력의 단위와 경계조건도 함께 확인해야 한다.[1]
계산수학은 물리·기후·재료·생명과학의 모형, 구조 설계, 영상 재구성처럼 큰 방정식이나 복잡한 변화를 다루는 응용에 쓰인다. 계산은 현실을 그대로 복제하기보다 제한된 자료와 가정에 따라 모형의 결과를 근사한다. 그러므로 결과를 해석할 때 모형 오차, 입력 불확실성, 알고리즘 오차를 구분해야 한다.[2]
7. 인용 및 각주
[1] MIT OpenCourseWare, “Week 2: Introduction to Numerical Methods” (18.335J, Spring 2019), ocw.mit.edu(새 탭에서 열림)
[2] MIT OpenCourseWare, “Introduction to Numerical Analysis: Course Description” (18.330, Spring 2012), ocw.mit.edu(새 탭에서 열림)