ここから本文です

常用対数表を見ずに、log2 (底は10)の値を小数点以下3桁まで求める方法を教えて...

mat********さん

2015/12/114:35:27

常用対数表を見ずに、log2 (底は10)の値を小数点以下3桁まで求める方法を教えてください。

閲覧数:
406
回答数:
3
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

cpt********さん

2015/12/211:47:44

2^10=1024です。
1.024^10≒1+10*0.24=1.24≒1.28
なので、
1.265<1.024^10<1.28・・・(★)
を証明できたとしましょう。

すると1.28=2^7/100なので、
2^100を考えることで、(★)の後ろの関係から
log[10]2<28/93=0.301075...が得られます。
(この分数ばっかりは下6桁まで計算するほかない)

次にこれがどれくらい近いかを評価する必要があります。
28/93-log[10]2
=(log[10]1.28-log[10]1.024^10)/93・・・(★★)
で、

log[10]1.28-log[10]1.024^10について
平均値の定理を用いることで、
log[10]1.28-log[10]1.024^10
<(1.28-1.024^24)/{(log[e]10)*1.024^10}
と評価でき、(注:微分が単調減少を用いている)
(★)による1.28-1.024^24<1.28-1.265=0.015
をを用いると、
log[10]1.28-log[10]1.024^10<0.015/(2*1.265)
(注:log[e]10>2を使っている)

よって、(★★)より
28/93-log[10]2<0.015/(2*1.265*93)<0.000075
(注:1.265*93>100という評価を使った)
が分かります。

以上より
0.3010<log[10]2<28/93=0.301075...
が分かります。
--------------------------------

ゆえに、(★)を得られれば証明は終わります。
まず(★)の左側の不等式は
1.024^10=(1+0.024)^10の二項展開を
最初の3項で切ることで、
1.024^10>1+10*0.024+45*(0.024)^2
>1.265が得られます。(ちょっと大変)

(★)の右側の不等式は
10Ck<10^k/k!(k>0)と出来ることに注意して
1.024^10=(1+0.024)^10の二項展開を
1.024^10<1+0.24+(0.24)^2/2+(0.24)^3/6+(0.24)^4/12+...
<1+0.24+(0.24)^2/2+(0.24)^3/6{1+0.24+0.24^2+...}
<1.24+(0.24)^2/2+(0.24)^3/3
とでき、
0.24<1/4なので、
(0.24)^2/2<0.24/8=0.03
(0.24)^3/3<0.24/48=0.005
と評価出来て、
1.024^10<1.24+0.03+0.005=1.275<1.28
が得られました。

--------------------------------

(★)の右側はe^0.24で抑えて
テイラーの定理などを使っても同じ様に得られます。

結果、log[10]2<28/93という近似だけなら
手計算で比較的容易に求められます。

これがちゃんと下3桁まで合ってる評価も
手計算でしろ、と言われると、
ちょっとこんな感じで苦労しますね。

ちなみに、なぜこんなに28/93という
桁の少ない有理数がいい近似になっているかと言うと、
log[10]2の連分数展開に現われる分数だからです。

もっと精密に誤差評価すると、
|28/93-log[10]2|<1/22088
だとコンピュータは言っています。

  • cpt********さん

    2015/12/211:53:43

    あ、
    1+0.24+(0.24)^2/2+(0.24)^3/6{1+0.24+0.24^2+...}
    <1.24+(0.24)^2/2+(0.24)^3/3
    は雑に書きましたが、
    (1+0.24+0.24^2+...)/2
    <0.5+0.5^2+0.5^3+...=1と評価しています。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2015/12/2 12:01:14

皆さまありがとうございます。
思ったよりも計算量が大変なのですね。お手を煩わせてしまってすいませんでした。

でも、関数電卓を使わなくとも、四則演算だけで求める方法がいっぱいあって勉強になりました。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

hai********さん

2015/12/202:13:07

関数 1/(1 - t) のべき級数展開を積分すると

1/(1 - t) = Σ[n:1,∞] tⁿ⁻¹
log|1 - x| = -Σ[n:1,∞] xⁿ/n ... (i)

が得られます。いま x = 1/p のとき 1 - x = (p - 1)/p となりま
すが、分子 p - 1 と分母 p のいずれもが素因数 2, 3, 5 のみで構
成されているものを探すと、例えば

x = 1/16, 1/25, 1/81

などが見つかります。式(i)の左辺の値は

x = 1/16 のとき log(15/16) = log(3×5/2⁴)
x = 1/25 のとき log(24/25) = log(2³×3/5²)
x = 1/81 のとき log(80/81) = log(2⁴×5/3⁴)

なので

-4 log(2) + log(3) + log(5) = -Σ[n:1,∞] 1/(n×16ⁿ)
3 log(2) + log(3) - 2 log(5) = -Σ[n:1,∞] 1/(n×25ⁿ)
4 log(2) - 4 log(3) + log(5) = -Σ[n:1,∞] 1/(n×81ⁿ)

が成り立ちます。したがって

a = Σ[n:1,∞] 1/(n×16ⁿ) ... (ii)
b = Σ[n:1,∞] 1/(n×25ⁿ) ... (iii)
c = Σ[n:1,∞] 1/(n×81ⁿ) ... (iv)

と置くと連立一次方程式

[-4, ..1, .1] [log(2)] ... [-a]
[ 3, ..1, -2] [log(3)] = [-b]
[ 4, -4, ..1] [log(5)] ... [-c]

が成り立ち、解けば公式

log(2) = 7a + 5b + 3c ... (v)
log(3) = 11a + 8b + 5c ... (vi)
log(5) = 16a + 12b + 7c ... (vii)

が得られます。つまり、式(ii)〜(iv)における a, b, c の値を精度
良く求めれば、式(v)〜(vii)の対数の値も求まります。

実際、必要な精度を得られるように、適当な項で打ち切れば

a
≒ 1/(1×16) + 1/(2×16²) + 1/(3×16³) + 1/(4×16⁴)
= 1/16 (1 + 1/16 (1/2 + 1/16 (1/3 + 1/16×1/4)))
= 0.06454

b
≒ 1/(1×25) + 1/(2×25²) + 1/(3×25³) + 1/(4×25⁴)
= 1/25 (1 + 1/25 (1/2 + 1/25 (1/3 + 1/25×1/4)))
= 0.04082

c
≒ 1/(1×81) + 1/(2×81²) + 1/(3×81³)
= 1/81 (1 + 1/81 (1/2 + 1/8×1/3))
= 0.01242

となります。したがって、式(v), (vii)から

log₁₀(2)
= log(2)/log(10)
= log(2)/(log(2) + log(5))
= (7a + 5b + 3c)/(23a + 17b + 10c)
= 0.30103

が得られます。

プロフィール画像

カテゴリマスター

sch********さん

2015/12/116:44:30

log₁₀2
の近似値

2^10=1024≒1000

両辺の対数をとる
log₁₀2^10≒log₁₀1000=log₁₀10^3
10log₁₀2≒3log₁₀10=3

よって
log₁₀2≒3/10=0.3

実際にlog₁₀2=0.3010..

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる