Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

All published worksheets from http://sagenb.org

Views: 168731
Image: ubuntu2004
#esta hoja plantea el algoritmo de biseccion del intervalo sin usar programación sofisticada #se imprime el valor de la raíz, de la función evaluada y el número de pasos #Primero introducimos la función candidata a estudio de raices, el intervalo a estudiar, el error err y número de iteraciones n omega=1.5 z_0=1 def f(z): return abs(math.cos(omega*z))-z/z_0 #valor absoluto de coseno de omega z menos z/z_0 a=-2 b=1 err=0.0001 n=0 nmax=10000 #definimos estas variables float dos = float(2); err = float(err) #antes de ir al algoritmo evaluamos si la función cambia de signo en los extremos if (f(a)*f(b)<0)&(n<nmax): #n<nmax por seguridad #buscamos el primer punto medio c=(a+b)/dos print 'Raiz=',c, ' Valor=',f(c),' Iteración=',n,' (valor inicial)',' Error=',err while abs(f(c))>err: #condición que valor absoluto f(raiz) sea mayor que error (notar el valor absoluto) if f(c)*f(a)<0: #esta condición restaura un nuevo intervalo con cambio de signo b=c else: a=c n=n+1 #cuenta iteraciones c=(a+b)/dos print 'Raiz=',c, ' Valor=',f(c),' Iteración=',n else: print 'f(a)=',f(a),' f(b)=',f(b),' Iteración=',n
Raiz= -0.5 Valor= 1.23168886887 Iteración= 0 (valor inicial) Error= 0.0001 Raiz= 0.609893798828 Valor= 2.30254797138e-05 Iteración= 14