今回は久しぶりに、研究の話ではなく「数学という分野そのもの」についてお話ししたいと思います。 テーマは、
「数学科に入ったら、学ぶ数学ってどう変わるの?」
です。
高校生の中には、「数学が好きだから大学では数学科に進みたい。でも大学の数学科では、実際にどんな数学を学ぶのだろう?」そんな疑問を持っている人も多いと思います。あるいはそれ以外の方でも、「数学科ってどういうところなの?」と思っている人もいるかと思います。
そこで今回は、大学で数学を教える立場から、数学科で学ぶ数学の特徴について、高校までの数学と比較しながらできるだけわかりやすく説明してみたいと思います。
それでは本題に入りましょう。「高校までの数学と、数学科で学ぶ数学は何が違うのか?」この問いに対する私なりの答えは、次の一言です。
高校までの数学は「使うための数学」、数学科の数学は「作るための数学」
この言葉の意味を例え話を交えて説明します。
まず「自動車」を思い浮かべてみてください。自動車に対する考え方は人それぞれですが、多くの人は、「早く移動できる便利な乗り物だから、自由に運転できるようになりたい」と考えるのではないでしょうか。自動車は高速な移動手段です。その利便性を得るために、多くの人が自動車教習所に通います。
数学もこれとよく似ています。 数学は身につけて使えるようになると、日常生活や社会のさまざまな場面で役に立ちます。足し算・引き算から始まり、微分積分のような内容まで、数学を学ぶことで私たちの行動の選択肢は大きく広がります。この意味で、自動車における「運転の仕方」に対応するのが、高校までの数学です。
自動車教習所では、エンジンの内部構造などには踏み込まず「どう操作すればどう動くか」と「守るべきルール」を中心に教えます。多くの人に必要な内容に絞り、効率よく学べるように体系化されている点も特徴です。高校までの数学も同様です。社会を生きるうえで多くの人にとって重要となる内容が選ばれ、限られた時間の中で無理なく身につくよう、学習の流れがよく整えられています。
では、数学科で学ぶ数学は何なのか?自動車が好きな人の中には、「自分で自動車を作ってみたい」と考える人もいますよね。その場合、運転の仕方を知っているだけでは不十分です。エンジンの仕組みや部品同士の関係など、内部構造そのものを理解する必要があります。数学科で学ぶ数学は、まさにこっちの需要に対応します。つまり、数学の理論を「使う」だけでなく、「作る」ことを意識しながら、その仕組みを根本から学ぶのが数学科の数学です。
運転するだけなら、エンジンの詳細を知らなくても困りません。必要なのは「アクセルを踏んだら前進」のような操作と結果の対応関係だけです。数学でも同様に、実用的な場面では多項式を微分すると次数が下がる、$\sin$を微分すると$\cos$になるといった操作と結果の対応を知っていれば十分なことが多いです。
ただし、結果だけを知っている状態には限界があります。例えば、自動車が故障したとき、運転方法しか知らなければ原因を考えることすらできません。また自分の理想に合わせて車を改造することも難しいでしょう。数学も同じです。既知の公式だけでは対応できない問題に出会ったとき、理論の仕組みを理解していなければ、先に進めなくなります。新しい理論を考えたいと思っても、何から始めればよいのかわからなくなります。数学科の数学は、この部分を支える学びです。理論の構造を理解していれば、未知の問題に対しても、自分で考え、解決策を探ることができます。
「困ったら専門家に任せればいい」と考える人もいれば「できるだけ自分で理解し、判断したい」と考える人もいます。どちらが正しいという話ではありません。ただ、数学科の数学は、後者のような姿勢に応える学びだと言えるでしょう。
比喩的な話だけで終始するのもあまり面白くないので、ここからは実際の数学を見ながら高校の数学と数学科の数学の違いを実感してもらおうと思います。
平面ベクトル、もう少し正確にいうと実数成分の2次元位置ベクトル全体の集合を考えて見ましょう。ここではこれを
\begin{align}
\mathbb R^2=\{(a,b)\mid a,b\in \mathbb R\}
\end{align}
と書くことにします($\mathbb R$は実数全体の集合を指します)。よく、「ベクトルは長さと向きを持つ量だ」と言いますが、ここでの「長さ」と「向き」は数学的にはどのような量として実現されているのかを見てみましょう。まずは「長さ」から。これは、原点からその位置ベクトルまでの距離を指していると見るのが自然な考え方でしょう。ということで、$(a,b)$に対して$\sqrt{a^2+b^2}$で与えられる量、これが「長さ」です。
では「向き」はどうでしょうか?ここでは2つのベクトルに定まる相対的な向きのことを考えることにしましょう。例えば、2つのベクトル$\mathbf a,\mathbf b$に対して、その間の角$\theta$が$\mathbf a$に対する$\mathbf b$の相対的な向きを決定しているということができます。
平面ベクトルはこの長さと向きの情報が肝で、これが実用上のいろんなところで役立ちます。$\mathbb R^2$を車だとすると、この「長さ」や「向き」の情報が車を動かす原動力になっていて、$\mathbb R^2$という集合を便利なものにしているということです。高校数学ではこの利便性を享受するために、この「長さ」や「向き」そのものを求める練習をしたり、あるいはこれを使って何ができるかということを学んでいきます。
一方で、この原動力を他の車体やあるいは車ではない他のものにも搭載することができないか?という疑問も生まれます。この「長さ」と「向き」の情報は非常に便利なので、$\mathbb R^2$じゃない他の集合でもそれに対応する概念を考えたい。ではこれを実現するためにはどうしたらよいのか?数学科で学ぶ数学では、こういったところがモチベーションになっています。具体的にどのようなことをやるのかを少し見ていきましょう。
まずは$\mathbb R^2$におけるベクトルに定まる「和」と「スカラー倍(ベクトルの定数倍)」に注目します。これらはそれぞれベクトル$\mathbf a=(a_1,a_2),\mathbf b=(b_1,b_2)\in \mathbb R^2$と$\alpha\in \mathbb R$に対して
\begin{align}
\mathbf{a}+\mathbf{b}=(a_1+b_1,a_2+b_2),\quad \alpha\cdot\mathbf a=(\alpha a_1,\alpha a_2)
\end{align}
で定まっています。まず、この演算が満たす次の8つの性質をみてみましょう。これらの性質は、平面ベクトルが満たす他の性質を導出する非常に基本的な性質です。
ここで3.の$\mathbf z$は$\mathbf z=\mathbf 0(=(0,0))$, 4.の$\mathbf b$は$\mathbf a=(a_1,a_2)$に対して$\mathbf b=(-a_1,-a_2)$ととってくることで成り立っていることがわかります。
さてそうしたら、ここで発想を転換します。この8つの基本性質を満たす演算を和・スカラー倍の定義として、さらにこの演算ができる集合の元をベクトルと呼ぶことで、和・スカラー倍・ベクトルの意味を拡張してしまうのです。言い換えると、平面ベクトルの本質は上記の8性質だとみなし、その本質を持つものを逆に全てベクトルとして扱うということです。
集合$V$上に以下の二つの演算が定義されているとする:
上記の和とスカラー倍が任意の$\mathbf{a},\mathbf{b},\mathbf{c}\in V$、任意の$\alpha,\beta\in \mathbb R$に対して次の条件を満たすとき、$V$を$\mathbb R$上のベクトル空間という。また$V$の元をベクトルという。
このベクトル空間の定義によれば、$\mathbb R^2$はもちろんベクトル空間ですが、そうじゃない集合についてもベクトル空間になる可能性があります。
なぜこんなことをするのでしょうか?その答えは、私たちがやりたいことにあります。私たちは今$\mathbb R^2$以外の集合に「長さ」や「向き」を導入したい立場であり、そのためにはまず、$\mathbb R^2$に定まっている和やスカラー倍のようなものを$\mathbb R^2$でない集合に導入する必要があります(これがなぜなのかは後でわかります)。しかし、これを定める際に$\mathbb R^2$に定まるこれらの演算の定義を使うことはできません。でもなんとかして「和・スカラー倍のような演算」を定めたい。そこで何をするのかというと、上記のように、$\mathbb R^2$の和・スカラー倍が満たす性質の中から他の集合の時でも成り立って欲しい性質をピックアップしておいて、「和やスカラー倍というのは、こういうことができる演算だ!どんな方法で定まるのかについては一切問わん!」と言ってしまうんです。こうすることで、演算が定まる集合についての縛りを解除しつつ、「和」「スカラー倍」のような演算を考えることができます。これが上記のベクトル空間の定義の裏にある発想です。このような手法を、「抽象化」と呼びます。
ちなみに、「和」「スカラー倍」をどの性質で定義するべきか?という問題は簡単な問題ではありません。「計算するときにこの性質は欲しいよな〜」と思う性質はたくさんありますが、全部を定義に盛り込んでいると覚えるのが大変なので必要最小限でまとめたいところです。例えば性質Aが性質Bと性質Cから導出できるのであれば、3つの性質A,B,Cを定義に入れるより、性質Bと性質Cだけを定義にしてしまう方が賢いです。上記の8条件は、どの性質で定義すべきかをいろんな人が考え、試行錯誤がなされた末に結論づけられたものです。
何のことやらという人もいると思うので、ここで1つ$\mathbb R^2$とは全く見た目の違うベクトル空間の例を挙げておきます。
集合$V$を
\begin{align}
V = \{\, f \mid f \text{ は } 0\leq x\leq1 \text{ を定義域とする連続関数} \,\}
\end{align}
とする。$f,g\in V$, $ \alpha\in\mathbb{R}$に対して関数の和$f+g$とスカラー倍$\alpha\cdot f$を
\begin{align*}
(f+g)(x)=f(x)+g(x),\qquad
(\alpha\cdot f)(x)=\alpha f(x)\quad (0\le x\le 1)
\end{align*}
で定める。ここで、$f+g$の$+$は上記で定義される関数の和のこと、$f(x)+g(x)$の$+$は実数同士の加法のことであり、同じ記号を使っているが意味が違うことに気を付ける。
さて、このときこれらの演算はベクトル空間の定義の1.-8.の条件をすべて満たす。例えば、1.の条件は任意の$0\leq x\leq 1$に対して
\begin{align*}
(f+g)(x)=f(x)+g(x)=g(x)+f(x)=(g+f)(x)
\end{align*}となることからしたがう。
また、3.の$\mathbf z$に対応する関数は恒等的に$0$となる関数$z(x)\equiv 0$であり,4.の$\mathbf a$として関数$f$を取ったとき、$\mathbf b$に対応する関数は$(-f)(x)=-f(x)$で与えられる関数$-f$である。2,5,6,7,8の条件が成り立つことは、各自で確認してみよう。以上から、$V$は$\mathbb{R}$上のベクトル空間となる。
上の例$V$は元が連続関数の集合で、一見すると$\mathbb R^2$とは見た目が全然違いますし、ここでの和とスカラー倍の定義もやはり$\mathbb R^2$のそれとは似ても似つきませんが、ベクトル空間の定義の1.-8.の条件を満たしているのでベクトル空間になります。
さて、これで「和」と「スカラー倍」を$\mathbb R^2$以外の集合に導入する手筈は整いました。次に目標である「長さ」と「向き」を導入していきましょう。
まず最初に考えるべきは、「長さ」と「向き(ここでは2つのベクトルがなす角)」をどう表現するべきかということです。これらは幾何的な情報から読み取れるものですが、一般のベクトル空間は必ずしも$\mathbb R^2$のように幾何的な対応物を持っているとは限りません。したがって、ベクトル空間に定まる演算のみを使って、長さや角度を計算する方法が必要になります。
その演算が何かを考えるために、まずは$\mathbb R^2$の例を観察してみることにしましょう。すると、$\mathbb R^2$においては「内積」と呼ばれる演算
\begin{align}
\langle(a_1,a_2), (b_1,b_2)\rangle=a_1b_1+a_2b_2
\end{align}
を使うことで$\mathbb R^2$の元に長さと向きが定められることに気づきます。実際、$\mathbf a=(a_1,a_2)$の長さは\begin{align}
\sqrt{\langle \mathbf a,\mathbf a\rangle}=\sqrt{a_1^2+a_2^2}\end{align}で実現できますし、$\mathbf a$と$\mathbf b$のなす角$\theta$の情報は$\cos\theta$という形で
\begin{align}
\cos\theta=\frac{\langle \mathbf a,\mathbf b\rangle}{\sqrt{\langle \mathbf a,\mathbf a\rangle}\sqrt{\langle \mathbf b,\mathbf b\rangle}}
\end{align}
と計算することができます。
この観察から、集合の元に「長さ」や「向き」の概念を導入するためには、内積があればよいということがわかりました。ではこの内積を$\mathbb R^2$ではない集合に導入するにはどうすれば良いのか?やることは、ベクトルの和やスカラー倍を導入したときと一緒です。$\mathbb R^2$の内積の性質で重要なものをピックアップして、これを定義として内積を定め直すのです。
今回は、$\mathbf{a},\mathbf{b},\mathbf{c} \in \mathbb R^2$かつ $\alpha \in \mathbb{R}$に対して$\mathbb R^2$の内積が満たす次の5条件に着目します。
この5条件があれば、$\mathbb R^2$においては「長さ」や「なす角」について成り立っていて欲しい性質が定義を使わずとも導出できます。
例えば$\mathbb R^2$における「ベクトルの長さは非負実数である」という性質はこの中の4.から、「長さが0のベクトルは$(0,0)$しかない」という性質はこの中の5.を使うことで示すことができます。あるいは、ベクトルのなす角に関する重要な性質である
\begin{align}
-1\leq\frac{\langle \mathbf a,\mathbf b\rangle}{\sqrt{\langle\mathbf a,\mathbf a\rangle}\sqrt{\langle\mathbf b,\mathbf b\rangle}}\leq 1
\end{align}
と言う不等式も、$\mathbf a$と$\mathbf b$がなす角$\theta$の情報を使わずにこれらの性質を使うことで示すことができます。
\begin{align}
|\langle \mathbf a,\mathbf b\rangle|\geq\sqrt{\langle\mathbf a,\mathbf a\rangle}\sqrt{\langle\mathbf b,\mathbf b\rangle}
\end{align}を示す。$\mathbf a=\mathbf 0$または$\mathbf b=\mathbf 0$の場合は明らかなので以下では $\mathbf b\neq \mathbf 0$と仮定する。
任意の実数$t$に対して4.より$0\le
\langle \mathbf a - t\mathbf b,\ \mathbf a - t\mathbf b\rangle$が成り立つ。1.と2.を用いて展開すると
\begin{align}
\langle \mathbf a - t\mathbf b,\ \mathbf a - t\mathbf b\rangle
&=
\langle \mathbf a,\mathbf a\rangle
-2t\langle \mathbf a,\mathbf b\rangle
+t^2\langle \mathbf b,\mathbf b\rangle .
\end{align}
したがって
\begin{align}
\langle \mathbf b,\mathbf b\rangle t^2
-2\langle \mathbf a,\mathbf b\rangle t
+\langle \mathbf a,\mathbf a\rangle
\ge 0
\end{align}
である。これは$t$に関する2次式であり,すべての$t$に対して非負であるから,その判別式は非正でなければならない。すなわち、
\begin{align}
\left(-2\langle \mathbf a,\mathbf b\rangle\right)^2
-4\langle \mathbf b,\mathbf b\rangle\langle \mathbf a,\mathbf a\rangle
\le 0
\end{align}
である。これを整理すると
\begin{align}
\langle \mathbf a,\mathbf b\rangle^2
\le
\langle \mathbf a,\mathbf a\rangle\langle \mathbf b,\mathbf b\rangle.
\end{align}
両辺の平方根を取ることで
\begin{align}
|\langle \mathbf a,\mathbf b\rangle|
\le
\sqrt{\langle\mathbf a,\mathbf a\rangle}\sqrt{\langle\mathbf b,\mathbf b\rangle}
\end{align}
を得る。
ということで、長さやなす角を定める上で、内積に求められる本質はこの5条件であろうということがわかりました。したがって、これを定義とすることにします。
ちなみに、先に和とスカラー倍について考えていたのは、この内積の5条件が和とスカラー倍を使って記述されているからです。
$\mathbb R$上のベクトル空間$V$を考える。$V$の任意の二つのベクトル $\mathbf{a},\mathbf{b}\in V$に対して、
実数$\langle \mathbf{a},\mathbf{b}\rangle$が対応して定まるとする。任意の $\mathbf{a},\mathbf{b},\mathbf{c}\in V$、任意の $\alpha\in\mathbb{R}$に対して この対応が次の条件を満たす時、演算$\langle -,-\rangle$を$V$の内積と呼ぶ。
なお$\mathbf z$はベクトル空間の定義の3.で定められているものと同じものである。
内積から定まる「長さ」と「なす角」も定義しておきましょう。本家ではまず「長さ」や「なす角」の概念が幾何的に定められていて、あとからベクトルと内積を使った解釈が与えられていましたが、今はベクトルと内積のほうから出発しているので、逆に「長さ」や「なす角」はベクトルと内積を使って定義されます。
内積をもつ実ベクトル空間$V$を考える。任意のベクトル$\mathbf{a}\in V$に対して$\|\mathbf{a}\| = \sqrt{\langle \mathbf{a},\mathbf{a}\rangle}$で定まる実数$\|\mathbf{a}\|$を$\mathbf{a}$の長さ(ノルムとも)という。
内積をもつ実ベクトル空間$V$において,$\mathbf{a},\mathbf{b}\in V$を$\mathbf{a}\neq \mathbf{z}$,$\mathbf{b}\neq \mathbf{z}$を満たす二つのベクトルとする。このとき
\begin{align}
\cos\theta=\frac{\langle \mathbf{a},\mathbf{b}\rangle}
{\|\mathbf{a}\|\,\|\mathbf{b}\|}
\end{align}
を満たす$0\le \theta\le \pi$を$\mathbf{a}$と$\mathbf{b}$のなす角という。特に$\langle \mathbf{a},\mathbf{b}\rangle = 0$が成り立つとき$\mathbf{a}$と$\mathbf{b}$は直交するという。
以上で、$\mathbb R^2$でない集合でも、内積が入っているベクトル空間であれば各元に「長さ」「なす角」が導入できることがわかりました。この定義の良いところは、$V$が平面のように見える必要がまったくないのに、内積さえあれば「長さ」や「角度」の計算ができる、という点です。つまり、幾何の世界で馴染み深かった道具が、まったく別の世界でもそのまま動くようになります。
例1で見た連続関数全体の集合$V$に内積を定めて、そこから「関数の長さ」や「関数同士がなす角」を計算してみることにしましょう。
連続関数全体からなるベクトル空間$V$(例1参照)について、$f,g\in V$に対し、
\begin{align}
\langle f,g\rangle
=\int_0^1 f(x)g(x)\,dx
\end{align}
で定まる実数を対応させる。この対応は内積の条件1.-5.の条件をすべて満たすので$\langle -,-\rangle$は$V$上の内積であり、$V$は内積空間となる。ここでは2.の条件を満たしていることだけ確認してみる(残りは演習問題とする)。
$f,g,h\in V$に対して、
\begin{align*}
\langle f+g,h\rangle&= \int_0^1 (f+g)(x)h(x)\,dx=\int_0^1 (f(x)+g(x))h(x)\,dx=\int_0^1 f(x)h(x)+g(x)h(x)\,dx\\
&=\int_0^1 f(x)h(x)\,dx+\int_0^1g(x)h(x)\,dx=\langle f,h\rangle+\langle g,h\rangle
\end{align*}
となるので、2.が示される。
さて、この定義に沿って考えると、例えば$f(x)=x$の長さは
\begin{align}
\sqrt{\langle f,f\rangle}
=\sqrt{\int_0^1 x^2\,dx}=\frac{1}{\sqrt 3}
\end{align}
である。
$f(x)=1,g(x)=1+\sqrt{3}\,(2x-1)$とおいたときのなす角を計算しよう。まず内積を計算すると,
\begin{align}
\langle f,g\rangle
=\int_0^1 1+\sqrt{3}(2x-1)\,dx=1
\end{align}
となる。
次に長さは
\begin{align*}
\|f\|&=\sqrt{\int_0^1 1^2\,dx}=1,\\
\|g\|&=\sqrt{\int_0^1 \bigl(1+\sqrt{3}(2x-1)\bigr)^2\,dx}
=\sqrt{1+3\int_0^1(2x-1)^2\,dx}=\sqrt{2}
\end{align*}
であるから,
\begin{align}
\cos\theta
=\frac{\langle f,g\rangle}{\|f\|\,\|g\|}
=\frac{1}{\sqrt 2}
\end{align}
となり,$f$と$g$のなす角は$\theta=\frac{\pi}{4}$である。
ところで今回例1と例2で見た謎の例、なんかの役に立ってるんですかといわれると、そりゃもう目が飛び出るレベルで役に立っています。この内積には$L^2$内積という名前がついており、関数解析、フーリエ解析、偏微分方程式、確率統計、量子力学などで必要不可欠な、めちゃくちゃ重要な内積です(正確には、この内積を導入する空間は$V$とは少し違うものを考えます)。
さて、かなり長くなってしまいましたが、これが数学科で学ぶ数学の一例です。今回私はこの記事の中で、非常に便利で使い勝手が良いことが知られている$\mathbb R^2$という車に注目し、そこからベクトル空間という「タイヤ」と、内積という「エンジン」を取り出して、「連続関数がなす集合」という別の車体に付け替えてみせました。
このように、大学で学ぶ数学は単に計算や公式を覚えるだけではなく、「何が本質だったのか」を言葉(定義)にして抜き出し、別の世界でも同じ力を発揮できる形に作り直していく学びです。そして、その作り直しをさらに進めて、まだ誰も見たことのない新しい車を組み上げて走らせる人たち、それが数学者です。少しは雰囲気を感じていただけたでしょうか。
今回は、具体例を交えながら数学科で学ぶ数学の雰囲気を紹介しました。具体例の部分は読むのにちょっと骨が折れたかもしれませんが、これを1つの参考にしていただけますと幸いです。
私はこの記事の数学の説明の中で、1点ごまかしたところがあります。それは、「(相対的な)向き」を「なす角」と言い換えた点です。実は、2つのベクトル$\mathbf a$と$\mathbf b$の相対的な位置関係は、これらのベクトルのなす角が決まっただけでは一意に定まりません。原点中心で時計回りに見てベクトル$\mathbf a$が先に来るか、ベクトル$\mathbf b$が来るか、ということが2つの間の角の情報からは決定できないのです。でも、現代数学ではこの部分までをカバーする方法もちゃんと調べられています。その方法は、ベクトル空間に内積以外にもう1個別の演算を追加することです。それが何なのかはここでは言及しませんが、これもまた、数学者たちが苦労の末に手に入れた「ステアリング」なのです。これが知りたい人は、ぜひ数学科へ行って数学を学びましょう!