キーワード:テイラー展開、log xの電卓での計算

マクローリン展開は万能ではない

前回の記事では、三角関数であるsin x・cos x・tan xと、指数関数であるexp x(e^x)容易に計算する方法についてお話ししました。
これらは全てマクローリン展開という、計算困難な関数を計算しやすいxのべき乗の形に変換する数学テクニックに基づいたものでしたね。
しかし数学が好きな人は『三角関数、指数関数ときたら、もう1つ重要で計算困難な関数があると思うんだけど・・・』と感づいているかもしれません。
そうです、対数関数のlog xです。
(ここでは底がeの自然対数のことを表しています。)

ここで、少し考えてみてください。
マクローリン展開は、log x、そしてその微分、そしてさらにその微分・・・(以下、無限に続く)に対して、x = 0を代入したときの値を用いるという方法でした。
しかし、log xにx = 0を代入するとマイナス無限大となり、値は定義されません。
同様にlog xの微分は1/xですが、これにx = 0を代入しても無限大となり定義されません。
どうやらlog xに対してはマクローリン展開は使えないようですね。
マクローリン展開は万能ではないようです。


テイラー展開を利用する

ここでちょっと思い出してみましょう。
マクローリン展開とはあくまでx = 0に限った場合に使えるテクニックであり、これを一般化したテイラー展開というものがありました。

考え方はマクローリン展開と同じですが、x = aのときに使えるテクニックで、aの値は任意に決められます。
例えばa = 1とすれば、log x = 0であり、その微分1/xは1となります。
なんか計算しやすそうなので、a = 1で計算を進めてみましょう。
微分して、x = 1を代入して、・・・という操作を繰り返すことで、最終的にlog xは以下のように表すことができます。


何次まで計算すればいいの?

このlog xについても、何次まで計算すれば良いのか考えてみましょう。
まずは第1項(1次式)

x = 1のときだけ値は等しくなりますが、そこから少しでもずれると誤差が大きくなります。

続いて2次式

少しだけ近づきましたが、まだまだ近いとは言いがたい形ですね。

続いて3次式

さらに近づきはしましたが、まだまだですね。

次に4次式

前回のsinのグラフと比べるとなかなか近づいて行きませんが、xが0.5から1.5の範囲では概ね一致していると言えるでしょう。
実際にはまだ誤差が大きく、小数点第3位まで一致させるには第8項までの計算を実施する必要があります。

というわけで、第8項までの計算で、log 0.5からlog 1.5までの値は精度良く求められそうです。
当然、次数を上げれば上げるほど誤差は小さくなっていくので、気になる方は10次まででも15次まででも計算してOKです。
しかしそんなのは面倒なので、もっと簡単な方法をお教えします。
そのために必要なのは以下の公式です。

log a^2 = 2 × log a

例えばlog 0.5を求めたい場合、第8項まで計算すれば精度の良い値が求められますが、計算量が増えれば増えるほど計算ミスの可能性も高まります。
そこでlog 0.5を、

log 0.5 = log (√0.5)^2 
または
log 0.5 = log (√√0.5)^4

とすれば、先ほどの公式を使って、

log (√0.5)^2 = 2 × log√0.5
log (√√0.5)^4 = 4 × log√√0.5

と書き換えることができます。
あらゆる値は平方根を取り続けると1に近づいて行き、テイラー展開の式もx = 1が最も誤差が少なくなるため、平方根を取れば取るほど低次で打ち切った式でも精度が良くなります。

log 0.5ならばlog√√0.5 = log 0.8409を、log 1.5ならばlog√√1.5 = log 1.1067を、それぞれ第4項程度まで計算し、それを4倍することでlog 0.5やlog 1.5は精度良く求めることができるのです!

つまりこの項目の見出し『何次まで計算すれば良いか?』の答えとしては、『どこまで平方根を取るか次第』ということになるでしょう。


スポンサードリンク


log 2やlog 3などはどうやって求めるか?

それではlog 2とかlog 3の値は、どのように求めれば良いのでしょうか?

実は、log 0.5からlog 1.5さえ分かれば、計算で求めることができます。
(先ほどの項目でlog 0.5やlog 1.5にこだわっていたのはそういった理由があるからです。)
計算に使用する公式は以下の通りです。

log a + log b = log ab
log a - log b = log a/b

例えばlog 2の場合は、

log 2 = log 1/0.5 = log 1 - log 0.5 = -log 0.5

となり、log 3の場合は、

log 3 = log 1.5/0.5 = log 1.5 - log 0.5

となります。

そしてlog 2と log 3が分かれば、他の値も芋づる式に計算できてしまうのです。

log 4 = log 2^2 = 2 × log 2
log 5 = log 2×3/1.2 = log 2 + log 3 - log 1.2
log 6 = log 2×3 = log 2 + log 3
log 8 = log 2^3 = 3 × log 2
log 9 = log 3^2 = 2 × log 3
log 10 = log 2×5 = log 2 + log 5




log 7はどうやって求めるか?

先ほどの計算でlog 7が出てこないのに違和感を持った方もいるのではないでしょうか。
log 7に関しては、以下のようにちょっと工夫しないと求めることができません。

log 7 = log 7×e^2/e^2 = 2 × log e + log 7/e^2 = 2 + log 7/e^2

これを計算するためには、eの値が分からないといけません。
eに関しては、前回書いた通り指数関数のマクローリン展開の式がありました。

これにx = 1を代入して出てくる値がまさにeの値となります。
ここは精度の良い値を求めるため、8次式くらいまで計算しておきましょう。
そうするとe = 2.71828という値が出てきます。

これを用いて先ほどの式を計算すると、

log 7 = 2 + log 7/2.71828^2 = 2 + log 0.947348

となります。
log xをテイラー展開した第4項までの式では、log 0.8〜log 1.2程度まで精度良く求められるので、当然log 0.947348の精度も良いということになります。
したがってlog 7は、

log 7 = 2 + log 0.947348

で求められます。


これはlog 7に限ったことではなく、どんな値でも求められることになります。
例えばlog aを求めたい場合、一般化した式は以下のようになります。

log a = log a×e^n/e^n = n + log a/e^n

ここでのポイントはnの決め方です。
log a/e^nをテイラー展開の第4項までの式で精度よく求めるためには、a/e^nの値が0.8から1.2程度の間になくてはなりません。
したがってnをいろいろと変えて、a/e^nが0.8〜1.2程度に納まるようなnの値を選んであげましょう。
またこのとき、a/e^nの値が1に近ければ近いほど、低い次数でも精度の良い結果が得られるので、できるだけ無駄な計算をしないようにするために、何項まで計算するかはa/e^nの値次第で決めましょう。

(実はlog 7も先ほどの考え方で求めることができたりします。
それはlog 7 = log 1.4×5 = log 1.4 + log 5という方法です。
しかしlog 2やlog 3を使って求めるという趣旨から外れるため、本項目の方法で求めました。)


結局どの計算方法がいいの?

いろいろな計算方法が出てきましたが、結局どの方法がいいのでしょうか?
少しまとめてみましょう。

①平方根を利用する方法:
log a = 2 × log√a = 4 × log√√a = 8 × log√√√a …

どんな値でも平方根を取り続ければ1に近づくため、万能な方法。
aの値が大きいと何度も平方根を取らなくてはならないという欠点はあるが、電卓での計算上は『√』キーを押す回数が増えるだけなので大して面倒ではない。
平方根を取れば取るほど、テイラー展開の式の次数を下げても精度は高くできる。
個人的には一番オススメな方法。

②eを利用した方法:
log a = log a×e^n/e^n = n + log a/e^n

nを調整することでa/e^nが1に近くなれば、低次数までの計算でも精度が高い結果が得られる。
しかしaの値によっては高次数まで計算しないといけない場合もあり、またeの値を暗記するか算出する必要もあるため、若干面倒な方法。

③いくつかのlogを組み合わせる方法:
log 0.5やlog 1.5の算出から始まって、その組合せでlog 2やlog 3を求め、そこからlog 4やlog 6などを求める方法。
はっきりいって面倒くさいが、問題によってはlog 2やlog 3の値が与えられている場合があるため、そのときはこの方法が最適となる。
そのため覚えておいて損はない方法。


いずれの方法もlog xのテイラー展開の式は必要となるため、これは最低でも暗記した上で、どの方法を選択するかは個人の趣味によるといったところでしょうか。
個人的には①をメインウェポンに、③をサブウェポンにという感じがオススメです。
②は、とりあえず書いたものの、使用頻度はあまり高くありません。


まとめ

①log x(底はe)のテイラー展開:

②平方根法:
log a = 2 × log√a = 4 × log√√a = 8 × log√√√a …
(平方根を取るほど精度が高まる)

③組合せ法:
log 4 = log 2^2 = 2 × log 2
log 5 = log 2×3/1.2 = log 2 + log 3 - log 1.2
log 6 = log 2×3 = log 2 + log 3
log 7 = log 1.4×5 = log 1.4 + log 5
log 8 = log 2^3 = 3 × log 2
log 9 = log 3^2 = 2 × log 3
log 10 = log 2×5 = log 2 + log 5

④e利用法:
log a = log a×e^n/e^n = n + log a/e^n
(a/e^nが0.8〜1.2程度に入るnの値を選択)

⑤eの値:

にx = 1を代入し、8次式まで計算


スポンサードリンク


人気ブログランキングに参加しています。
クリックしていただけたらとても励みになります!! 
 
電気・電気工事ランキングへ