log()的实现方法

来源:百度知道 编辑:UC知道 时间:2024/05/12 06:50:58
请问有谁知道实现自然对数函数log()的方法
我先把它按ln(t)=ln(1+x)泰勒展开,然后再用Aitken外推数列的方法构造新的级数,以加快收敛速度,但实验发现对于ln0.001等,t较小时,收敛依然十分慢,请教下究竟log()是怎么做的。

不需要计算整个定义域上的ln函数,这样肯定在某些点收敛速度很慢

可以再迭代之前做一个转换,比如
t=a*e^n
这样 ln(t)=ln(a)+n
其中n是整数,避免误差,a取值在e和e^2之间,或者更大,或者取一个更容易收敛的范围,这样收敛就又保证。

可参考《数值分析》,上面对收敛、误差等问题有更深入的讨论。

....