- 세상의 모든 계산기 수학, 과학, 공학 이야기 수학 ()
고정점 반복법, Fixed Point Iteration (비선형 방정식의 해를 찾는 방법)
시행착오법을 통해 비선형 방정식의 해를 찾는 방법은 여러 가지가 있으며,
그 중 하나가 "고정점 반복법" (Fixed Point Iteration)입니다.

고정점 반복법 (Fixed Point Iteration)
- 정의: 함수 \( f(D) = 0 \)의 해를 구하기 위해, 반복적으로 특정 형식의 함수 \( g(D) \)를 설정하여 \( D_{\text{new}} = g(D) \)의 형태로 업데이트하는 방법입니다.
- 용도: 비선형 방정식, 유체 유동 해석, 공학적 문제 등 다양한 분야에서 해를 찾기 위해 사용됩니다.
기타 관련 방법
- 뉴턴-랩슨 방법 (Newton-Raphson Method):
- 기울기를 이용하여 해를 찾아가는 방법으로, 일반적으로 더 빠른 수렴 속도를 제공합니다. 하지만 초기값에 대한 의존성이 큽니다.
- 바이섹션 방법 (Bisection Method):
- 함수의 값을 이용하여 중간값을 반복적으로 좁혀가는 방법입니다. 안정적이지만 수렴 속도는 상대적으로 느립니다.
- 이분법 (Secant Method):
- 두 점의 기울기를 이용해 해를 찾는 방법으로, 뉴턴-랩슨 방법의 대안으로 사용할 수 있습니다.
각 방법은 특정 상황에서의 장단점이 있으므로 문제에 맞는 방법을 선택하는 것이 중요합니다.
고정점 반복법의 예시 (2차방정식)
2차 방정식 예제로 주어진 방정식이 다음과 같다고 가정하겠습니다:
\[
x^2 - 3x - 4 = 0
\]
이 방정식을 고정점 형태로 변형하여 해결해 보겠습니다.
1. 방정식 변형
방정식을 고정점 형태로 변형하려면 \( x \)에 대해 다시 정리해야 합니다. 예를 들어, 위의 방정식에서 \( x \)에 대한 식으로 바꿉니다:
\[
x = \frac{3x + 4}{x} = 3 + \frac{4}{x}
\]
이제 고정점 함수 \( g(x) \)를 정의할 수 있습니다:
\[
g(x) = 3 + \frac{4}{x}
\]
2. 초기값 설정
고정점 반복법을 시작하기 위해 초기값을 설정합니다. 예를 들어, \( x_0 = 5 \)로 시작하겠습니다.
3. 반복 계산
이제 반복적으로 \( x \) 값을 업데이트합니다:
\[
x_{\text{new}} = g(x)
\]
1. 첫 번째 반복:
\[
x_1 = g(x_0) = 3 + \frac{4}{5} = 3 + 0.8 = 3.8
\]
2. 두 번째 반복:
\[
x_2 = g(x_1) = 3 + \frac{4}{3.8} \approx 3 + 1.0526 \approx 4.0526
\]
3. 세 번째 반복:
\[
x_3 = g(x_2) = 3 + \frac{4}{4.0526} \approx 3 + 0.9875 \approx 3.9875
\]
4. 네 번째 반복:
\[
x_4 = g(x_3) = 3 + \frac{4}{3.9875} \approx 3 + 1.0031 \approx 4.0031
\]
이런 식으로 계속 반복하여 \( x_n \)이 수렴할 때까지 진행합니다.
4. 수렴 확인
반복을 계속 진행하다 보면, \( x \) 값이 안정화되어 수렴하게 됩니다.
예를 들어, 수렴 조건으로 \( |x_{\text{new}} - x_{\text{old}}| < \epsilon \) (여기서 \( \epsilon \)은 설정한 허용 오차) 를 사용할 수 있습니다.
* g(x) 함수에 따라 수렴하지 않고 발산할 수도 있습니다.
수렴 조건:
- |g'(x)| < 1 인 구간에서 수렴이 보장됩니다.
- 이는 연속 반복에서 점들이 서로 가까워짐을 의미합니다.
댓글2
-
-
1
세상의모든계산기
g(x) 형식은 여러가지가 될 수 있습니다.
이번엔 x = g(x) = 'x의 2차식' 꼴로 설정해 보겠습니다.

수렴하긴 했는데... x=4 를 구하고 싶었지만, x=-1이 구해졌습니다.
그렇다고 x0=5 으로 시작하면 발산해버리고 맙니다.
x=4가 구해지지 않는 것은 그래프 모양으로 확인할 수 있습니다.

앞서 보았던 분수함수와 달리 2차함수는 g(x) 값이 y=x 의 아래 있기 때문에 x가 더 작은 값으로 이동해 갑니다.
따라서
g(x)|x<-1 는 -1로
g(x)|-1<x<4 는 -1로
g(x)|4<x ∞ 로 이동하게 되어
x=4 로 수렴하지는 못합니다.


세상의모든계산기 님의 최근 댓글
뉴턴-랩슨 적분 방정식 시각화 v1.0 body { font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; display: flex; flex-direction: column; align-items: center; background: #f8f9fa; padding: 40px 20px; margin: 0; color: #333; } .container { background: white; padding: 40px; border-radius: 20px; box-shadow: 0 15px 35px rgba(0,0,0,0.08); max-width: 900px; width: 100%; } header { border-bottom: 2px solid #f1f3f4; margin-bottom: 30px; padding-bottom: 20px; } h1 { color: #1a73e8; margin: 0 0 10px 0; font-size: 1.8em; } p.subtitle { color: #5f6368; margin: 0; font-size: 1.1em; } .equation-box { background: #f1f3f4; padding: 15px; border-radius: 10px; text-align: center; margin-bottom: 30px; font-size: 1.3em; } canvas { border: 1px solid #e0e0e0; border-radius: 12px; background: #fff; width: 100%; height: auto; display: block; } .controls { margin-top: 30px; display: flex; gap: 15px; align-items: center; justify-content: center; flex-wrap: wrap; } button { padding: 12px 25px; border: none; border-radius: 8px; background: #1a73e8; color: white; cursor: pointer; font-weight: 600; font-size: 1em; transition: all 0.2s; box-shadow: 0 2px 5px rgba(26,115,232,0.3); } button:hover { background: #1557b0; transform: translateY(-1px); box-shadow: 0 4px 8px rgba(26,115,232,0.4); } button:active { transform: translateY(0); } button.secondary { background: #5f6368; box-shadow: 0 2px 5px rgba(0,0,0,0.2); } button.secondary:hover { background: #4a4e52; } .status-badge { background: #e8f0fe; color: #1967d2; padding: 8px 15px; border-radius: 20px; font-weight: bold; font-size: 0.9em; } .explanation { margin-top: 40px; padding: 25px; background: #fff8e1; border-left: 5px solid #ffc107; border-radius: 8px; line-height: 1.8; } .explanation h3 { margin-top: 0; color: #856404; } .math-symbol { font-family: 'Times New Roman', serif; font-style: italic; font-weight: bold; color: #d93025; } .code-snippet { background: #202124; color: #e8eaed; padding: 2px 6px; border-radius: 4px; font-family: monospace; } 📊 Newton-Raphson 적분 방정식 시뮬레이터 미분적분학의 기본 정리(FTC)를 이용한 수치해석 시각화 목표 방정식: ∫₀ᴬ (2√x) dx = 20 을 만족하는 A를 찾아라! 계산 시작 (A 추적) 초기화 현재 반복: 0회 💡 시각적 동작 원리 (Newton-Raphson & FTC) Step 1 (오차 측정): 현재 A까지 쌓인 파란색 면적이 목표치(20)와 얼마나 차이나는지 계산합니다. Step 2 (FTC의 마법): 면적의 변화율(미분)은 그 지점의 그래프 높이 f(A)와 같습니다. Step 3 (보정): 다음 A = 현재 A - (면적 오차 / 현재 높이) 공식을 사용하여 A를 이동시킵니다. 결론: 오차를 현재 높이로 나누면, 오차를 메우기 위해 필요한 가로 길이(ΔA)가 나옵니다. 이 과정을 반복하면 정답에 도달합니다! const canvas = document.getElementById('graphCanvas'); const ctx = canvas.getContext('2d'); const iterText = document.getElementById('iterText'); // 수학 설정 const targetArea = 20; const f = (x) => Math.sqrt(x) * 2; // 피적분 함수 f(x) = 2√x const F = (x) => (4/3) * Math.pow(x, 1.5); // 정적분 결과 F(x) = ∫ 2√x dx = 4/3 * x^(3/2) let A = 1.5; // 초기값 let iteration = 0; let animating = false; // 그래프 드로잉 설정 const scale = 50; const offsetX = 60; const offsetY = 380; function drawGrid() { ctx.strokeStyle = '#f1f3f4'; ctx.lineWidth = 1; ctx.beginPath(); for(let i=0; i 2026 04.11 참값 : A = ±2√5 근사값 : A≈±4.472135954999579392818347 2026 04.10 fx-570 ES 입력 결과 초기값 입력 반복 수식 입력 반복 결과 2026 04.10 파이썬 코드 검증 결과 초기값: 5.0 반복 1회차: 4.5000000000 반복 2회차: 4.4722222222 반복 3회차: 4.4721359558 반복 4회차: 4.4721359550 반복 5회차: 4.4721359550 초기값: 10.0 반복 1회차: 6.0000000000 반복 2회차: 4.6666666667 반복 3회차: 4.4761904762 반복 4회차: 4.4721377913 반복 5회차: 4.4721359550 2026 04.10 감사합니다. 주말 잘 보내세요. 2026 03.06