Python无穷级数收敛与发散

2024-04-29 05:23:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编写一个程序,计算a^n/b^(n-1)的无穷级数的和,从n=1到无穷大,当它发散时终止并引发一个值错误。以下是我所拥有的:

def compute_sum(a, b, tolerance=1e-5):

n=1.
computed_sum = 0.
previous_sum = 0.

while (n>0.):
    previous_sum = computed_sum
    computed_sum += a**n / b**(n-1.)
    n=n+1.
    if (computed_sum - previous_sum < tolerance or computed_sum - previous_sum < -tolerance):
        raise ValueError()       

return computed_sum

当计算出的和与前一个is和之间的差值小于指定的公差时,循环应终止。如果我删除了If语句并用a=-2和b=3计算它,然后用while(n<;9999)得到一个接近的答案

我只是不知道如何退出循环,如果它发散或差异小于给定的公差水平

我至少朝着正确的方向前进了,还是我的方法完全错了?这里的方法是什么

谢谢大家!


Tags: or方法程序ifdef错误toleranceraise