황금분할 탐색(단봉함수 최솟값) 계산기
미분 없이 구간을 0.618배씩 줄여 가며 함수의 최솟값·최댓값을 찾습니다. 반복마다 함수를 한 번만 계산하는 이유와 삼분탐색과의 차이를 보이고, 골짜기가 둘 이상이면 경고합니다.
x에 대한 식으로 적습니다. sin, cos, exp, log, sqrt를 쓸 수 있습니다.
최솟값이 되는 x
2.000000291
f(x) = 8.456052773e-14입니다. 35번 반복해 구간을 9.693097627e-7까지 좁혔고, 함수는 37번 계산했습니다.
수렴 과정 — 구간이 0.618배씩 준다
| # | a | b | 너비 | 버린 쪽 |
|---|---|---|---|---|
| 1 | -10 | 10 | 2.000e+1 | 왼쪽 |
| 2 | -2.36068 | 10 | 1.236e+1 | 오른쪽 |
| 3 | -2.36068 | 5.27864 | 7.639e+0 | 왼쪽 |
| 4 | 0.557281 | 5.27864 | 4.721e+0 | 오른쪽 |
| 5 | 0.557281 | 3.475242 | 2.918e+0 | 오른쪽 |
| 6 | 0.557281 | 2.36068 | 1.803e+0 | 왼쪽 |
| 7 | 1.246118 | 2.36068 | 1.115e+0 | 왼쪽 |
| 8 | 1.671843 | 2.36068 | 6.888e-1 | 오른쪽 |
| 9 | 1.671843 | 2.097567 | 4.257e-1 | 왼쪽 |
| 10 | 1.834455 | 2.097567 | 2.631e-1 | 왼쪽 |
| 11 | 1.934955 | 2.097567 | 1.626e-1 | 오른쪽 |
| 12 | 1.934955 | 2.035455 | 1.005e-1 | 왼쪽 |
| 13 | 1.973343 | 2.035455 | 6.211e-2 | 오른쪽 |
| 14 | 1.973343 | 2.01173 | 3.839e-2 | 왼쪽 |
| 15 | 1.988005 | 2.01173 | 2.372e-2 | 왼쪽 |
| 16 | 1.997067 | 2.01173 | 1.466e-2 | 오른쪽 |
| 17 | 1.997067 | 2.00613 | 9.062e-3 | 오른쪽 |
| 18 | 1.997067 | 2.002668 | 5.601e-3 | 왼쪽 |
| 19 | 1.999207 | 2.002668 | 3.461e-3 | 오른쪽 |
| 20 | 1.999207 | 2.001346 | 2.139e-3 | 오른쪽 |
앞의 20번만 보였습니다.
계산 방법
- 1x에 대한 식으로 함수를 적습니다. sin, cos, exp, log, sqrt를 쓸 수 있습니다.
- 2골짜기가 하나만 들어가도록 구간 [a, b]를 잡습니다.
- 3최솟값과 최댓값 중 무엇을 찾을지 고릅니다.
- 4수렴 과정 표에서 구간이 0.618배씩 줄어드는 것을 확인합니다.
- 5「구간 안 골짜기 개수」가 1이 아니면 구간을 좁혀 다시 봅니다.
자주 묻는 질문
미분 없이 구간을 좁혀 가며 단봉함수의 극값을 찾는 방법입니다. 구간 안에 시험점 두 개를 찍어 함숫값을 견주고, 극값이 있을 수 없는 쪽을 버리기를 되풀이합니다. 도함수를 적기 어렵거나 함수가 매끄럽지 않아도 쓸 수 있습니다.
살아남은 시험점을 다음 회차에서 다시 쓰기 위해서입니다. 비율을 1/φ = (√5−1)/2 ≈ 0.618로 잡으면 버리고 남은 점이 새 구간에서도 정확히 같은 자리를 차지해, 반복마다 함수를 한 번만 더 계산하면 됩니다. 다른 비율에서는 매번 두 점을 새로 계산해야 합니다.
반복당 함수 계산 횟수가 다릅니다. 삼분탐색은 구간을 1/3, 2/3에서 잘라 매번 두 번 계산하고 구간이 0.667배로 줄지만, 황금분할은 한 번 계산에 0.618배로 줄어듭니다. 함수 한 번 계산이 비싼 문제에서 이 차이가 그대로 시간이 됩니다.
엉뚱한 극값에 갇힐 수 있습니다. 이 방법은 골짜기가 하나라고 가정하고 매번 한쪽을 통째로 버리기 때문에, 버린 쪽에 더 깊은 골짜기가 있어도 알 수 없습니다. 이 계산기는 구간을 촘촘히 훑어 골짜기 개수를 세고, 하나가 아니면 경고와 함께 훑어서 찾은 값을 나란히 보여 줍니다.
목적이 다릅니다. 이분법·뉴턴법은 f(x) = 0이 되는 근을 찾고, 황금분할 탐색은 f가 가장 작아지는(또는 커지는) 극값을 찾습니다. 극값에서는 도함수가 0이므로, 도함수를 아는 경우에는 근 찾기 도구로 f′(x) = 0을 풀어도 됩니다.
찾을 수 있습니다. 부호를 뒤집어 −f의 최솟값을 찾으면 f의 최댓값이 되기 때문입니다. 이 계산기는 최댓값 모드를 고르면 내부에서 그렇게 처리합니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 검증은 답을 아는 함수들로 했습니다. (x−2)²의 최솟값이 2인 것, x⁴ − 3x³ + 2의 최솟값이 도함수에서 나오는 9/4인 것, sin x의 최솟값·최댓값이 ∓π/2인 것을 고정했고, 무작위 이차함수 200벌에서 꼭짓점을 되찾는지 확인했습니다.
- 결과를 구간을 2000등분해 훑은 값과 항상 대조해 화면에 함께 보입니다. 두 값이 어긋나면 단봉 가정이 깨진 신호입니다.
- 수렴 성질도 테스트로 고정했습니다. 구간이 반복마다 정확히 0.618배로 줄어드는 것, 반복마다 함수 계산이 정확히 한 번 느는 것, 허용 오차를 지키는 것입니다.
- 골짜기 개수는 구간을 촘촘히 훑어 국소 최솟값을 세어 판정합니다. 훑기 간격보다 좁은 골짜기는 놓칠 수 있으므로, 진동이 심한 함수에서는 구간을 나눠 보시기 바랍니다.
- 수식은 이 사이트의 공통 수식 해석기를 씁니다. x 이외의 변수는 쓸 수 없습니다.
- 반복은 200번까지 합니다. 허용 오차를 아주 작게 잡으면 부동소수점 한계에 먼저 걸립니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 2일 · 결과는 참고용 추정치입니다.