初等的な手法で三角関数を定義する方法

 まずこの記事の前提は次の話。

 三角関数の通常の定義に循環論法が含まれているんじゃね? という話だった。これに対して、コメントでご指摘いただいたのが次のファイル。

https://www.ms.u-tokyo.ac.jp/~t-saito/jd/%E4%B8%89%E8%A7%92%E9%96%A2%E6%95%B0.pdf

 このファイル、本当に素晴らしい議論をしているんだけれど、とにかく内容をかいつまむと、1)高校数学で行われる古典的な三角関数の定義には問題が含まれている。2)それを解決するための現代的な三角関数の定義は4パターンありうるけれども、どれも教育的に問題を含んでいる、という話だった。
 今回は、それらとはまったく別個に、単純に古典論の延長で三角関数を定義できるかどうかについて議論してみたい。ちなみに結論は後で書くけどかなりしょうもないよ!

 さて、簡単に古い議論を整理しよう。古典的な議論では、まず二次元ユークリッド空間上の原点Oを中心とした半径1の円周を考える。特に(1,0)を点Aと置く。一方で正象限にある円周上の点Bを考えると、このBは(x,y)と座標表示したとき、

0<x<1, 0<y<1, x^2+y^2=1

 という3つの関係を満たす。このとき、AとBをつなぐ円弧の長さをzとしたとき、xをcos zと、yをsin zと書く、というのが、初等的な三角関数の定義である。なお、tan z=sin z/cos zである。
 ここで、(x,0)を点Cと名付ける。また、Bを通り、線分OBに直交する直線とx軸の交点をDとする。簡単な計算から、Dは(x^{-1},0)と書けることがわかる。簡単にわかるように、三角形OBCと三角形OBDは角度がすべて等しいため、相似であり、したがって、

tan z=(OCの長さ)/(OBの長さ)=(OCの長さ)

を得る。最後の等式は、OBの長さが単位円の半径である1であることによる。ここで、当然ながら

z>(ABの直線距離)>x=sin z

である。一方、古典論では無条件に

tan z≧z

が示せたとしている。この二つの仮定を用いると、

lim_{z→0}(sin z/z)=1

が示せて、後はこれと加法定理(こちらは図形的な性質を用いて証明できる)から、(sin z)'=cos zと(cos z)'=-sin zが示せる。以上は点Bが正象限にあった場合であるが、上の微分の結果と加法定理があればこれを一般の場合に拡張することは極めて容易であり、また円周率πもsin xの周期の半分として自然に定義できて、問題はすべて解決するのである。

 さて、それでは反省会でーす。上の古典的な議論のどこにギャップがあったかというと、まず第一に、円弧ABの長さzが実数として計算できることが天下り式に仮定されていることが挙げられる。この部分を解決するために、曲線の長さについての標準的な議論を用いることを考える。つまり、f:[a,b]\to R^2が与えられていたとして、この曲線fの長さとは、折れ線近似した場合の長さの上限である。より精密に言うと以下のようになる。まず、a=t_0<t_1<…<t_m=bを満たすt_0,t_1,…,t_mを任意に取る。そして、t_i≦t≦t_{i+1}に対して

g(t)=f(t_i)+[(t-t_i)/(t_{i+1}-t_i)](f(t_{i+1})-f(t_i))

と定義する。こうするとg(t)のグラフが折れ線になることは簡単にわかるだろう。折れ線は長さを簡単に定義できるので、こうして作ったg(t)の長さの上限をf(t)の長さとするのである。
 これを円弧ABの長さに適用するとどうなるだろうか。いま、a=xとし、b=1として、f(t)=(t,\sqrt{1-t^2})とすれば、これは円弧ABをグラフとして持つ関数である。ここで、x=t_0<t_1<…<t_m=1となるt_0,…,t_mが取れたとすると、x≦t_i<t_{i+1}≦1である。ここでf(t_i)とy軸の高さが同じであるような線分BD上の点をEとし、f(t_{i+1})とy軸の高さが同じであるような線分BD上の点をFとすると、線分EFの傾きの絶対値はf(t_i)とf(t_{i+1})を結ぶ線分を越えることが示せる(図解だと簡単だが、意外と解析的にやると難しい。が、示せることは示せる)。ここからただちに、このt_0,…,t_mを用いて作った折れ線g(t)の長さは絶対に線分BDの長さを超えないことがわかる。つまり、

(g(t)の長さ)≦(BDの長さ)

を得る。t_0,…,t_mは任意だったので、これはあり得る折れ線近似の長さについて(g(t)の長さ)のひとつの上界がBDの長さとして与えられた、ということである。したがって、円弧ABの長さはたしかに実数値として存在し、それは線分BDの長さを超えない。
 そしてBDの長さはtan zだったのだからz≦tan zである……と言えればよかったのだが、まだ問題は解決していない。つまり、Bと異なる点B'を取ってきたときに、円弧ABの長さと円弧AB'の長さが異なることがまだ示せていない!この性質がないと、円弧の長さzを指定することと点Bを示すことの間にギャップが生じてしまい、sin zもcos zもtan zもill-definedになってしまう。さらにはもうひとつの議論もある。上で示したことは、Bを指定したときに円弧ABには有限の長さzが定義できるということだった。では逆に、長さz(簡単のために0<z<εを十分小さなεについて満たすところだけでよい)を指定したときに、このzに対応して、円弧ABがzの長さになるような点Bが存在すると言えるだろうか?これらを解決して初めて、十分小さな正の数zに対してはsin zとtan zを定義することができ、またsin z<z≦tan zが示せるため、lim_{z→0}(sin z/z)が示せて、そこから先の議論は全部なんとかなる。上の太字で書いた二つの問題はがんばって考えればなんとか解決できるのだが、とにかく細かい議論が必要で大変であるということだけ述べておく。

 さて、ここまででわかったとおり、かなり大変な作業になりそうではあるが、なんとか初等的な範囲で三角関数の定義と、その性質についての解析学的な議論ができそうだ……ということは、わかったと思う。そこで問いかけよう。これ、教えるべきかな?
 はい。つまるところ、こんなに苦労してようやく得られるのが三角関数の性質だけなんだよね、この議論……他の方法のうち、微分方程式を経由する議論や、複素整級数を経由する議論は、たしかに迂遠なんだけれども、そこで得られた結果の応用性が莫大である。じゃあそっち教えた方がよくない?
 というわけで、今回の結論。いままで議論していた「古典論の三角関数の取り扱いにはギャップがある」というのは正しいけれども、そのギャップは基礎解析的な、そして積分を一切使わない方法だけで解決可能である。が、その解決策は教育的にはとても無駄が多いので、趣味人以外は知らなくていいんじゃないか、と、つまりはそういうことでした。
 結局杉浦光男さんの本が最強ってことですね。今回は以上で。

この記事が気に入ったらサポートをしてみませんか?