
高階微分法とライプニッツの公式
y = f(x) の導関数を f′(x) とするとき,第二階の導関数を f′′(x) と表記し,第 n 階の導関数を f(n)(x) と表記します. 一点 x において
$$ \begin{gather} f^{\prime\prime}(x) = \frac{d}{dx}\left(\frac{dy}{dx}\right) = \frac{d^2y}{dx^2}\\ f^{(n)}(x) = \frac{d^ny}{dx^n} \end{gather} $$
となります.
▶ 記号の差異: d2y vs dx2
d2y = d(dy),dx2 = (dx)2 の意味で,この意味の差異を表現するため記号でも表記が異なっています.微分記号を用いて
dy = f′(x)dx
と書くとき,両辺の微分を取れば,
$$ \begin{align} d(dy) &= \frac{d(f^{\prime}(x))}{dx}(dx)^2 + f^\prime(x)\frac{d(dx)}{dx}dx\\ &= f^{\prime\prime}(x)(dx)^2 + f^\prime(x)d(dx) \label{eq-second-diff} \end{align} $$
x が独立変数であるならば dx は x の水準関係なく自由に取れるので,$\frac{d(dx)}{dx} = 0$.従って,
d2y = f′′(x)dx2
となります.もし,x = φ(t) であるならば,d2x = φ′′(t)dt2 となるので
$$ \frac{d}{dt^2}f(\varphi(t)) = f^{\prime\prime}(\varphi(t))(\varphi^\prime(t))^2 + f^\prime(\varphi(t))\varphi^{\prime\prime}(t) $$
ライプニッツの公式
定理 1 : ライプニッツの公式(Leibniz rule)
u, v が x の関数であるとき,
$$ \begin{align} \frac{d^n(uv)}{dx^n} &= u^{(n)}v + \left(\begin{array}{c}n\\1\end{array}\right)u^{(n-1)}v^{\prime} + \left(\begin{array}{c}n\\2\end{array}\right)u^{(n-2)}v^{\prime\prime}+\cdots+ \left(\begin{array}{c}n\\n-1\end{array}\right)u^{\prime}v^{(n-1)} +uv^{(n)}\\ &= \sum_{k=0}^n \left(\begin{array}{c}n\\ k\end{array}\right)u^{(n-k)}v^{(k)} \end{align} $$
例 1
y = x2sin (x) について n 階導関数を求めめたいとします.
$$ (\sin x)^{(k)} = \sin\left(x + \frac{\pi}{2}k\right) $$
であるので
n = 1 のときは
$$ y^\prime = x^2\sin\left(x + \frac{\pi}{2}\right) + 2x\sin(x) $$
n ≥ 2 のときは,x2 が2回微分可能であることを考慮してライプニッツルールを利用すると
$$ \begin{align} \frac{d^n}{dx^{n}}(x^2\sin x) &= x^2(\sin(x))^{(n)} + 2nx(\sin(x))^{(n-1)} + n(n-1)(\sin(x))^{(n-2)}\\ &= x^2\sin\left(x + \frac{\pi}{2}n\right) + 2nx\sin\left(x + \frac{\pi}{2}(n-1)\right) + n(n-1)\sin\left(x + \frac{\pi}{2}(n-2)\right) \end{align} $$
例 2
$$ \begin{align} (x\sin x)^{(n)} = x\sin\left(x + \frac{\pi}{2}n\right) + n \sin\left(x + \frac{\pi}{2}(n-1)\right)\\ (x\cos x)^{(n)} = x\cos\left(x + \frac{\pi}{2}n\right) + n \cos\left(x + \frac{\pi}{2}(n-1)\right)\\ (x^2\exp(x))^{(n)} = x^2\exp(x) + 2nx\exp(x) + n(n-1)\exp(x) \end{align} $$
有限個の多項式のテイラー展開
n 次式の f(x) を考えます.このとき,定義域の任意の点 a を用いて,以下のように表すとします
f(x) = a0 + a1(x − a) + a2(x − a)2 + ⋯ + an(x − a)n
x = a のとき,f(a) = a0.両辺を k 回微分すると
$$ f^{(k)}(x) = a_kk! + a_{k+1}\frac{(k+1)!}{1!}(x-a) + a_{k+2}\frac{(k+2)!}{2!}(x-a)^2 + \cdots + a_{n}\frac{n!}{(n-k)!}(x-a)^{n-k} $$
このとき,f(k)(a) = akk! であるので,$a_k = \frac{f^{(k)}(a)}{k!}$ を得る.従って,n 次式の f(x) は
$$ f(x) = f(a) + \frac{f^{\prime}(a)}{1!}(x-a) + \frac{f^{(2)}(a)}{2!}(x-a)^2 + \cdots + \frac{f^{(n)}(a)}{n!}(x-a)^n\label{eq-poly} $$
と表すことが出来ます.
例 3
f(x) = xn を
f(x) = a0 + a1(x − 1) + a2(x − 1)2 + ⋯ + an(x − 1)n
で表したいとします.このとき, より
$$ \begin{align} x^n &= 1 + \frac{n}{1!}(x-1)+ \frac{n(n-1)}{2!}(x-1)^2 + \cdots + \frac{n!}{n!}(x-1)^n\\ &= \sum_{k=0}^n \left(\begin{array}{c}n\\ k\end{array}\right)(x-1)^k \end{align} $$
と表せます.これを更に式変形すると
$$ \begin{align} \sum_{k=0}^n \left(\begin{array}{c}n\\ k\end{array}\right)(x-1)^k &= \sum_{k=0}^n \left(\begin{array}{c}n\\ k\end{array}\right)(x-1)^k 1^{n-k}\\ &= (x - 1 + 1)^n\\ &= x^n \end{align} $$
よって xn の x = 1 まわりでのテイラー展開は (x − 1 + 1)n の二項展開と関係づけて理解することが出来ます.
定理 2
n 次式の f(x) について,x = a が k 重解であるための必要十分条件は
$$ \begin{gather} f(a) = f^\prime(a) = \cdots = f^{(k-1)}(a) = 0\\ f^{(k)}(a) \neq 0 \end{gather} $$
例 4
f(x) = x4 + ax2 + bx + c = 0
が x = 1 を3重解に持つようにするようにパラメータを定めたいとします.
$$ \begin{align} f(1) &= 1 + a + b + c = 0\\ f^\prime(1) &= 4 + 2a + b = 0\\ f^{\prime\prime}(1) &= 12 + 2a = 0\\ f^{(3)}(1) &= 24 \neq 0\\ \end{align} $$
これを解くと,(a, b, c) = (−6, 8, −3).これを用いて整理すると
f(x) = (x − 1)3(x + 3)
となります.
コード
import numpy as np
import matplotlib.pyplot as plt
def func_x(x, a, b, c):
return x**4 + a*x**2 + b*x + c
x_domain = np.linspace(-4, 4, 100)
plt.plot(x_domain, func_x(x_domain, *(-6, 8, -3)), label='$f(x) = x^4 - 6x^2 + 8x - 3$')
plt.plot(x_domain, func_x(x_domain, *(-8, 12, -5)), label='$f(x) = (x-1)^2(x^2+2x-5)$')
plt.xlabel('X')
plt.ylabel('y')
plt.axhline(0, color='gray', linestyle='--', linewidth=0.7)
plt.legend()
plt.xlim(-4, 4)
plt.show()