问题

计算数学 >> 算法
Questions in category: 算法 (Algorithm).

计算 $\ln(x)$ 的算法

Posted by haifeng on 2020-05-18 10:03:59 last update 2020-05-18 10:26:48 | Answers (0) | 收藏


$\ln(x)=\log_e(x)$, 有时也写成 $\log(x)$. 

判断以下哪种算法最高效.

 

算法一:

对于 $x\in(0,2]$, 令 $t=x-1$, 则 $t\in(-1,1]$,

\[
\begin{split}
\ln(1+t)&=\sum_{n=1}^{+\infty}\frac{(-1)^{n-1}}{n}t^n\\
&=t-\frac{1}{2}t^2+\frac{1}{3}t^3-\frac{1}{4}t^4+\frac{1}{5}t^5-\frac{1}{6}t^6+\cdots
\end{split}
\]

$\ln 2$ 还有另一个极限等式(参见问题1183)

\[
\lim_{n\rightarrow\infty}(\frac{1}{n+1}+\cdots+\frac{1}{2n})=\ln 2
\]

对于 $x > 2$, 可将 $x$ 表示为 $x=a\cdot 2^m$. 这里 $a\in(0,2)$. 于是

\[
\ln x=\ln a+m\ln 2
\]

当然这种算法并不是太好的.

 

 


References:

https://math.stackexchange.com/questions/61209/what-algorithm-is-used-by-computers-to-calculate-logarithms