【发布时间】:2015-11-21 00:41:54
【问题描述】:
我正在尝试在十位精度内建立 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 位数字后停止迭代?
感谢您的帮助!
【问题讨论】:
-
请注意,函数定义中使用的“r”从未使用过。由于尚未声明 x,因此“print taylor_two(x, 12)”行也会出错。要在所有 n 次尝试之前从函数返回,您必须提交一个较低(可能是较高)的数字,以将计算出的数字与 if .6418538
-
嗨,乔,感谢您的评论。我现在看到没有声明 x 存在问题。您能否举一个编码示例来说明下限和上限的含义?我不确定你在这里的意思。
-
我在上一篇文章中放了一个if语句。浮点数可能不是 100% 准确,因此您必须将“等于”定义为上下两个数字,并且介于两者之间的任何数字都是“相等”
标签: python numerical-integration taylor-series