표기법을 위해, 이라고 가정합시다 (즉, 벡터를 입력 값으로 사용하고 동일한 크기의 벡터를 출력하는 벡터 값 함수입니다). 계산 비용과 수치 정확도라는 두 가지 문제가 있습니다.에프: R엔→ R엔
미분 계산 (자 코비안 행렬 J ( X ) 또는 ( ∇ F ( X ) ) T 원하는대로 또는) 유한 차를 이용하여 요구하려고 N 함수 평가. 정의에서 직접 부동 소수점 산술을 사용하여 미분을 계산할 수 있다면 차이 몫을 계산해야합니다D f( x )제이( x )( ∇ f( x ) )티엔
D f( x ) 전자나는= 임ε → 0에프( x +εei)−f(x)ε
D f 의 희소성 패턴을 알고 있거나 감지 할 수 있기 때문에 어떤 종류의 "스마트 유한 차분"(Curtis-Powell-Reid와 같은)을 수행하지 않는다고 가정 할 때 각 . 경우 n이 크고, 그 기능 평가를 많이 될 수 있습니다. D f에 대한 분석식이 있으면 계산이 더 저렴할 수 있습니다. 함수 평가 비용의 약 3 ~ 5 배에서 D f 를 계산하기 위해 경우에 따라 자동 (알고리즘이라고도 함) 미분 방법을 사용할 수도 있습니다 .i = 1 , … , nD f엔D fD f
수치적인 문제도 있습니다. 제로로 간다 물론, 컴퓨터에, 우리는 그래서 우리는 대략 때, 스칼라의 제한을받을 수 없어 , 우리가 정말 따기하고 ε "작은"수와 계산D fε
디f( x ) 전자나는≈f( x + ε e나는) −f( x )ε,
여기서 는 근사값을 의미하며, 우리는 그것이 근사한 근사값이기를 바랍니다. ε를 너무 크게 선택하면 근사값이 나빠질 수 있지만 ε을 너무 작게 선택하면 큰 반올림 오류가 발생할 수 있기 때문에 부동 소수점 산술에서이 근사값을 계산하는 것은 어렵 습니다. 이러한 효과는 Wikipedia 기사 에서 피상적 인 세부 수치 표현에 관한 것입니다 . 자세한 내용은 기사에서 찾을 수 있습니다.≈εε
Jacobian 행렬 의 오차 가 너무 크지 않으면 Newton-Raphson 반복이 수렴됩니다. 자세한 이론적 분석 은 Nick Higham 의 수치 알고리즘 의 정확도 및 안정성 25 장 또는 이를 기반으로하는 Françoise Tisseur의 논문 을 참조하십시오.D f
라이브러리는 일반적으로 이러한 알고리즘 세부 사항을 처리하며 일반적으로 Newton-Raphson 알고리즘 (또는 그 변형)의 라이브러리 구현은 매우 훌륭하게 수렴되지만, 종종 단점으로 인해 문제가 발생하는 문제가 있습니다 위. 스칼라 경우 에서는 실제로 견고성과 우수한 수렴 속도로 인해 Brent의 방법을 사용 합니다.( n = 1 )