[수치해석] 뉴턴법/뉴턴-랩슨법 정리
- 수학
- 2024. 10. 27.
수치해석 뉴턴법/뉴턴-랩슨법 정리
방정식의 해를 구할 때 중고등학교 때는 근의공식과 조립제법을 이용해서 해를 구했었는데요. 정확해 해를 구할 수 없는 경우 해에 근접한 근사해를 찾아 구하는 방식 중 하나인 뉴턴법에 대해 알아보겠습니다.
근사해를 구하는 이유
대수적으로 모든 방정식의 해를 구하면 좋겠지만 안타깝게도 수학이란 세계에는 수많은 방정식이 있지만 해를 단번에 구할 수 있는 근의 공식은 4차까지밖에 없습니다. 5차 이상의 방정식은 근의 공식이 없기 때문에 인수분해가 잘 된다면 해를 구할 수 있겠으나 대개는 방정식의 해를 정확하게 구할 수가 없습니다.
근의공식이 없는 상황에서 정확한 해를 구하는 건 무모한 작업이기 때문에 정확한 해가 아니라 충분히 사용할만한 근사해를 구해서 오차범위 안에서 해라고 가정하고 사용하고 다음 작업으로 넘어가게 됩니다.
뉴턴법(뉴턴-랩슨법)
근사해를 구하는 방식 중에 하나인 뉴턴법은 초기값(x0)의 접선을 그어 x축에 만나는 점을 x1로 두어 수열을 형성해 근사해를 찾는 방식입니다.
구하는 방식
{xn} 수열을 만들건데 아래와 같은 방식으로 만듭니다.
(x0,y0)에서의 접선의 방정식을 구하면 다음과 같습니다.
y−y0=f′(x0)(x−x0)
x에 대해 정리하면,
x=x0−f(x0)f′(x0),f′(x0)≠0
여기서, x를 x1으로 정의합니다.
다시 말해,
x1=x0−f(x0)f′(x0)
이다. 위의 방법을 반복해 수열을 만든 것이 {xn}입니다. 즉, xn은 다음과 같습니다.
xn+1=xn−f(xn)f′(xn),f′(xn)≠0
예를 들어,
f(x)=2x2−5이라 할때, f′(x)=4x입니다. x0=3 일때,
x1=3−1312=2312
x2=2312−16972233=889552
위 계산을 반복해나갑니다.
아래와 같이 해(x축)에 근접해 갑니다.
그림을 보면 예상하겠지만 초기값이 무엇이냐에 따라 해를 찾을수도 못찾을수도 있습니다.
근사해로 실제 해 구하기
limit의 개념을 이용해 근사해(xn)를 수렴하는 a값이 해가 됩니다.
즉,limn−>∞xn=a이면,f(a)=0이다.
수렴값이 실제 해라고 봐도 무방합니다.
뉴턴법의 장단점
뉴턴법의 장점
- 수렴 속도가 매우 빠르다.
- 반복할수록 정밀한 해를 가진다.
뉴턴법의 단점
- 초기값 설정을 제대로 하지 못하면 해를 구할 수 없다.
- 미분값 계산을 해야 한다.
뉴턴법의 안 좋은 사례
- 해를 결정할 수 없음(undefined)
ex) f(x)=xe−x , x0=2 일때, infinity로 빠져버립니다.
근사해를 알수가 없습니다. - oscillation
ex) f(x)=x3−2x+2, 초기값이 x0=0이면 수열이 진동할 뿐 한쪽으로 수렴하지 않습니다. 다시 말해, 근사해를 정할수 없습니다.
좋은 초기값을 구하기 위해선
- 직관이나 그래프 해석으로 선택합니다.
- 이분법으로 근이 존재하는 구간 먼저 찾아서 초기값을 해당 구간에서 정합니다.
- f(a)>0 or f(b)<0 이라면 a,b의 중간값을 x0으로 잡습니다.
- f'(x)값이 0에 가까운 구간은 피합니다. 순간기울기가 수평에 가까워지면 뉴턴법의 분모가 0에 가까워지므로 더이상 진행할 수 없게 됩니다.
- 해가 여러 개인 경우, 문제의 특성을 잘 파악해 필요한 해만 얻을 수 있게 설정을 합니다. 정의역 파악을 잘 하면 불필요한 초기값은 제외하고 작업을 할 수 있습니다. 예를 들어, 시간에 대한 함수이면 음수인 해는 필요없으니 초기값을 양수에서만 설정합니다.
미분 자체가 어려운 함수인 경우
미분 가능하긴 하지만 미분을 구하기 어렵다면 [[secant method]]를 이용해 미분을 안 구하는 방법으로 시도해볼 수 있습니다.
뉴턴법의 f′(xn)을 아래와 같이 바꿉니다.
f′(xn)≈f′n=f(xn)−f(xn−1)xn−xn−1
순간기울기를 평균기울기로 바꿔서 진행한다.
다음과 같이 된다.
xn+1=xn−(xn−xn−1)f(xn)f(xn)−f(xn−1)
그림에서 보듯이 접선이 아닌 평균기울기를 통해서 근사해를 찾아갑니다.
마치며
근사해를 구하는 방식은 많습니다. 각 장단점를 고려해서 구하고자 하는 방정식에 가장 적합한 방법을 사용한다면 효율적으로 근사해를 구할 수 있습니다.
함께보면 좋은글
[수치해석] Spline interpolation(스플라인 보간법)
컴퓨터로 보간법을 사용한다고 할 때 코딩짜기 편한게 스플라인 보간법이 아닌가 싶습니다. 스플라인도 마찬가지로 주어진 데이터에 대한 다항식을 찾아내는 작업인데 piecewise 방법으로 접근한
seong6496.tistory.com
[Python] 회귀(Regression)
회귀 분석을 파이썬으로 구현(?)해보겠습니다. 회귀분석을 통해서 데이터 분석을 많이 하게 되는데요. 보통 선형 회귀 모델을 많이 쓰고 있는데 이번 포스팅에서는 일반적인 모형을 통해 전체적
seong6496.tistory.com
'수학' 카테고리의 다른 글
Mathcha Latex 안 배우고 수식 편집하기 (1) | 2025.01.11 |
---|---|
[수학경시] 7/17과 9/19 중 어느게 더 클까? (3) | 2024.10.01 |
[통계학] 검정 통계량 종류 (4) | 2024.09.29 |
[수학경시대회] 배수판정법 (8) | 2024.09.20 |
수학 도형 만드는 사이트(feat.알지오매스) (0) | 2024.07.01 |
데이터목장님의
글이 좋았다면 응원을 보내주세요!