참고 도서
정의
수치 해석학에서 수치 미분은 함수의 미분 값을 컴퓨터를 이용하여 근사치로 계산하는 방법을 뜻한다.
손으로 미분 값을 계산하기 힘들 때 컴퓨터의 도움을 받아 근사 값을 계산할 수 있다.
미분계수의 정의
미분계수 $f’(a)$는 $x=a$에서의 접선의 기울기를 나타낸다.
$f’(a) = \lim_{b \rightarrow a}{\frac{f(b)-f(a)}{b-a}}$
$b-a=h$라 하면 $b=a+h$가 되고 $b \rightarrow a$일 때 $h \rightarrow 0$이므로 다음과 같이 표현할 수 있다.
$f’(a) = \lim_{h \rightarrow 0}{\frac{f(a+h)-f(a)}{h}}$
전향 차분과 중심 차분
전향 차분
$f’(x)=\lim_{\Delta x \to 0}{\frac{f(x+\Delta x)-f(x)}{\Delta x}}$
중심 차분
$f’(x) = \lim_{\Delta x \to 0}{\frac{f(x+\Delta x) - f(x-\Delta x)}{2\Delta x}}$
근사치 설정
$\Delta x$의 값은 사용하고자 하는 언어에서 언더플로우가 발생하지 않는 적당한 선에서 결정한다.
1 | dx = 1e-5 #(10^-5) |
변수가 1개인 함수의 수치 미분
1 | import numpy as np |
1 | 6.000000000039306 |
편미분 (입력 변수가 2개 이상인 다변수 함수)
$f(x,y) = x^2 + xy + y^2$를 미분한다는 것은
특정 변수를 제외한 나머지 변수를 상수 취급하여 미분을 진행한다.
$\frac{\partial{f(x, y)}}{\partial{x}} = 2x + y$
$\frac{\partial{f(x, y)}}{\partial{y}} = x+2y$
$\frac{\partial{z}}{\partial{x}}{(1,1) = 3}$은 $y=1$ 일 때 곡면의 절단면에서 접선의 기울기이다.
다변수 함수에 대한 수치 미분 코드
$f’(1.0, 2.0)$을 계산하기 위해서는
$\to y=2.0$ 을 상수로 대입하여 $\frac{\partial{f(x, 2.0)}}{\partial{x}}$ 수행
$\to x = 1.0$ 을 상수로 대입하여 $\frac{\partial{f(1.0, y)}}{\partial{y}}$ 수행
1 | def derivative(f, x): |
1 | [4. 5.] |