初等数学 调和级数求和 精确计算

调和级数求和的精确计算可使用Python的分数计算处理

初等数学 调和级数求和 精确计算

问题:求调和级数前100项的精确值,结果用分数表示

# -*- coding: UTF-8 -*-
import math
from fractions import Fraction
from decimal import Decimal
from decimal import localcontext


# 调和级数前100项的和
def harmonic_sum100():
    # n = 100: 1 + 1/2 + 1/3 + ... + 1/100
    k = 100
    fracRlt = Fraction(1, 1)
    for i in range(2, k + 1):
        tmpFrac = Fraction("%d/%d" % (1, i))
        fracRlt = fracRlt + tmpFrac
    print("调和级数求和->精确值:", fracRlt)
    print(Decimal(fracRlt.numerator) / Decimal(fracRlt.denominator))


# 调和级数前100项的和(近似计算)
def harmonic_sum100_approximate():
    # 欧拉常数
    gama = "0.57721566490153286060651209"
    # 调和级数求和
    # refer: https://blog.csdn.net/njuptACMcxk/article/details/107764853
    # n = 100: 1 + 1/2 + 1/3 + ... + 1/100
    with localcontext() as ctx:
        ctx.prec = 30
        k = 100
        sumK = Decimal(math.log(k)) + Decimal(gama)
        print(f"调和级数求和->近似值:{sumK}")


# 调和级数前n项的和
def harmonic_series_sum(n):
    # 初始化和为0
    sum_result = Fraction(0, 1)

    # 计算调和级数前n项的和
    for i in range(1, n + 1):
        sum_result += Fraction(1, i)

    return sum_result


def testHarmonicSeriesSum():
    # 计算调和级数前100项的和
    result = harmonic_series_sum(100)
    # 打印结果
    print(f"The sum of the first 100 terms of the harmonic series is: {result}")

harmonic_sum100()
harmonic_sum100_approximate()



结果:
在这里插入图片描述

结论

使用Python分数(Fraction)计算,很方便能计算调和级数求和的问题

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
初等数学复习与研究PDF是一种电子书或文档,用于帮助学生回顾和深入研究初等数学知识。在学习初等数学的过程中,学生可能会遇到各种难题和概念理解上的困难。这时,初等数学复习与研究PDF可以提供一种便捷的方式,帮助学生巩固和加强自己的数学能力。 首先,这种PDF提供了大量的练习题和例题,涵盖了初等数学的各个方面,包括代数、几何、函数等等。学生可以通过反复练习和解题,提高自己的运算能力和问题解决能力。 其次,初等数学复习与研究PDF可能会提供详细的解答和解题思路。这对于学生来说是非常有帮助的,因为他们可以通过参考这些解答和思路,了解正确的解题方法和思维模式,从而更好地掌握数学知识。 此外,初等数学复习与研究PDF可能还包括一些数学知识的深入讲解和推导,对于那些希望深入了解数学原理和概念的学生来说是非常有价值的。这种PDF可以帮助学生建立更扎实的数学基础,并为将来更高级的数学学习奠定基础。 总的来说,初等数学复习与研究PDF是一种对于学生而言非常有价值的资源。通过反复练习、参考解答和深入研究数学原理,学生可以提高自己的数学水平,更好地应对考试和实际问题。这种PDF对于希望从事数学相关领域的学生来说也是非常有用的,因为它可以帮助他们建立稳固的数学基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值