{{{id=1|
#
# CALCULA TÉRMINOS DE UNA SUCESIÓN Y LOS DIBUJA
#
#------------------------------------------------
var("n")
@interact
def _(f = sqrt(n^2+n)-n, N=int(7)):
for x in range(1,N+1):
print 'a_'+str(x)+'=',float(f(x))
li = [(x,f(x)) for x in range(1,N+1)]
show( plot(f,1,N,linestyle='--',alpha=0.4)+list_plot(li,rgbcolor=(1,0,0),pointsize=30) )
///
}}}
{{{id=6|
#
# RECURRENCIA DEL PROBLEMA 3
#
#--------------------------------------------------------------
@interact
def _(t2=text_control('Número de iteraciones'), n=int(1)):
ncif = 15
a = N(sqrt(2),digits=ncif)
for k in range(1,n+1):
print 'a_'+str(k)+'=', a
a = sqrt(2*a)
///
}}}
{{{id=10|
#
# RECURRENCIA DEL PROBLEMA 6
# (método para calcular raíces cuadradas)
#
#--------------------------------------------------------------
@interact
def _(t1=text_control('Número'), x=float(4.0), t2=text_control('Iteraciones'), n=int(1) ):
ncif = 15
a = N(2.0,digits=ncif)
for k in range(1,n+1):
print '\t\ta_'+str(k)+'=', N(a,digits=ncif)
a = (a+x/a)/2.0
print '------------------------------------------------------'
print 'valor "exacto"\t =',N(sqrt(x),digits=ncif)
///
}}}
{{{id=8|
#
# LAS SERIES \SUM 1/n Y \SUM 1/nLOG(n+1) DIVERGEN MUY LENTAMENTE
#
#--------------------------------------------------------------
@interact
def _(t2=text_control('Número de términos'), N=int(100)):
s1 = 0.0
s2 = 0.0
for n in range(1,N+1):
s1 = s1+1.0/n
s2 = s2+1.0/n/log(n+1.0)
print '\SUM 1/n=>',s1
print '\SUM 1/nLOG(n+1)=>',s2
///
}}}
{{{id=9|
#
# LA SERIE \SUM (-1)^n/n CONVERGE MUY LENTAMENTE
# (problema 14: aceleración de series)
#
#--------------------------------------------------------------
@interact
def _(t2=text_control('Número de términos'), n=int(10)):
s = 0.0
sa = 0.0
saa = 0.0
signo = 1
k=1
while k < n+1:
s = s+1.0/k
k = k+1
s = s-1.0/k
k = k+1
if n % 2 <> 0:
s = s+1.0/(k-1)
signo = -1
print '\SUM (-1)^n/n=>\t',s
print '---------------------------------------'
print 'Valor "exacto"\t',N(log(2))
sa = s + 0.5*signo/(n+1)
print '---------------------------------------'
print 'Suma acelerada"\t',sa
saa = s + signo*(0.75/(n+1) - 0.25/(n+2))
print '---------------------------------------'
print 'Acel. doble"\t',saa
///
}}}
{{{id=11|
///
}}}
{{{id=12|
///
}}}
{{{id=13|
///
}}}