求log()的实现方法

 我来答
世纪网络17
2022-10-27 · TA获得超过5958个赞
知道小有建树答主
回答量:2426
采纳率:100%
帮助的人:144万
展开全部
分类: 教育/科学 >> 科学技术
问题描述:

请问有谁知道实现自然对数函数log()的方法

我先把它按ln(t)=ln(1+x)泰勒展开,然后再用Aiken外推数列的方法构造新的级数,以加快收敛速度,但实验发现对于ln0.001等,t较小时,收敛依然十分慢,请教下究竟log()是怎么做的。

解析:

3个建议:

1、如果坚持使用该方法,一种加快收敛的方法是让t接近1再求ln(t)。这里仅考虑t > 1的情况,如果t < 1,则ln(t) = -ln(1/t)。设e^x = t, 先求x的整数部分n,再求小数部分y。只要不断累乘e,直到刚好超过t,累乘的次数就是n+1。再用你说的泰勒展开求y,因为0 <= y < 1,所以收敛速度可以较快。

2、实际上,当y接近1时,收敛速度还是不快,因为ln2 = 1 - 1/2 + 1/3 - 1/4 + ...。建议求解方程e^x = t。用牛顿法,迭代公式是x1 = x0 - 1 + t/e^x0。其中e^x0可以用泰勒展开近似,结合1中的建议,无需展开多项。我试了一下,效果不错。

3、上面的方法都很麻烦,直接做积分最简单了。1/x在1到t上的积分就是ln(t)。有无数的方法可以做,效果最好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式