f(x):=f1(x)⋮fN(x) 와 같은 다변수 함수f:RN→RN 가 f∈C2(N(α)) 이고 f(α)=0, [Df(α)]−1 이 존재한다고 하자. α 와 충분히 가까운 초기값 x0 에 대해
xn+1:=xn−[Df(xn)]−1f(xn)
과 같이 정의된 수열{xn} 은 n→∞ 일 때 α 로 쿼드러틱하게 수렴한다.
f∈C2(N(α)) 이라는 것은 α 의 근방에서 f 가 두 번 미분가능하고 연속임을 의미한다.
{x+cos(x−y)=0−y+sin(x+y)=0
예로써 위와 같은 문제가 있다고 하자. 리니어 시스템이라면야 선형대수의 툴을 써서 비교적 쉽게 답을 낼 수 있겠지만 넌리니어일 경우 이처럼 두 변수가 섞여있어서 풀이가 어렵다. 하지만 뉴턴 메소드는 수치적이긴 해도 잘만 풀어낸다.
뉴턴-랩슨 메소드의 일반화
뉴턴-랩슨 메소드는 그 자체의 속도가 굉장히 빠를 뿐만 아니라 넌리니어 시스템
⎩⎨⎧f1(x1,⋯,xN)=0⋮fN(x1,⋯,xN)=0
을 풀 수 있는 범용성까지 갖추었다. 게다가 유도와 증명도 1차원에서 그냥 다차원으로 일반화할 뿐 기본적인 골자는 똑같다. 특히 f:R→R 이라고 하면 [Df(xn)]−1=f′(xn)1 이 됨을 자연스럽게 알 수 있다. 이는 자코비언이 벡터함수의 미분계수와 같은 역할을 하기 때문이다.
요약하자면 이해하기 쉬운데 빠르고 풀 수 있는 문제가 많아서 아주 좋은 메소드다. 뉴턴 메소드를 구사할 줄 안다면 대부분의 분야에서 방정식을 푸는 가장 좋은 툴을 알고 있다고 생각해도 좋다.
구현
다음은 뉴턴 메소드를 R 코드로 구현한 것으로, 자코비언을 구하기 위해numDeriv 패키지를 사용했다.