三角関数関連の、アークサイン・サイン・コサインの級数展開を、ニュートンが思考したと思われる道筋で考えてみたい。
アークサイン(arcsin)は、サイン(sin)の逆関数。
参考にしたのは相変わらず「数学という学問I 〜 概念を探る」(志賀 浩二 著、筑摩書房 2011年)。
同書によれば、ニュートンは、1669年の著作「無限個の項を持つ方程式による解析について」(刊行されたのは1711年)の中で、一般化された2項定理や、アークサイン・サイン・コサインの級数展開について述べているという。1642年生まれのニュートンが27歳のころである。
まず、x,y座標の原点 (0,0) を中心にした半径1の円を想像してほしい。この円を、必要に応じて丸いアナログ時計に例える。短い針はなく、長針だけの時計。
円周上の点 (x, y) は、ピタゴラスの定理により「x^2 + y^2 = 1」という式に従った軌跡をたどる。そして、この式を変形すると「y = √(1 - x^2)」となる。√(□)は、□の平方根のつもり。
今回は、円を4等分した時の右・上の部分に着目する。xもyもプラスの値の箇所である。丸い時計でいえば、12時(0時)〜3時の部分だ。
点 (x, y) が徐々に動くものとする。x=0 のとき、y=1 であり、そこからxが次第に増えて、x=1 の時は Y=0 となる。時計の針が0時から出発して、3時までいって横倒しの状態になる動きだ。
この範囲 x: 0→1 において x, y が描く円周の下側の面積は、√(1 - x^2) を積分することによって得ることができる。その値は、円全体の面積の4分の1だ。丸い時計に例えるなら、針が0時〜3時まで移動する場合になぞる面積である。
√(1 - x^2) は、平方根の級数展開によって無限級数の形で記述できる。したがって、積分して近似値を求めることが可能だ。
ここで、時計の針が3時よりも手前で停止した状態を考えてみよう。たとえば1時のところにあるとする。時計の針は 1/12 だけ進んだ訳だから、角度でいうと 360度/12=30度だ。このとき、xの値は 1/2=0.5 となる。yの方は √(3)/2=約0.87だ。
このケースで積分で得られる面積を考えると、ある意味で残念ながら、円全体の面積の何分の1という形にならない。
時計の針がなぞる部分は、扇を開いた形になる。30度だから円全体(360度)の12分の1である。
しかし、積分で得られる領域は、扇の部分の下に三角形が加わってしまう。アーケードの形を縦に半分に切ったもの、というとイメージしやすいだろうか。
点 (x, y) = (0.5, 0.87) のところからx軸に向けてまっすぐ直線を下ろすと、その直線と、x軸と、時計の針(斜辺)とで囲まれる三角形ができる。その面積が、積分で得られる面積に入り込んでしまう。
この三角形は触覚三角形で、その面積は、x*y = 1/2 * √(3)/2 = √(3)/4 の半分である。つまり √(3)/8 = 約0.22 となる。
扇の部分のところの面積を得るためには、積分した値からこの 三角形の面積を差し引いてやる必要がある。扇の部分の面積にこだわるのは、その面積が角度に比例するからであり、何倍かすると円周率 3.14 になるからだ。
三角関数では、通常、角度を30度のような数でなく、ラジアンを用いる。ラジアンは、該当の角度に対応する部分的な円周の長さ(弧長)によって、その角度を示す方式である。
したがって、360度は円周全体=円周率の2倍 6.28 であり、180度が円周率 3.14、90度は円周率の半分の 1.57 となる。
積分に話を戻そう。時計の針が1時まで移動する場合である。面積でいうと、円全体の 1/12 にかかわる。
x: 0→1/2 の範囲で √(1 - x^2) を積分すると、該当の面積は 3.14/12 + √(3)/8 になるはずである。
扇の部分の面積 3.14/12 というのは、角度30度に該当するラジアンの値 3.14*30/180 = 3.14/6 の半分に相当する。
もう一つ60度のケースについてもみてみよう。
時計の針が0時から2時まで動くと60度になる。このとき、xの値は √(3)/2 であり、yは 1/2 となる。30度の場合の x, y が入れ替わった形だ。
ここを積分すると、扇形の部分の面積が 3.14/6 になる。その下に位置する三角形の面積は 1/2 * √(3)/2 * 1/2 = √(3)/8 である。3.14/6 は、角度60度に該当するラジアンの値 3.14*60/180 = 3.14/3 の半分。
そろそろ三角関数に登場してもらおう。
時計の針が進むにつれて大きくなる角度をθとする。普通は、横軸であるx軸と斜辺(時計の針)がなす角度を取り上げるが、今回は説明の成り行き上、縦軸であるy軸と斜辺の角度に着目する。すると、座標のx, yを次のように表現できる。
x = sin(θ)
y = cos(θ)
サイン(sin)の逆関数アークサイン(arcsin)は、当然ながら下のようになる。
θ = arcsin(x)
ここで、円周上の点が (0, 1) をスタート地点として徐々に右側(そして下側)に移動し、任意の点 (x, y) に到着したものとする。時計でいえば0時のところから出発して、3時より手前の任意のところで針が停止したイメージ。
この 0→x の範囲について √(1 - x^2) を積分することを ∫(√(1 - x^2)) と表現すると、面積に関する式は下のようになる。
∫(√(1 - x^2)) = 1/2 * θ + 1/2 * x * √(1 - x^2)
θ = 2 * ∫(√(1 - x^2)) - x * √(1 - x^2)
arcsin(x) = 2 * ∫(√(1 - x^2)) - x * √(1 - x^2)
上の右辺は、無限級数の形に展開できる。つまり、x,y座標のxが決まれば、それに対応するアークサインの値(ラジアン、つまり弧長)を無限級数を使って計算できる。
これまで書いてきた面積算出の方法に従って、アークサインの展開式を求めてみよう。ニュートンは、このやり方でアークサインを展開したようだ。
改めてアークサインの算出式を掲げると下のとおり。
arcsin(x) = 2 * ∫(√(1 - x^2)) - x * √(1 - x^2)
上の式には √(1 - x^2) というのが2度も出てくる。なので、まずはこの展開式を得る。平方根を求めるというのは2分の1乗することだから、(1 - x^2)^(1/2) を2項定理で展開すればよい。第5項までの結果は次のとおり。
√: 1 - 1/2x^2 - 1/8x^4 - 1/16x^6 - 5/128x^8 - 7/256x^10
次は上の展開式を積分する。すると下のようになる。
∫: x - 1/6x^3 - 1/40x^5 - 1/112x^7 - 5/1152x^9 - 7/2816x^11
[注] 積分するときは定数項をどうするかに気をつける必要がある。とりあえず定数項をCとして展開式の考察を進めるのが本来だろうが、下に示す展開式を加味すると定数項は0であることから、省略する。
上の∫を2倍した上で、そこから√にxを掛けたものを引くとアークサインになる。
各項ごとに係数の計算式を示すと下のとおり。
x^1: 1 * 2 - 1 = 1
x^3: -1/6 * 2 - -1/2 = 1/6
x^5: -1/40 * 2 - -1/8 = 3/40
x^7: -1/112 * 2 - -1/16 = 5/112
x^9: -5/1152 * 2 - -5/128 = 35/1152
x^11: -7/2816 * 2 - -7/256 = 63/2816
これでアークサインの係数が算出された。
当サイトの「2項定理とそのプログラミング処理」で掲載した bnr04.rb は、この方法をパソコンで扱ったものである。参考まで再掲する。
-------- bnr04.rb ここから
require "binomer"
circle = Binomer.new(Rational(1,2), 50, -2)
area1 = circle.copy.integral.inner("c *= 2")
area2 = circle.copy.inner("x += 1")
arcsin = area1 - area2
puts arcsin.calc(0.5) * 6.0
-------- bnr04.rb ここまで
なお、微積分を素直に適用すると、アークサインは下の式で表現される。
arcsin(x) = ∫(1 / √(1 - x^2)) = ∫((1 - x^2)^(-1/2))
なぜ上の式になるのかは省略するが、関連の解説を見つけるのは用意だと思う。
ちなみに、コサインの逆関数アークコサインの値は、アークサインで得られた値を 3.14/2 から引き算したものになる。
「志賀2011」によれば、ニュートンは、これまで述べてきたような方法でアークサインの展開式を求め、その展開式を手がかりにしてサインの展開式を求めたらしい。
実は、ニュートンがどのような方法を採ったのか、詰めの部分は私には分からない。あれこれ考えたのだが、これから述べる「力づく」のような方法しか思い浮かばなかった。もっとスマートなやり方があるような気がするのだが……
ニュートンは、sin(x) をとりあえず一般的な多項式と仮定した。つまり下の式である。
sin(x) = a0 + a1x + a2x^2 + a3x^3 + a4x^4 + ……
そして、「arcsin(sin(x)) = x」であることから、次の式が成り立つとした。
x = arcsin(a0 + a1x + a2x^2 + a3x^3 + a4x^4 + ……)
これらの式から、まず分かることは a0 = 0 ということである。
sin(x) の展開式のxに0を代入すると、「sin(0) = a0」となるが、sin(0) が0になることからa0が0であるといえる。
だとすれば、sin(x) は次の多項式で表現される。
a1x + a2x^2 + a3x^3 + a4x^4 + …… = x * (a1 + a2x + a3x^2 + a4x^3 + ……)
以下では、便宜的にこの多項式をyとする。
ここで、yがxで割り切れることに注意。割ったからといって余り(余剰項)は生じない。
そのため y^2 が必ず x^2 で割り切れるし、y^3 は x^3 で割り切れる。
以下の説明では便宜上、y/x のことを y~ と表現する。
実のところ、これ以降の思考方法がよく分からない。「志賀2011」にも具体的な説明はない。インターネットで調べてもよく分からなかった。
ではあるが、以下で私なりの「力づく」のやり方を書いてみたい。
「sin(x) = y = a0 + a1x + a2x^2 + a3x^3 + a4x^4 + ……」の係数a0が0であることは既に確認した。
次に a1, a2 がどうなるかを考える。
x = arcsin(y) =
y + 1/6y^3 + 3/40y^5 + 5/112y^7 + …… =
a1x + a2x^2 + a3x^3 + a4x^4 + …… + 1/6y^3 + 3/40y^5 + 5/112y^7 + ……
この長々した展開式がxでなければならない。つまり、yをことごとく展開した時に、x^2, x^3, x^4 ……の最終的な係数がすべて0になるように a1, a2, a3, a4 などを決めなければならない。何とも険しい小道だ。1歩ずつ進むことにしよう。
上の式において、y^3 とか y^5 というのは、xの3乗以上、xの5乗以上の係数に関するものである(yがxで割り切れることを想起されたい)。なので、x, x^2 の係数としては a1, a2 にだけ注目すればよい。
とすれば、a1 = 1, a2 = 0 だと判断される。
改めてyを記すと次のような式になる。
y = x + a3x^3 + a4x^4 + …… = x * (1 + a3x^2 + a4x^3 + ……)
arcsin(y) を展開した式において、今度は x^3 の係数に注目する。
まず a3x^3 がある。
それから 1/6y^3 = 1/6x^3*y~^3 がある。
というか、これしかない。y^5 以降の項は x^5 以降にかかわるものだから、とりあえず無視してかまわない。
x^3*y~^3 = x^3*(1 + a3x^2 + a4x^3 + ……)^3 というのは、きちんと展開しなくても x^3 の係数になるのが1だけだと分かる。他は、組み合わせからして x^3 よりも大きい指数に関するものだ。
ついでにいうなら、x^4にかかわるものも存在しない。つまり x^4 にかかわる係数が全体を通して a4 だけということになる。
ということから判断して、次の式が成り立つ必要がある。
a3x^3 + 1/6x^3 = 0 → a3 = -1/6
a4x^4 = 0 → a4 = 0
y~^3のような、3乗する操作について少し補足しよう。
3乗するというのは、箱を3個用意して、それぞれの箱にy~の要素を入れる操作である。要素というのは、たとえば1とかa3x^2のこと。
空っぽの箱ができないように、各箱に必ず一つの要素を入れる。3個の箱すべてに同じ要素を入れてもいいし、別の要素と組み合わせる形になってもいい。
すべての箱を1という要素で埋めるケースは1通りしかない。
二つの箱に1を入れて、残りの一つにa3x^2を入れるケースは3通りある。a3x^2を第1の箱に入れるケース、第2の箱に入れるケース、第3の箱に入れるケースの3通り。このことは、後で x^5 にかかわる係数を見る時に関係してくる。
y~^3 において、x, x^2, x^3 と関わりのない定数項になる要素は1だけだ。そして、1が三つの箱すべてに入るケースは1通り。
だとすれば、1/6y^3 = 1/6x^3*y~^3 を展開した 時に x^3 にかかわりがあるのは 1/6x^3 だけということになる。
また、y~ の中にxにかかわる要素はない。a2 = 0 であるのでそうなる。とすると、x^4 にかかわるものが 1/6y^3 を展開したものの中には存在しないことになる。
こうした考え方と操作を今後も繰り返すことになる。
なお、級数のxに具体的な値を代入して計算処理を行う時は、箱に入れた要素をすべて掛け算する。全部の箱に1を入れれば、掛け算した結果も1になる。
次は x^5 にかかわる係数を考える。
まずは a5x^5 がある。
1/6y^3 を展開したものの中にも x^5 にかかわるものがある。ただ、複雑なことはない。y~^3 をみると、x^5 にかかわるのは 1/6x^3*3*a3x^2 = 1/2a3x^5 = -1/12x^5 のみである。
あとは 3/40y^5 を展開した場合だが、これには 3/40x^5 しかない。y~^5 の定数項が1だけだからだ。
以上から a5 - 1/12 + 3/40 = 0 でなければならず、a5 = 1/120 となる。
x^6 にかかわる係数は、a2, a4 ともに0であるため a6x^6 以外には存在しない。したがって a6 = 0 となる。
y^3 をみると、これは x^3*y~^3 なので、y~^3 を展開した時に x^3 にかかわるものが結果として x^6 にかかわることになる。しかし、y~ の中には x, x^3 とも存在しない。それ以外の x^2, x^4 をいくら組み合わせても x^3 になり得ない。だから、y^3 を展開したものの中には x^6 にかかわるものがない。
y^5 についても同じように考える。y~ にはxにかかわるものがないのだから、結局、y^5 を展開しても x^6 にかかわるものは出てこない。
これまで a2, a4, a6 がどれも0であることをみてきた。
実は、この先 a7, a8, a9, a10, …… をみていっ ても、a8, a10 などは0である。xの指数が偶数のものは全て0となる。
ここまでくれば、x^7 以降を考えるにしても同じような操作を繰り返せばいい。といっても、なかなか煩雑だ。
詳細は省くが、a7 については次のように整理できる。
上の式をすべて足し算すれば0になると仮定するのだから、a7 + 1/5040 = 0 であり、したがって a7 = -1/5040 となる。
a9 以降の算出については省略。
振り返ると、a3 = -1/6, a5 = 1/120, a7 = -1/5040 であるが、それぞれの分母は 3!, 5!, 7! つまり3の階乗・5の階乗・7の階乗である。
三角関数サインの展開式は有名なので、ここで記した方法でサインの展開式を求めようと思う人はいないだろう。また、ニュートンが用いた方法も、もっとスマートなものだったような気がする。
ただ、「志賀2011」を読むかぎり、サインを微分したものがコサインであるといったことを踏まえて、微分を何度も繰り返すことによって sin(x) の展開式を求めた訳ではなさそうだ。
350年くらい前、20歳代後半のニュートンがどのように考えていたのだろうか。
ニュートンは、どのようにしてかは分からないが、コサインの展開式を示しているらしい。それについても私なりの推測を書いてみたい。
今では多くの人がサインを微分すればコサインになることを知っている。サインの展開式が分かれば、コサインの展開式を得るのは容易だ。
「志賀2011」では、ニュートンがサインの展開式を示したことを書いた上で、『同じようにして cos(x) の冪級数展開も示した』と記している。どのような方法を採ったかの記述はない。
素直に解釈すれば、コサインの展開式を「a0 + a1x + a2x^2 + a3x^3 + ……」と仮定して、a0, a1, a2 などの係数を求めた、と解釈される。そんな面倒な方法を採ったのだろうか。
根拠はないが、サインを微分すればコサインになることは、ニュートンも知っていたのではないか。三角関数の加法定理を用いても、あるいは図形的考察でも、
(sin(x+h) - sin(x))/h → cos(x)
上を導き出すのはそれほど難しくないように思う。しかし、そんなふうに思うのは後世の視点からの傲慢かもしれない。
コサインの展開式を「cos(x) = a0 + a1x + a2x^2 + a3x^3 + ……」と仮定した場合、cos(0)=a0 となるが、cos0)=1 などで a0=1 が決まる。
この先どうするかだが、私が思いつくのは、下の式を利用することくらいである。
sin(x)^2 + cos(x)^2 = 1
ここで、sin(x) の展開式が既に分かっているとすると、それを2乗して1から引き算する。その展開式は次のようになる。
1 - x^2 + 1/3x^4 - 2/45x^6 + 1/315x^8 - 2/14175x^10 + ……
一方、cos(x)^2 は、a0=1 を前提にして書くと下のとおり。
1 + 2*a1x + (a1^2 + 2*a2)x^2 + (2*a1a2 + 2*a3)x^3 +
(2*a1a3 + a2^2 + 2*a4)x^4 + (2*a1a4 + 2*a2a3 + 2*a5)x^5 + ……
上の二つの式が同じなはずだと考えると、a1=0, a2=-1/2, a3=0, a4=1/24 などを段々と決めていくことができる。それにしても計算が煩雑だ。
ニュートンがこうした計算処理でサイン・コサインの展開式を導いたのかどうか。「たぶん違うだろう」と思うものの、私が発想できるのはこれくらいである。
ニュートンがタンジェントの展開式を示したかどうかは分からないが、ついでなので簡単に触れておきたい。
タンジェントは、いうまでもなく「tan(x) = sin(x) / cos(x)」である。具体的な値を代入して計算するだけなら tan(x) の展開式を求める必要はない。とはいいながら、どんな展開式になるかがやはり気になる。
tan(x) の展開を行う時に引っかかるのは cos(x) による割り算だ。これをどう考えたらいいだろうか。
「sec(x) = 1/cos(x)」の展開式が得られれば、それを sin(x) に掛け合わせればいいことになる。sec(x) の展開式を求める方法として、私が思いつくのは次の二つ。
手計算でやるなら「その1」の方が楽かもしれない。プログラミングで処理するとすれば「その2」がやりやすいだろうか。
蛇足だが、tan(x) を微分すると 1/cos(x)^2 になる。なので、1/cos(x)^2 を展開して積分すれば tan(x) が得られるはずである。
プログラミングで計算処理する場合、「その2」で得られた結果と、この積分で得られた結果とが一致するかどうかでチェックするといいかもしれない。
ちなみに、tan(x) の展開式は下のようになる。
x + 1/3x^3 + 2/15x^5 + 17/315x^7 + 62/2835x^9 + ……
〜 「ニュートンと三角関数の級数展開」おわり 〜
Copyright (C) T. Yoshiizumi, 2015 All rights reserved.