gpt4 book ai didi

Python:使用泰勒级数逼近 ln(x)

转载 作者:行者123 更新时间:2023-11-28 22:41:53 26 4
gpt4 key购买 nike

我正在尝试为 ln(1.9) 建立一个精度在十位数以内的近似值(因此为 .641853861)。

我正在使用我从 ln[(1 + x)/(1 - x)] 构建的简单函数

到目前为止,这是我的代码:

# function for ln[(1 + x)/(1 - x)]

def taylor_two(r, n):
x = 0.9 / 2.9
i = 1
taySum = 0
while i <= n:
taySum += (pow(x,i))/(i)
i += 2
return 2 * taySum

print taylor_two(x, 12)

print taylor_two(x, 17)

我现在需要做的是重新格式化它,以便它告诉我将 ln(1.9) 近似为上述 10 位数字所需的项数,让它显示系列给出的值,并显示错误。

我假设我需要以某种方式将我的函数构建到 for 循环中,但是我怎样才能让它在达到所需的 10 位数字后停止迭代?

感谢您的帮助!

最佳答案

原理是;

  • 查看每次迭代对结果增加了多少。
  • 当差异小于 1e-10 时停止。

您正在使用以下公式,对吧;

ln formula

(注意有效范围!)

def taylor_two():
x = 1.9 - 1
i = 1
taySum = 0
while True:
addition = pow(-1,i+1)*pow(x,i)/i
if abs(addition) < 1e-10:
break
taySum += addition
# print('value: {}, addition: {}'.format(taySum, addition))
i += 1
return taySum

测试:

In [2]: print(taylor_two())
0.6418538862240631

In [3]: print('{:.10f}'.format(taylor_two()))
0.6418538862

关于Python:使用泰勒级数逼近 ln(x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32235707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com