質問

質問者:vega0707 logの近似式について
困り度:
  • 暇なときにでも
log(常用対数)の近似式を教えて戴きたいです。iアプリのプログラムでlogを使いたいのですが、サポートしていないようです。ちなみにlog0.123などのように小数も使いたいのですが・・・。何かいい近似計算方法を知っている方はぜひ教えて下さい。
質問投稿日時:06/01/07 11:12
質問番号:1880549
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答10pt

回答者:BLUEPIXY 自然対数log x は、x>0の時
X=(x−1)/(x+1)とすると
2{X+(1/3)X^3+(1/5)X^5+…}
の級数で表すことができますので、適当な桁まで求めて
log10(x)=log(x) / log(10)
を使って求めることができます。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:06/01/07 12:56
回答番号:No.1
この回答へのお礼お忙しいところ回答ありがとうございました。参考にさせていただきます。

回答

良回答20pt

回答者:age_momo √計算機能は付いているのでしょうか?それが前提になりますが、
#1さんの応用をして見ましょう。
#1さんの計算はxが1の近傍にあると収束が早いですがそれ以外は遅いので
なるべく1近傍に寄せてみましょう。そうすれば第一項だけで十分になります。

まず、基本的な公式の確認ですが、常用対数をlog、自然対数をlnと書くとして

logA=log(A/10)+1
logA=2log(√A)
logA=lnA/ln10

ですね。
ln10=2.302585093
です。定数として書き留めておいて下さい。

具体的にlog123とlog0.123を求めてみますが、ここで

log123=log1.23+2  (=2.089905111)
log0.123=log1.23-1 (=-0.910094889)

ですので、結局、log1.23を求めればいいことになります。

次に1.23の√を求めていきます。例えば5回√をすると

√√√√√1.23=1.006490163

この数字を#1さんの式に入れ、さらに2^5=32を掛け、
そしてln10=2.302585093で割ります。

(1.006490163-1)*2*32/(1.006490163+1)/2.302585093=0.089904795

log123≒0.089904795+2=2.089904795
log0.123≒0.089904795-1=-0.910095205

あくまで近似なので誤差はありますけどね。。。
√を計算して行って
1.00・・・と小数点以下0が2個並べばこれぐらいの誤差で求める事ができます。
N回√をすれば2^Nを後で掛けてくださいね。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:06/01/08 09:09
回答番号:No.2
この回答へのお礼回答していただいた内容のおかげで、うまくプログラミングできました。お忙しいところありがとうございました。
最新から表示回答順に表示良回答のみ表示