Python бесконечная серия сходимости и расходимости - PullRequest
1 голос
/ 25 января 2020

Я пытаюсь написать программу, которая вычисляет сумму бесконечного ряда 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

Предполагается, что l oop заканчивается, когда разница между вычисленной суммой и предыдущей суммой меньше заданного допуска. Если я удалил оператор if и вычислил его с a = -2 и b = 3 и, используя time (n <9999), я получу точный ответ. </p>

Я просто не знаю, как выйти из l oop, если он расходится или разница меньше заданного уровня допуска.

По крайней мере, я направляюсь в правильном направлении или мой подход совершенно неверный? Какая здесь методология?

Спасибо!

...