線型性の美しさを理解したい!


数学を勉強していると至る所で「線型」というワードが出てくることに気がつきます。
定義が理解できてもずっと線型であることで何が嬉しいのかとか全く分かっていませんでした。そこで線型性について考えてみたので記事にします。

線型性とは英語でLinearityで、日本語では線型性、線形性とかで書かれることが多いかと思います。どう書いても正しいと思うのですが、本記事では線型性という漢字を用います。また、感覚的な理解を優先しますので、厳密さには欠けるかもしれませんがご容赦下さい。

目指すゴール

y = x

という関数に涙を流す。

対象者

線型であるとはどういうことかは分かるが何かモヤモヤが残る

定義

写像fがベクトルx, yとスカラーkに対して

(1)\quad f(x + y) = f(x) + f(y) \\
(2)\quad f(kx) = kf(x)

が成立する時、fは線型であると言われます。
またn次元に拡張させると、(1),(2)より一般的に

f(\sum_{i=1}^{n}k_{i}x_{i}) = \sum_{i=1}^{n}k_{i}f(x_{i})

という風に表現することもできます。

数式からの理解

線型である関数の例として一番わかりやすい

f(x) = x

という関数が線型であることを確かめます。

ベクトルx, yとスカラーkに対して

\begin{align}
(1)\quad f(x+y) &= x + y \\
&= f(x) + f(y) \\
(2)\quad f(kx) &= kx \\
&= kf(x)
\end{align} 

x = 2, y = 3, k = 4として代入してみると、

\begin{align}
(1)\quad f(2+3) &= f(5) = 5 \\
 f(2) + f(3) &= 2 + 3 = 5 \\
(2)\quad f(4 \times 2) &= f(8) = 8 \\
4 \times f(2) &= 4 \times 2 = 8
\end{align} 

答えが一致していることがわかりますね。

次に線型でない関数の例をみてます。

f(x) = x^{2}

という関数が線型でないことを確かめます。

ベクトルx, yとスカラーkに対して

\begin{align}
(1.a)\quad f(x+y) &= (x + y)^{2} \\
&= x^{2} + 2xy + y^{2} \\
(1.b)\quad f(x) + f(y) &= (x)^{2} + (y)^{2} \\ 
&= x^{2} + y^{2} \\
(2.a)\quad f(kx) &= (kx)^{2} \\
&= k^2x^2 \\
(2.b)\quad kf(x) &= k(x)^{2} \\
&= kx^{2} \\
\end{align} 

(1.a)と(1.b)、(2.a)と(2.b)がそれぞれ不一致なのがわかるかと思います。

グラフからの理解

ここでは線型である関数を視覚から捉えてみましょう。

desmosを用いて線型な関数を描画してみます。

ここでは単純に

y = x \\
y = -\frac{2}{3}x

という2つの関数をグラフで表示しています。

グラフを見て2つの関数に共通していることは

  • 直線である
  • 原点(0, 0)を通っている。

ふむふむ。
では線型ではない関数の例はどのようなものがあるでしょうか。


ここでは線型ではない関数の一例として以下の3つの関数

y = x^{2} \\
y = -2x + 3 \\
y = \sin x

をグラフで表示しています。

先程の線型である関数との対比で考えると、

  • 直線でない (赤色、緑色)
  • 原点を通っていない (青色)

などの特徴を見て取れると思います。

言葉からの理解

ここまで来ればある程度線型な関数とはどういうものか理解できたかと思います(そうであれば嬉しい)

  1. 直線であること
  2. 原点(0,0)を通ること

を押さえておけば、なんとかなるでしょう。

しかし、何かモヤモヤが残りませんか?
少なくとも僕は何か線型性の美しさを十分に味わえてない感じがしました。
数学ではよくある、知ってるけど結局何を言っているのかよく分からない病ですね。
美しさの伴わない理解ほど、説得力に欠けるものはありません。
現段階では十分に理解していないのでしょう。

数学で迷った時の掟は定義に戻ることでしたね。なのでもう一度定義を見ます。

f(\sum_{i=1}^{n}k_{i}x_{i}) = \sum_{i=1}^{n}k_{i}f(x_{i})

左辺は各構成要素の和を先に求めてから関数で処理しています。
右辺は各構成要素を先に関数で処理し、その後に和を求めています。
そして線型であるとはその両者が一致するということです。

これを少し意訳してみると、
各構成要素の1つ1つの結果を求めれば、それを繋ぎ合わせることで全体の結果を求めることができると線型性は言っているのです。

この性質が力を発揮するのは構成要素が大量にある場合です。その大量の構成要素を全部まとめて処理するのは大変だけど、構成要素を1つずつに分解して処理しても、それを最終的に繋ぎ合わせれば同じ結果が得られることを線型性は保証してくれています。

逆に線型でない関数では、各構成要素の結果を繋ぎ合わせても全体の結果に一致するとは限らない。つまり、各構成要素の振る舞いから単純に全体の振る舞いを予想することはできないのです。

それ故に非線型なものは扱いが難しく、線型であるものは扱いやすいので数学の至る所(特に数学な基本的な所)で登場するのですね。

ここで線型である関数のグラフを振り返ってみると

線型である関数が必然的に直線となることの意味が見えてくるのではないでしょうか。
また原点を通る理由も、各構成要素全てが0である時に限って、全体も0となることを保証しているのですね。

パズルのピースを正しく繋ぎ合わせると、線型なパズルだとちゃんと表紙の絵に一致してくれるみたいな感じですかね?(誤解をうむようなら忘れてください笑)

線型性の美しさは微視的な世界と巨視的な世界を矛盾なく繋ぎ合わせるところにあるのではないでしょうか。

最後に

皆さん、準備はいいですか?

美しい。

参考資料