hola lo que pasa es que me pusieron este problema en la Universidad pero no logro que me funcione la primera parte.
a)-Implemente en Python una función de nombre termino(i) tal que, dado el parámetro i, devuelva el término i-ésimo de la serie de Leibniz.
termino(1) devuelve 1
termino(2) devuelve -0.33333
yo he investigo sobre el tema y se que la serie de Leibriz es esta:
1/1 -1/3 +1/5 -1/7......=pi/4
también encontré esta sumatoria sobre la serie.
4*( (-1)^i / (2i+1) )
donde esta formula tiene un limite en pi/4 por lo que en la formula general se la multiplica por 4.
Con lo que investigue me puse a programar y obtuve el siguiente codigo:
impot math
def termino(i):
i=0
total=0
limite=math.pi/4
if total == limite:
q=4*( (-1)**i / ((2*i)+1) )
i=i+1
total=total + 1
return total
a=int(input("ingresar valor: \n"))
res=termino(a)
print(res)
En esta primera parte no consigo que me devuelva la función 1 o si le doy 0 no me retorna -0.3333
Gracias por el leer mi consulta ;-)
Bueno he realizo otro código y este si me devuelve 1 pero no -0.3333
import math
def parametro(i):
a=0
for x in range(0,i):
a += (-1)**x / (2*x+1)
return a
b=int(input("ingrese valor : \n"))
res=parametro(b)
print(res)
:laugh:
total=0
limite=math.pi/4
if total == limite:
.....
return total
nunca va a entrar al if y siempre va devolver lo que hay en total que es cero , es mas i siempre va a ser cero quita
i=0
ya lo tienes en termino(i)
podrias poner la ecuacion? eso facilitaria las cosas
Esto dice el problema:
me dan esto:
1/1 - 1/3 +1/5 - 1/7 + 1/9 - ...+ ....=pi/4
a) Implemente en Python una función de nombre termino(i) tal que, dado el parámetro i, devuelva el término i-ésimo de la serie de Leibniz.
termino(1) devuelve 1
termino(2) devuelve -0.33333
b) Defina la función suma(n) tal que, dado el parámetro n, devuelva la suma de los n primeros términos de la serie de Leibniz.
suma(4) corresponde al resultado de calcular:
c) Usando lo anterior y el hecho que la suma corresponde teóricamente al valor , defina la función leibniz(n) tal que, dado el parámetro n, devuelva la aproximación de pi con los primeros n términos de la serie de Leibniz.
perdon ese tenia un error este si sirve
def termino(i):
if i==1:
return 1
den=1
for a in range (2,(i+1)):
den=den+2
x=1.0/(den)
if( (a%2)==0):
x=x*-1
return x
x=input()
print termino(x)
el denominador se le va sumando dos si la posicion en la secuencia es par entonces es un numero negativo
Gracias por tu respuesta ya me pongo al asunto ;-)
Cita de: jhonnymn3 en 20 Noviembre 2014, 14:46 PM
Gracias por tu respuesta ya me pongo al asunto ;-)
ese no servia :-( ya edite la respuesta
:laugh: :laugh:
No sale nada, sale solo el 1 ;D
Cita de: jhonnymn3 en 20 Noviembre 2014, 14:56 PM
:laugh: :laugh:
No sale nada, sale solo el 1 ;D
enserio?! a mi me funciona sera que lo copie mal .
vuelve a copiarlo a ver xD.Usas python 3?
me da error Can't convert 'int' object to str implicitly :o
Cita de: jhonnymn3 en 20 Noviembre 2014, 14:59 PM
me da error Can't convert 'int' object to str implicitly :o
seguramente es porque usas python 3 xD
def termino(i):
if i==1:
return 1
den=1
for a in range (2,(i+1)):
den=den+2
x=1.0/(den)
if( (a%2)==0):
x=x*-1
return x
x=eval(input())
print (termino(x))
edito:
si no entiendes algo dices :P
'eval' is not defined y si uso ** :o
usas un python online?
cambia
x=eval(input())
por
x=int(input())
bueno ya te ayude suficiente ;D
Gracias amigo yo soy novato con el python y no tengo mucha experiencia gracias por brindarme un poco de tu tiempo.
La ultima cosa porque me sale esto local variable 'x' referenced before assignment
que linea?
La ultima http://pythontutor.com/visualize.html#code=def+termino(i)%3A%0D%0A%09if+i%3D%3D1%3A%0D%0A%09%09return+1%0D%0A%09den%3D1%0D%0A%09for+a+in+range+(1%2B1,(i%2B1))%3A%0D%0A%09%09den%3Dden%2B2%0D%0A%09%09x%3D1.0/(den)%0D%0A%09%09if(+(a%252)%3D%3D0)%3A%0D%0A%09%09%09x%3Dx*-1%0D%0A%09return+x%0D%0Ax%3Dint(input())%0D%0Aprint+(termino(x))&mode=display&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&drawParentPointers=false&textReferences=false&showOnlyOutputs=false&py=3&rawInputLstJSON=%5B%220%22%5D&curInstr=10 (http://pythontutor.com/visualize.html#code=def+termino(i)%3A%0D%0A%09if+i%3D%3D1%3A%0D%0A%09%09return+1%0D%0A%09den%3D1%0D%0A%09for+a+in+range+(1%2B1,(i%2B1))%3A%0D%0A%09%09den%3Dden%2B2%0D%0A%09%09x%3D1.0/(den)%0D%0A%09%09if(+(a%252)%3D%3D0)%3A%0D%0A%09%09%09x%3Dx*-1%0D%0A%09return+x%0D%0Ax%3Dint(input())%0D%0Aprint+(termino(x))&mode=display&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&drawParentPointers=false&textReferences=false&showOnlyOutputs=false&py=3&rawInputLstJSON=%5B%220%22%5D&curInstr=10)
que raro cuando lo ejecuto yo desde cero funciona perfecto pero bueno ya es cuestion de que hagas los cambios necesarios a mi programa son detalles porque en el python de escritorio funciona perfecto y no da errores
http://pythontutor.com/visualize.html#togetherjs=UpUf8qFoR9
saludos :P
gracias ;-)
Bueno ya termine el código gracias a la ayuda del amigo daryo.