2017-04-12 58 views

回答

6

dc中没有内置命令,但可以实现numerical methods中的任意一个用于将对数计算为宏。

# L (x -- y) 
# Natural logarithm of `x`. 
[ 1-d2+/ 
    d2*Sk    # Initialize multiplier 
    d*Sy    # Initialize multiplier factor 
    0Ss    # Initialize accumulator 
    10K^Sp    # Initialize 10^k power 
    [ d1r/lk*ls+lsrdss # Update accumulator 
    -lp*d*1 [s_q]s_>_ # Check precision 
    lkly*sk 2+   # Update multiplier and counter 
    lfx 
    ]Sf 
    1lfxLs 
LkLyLpLfs_s_s_s_] sL 

使用方法如下:

例如,this one使用ln(x)ln((1+y)/(1-y))泰勒级数展开计算

10k 
5lLx 2lLx /p 

这不是最佳的,特别是对于大量(X»1)但是如果需要的话,也可以通过这种方式实现更快收敛的方法。

压缩版本(稍快):

[1-d2+/d2*Skd*Sy0Ss10K^Sp[d1r/lk*ls+lsrdss-lp*d*1[s_q]s_>_lkly*sk2+lfx]Sf1lfxLsLkLyLpLfs_s_s_s_]sL