$$ \begin{align*}
f^\prime(x)
&\equiv\lim_{h\rightarrow0}\frac{f(x+h)-f(x)}{h} \\ &\equiv\lim_{h\rightarrow0}\frac{f(x+h/2)-f(x-h/2)}{h} \\ &\equiv\lim_{h\rightarrow0}\frac{f(x)-f(x-h)}{h}
\end{align*} $$
using SymEngine
@vars X;
f = x^2 + x/2 - sin(x)/x
diff(f, x) # 1/2 + 2*x + sin(x)/x^2 - cos(x)/x
그래디언트는 접초평면(=tangent hyperplane)의 오르막 경사가 가장 가파른 방향을 가리킨다.
좋은 근사식을 얻기 위해 충분히 작지만, 너무 작아서 수치적 차분을 할 때 분모가 0이 되는 문제를 야기하지 않도록 $h$를 선택해야 한다. 복소수 스텝에 대해 테일러 전개를 하면 다음과 같다.
$$ f(x+ih)
=f(x)
+ihf^\prime(x)
-h^2\frac{f^{\prime\prime}(x)}{2!}
-ih^3\frac{f^{\prime\prime\prime}(x)}{3!}
위 식에서 복소수 부분만을 취해 미분 근사값을 얻을 수 있다.
$$ \text{Im}(f(x+ih))=hf^\prime(x)-h^3\frac{f^{\prime\prime\prime}}{3!}+\cdots $$
$$ \begin{align*}
\Rightarrow f^\prime(x) &=\frac{\text{Im}(f(x+ih))}{h}+h^2\frac{f^{\prime\prime\prime}(x)}{3!} - \cdots \\ &=\frac{\text{Im}(f(x+ih))}{h}+O(h^2)\text{ as } h \rightarrow 0
\end{align*} $$
실수 부분은 $h\rightarrow0$에 점금함에 따라 $f(x)$를 $O(h^2)$ 내로 근사한다.
$$ \text{Re}(f(x+ih))=f(x)-h^2\frac{f^{\prime\prime}(x)}{2!}+\cdots $$
$$ \Rightarrow f(x)=\text{Re}(f(x+ih))+h^2\frac{f^{\prime\prime}(x)}{2!}-\cdots $$
결과적으로 복소수 이자로 $f$를 한번만 평가해 $f(x)$와 $f^\prime(x)$를 모두 구할 수 있다.
테일러 전개를 하면,
$$ f(x)=\sum^\infty_{k=0}\frac{f^{(k)}(a)}{k!}(x-a)^k $$