开发者社区> 问答> 正文

python中的泰勒展开

如何计算和打印ln(1+x)的值使用级数展开: ln (1 + x)扩张

使用while循环,并包含大小大于10-8的项。打印出每一项的和,以显示收敛的结果。 到目前为止,这是我的代码,但它计算lnsum2是一个非常大的数字,因此永远不会结束。

n=1 
lnsum2= np.cumsum((((-1)**(n+1)*(x**n)/n))) 
while lnsum2>10**-8: 
       n+=1 
       lnsum2 = lnsum2 + np.cumsum((((-1)**(n+1)*(x**n)/n))) 
else: print('The sum of terms greater than 10^-8 is:', lnsum2)

多谢。 现在我有了使用while循环的代码。谢谢你的帮助!! 问题来源StackOverflow 地址:/questions/59380645/taylor-expansion-in-python

展开
收起
kun坤 2019-12-28 14:12:19 626 0
1 条回答
写回答
取消 提交回答
  • 也许有点过头了,但这里有个不错的解决方法,用辛普森法来计算无穷级数。

    from sympy.abc import k
    from sympy import Sum, oo as inf
    import math
    
    x = 0.5
    
    result = Sum(
        (
            x**(2*k-1) /
             (2*k-1)
        ) - (
            x**(2*k) / (2*k)
        ),
    
        (k, 1, inf)).doit()
    
    #print(result) # 0.5*hyper((0.5, 1), (3/2,), 0.25) - 0.14384103622589
    print(float(result)) # 0.4054651081081644
    
    print(math.log(x+1, math.e)) # 0.4054651081081644
    

    编辑: 我认为您的原始代码的问题是您还没有完全实现这个系列(如果我正确地理解了您问题中的数字)。看起来您试图实现的系列可以表示为

          x^(2n-1)       x^(2n)
    ( +  ----------  -  -------- ... for n = 1 to n = infinity )
            2n-1           2n
    

    而您的代码实际上实现了本系列

     (-1)^2 * (x * 1)    (  (-1)^(n+1) * (x^n)                                  )
    ----------------- + (  --------------------  ... for n = 2 to n = infinity   ) 
            1            (          n                                           )
    

    编辑2: 如果你真的必须自己做迭代,而不是使用症状,这里是工作的代码:

    import math
    
    x = 0.5
    
    n=0
    sums = []
    
    while True:
        n += 1
        this_sum = (x**(2*n-1) / (2*n-1)) - (x**(2*n) / (2*n))
        if abs(this_sum) < 1e-8:
            break
    
        sums.append(this_sum)
    
    lnsum = sum(sums)
    
    print('The sum of terms greater than 10^-8 is:\t\t', lnsum)
    print('math.log yields:\t\t\t\t', math.log(x+1, math.e))
    

    输出:

    The sum of terms greater than 10^-8 is:      0.4054651046035002
    math.log yields:                             0.4054651081081644
    
    2019-12-28 14:12:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Python系列直播第一讲——Python中的一切皆对象 立即下载
Python 脚本速查手册 立即下载
低代码开发师(初级)实战教程 立即下载

相关实验场景

更多