Interactive Numerical Analysis

컴퓨터가
수학을 근사하는 방법

컴퓨터는 유한한 자릿수와 유한한 단계로만 계산합니다. 그래서 0.1 + 0.2는 0.3이 아니고, 미분은 차분이 되고, 적분은 유한한 합이 됩니다. 좋은 수치해석은 오차를 예측하고, 통제하고, 비용과 바꾸는 기술입니다. NumericalBook은 수치해석 한 학기와 수치 선형대수, 최적화, 편미분방정식 해법까지를 알고리즘을 한 단계씩 돌려 보고, 오차를 로그 그래프로 재고, 실패하는 경우까지 확인하는 순서로 다룹니다.

5부 16장 + 용어집시뮬레이터 120여 개직접 구현한 알고리즘공대 3학년
출발점 x₀를 끌어 보세요

이 책의 지도

장마다 같은 질문을 던집니다. 오차는 얼마나 빨리 줄어드는가(O(hᵖ), 수렴 차수), 입력의 작은 오차가 얼마나 커지는가(조건수, 안정성), 그 정확도에 연산이 몇 번 드는가(비용). 부동소수점에서 출발해 근 찾기, 보간과 근사, 미분·적분·미분방정식, 행렬 계산, 최적화와 편미분방정식으로 넓혀 갑니다.

제1부 · CH.01–04

오차와 근 찾기

IEEE 754와 기계 엡실론, 자릿수 상쇄, 조건수와 후방 안정, 이분법·뉴턴·할선법의 수렴 차수, 다변수 뉴턴과 뉴턴 프랙털.

제2부 · CH.05–08

보간과 근사

분할 차분과 룽게 현상, 체비쇼프 노드, 3차 스플라인과 베지에, 최소제곱과 QR, 직교 다항식, DFT와 FFT.

제3부 · CH.09–11

수치 미적분

차분의 V자 오차와 최적 h, 리처드슨 외삽과 자동 미분, 롬베르크·가우스 구적법, 안정성 영역과 강성, BDF.

제4부 · CH.12–14

수치 선형대수

피벗팅과 LU·촐레스키, 행렬 조건수, 야코비·가우스–자이델·SOR, 켤레 기울기법과 전처리, 거듭제곱법과 QR 알고리즘.

제5부 · CH.15–16

최적화와 편미분방정식

경사 하강과 BFGS, 레벤버그–마쿼트, 제약 최적화, 열·이류·파동 방정식의 유한 차분, 폰 노이만 안정성과 CFL, 유한 요소법.

대표 실험

수식을 읽기 전에 먼저 돌려 보세요. 각 실험은 해당 장의 그 장면으로 이어집니다.

CH.01 · 부동소수점과 오차0.1은 컴퓨터 안에서 정확히 얼마일까?64개 비트를 하나씩 눌러 배정밀도 수를 만들고, 0.1 바로 다음 수가 0.10000000000000002라는 것과 그 사이 간격(ulp)을 확인합니다. CH.01 · 부동소수점과 오차0.1초를 100시간 세면 시계는 얼마나 어긋날까?0.1을 23비트에서 자른 시계는 100시간 뒤 0.34초 늦고, 초속 1.7 km 물체라면 위치가 수백 m 어긋납니다. 정밀도별 누적 오차를 비교합니다. CH.02 · 조건수와 안정성계수 하나를 2⁻²³만큼 바꿨는데 왜 근 열 개가 복소수가 될까?윌킨슨 다항식의 계수를 살짝 흔들면 1부터 20까지의 실근들이 서로 부딪쳐 복소평면으로 튀어 나갑니다. CH.03 · 방정식의 근 찾기같은 방정식인데 왜 하나는 수렴하고 하나는 달아날까?거미줄 그림의 출발점을 끌면 |g′(r)| < 1인지가 수렴과 발산을 가르고, g′(r) = 0이 되는 순간 2차 수렴, 곧 뉴턴 방법이 됩니다. CH.03 · 방정식의 근 찾기근 바로 옆에서 출발한 뉴턴 방법이 왜 엉뚱한 데로 갈까?순환·발산·평평한 곳 같은 실패 사례를 돌려 보고, 가둠 구간과 이분법 안전장치가 언제나 근에 닿게 하는 모습을 봅니다. CH.04 · 비선형 연립방정식과 다항식의 근뉴턴 방법은 세 근 중 어디로 갈까?z³ − 1의 끌개 영역을 클릭하고 확대하면, 경계 어디를 확대해도 세 색이 다시 나오는 프랙털이 보입니다. CH.04 · 비선형 연립방정식과 다항식의 근로봇 팔은 목표에 맞는 관절 각을 어떻게 찾을까?목표를 끌면 2변수 뉴턴 방법이 한두 번 반복으로 따라가고, 닿지 않는 곳에서는 감쇠 최소제곱이 팔을 목표 쪽으로 쭉 폅니다. CH.05 · 다항식 보간점을 늘렸는데 왜 더 틀릴까?1/(1 + 25x²)을 등간격 점으로 보간하면 차수를 올릴수록 양 끝이 터지고, 체비쇼프 노드로 바꾸면 같은 차수에서 수렴합니다. CH.06 · 스플라인과 곡선매끄러운 곡선이 데이터 범위를 넘어가도 될까?계단 데이터에서 3차 스플라인은 위아래로 넘치고, PCHIP는 기울기를 조절해 데이터 범위와 단조성을 지킵니다. CH.07 · 최소제곱 근사와 직교 다항식최소제곱은 왜 '수선의 발'일까?직선의 절편과 기울기를 직접 골라 제곱 넓이 합을 줄이면, 최소가 되는 순간 잔차가 ℝ³의 열공간 평면에 수직이 됩니다. CH.08 · 이산 푸리에 변환과 FFT7 Hz 신호가 왜 3 Hz로 보일까?표본화 주파수를 바꾸면 나이퀴스트 주파수를 넘는 성분이 접혀 들어오고, fₛ가 14 Hz를 넘는 순간 제 주파수로 돌아옵니다. CH.08 · 이산 푸리에 변환과 FFTN²과 N log N, 내 브라우저에서는 몇 배 차이일까?직접 DFT와 FFT의 실행 시간을 이 브라우저에서 재어 로그–로그 그래프에 찍고 기울기 2와 1을 비교합니다. CH.09 · 수치 미분h를 더 줄이면 왜 미분이 더 틀릴까?오차–간격 로그 그래프의 V자에서 절단 오차와 반올림 오차가 만나는 바닥, 최적 간격 h ≈ √ε를 찾습니다. CH.09 · 수치 미분신경망은 기울기 수억 개를 어떻게 한 번에 구할까?계산 그래프를 앞으로 계산한 뒤 출력에서 입력으로 거꾸로 전파하는 후진 모드 자동 미분(역전파)을 한 단계씩 봅니다. CH.10 · 수치 적분점 두 개로 3차식을 정확히 적분할 수 있을까?르장드르 다항식의 근에 놓인 가우스 노드는 n점으로 2n − 1차까지 정확하고, 등간격 뉴턴–코츠는 n ≥ 9에서 음의 가중치가 나옵니다. CH.10 · 수치 적분다트를 던져 10차원 공의 부피를 잴 수 있을까?몬테카를로 오차는 차원과 상관없이 1/√N으로 줄어듭니다. 같은 점 수의 격자는 10차원에서 축마다 4개 남짓입니다. CH.11 · 미분방정식의 수치 해법느린 화학 반응인데 왜 명시적 방법은 4만 걸음이나 걸릴까?강성 로버트슨 반응에서 명시적 DP 5(4)의 걸음 수는 시간에 비례해 늘고, BDF2와 뉴턴 반복은 수백 걸음에 끝냅니다. CH.12 · 연립방정식의 직접 해법단정밀도로 분해하고 배정밀도 답을 얻을 수 있을까?단정밀도 LU에 배정밀도 잔차로 반복 개선을 두세 번 하면 오차가 배정밀도 바닥까지 내려옵니다. 잔차의 정밀도가 최종 정확도를 정합니다. CH.13 · 반복 해법격자를 키워도 반복 수가 그대로인 방법이 있을까?2차원 열판에서 야코비·가우스–자이델·SOR·CG·다중 격자를 겨루면, 격자를 키울 때 다중 격자만 다섯 사이클 그대로입니다. CH.14 · 고유값의 수치 계산링크 하나를 더하면 검색 순위가 어떻게 바뀔까?작은 웹 그래프에서 링크를 켜고 끄며, 거듭제곱법으로 구한 페이지랭크 고유벡터와 수렴 속도를 봅니다. CH.15 · 수치 최적화경사 하강은 수천 걸음, 뉴턴은 수십 걸음?로젠브록의 바나나 골짜기에서 경사 하강·뉴턴·BFGS의 경로와 수렴 곡선을 출발점을 끌며 비교합니다. CH.16 · 편미분방정식의 수치 해법사각 펄스를 옮기기만 하는데 왜 뭉개지거나 폭발할까?풍상 차분은 모서리를 깎고(수치 확산), 랙스–벤드로프는 물결을 남기고, CFL 수가 1을 넘으면 터집니다.

이런 오해, 한 번쯤 해 보셨죠?

이 책을 읽고 나면 아래 문장들이 왜 틀렸는지 설명할 수 있게 됩니다.

컴퓨터 계산은 정확하다대부분의 언어에서 0.1 + 0.2는 0.30000000000000004이고, 0.1을 열 번 더하면 0.9999999999999999입니다. 0.1은 2진법으로 끝나지 않는 소수라 저장하는 순간 반올림되고, t == 1로 멈추는 반복문은 영원히 돕니다. 1장 →
h를 작게 할수록 수치 미분이 정확해진다ex의 x = 1에서 전진 차분은 h = 10⁻⁸일 때 오차가 6.6 × 10⁻⁹이지만, h = 10⁻¹²이면 4.3 × 10⁻⁴로 5만 배 나빠지고 h = 10⁻¹⁶이면 답이 0입니다. 자릿수 상쇄 때문입니다. 9장 →
점을 더 많이 찍으면 보간이 정확해진다1/(1 + 25x²)을 등간격 점으로 보간하면 최대 오차가 차수 10에서 1.92, 20에서 59.8, 40에서 10⁵을 넘습니다. 같은 차수라도 체비쇼프 노드에서는 꾸준히 줄어듭니다. 5장 →
Ax = b는 역행렬을 구해 x = A⁻¹b로 풀면 된다n = 1000이면 역행렬 전체는 2n³ ≈ 2.0 × 10⁹번의 연산으로 LU 분해(⅔n³ ≈ 6.7 × 10⁸번)의 세 배이고, 정확도도 대개 더 나쁩니다. 분해를 한 번 해 두면 우변이 몇 개든 대입(2n²번)만 하면 됩니다. 12장 →

챕터

앞에서부터 차례로 읽기를 권합니다. 모든 장에 직접 조작하는 시뮬레이터와 손으로 푸는 예제, 확인 퀴즈가 있고, 마지막 장에서 책 전체를 종합 퀴즈로 점검합니다.

추천 학습 경로

목적에 맞게 골라 읽으세요.

한 학기 수치해석

공대 3학년 강의 순서 그대로. 오차와 근 찾기에서 보간, 미적분, 미분방정식, 연립방정식까지.

과학 계산·시뮬레이션

열·유체·구조 해석의 바탕. 오차의 출처, 미분방정식 해법과 강성, 희소 선형계와 반복 해법, 편미분방정식의 유한 차분과 유한 요소.

데이터·기계 학습

최소제곱과 QR, 자동 미분과 역전파, 고유값과 페이지랭크, 경사 하강과 BFGS, 확률적 경사 하강과 담금질.

수치 선형대수

행렬 계산만 따로. 조건수와 후방 안정성, 피벗팅과 LU·촐레스키, 반복 개선과 희소 채움, CG와 다중 격자, QR 알고리즘.

함께 읽으면 좋은 책

같은 서가의 다른 책에서 수치해석의 재료와 출발점을 만날 수 있습니다.

CalculusBook — 미적분

오차 차수를 재는 도구인 테일러 전개, 사다리꼴·심프슨 공식의 출발점, 뉴턴 방법의 첫 만남.

LinearBook — 선형대수

LU와 QR 분해, 특이값 분해, 수치 선형대수의 기초. 4부의 행렬 계산을 위한 바탕입니다.

ODEBook — 미분방정식

오일러에서 RK4까지, 강성 맛보기, 열 방정식의 FTCS. 11장과 16장이 여기서 이어집니다.

MathBook — 문제에서 출발하는 수학

컴퓨터가 어떻게 틀리는지 한 장으로 먼저 훑어봅니다.