プロが教える店舗&オフィスのセキュリティ対策術

log(常用対数)の近似式を教えて戴きたいです。iアプリのプログラムでlogを使いたいのですが、サポートしていないようです。ちなみにlog0.123などのように小数も使いたいのですが・・・。何かいい近似計算方法を知っている方はぜひ教えて下さい。

A 回答 (2件)

自然対数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)
を使って求めることができます。
    • good
    • 0
この回答へのお礼

お忙しいところ回答ありがとうございました。参考にさせていただきます。

お礼日時:2006/01/10 18:44

√計算機能は付いているのでしょうか?それが前提になりますが、


#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を後で掛けてくださいね。
    • good
    • 1
この回答へのお礼

回答していただいた内容のおかげで、うまくプログラミングできました。お忙しいところありがとうございました。

お礼日時:2006/01/10 18:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!