多変数を引数にとるスカラー関数のベクトルや行列による偏微分というものが応用数学ではよく現れる.とくにベクトルによる偏微分を列ベクトルとするか行ベクトルとするかは教科書によって流儀が異なる.

問題定義

n次元の変数を引数にとる関数 $h : \mathbb{R}^n \rightarrow \mathbb{R}: \boldsymbol{x} \rightarrow h(\boldsymbol{x})$ を以下のように偏微分する.

$$ \dfrac{\partial h(\boldsymbol{x})}{\partial \boldsymbol{x}} $$

これがスカラーではないのは明らかだが,縦ベクトル,横ベクトルどちらとして扱うのが適当だろうか?またベクトル値関数$\boldsymbol{f}: \mathbb{R}^n \rightarrow \mathbb{R}^m: \boldsymbol{x} \rightarrow \boldsymbol{f}(\boldsymbol{x})$ があった時,その偏微分

$$ \dfrac{\partial \boldsymbol{f}}{\partial \boldsymbol{x}} $$

は数学的にどういうオブジェクトだろうか?この場合は「ヤコビアン」なので行列として扱うのが適当であるかもしれない.つまり偏微分演算子は一般的に「縦に広げる」

$$\begin{align*} \dfrac{\partial}{\partial \boldsymbol{x}} = \begin{pmatrix} \dfrac{\partial}{\partial x_1} \\ \vdots \\ \dfrac{\partial}{\partial x_n} \end{pmatrix} \end{align*}$$

のか,それとも「横に広げる」

$$ \dfrac{\partial}{\partial \boldsymbol{x}} = \left( \dfrac{\partial}{\partial x_1}, \cdots \dfrac{\partial}{\partial x_n} \right) $$

のかという問題である.

これは以下に述べるように色々な解釈ができるが,2次近似までしか相手にしない工学系の学生にとっては,3つ目の解釈が最も良いと思う(あくまで個人的には).しかし最後の共変高階テンソルとしての解釈が本質的ではあると思う.我々が紙の上では高々2次元の演算子(行列)しか書けない以上,結局のところ「縦か横か」という書き方の問題は本質的ではないと思われる.

ロボティクス

『ロボットと解析力学』 では次のように,縦ベクトルとして定義している(p.66より引用).

ここで $\partial x_i / \partial \boldsymbol{q}$ は $x_i$ のベクトル $\boldsymbol{q}$ による勾配ベクトルと呼ばれるが,行ベクトル表示となっている.すなわち $$ \left( \dfrac{\partial x_i}{\partial \boldsymbol{q}} \right)^{\text{T}} = \left( \dfrac{\partial x_i}{\partial q_1},\dfrac{\partial x_i}{\partial q_2}, \cdots, \dfrac{\partial x_i}{\partial q_n} \right) $$

つまり $q$ が縦ベクトルであるのに合わせて「縦に広げ」ている.この流儀だと $\boldsymbol{q}$ の転置で偏微分すれば横ベクトルになるといったところだろうか.

$$ \dfrac{\partial x_i}{\partial \boldsymbol{q}^{\text{T}}} = \left( \dfrac{\partial x_i}{\partial x_1}, \cdots, \dfrac{\partial x_i}{\partial x_n} \right) $$

ヘッセ行列は次にようになる.

$$ \left( \dfrac{\partial^2 x_k}{\partial \boldsymbol{q}^{\text{T}} \partial \boldsymbol{q}} \right) = \left( \dfrac{\partial^2 x_k}{\partial q_i \partial q_j} \right)_{ij} $$

ピュアマス

『多様体の基礎』 では,接ベクトルの定義のところでこれが出てくる.一般に微分幾何学においては,n次元多様体上の位置としての $\boldsymbol{x} \in \mathbb{R}^n$ とその点での速度ベクトルとしての $\boldsymbol{v}_x \in \mathbb{R}^n$ は異なるものであり(同じ次元の変数だけれど), $\boldsymbol{v}_x$ は接空間 $\mathrm{TN}_x$ と呼ばれる別の空間に存在している.この空間の基底を $e_1, \cdots, e_n$ とするのであるが,これらは以下のように表示されている.

$$ (e_1, \cdots, e_n) = \left( \dfrac{\partial}{\partial x_1}, \cdots, \dfrac{\partial}{\partial x_n} \right) $$

これらは「ベクトル場」の基底である.よって偏微分の演算子はベクトルである(あるいはベクトルは偏微分演算子である)という微分幾何学の解釈のもとでは(そして基底ベクトルが縦であるという常識に則ると)ベクトルの偏微分は「縦に広げる」

$$ \dfrac{\partial}{\partial \boldsymbol{x}} = \begin{pmatrix} \dfrac{\partial}{\partial x_1} \\ \vdots \\ \dfrac{\partial}{\partial x_n} \end{pmatrix} $$

のが適切である.では「横ベクトル」は何なのかというと,これは微分形式(1ベクトル) $dx$ に相当する.なぜならば微分幾何学においては関数の全微分$df$はベクトルを引数に取ってその方向の方向微分値を返す演算子(線形汎関数)であり,以下のように内積を作れるためである.方向微分する方向ベクトルを

$$ \boldsymbol{v} = v_i \left( \dfrac{\partial}{\partial x_i} \right) $$

とすると(縮約をとっている)

$$ (df)(\boldsymbol{v}) = \left\langle \dfrac{\partial f}{\partial x_i} dx_i, v_j \dfrac{\partial}{\partial x_j} \right\rangle = v_i \dfrac{\partial f}{\partial x_i} $$

となり確かにスカラー(方向微分値)を返している.つまり以下のように内積を計算できるので

$$ \left\langle dx_i, e_j \right\rangle = (0, \cdots, 1, \cdots, 0)(0, \cdots, 1, \cdots, 0)^{\text{T}} = \delta_{ij} $$

計算上は

$$ dx_i = e_i^{\text{T}} $$

とみなすことができる.

工学(制御1)

システム制御理論入門 においては以下のように「縦に広げる」演算子となっている(p48,2-9節).

$$ \dfrac{\partial J}{\partial \boldsymbol{x}} = \begin{pmatrix} \dfrac{\partial J}{\partial x_1} \\ \vdots \\ \dfrac{\partial J}{\partial x_n} \end{pmatrix} $$

またベクトル値関数 $\boldsymbol{f}(\boldsymbol{x})$ のヤコビアンは以下のように,分子の $\boldsymbol{f}$ を横に広げて行列にしている.

$$ \dfrac{\partial \boldsymbol{f}(\boldsymbol{x})}{\partial \boldsymbol{x}} = \begin{pmatrix} \dfrac{\partial f_1}{\partial x_1} & \dfrac{\partial f_2}{\partial x_1} & \cdots & \dfrac{\partial f_m}{\partial x_1} \\\ \vdots & \vdots & \ddots & \vdots \\ \dfrac{\partial f_1}{\partial x_n} & \dfrac{\partial f_2}{\partial x_n} & \cdots & \dfrac{\partial f_m}{\partial x_n} \end{pmatrix} $$

少しこじつけ感がある.

工学(制御2)

非線形最適制御入門 においては以下のように「横に広げる」演算子となっている(p14).

ベクトル $\boldsymbol{x} = (x_1, \cdots, x_n)$ を変数とするスカラー値関数 $f(\boldsymbol{x})$ の $\boldsymbol{x}$ による微分は $$ \dfrac{\partial f}{\partial \boldsymbol{x}} = \left( \dfrac{\partial f}{\partial x_1}, \dfrac{\partial f}{\partial x_2}, \cdots , \dfrac{\partial f}{\partial x_n} \right) $$ のように偏導関数を並べた横ベクトルとする.

この記法の利点は,テイラー展開とヤコビアンがwell-definedになることである .一般に関数のテイラー展開は $f(x + \Delta x) = f(x) + f^{\prime}(x) \Delta x + \cdots$ であるが,もし偏微分が横ベクトルになるのであれば,この記法をそのまま多変数に拡張しても

$$ f(\boldsymbol{x} + \Delta \boldsymbol{x}) = f(\boldsymbol{x}) + \dfrac{\partial f}{\partial \boldsymbol{x}}\Delta \boldsymbol{x} + \cdots $$

の第2項がスカラーになる.またベクトル値関数のヤコビアンも自然と「横に伸びて」行列になる.

$$ \dfrac{\partial \boldsymbol{f}}{\partial \boldsymbol{x}} = \begin{pmatrix} \dfrac{\partial f_1}{\partial x_1} & \cdots & \dfrac{\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \dfrac{\partial f_m}{\partial x_1} & \cdots & \dfrac{\partial f_m}{\partial x_n} \end{pmatrix} $$

するとテイラー展開の第二項は

$$ \dfrac{1}{2} \Delta \boldsymbol{x}^{\text{T}} \dfrac{\partial \boldsymbol{f}}{\partial \boldsymbol{x}} \Delta \boldsymbol{x} $$

という二次形式になる.

共変高階テンソル成分として

ベクトル場のヤコビアンとスカラー関数のヘッセ行列はどちらとも行列として表されることになるが,前者は1階共変1階反変であるのに対し,後者は2階共変であるため,幾何学的な身分は異なっている(つまり偏微分を行うごとに共変成分の階数が上がる)