Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Calcular uma aproximação para seno de x usando séries infinitas

Calcular uma aproximação para sen x através da seguinte série infinita

sen x = x/(1!) - (x**3)/(3!) + (x**5)/(5!) -...+((-1)**k)*(x**(2*k+1))/((2*k+1)!)

Tentei fazer pegando os primeiros 10 termos da série:

from math import factorial

E = float(input("Digite o valor de E: "))
c = 0
soma = 0
numerador = (x**(2*c +1))
denominador = (factorial(2*c+1 ))
termo = ((-1)**c)*(numerador/denominador)
while True:
    soma += termo
    c += 1
    if c == 9:
        break

print(soma)

Onde estou errando? Ajudem por favor!

3 respostas
from math import factorial

#seu codigo 
E = float(input("Digite o valor de E: "))  
c = 0
soma = 0
numerador = (x**(2*c +1))
denominador = (factorial(2*c+1 ))
termo = ((-1)**c)*(numerador/denominador)
while True:
    soma += termo
    c += 1
    if c == 9:
        break

print(soma)


#  seu  codigo alterado,  você  esqueceu de  colocar  a  variavel  E  para  funcionar  na  variavel numerador

from math import factorial

E = float(input("Digite o valor de E: "))
c = 0
soma = 0
numerador = (E**(2*c +1))  #  aqui você  colocou   (x**(2*c +1))   tem que colocar  assim  (E**(2*c +1))
denominador = (factorial(2*c+1 ))
termo = ((-1)**c)*(numerador/denominador)
while True:
    soma += termo
    c += 1
    if c == 9:
        break

print(soma)

Obrigado, kaique correia chagas !

Eu acho que ainda tem algo errado: O código acima retorna 90 quando E = 10

e fazendo:

from math import sin

 sin(10)

é -0.5440211108893698

Os valores nao coincidem!

solução!

estou realmente tentado ajudar vê se agora da o resultado que você esta esperando receber

#  Rapaz  demorei  um pouco mais  acho q consegui ... eu não manjo muito dessa matematica mas  se  liga

#factorial  se  você digitar  10 vai  da 3628800

import math

E = float(input("Digite o valor de E: "))
c = 0
soma = 0
numerador = (E**(2*c +1))
denominador = ((2*c+1 ))
termo = ((-1)**c)*(numerador/denominador)
while True:
    termo +=  soma
    c += 1
    if c == 9:
        break

print(math.factorial(termo))




#usando  sin  se  você digitar  10 vai  da -0.5440211108893698

import math

E = float(input("Digite o valor de E: "))
c = 0
soma = 0
numerador = (E**(2*c +1))
denominador = ((2*c+1 ))
termo = ((-1)**c)*(numerador/denominador)
while True:
    termo +=  soma
    c += 1
    if c == 9:
        break

print(math.sin(termo))

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