#definimos nuestra variables
k,n = var('k,n')
#PRECAUCIÓN!!! SÓLO MODIFIQUE ESTOS PARÁMETROS
#Elegimos los parametros de nuestra serie geométrica
a1=1
r=-1/2
#True: Se aplica una estimación para que la diferencia entre la suma parcial y la serie sea menor al error
#False: Se elige el número de términos N
tolerancia=False
error=0.001
N=6
#True: Se muestran sumas parciales
#False: No se muestran sumas parciales
MostrarSumasParciales=True
#una vez que elige los parametros anteriores, sólo tiene que dar click en "Evaluate" para ejecutar el script
#definimos nuestra serie geométrica en función del indice k
a(k) = a1*r^(k-1)
#imprimos la fórmula para el n-esimo término
show("Fórmula para la serie geométrica:")
show(LatexExpr("a_n="), a(n))
if abs(r)<1:
Sinfty=a1/(1-r)
show("Las sumas parciales S(n) convergen a ", LatexExpr("\ S_{\infty}="), Sinfty, "=", float(Sinfty))
if tolerancia:
N = ceil( (log(error*(1-r))-log(abs(a1)))/log(abs(r)) + 1)
show("Margen de error: ", error)
show("Número de iteraciones estimadas: ", N)
else:
show("Número de iteraciones:", N)
print "\n"
for n in range(1, N+1):
S = sum([a(k) for k in range(1,n+1)])
show(LatexExpr("S("),n, LatexExpr(")="), float(S))
show(LatexExpr("|S_\infty-S("),n,LatexExpr(")|="), float(abs(Sinfty-S)))
print "\n"
if abs(Sinfty-S) < error:
break
else:
show("Las sumas parciales no convergen")