Phys and Tips

物理学やその他もろもろのTipsを紹介します。

微分係数は接線の傾き、では全微分は?

はじめに

1 変数関数 $f (x)$ の微分 $\indiff{f}{x}$ の意味は? と聞かれたら、だいたいの人は「そりゃ、 $f(x)$ の接線の傾きでしょ」と答えられると思う*1。では、 2 変数関数 $g(x, y)$ の全微分 (total derivative) \[
dg = \pdiff{g}{x} dx + \pdiff{g}{y} dy
\]の意味は? と聞かれたときに、シンプルに答えられる人はどれくらいいるだろうか? この記事では、偏微分の理解を前提としてこの問に対するシンプルな答えを考えていく。

1 変数関数の「全微分」は直線の式である

……と言いながら、まずは 1 変数関数の話からしていこう。なぜなら、 1 変数関数のときに考えたことが 2 変数関数のときに役立つからだ。別の言い方をすると、 2 変数関数がわからないという場合、 1 変数関数から 2 変数関数へ考えを拡張するにあたってどこかしらにギャップが存在しているということだ。それがどこかはわからないが、1 変数から議論していく上でそれを明らかにしようと意識しながら読んでいくといいだろう。

考えたいものは全微分なので、1 変数関数の「全微分」を考えてみよう。全微分は多変数関数のためだけのものではない。もちろん 1 変数関数 $f(x)$ に対しても考えることができる。こんな感じだ。\[
\begin{align}
df &= \pdiff{f}{x} dx
\nonumber
\\
&= \diff{f}{x} dx
\end{align}
\]いかがだろうか? 1 行目から 2 行目は、 $f$ が 1 変数関数であることを考慮して $\inpdiff{f}{x} = \indiff{f}{x}$ であることを使ったが、ただの書き方の問題と思っていただいて構わない。もしこの結果が信じられないなら $f$ を無理やり $x$ と $y$ の 2 変数関数だとみなして\[
\begin{align*}
df &= \pdiff{f}{x} dx + \pdiff{f}{y} dy &
\\
&= \pdiff{f}{x} dx & \ (\because \pdiff{f}{y} = 0)
\\
&= \diff{f}{x} dx &
\end{align*}
\]としても同じ結論が得られる。 1 行目から 2 行目へいくのに、 $f(x)$ は $y$ に依存していないため $\inpdiff{f}{y} = 0$ であることを使った。

さて、 1 変数の全微分の式を納得していただいたところで、話を具体的にするため $x = a$ まわりの全微分\[
\at{df}{x=a} = \at{\diff{f}{x}}{x = a} dx
\]で考えていこう。

この式は、直線を表している。 $x$ の値を $a$ に決めた時点で $\at{\indiff{f}{x}}{x = a}$ の値は決まる。定数になるのだ。つまり、\[
df = (定数) \times dx
\]という形になっており、$df$ や $dx$ を変数とみなせばこれは見慣れた比例の式である。すなわち直線となる。

この様子を図で表すと以下のようになる。 $x$ が $a$ からどれだけ離れた値をとるかが $dx$ であり(横向きの矢印)、そのときの $f$ の変化量の推定値が $df$ となっている(縦向きの矢印)。$dx$ が非常に小さいときは(そして通常そのように仮定する)この推定はとてもよいものになっているが、あまりにも $dx$ を大きくしすぎてしまうと推定は実際とズレていってしまう*2。オレンジの縦矢印は関数の青線と近いが、赤の縦線は関数の青線から遠くなっていることがわかるだろう。

つまりこれは、 $f(x)$ を $x = a$ のまわりで直線近似しているということに他ならない。1 次までのテイラー展開をとっていると考えることもできるだろう。

まとめると、\[
\at{df}{x=a} = \at{\diff{f}{x}}{x = a} dx
\]という 1 変数関数の全微分の式は、 $x = a$ における $f$ の接線の傾き $\diff{f}{x}$ を傾きにもった「直線」の式である、ということになる。

ベクトルを使って図形的に考える

先程の話をベクトルを使って図形的に考えるとどうなるだろうか? $x$ ― $f(x)$ 平面上の点 $(x, f(x))$ をベクトルとして考えると\[
\begin{align}
\bm{s} = \left(\begin{array}{c}
x
\\
f(x)
\end{array}\right)
\end{align}
\]と表せる。このとき、 $x$ を $a$ から $dx$ だけ微小変化させたときのベクトル $\bm{s}$ の全微分 $\at{d\bm{s}}{x = a}$ は\[
\begin{align}
\at{d \bm{s}}{x = a} &= \at{\left(\begin{array}{c}
dx
\\
df
\end{array}\right)}{x = a}
\nonumber
\\
&= \left(\begin{array}{c}
dx
\\
\displaystyle{\at{\diff{f}{x}}{x = a} dx}
\end{array}\right)
\nonumber
\\
&= \left(\begin{array}{c}
1
\\
\displaystyle{\at{\diff{f}{x}}{x = a}}
\end{array}\right) dx
\end{align}
\]となる。ここでも $\at{\indiff{f}{x}}{x = a}$ は定数なので、\[
\at{d \bm{s}}{x = a} = (定ベクトル) dx
\]となっており、これは直線を表す。そして、この\[
\left(\begin{array}{c}
1
\\
\displaystyle{\at{\diff{f}{x}}{x = a}}
\end{array}\right)
\]は、まさしく $x = a$ における $f(x)$ の接線の向きを向いたベクトルなのである。ちょうど下の図のような感じだ。

いずれにせよ、全微分が関数上のある点(この場合は $(a, f(a))$)における接線、すなわち直線を表しているということは再確認していただけたと思う。

2 変数関数の「全微分」は平面の式である

ではいよいよ目的だった 2 変数関数 $g(x, y)$ の全微分について考えていこう。式をもう一度書いておく。\[
\begin{align}
dg = \pdiff{g}{x} dx + \pdiff{g}{y} dy
\label{eq:binary_total_derivative}
\end{align}
\]こうだった。また、 $g(x, y)$ は下図のように空間 $x$ ― $y$ ― $g$ 上の曲面を表しているということを確認しておこう*3

またもや、問題を具体的にするために $(x, y) = (a, b)$ まわりの $g(x, y)$ の全微分\[
\begin{align}
\at{dg}{(x, y) = (a, b)} = \at{\pdiff{g}{x}}{(x, y) = (a, b)} dx + \at{\pdiff{g}{y}}{(x, y) = (a, b)} dy
\label{eq:binary_total_derivarive_ab}
\end{align}
\]を考えよう。セクションのタイトルで言ってしまっているわけだが、これは平面の式を表している。なぜなら、\[
dg = (定数)dx + (定数)dy
\]となっており、これは平面を表す式だからだ*4。ただ、これだけだとどういった平面であるかイメージがつかみにくいだろう。以降の議論で、これがどんな平面なのかを考えていく。

まずは、 2 つの変数を同時に扱うのは大変なのでとりあえず $y = b$ に固定してしまおう。いま $y$ が定数なので、$dy = 0$ という状況を考えていることになる*5。こんなことをしていいのかと言われそうだが、後でちゃんと $y$ も動かすので安心してほしい。この状況では、曲面 $g(x, y)$ は $y = b$ であり $x$ 軸に平行な曲線に制限されることになる(下図参照)。

この曲線はもはや $x$ にしか依存していないので、 $g_{y = b}(x) = g(x, b)$ と表記しよう。この 1 変数関数の全微分は、\[
\begin{align}
dg_{y = b} = \pdiff{g_{y = b}}{x} dx
\end{align}
\]となる。$g_{y = b}(x)$ は現在 1 変数関数だが、将来的に $y$ も動かすことを考えて $\inpdiff{g_{y=b}}{x}$ は偏微分の表記のままにしてある。全微分の式
\eqref{eq:binary_total_derivative} と見比べてみると、今は式 \eqref{eq:binary_total_derivative}
の右辺第 1 項のみを考えていることに対応しているとわかるはずだ。

ここで、例のごとく $x = a$ における全微分を考えよう。式は\[
\begin{align}
\at{dg_{y = b}}{x = a} = \at{\pdiff{g_{y = b}}{x}}{x = a} dx
\end{align}
\]だ。この全微分は、先程の議論から、$x = a$ (かつ $y = b$)の点における曲線 $g_{y = b}(x)$ の接線を表している。図で表すとこんな感じだ。

もちろんこれは、$x$ をまず $a$ に固定したときの $y$ にのみ依存する曲線 $g_{x = a}(y)$ に対しても成り立つ。この全微分の $y = b$ における表現は\[
\begin{align}
\at{dg_{x = a}}{y = b} = \at{\pdiff{g_{x = a}}{y}}{y = b} dy
\end{align}
\]である。こちらも図で描いておこう。

さて、そろそろ全微分\eqref{eq:binary_total_derivarive_ab}がどのような平面かわかってきたのではないだろうか? ――その通り。これは、ふたつの曲線 $g_{y = b}(x)$ 、 $g_{x = a}(y)$ の $(x, y) = (a, b)$ における接線を通るような平面なのだ。つまり、以下のようになる。

1 変数関数の全微分は曲線上のある点まわりで直線近似であったことを覚えているだろうか? 同様に、2 変数関数の場合は曲面上のある点まわりでの平面近似となっているのであり、これは同じくテイラー展開で 1 次の項までを考えていることに対応する。また、曲面に接している平面なので、この平面のことを接平面 (Tangent Plane) と呼ぶ。

また、図から明らかなように、\[
\begin{align}
\at{\pdiff{g_{y = b}}{x}}{x = a} &= \at{\pdiff{g}{x}}{(x, y) = (a, b)}
\\
\at{\pdiff{g_{x = a}}{y}}{y = b} &= \at{\pdiff{g}{y}}{(x, y) = (a, b)}
\end{align}
\]が成り立っていることは意識しておこう*6

ベクトルを使って図形的に考える

これまでで 2 変数関数の全微分は平面を表しているということを説明してきたが、なんだかイマイチイメージがつかめていない人もいるのではないだろうか? そういうときこそ、ベクトルの出番だ。 1 変数のときと同じようにして、曲面上の点をさすベクトル $\bm{t}$ を\[
\begin{align}
\bm{t} = \left(\begin{array}{c}
x
\\
y
\\
g(x, y)
\end{array}\right)
\end{align}
\]のように定義する。このとき $(x, y) = (a, b)$ の点からそれぞれ $dx$ 、 $dy$ だけ微小変化させたときのベクトル $\bm{t}$ の全微分 $\at{d\bm{t}}{(x, y) = (a, b)}$ は\[
\begin{align}
\at{d\bm{t}}{(x, y) = (a, b)} &= \at{\left(\begin{array}{c}
dx
\\
dy
\\
dg
\end{array}\right)}{(x, y) = (a, b)}
\nonumber
\\
&=
\left(\begin{array}{c}
dx
\\
dy
\\
\displaystyle{
\at{\pdiff{g}{x}}{(x, y) = (a, b)} dx + \at{\pdiff{g}{y}}{(x, y) = (a, b)} dy
}
\end{array}\right)
\nonumber
\\
&=
\left(\begin{array}{c}
1
\\
0
\\
\displaystyle{
\at{\pdiff{g}{x}}{(x, y) = (a, b)}
}
\end{array}\right) dx
+
\left(\begin{array}{c}
0
\\
1
\\
\displaystyle{
\at{\pdiff{g}{y}}{(x, y) = (a, b)}
}
\end{array}\right) dy
\end{align}
\]となる。これは例のごとく\[
\begin{align}
\at{d\bm{t}}{(x, y) = (a, b)} = (定ベクトル) dx + (定ベクトル) dy
\end{align}
\]となっており、これは平面の式である。\[
\begin{align}
\bm{V}_x &=
\left(\begin{array}{c}
1
\\
0
\\
\displaystyle{
\at{\pdiff{g}{x}}{(x, y) = (a, b)}
}
\end{array}\right)
\\
\bm{V}_y
&=
\left(\begin{array}{c}
0
\\
1
\\
\displaystyle{
\at{\pdiff{g}{y}}{(x, y) = (a, b)}
}
\end{array}\right)
\end{align}
\]などとでもおけば、その線形結合\[
c_x \bm{V}_x + c_y \bm{V}_y
\]が平面を表すことは比較的容易に理解できるだろう($c_x$ 、 $c_y$ は自由に動けるとする)。

念のため、図を載せておこう。

$x$ 、$y$ 方向それぞれにおける $g$ の接線に平行なベクトル $\bm{V}_x$ 、 $\bm{V}_y$ が張る平面(接平面)が $\at{d\bm{t}}{(x, y) = (a, b)}$ であることが再確認できると思う。

まとめ

この記事では、

  • 1 変数関数の全微分は直線である
  • 2 変数関数のときの全微分は平面である

ことを見てきた。

そうすると当然 $n$ 変数関数ではどうなるのか? という疑問が湧いてくると思うが、基本的な論理の流れは同じである。 3 変数関数では無限に大きな平行六面体になるし、もっと上の次元では超立体になっていく。これらをまとめて接空間 (tangent space) という。いまの話を念頭に置いておけば理解することは可能だと思うので、興味がある人は調べてみるといいだろう。

*1:というより、答えられない人はこの記事を読まないだろうし、ここから先を読んでも面白くないだろう。

*2:f が 1 次関数であればズレていかないが。

*3:今更であるが、全微分を考えたいので$f$ や $g$ は微分可能な関数であることを前提としている

*4:参考:平面の方程式とその3通りの求め方 | 高校数学の美しい物語

*5:$x = a$ 、$y = b$ 「まわりの」といった場合、 $y$ を $b$ に「固定」してしまっているわけではなく、$b$ からちょこっと(具体的には $dy$ だけ)動かすような状況を考えている。今はそうではなく、その「ちょこっとの動き」すらなくしてしまおうというわけだ。

*6:むしろこれが偏微分のイメージである、とも言いたいが、ここでは詳しく話さない。