<< 주어진 함수의 근사값을 찾는 수치 해석적인 방법 >>
1. 조건
1)
은 다음 반복에서의 근사 해2) x_
은 현재 반복에서의 근사 해,3)
은 함수의 값4))
은 함수의 미분 값입니다.
※ 즉, 위 공식은 f(x) = 0 을 찾는 공식입니다.
2. 주의할 점
1) 미분 가능성 및 연속성: 함수가 미분 가능하고 연속적이어야 합니다.
또한, 미분이 0이 되는 지점에서는 수렴이 느려지거나 수렴하지 않을 수 있습니다.
2) 초기 추정값의 선택: 초기 추정값에 따라 수렴 여부가 달라질 수 있습니다.
부적절한 초기 추정값은 수렴을 방해하거나, 다른 해로 수렴하게 할 수 있습니다.
3) 계산 오류와 수렴 문제: 수학적으로 수렴이 보장되지 않는 경우가 있습니다.
특히, 특정 조건에서는 발산할 수 있거나, 수렴이 매우 느릴 수 있습니다.
4) 함수의 복잡성: 함수가 복잡하거나 다수의 근을 가지고 있을 경우, 수렴하지 않을 수 있습니다.
5) 수렴 주변의 근방에서만 유효: 초기 추정값 주변에서만 수렴이 보장됩니다.
멀리 떨어진 해에서는 다른 방법을 사용해야 할 수 있습니다.
6) 미분 계산의 안정성: 미분이 0이 되는 지점이나 불연속성이 있는 지점에서 문제가 발생할 수 있습니다.
3. 예제
위 함수 일 때,
미분 공식은 : f'(x) = 2x 입니다.
이때, 초기 추정값을 x_0 = 3 으로 설정합니다.
1step
x_1 = 3 - ((3^2-4)) / (2*3) = 2.1667
x_2 = (2.1667 공식에 대입) = 2
x_3 = (2 공식에 대입 ) =2
따라서, x_2 , x_3 의 값이 2가 됨에 따라, f(x) =0 이되는 x의 값이 2가 됨을 알 수 있습니다.
4. 그래프
다음과 같이 추정 값 '3' 으로 부터 근사값을 계속하여 f(x) = 0 을 알아가는 그래프를 확인 할 수 있습니다.
위 그래프에 대한 matlab 코드는 아래의 글을 통해 확인 가능합니다.
clc
close all
clear
% 주어진 함수 정의
f = @(x) x.^2 - 4;
% 함수의 미분 정의
df = @(x) 2 * x;
% 초기 추정값 설정
x0 = 3;
% 반복 횟수 설정
numIterations = 10;
% x 범위 설정
xRange = linspace(-3, 4, 100);
% 함수 및 뉴턴-랩슨 반복 결과를 그래프로 나타냄
figure;
% 주어진 함수의 그래프
subplot(2, 1, 1);
plot(xRange, f(xRange), 'b-', 'LineWidth', 2);
hold on;
grid on;
% 초기 추정값을 빨간색 원으로 표시
plot(x0, f(x0), 'ro', 'MarkerSize', 10);
% 뉴턴-랩슨 반복 수행
for i = 1:numIterations
x1 = x0 - f(x0) / df(x0);
% 그래프 상에서 반복된 추정값을 선으로 연결
plot([x0, x1], [f(x0), 0], 'r--');
% 다음 반복을 위해 추정값 갱신
x0 = x1;
end
% 최종 결과값을 녹색 별표로 표시
plot(x1, f(x1), 'g*', 'MarkerSize', 10);
% 그래프 스타일 및 레이블 설정
xlabel('x');
ylabel('f(x)');
title('Newton-Raphson Method Example');
% legend('f(x)', 'Initial Guess', 'Iteration Steps', 'Final Result');
% 주어진 함수의 그래프 및 뉴턴-랩슨 결과의 확대된 그래프
subplot(2, 1, 2);
plot(xRange, f(xRange), 'b-', 'LineWidth', 2);
hold on;
grid on;
% 초기 추정값을 빨간색 원으로 표시
plot(x0, f(x0), 'ro', 'MarkerSize', 10);
% 뉴턴-랩슨 반복 수행 (확대된 그래프)
for i = 1:numIterations
x1 = x0 - f(x0) / df(x0);
% 그래프 상에서 반복된 추정값을 선으로 연결
plot([x0, x1], [f(x0), 0], 'r--');
% 다음 반복을 위해 추정값 갱신
x0 = x1;
end
% 최종 결과값을 녹색 별표로 표시 (확대된 그래프)
plot(x1, f(x1), 'g*', 'MarkerSize', 10);
% 그래프 스타일 및 레이블 설정
xlabel('x');
ylabel('f(x)');
title('Newton-Raphson Method Example (Zoomed In)');
% legend('f(x)', 'Initial Guess', 'Iteration Steps', 'Final Result');
% 그래프 보여주기
hold off;
'수학 > 미적분학' 카테고리의 다른 글
Midpoint Rule, Trapezoidal Rule ,Simpson's Rule (중점,사다리꼴,심슨의 규칙)feat matlab (1) | 2023.12.26 |
---|---|
Integration by Parts (부분적분법 (로다삼지)) (1) | 2023.12.26 |
L’Hospital’s Rule (로피탈의 정리) (0) | 2023.12.23 |
The Mean Value Theorem (평균값 정리) (1) | 2023.12.22 |
Rolle's Theorem (롤의 정리) (2) | 2023.12.22 |