|
如何用乘除法近似計算10的指數(shù)和以10為底的對數(shù) 歡迎轉(zhuǎn)載,須注明作者信息---京西青龍 近似計算公式無所謂好壞,不同的應(yīng)用場合有不同的公式更使用。用10^x表示10的x次方、logx表示x的以10為底的對數(shù);用'/'表示除號或分?jǐn)?shù)線、用“·”或'*'表示乘號;以下提到的誤差都是指誤差的絕對值。 第一個近似公式: 10^x=(0,9+x)/(0.9-x)= (9+10x)/(9-10x) ---公式1 用公式1計算時,x越接近0相對誤差越小:x的計算范圍為[-log 2,+log2]即[-0.30103,+0.30103]時,若中間結(jié)果保留5位有效數(shù)字且最終結(jié)果保留4位有效數(shù)字,則計算結(jié)果的最大相對誤差<1%;計算過程中所要求的相對誤差越小,中間結(jié)果和最終結(jié)果要保留的有效數(shù)字越多。 第二個近似公式: log x=0.864(x-1)/(2+0.864(x-1))=( 0.864x-0.864)/( 0.864x+1.136)---公式2 用公式2計算的最大相對誤差<1%,x的計算范圍是[1,2],要求中間結(jié)果保留5位有效數(shù)字且最終結(jié)果保留4位有效數(shù)字。 如果計算[-log2,+log 2]范圍之外的變量y的指數(shù),令y=n*log2 + x=0.30103*n +x,則10^y=(2^n)*(2^x)。其中n為整數(shù),x在(-log2,+log2)范圍內(nèi),這樣,即可計算10的任意指數(shù)。 如果計算[0, 2]范圍之外的變量y的以10為底的對數(shù),令y=(2^n)*(2^x) ,其中n為整數(shù),x在(1,2)范圍內(nèi)則logy=n*log2+logx 其中n為整數(shù),這樣,即可計算任意范圍內(nèi)的以10為底的對數(shù)。例如y=42=32*1.3125=(2^5)*1.3125 ,則log42=5*log2+log1.3125=5*0.30103+0.864(1.3125-1)/(2+0.864(1.3125-1))=1.624,而用計算器計算的結(jié)果是1.623。 另外,當(dāng)y在[4,16]范圍內(nèi), |
|
|