2
respostas

Arredondamento em cálculos de séries

Galera, estou resolvendo o seguinte exercício de um livro:

"Escreva um programa que encontre o valor da expressão image, com a precisão da linguagem, onde -1 < x < 1. Dica: a série se constitui da seguinte forma: x1 + x3 + x5 + x7 …. Se o usuário digitar um valor para x que não satisfaça a condição |x|<1 (valor absoluto de x deve ser menor do que 1), então o programa deve indicar um erro e terminar a execução sem tentar realizar o cálculo, porque caso contrário, ele ficaria em repetição infinita."

Meu algoritmo é esse daqui:

x = float(input("Insira o valor de x[-1< x < 1]: "))

if(abs(x) < 1):
    i = 0
    termo = 0
    serie_anterior = x ** (2 * i + 1)
    serie_atual = x ** (2 * i + 1)

    while(serie_anterior != serie_atual or i <= 1):
        print("Série Anterior:{:.15f} - Série Atual:{:.15f}".format(serie_anterior,serie_atual))
        i += 1
        termo = round(x ** (2 * i + 1),15)
        serie_anterior = round(serie_atual,15)
        serie_atual = round(serie_atual + termo,15)

    print("Valor de X: {} - Valor da série: {:.15f}".format(x,serie_atual))

else:
    print("Houve um erro na inserção de x!!!")

Acontece que quando insiro valores para teste, eles diferem muito dos valores apresentados pelo autor do livro. Alguém conseguiria me dizer se existe erro de lógica? Ou a diferença deve ser apenas pelo arredondamento? Eu usei 15 casas pois não sei se minha versão atual do python trabalha com 15 casas.

2 respostas

PS: O valor da expressão não saiu, mas seria o somatório de X ** (2 * i + 1) com i variando de 0 ao infinito.

Olá Thiago! Tudo certo? Espero que sim. 🙂

Desculpe a demora a responder.

A variável i deve ser levada ao infinito?

Teria como você compartilhar quais são os valores apresentados pelo autor do livro?

Vamos conversando por aqui. Fico à disposição 😉

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software