我试图编写一个程序,计算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)得到一个接近的答案
我只是不知道如何退出循环,如果它发散或差异小于给定的公差水平
我至少朝着正确的方向前进了,还是我的方法完全错了?这里的方法是什么
谢谢大家!
目前没有回答
相关问题 更多 >
编程相关推荐