martes, 31 de julio de 2012

Blogger para Android

Hoy he visto que al fin blogger para android esta disponible en Bolivia.
La aplicación es muy simple, con pocas opciones, pero útil si se quiere escribir y compartir estando lejos de casa. Permite restallar el texto con negrita e itálica.
Además permite insertar enlaces e imágenes, ya sea desde la memoria del celular o desde la cámara.
Añadir en etiquetas y la localización sin las ultimas características.
Blogger es simple en Android, ojala añadan funcionalidades para hacer más fácil la publicación.

domingo, 15 de abril de 2012

Falsa Posición

El método de Bisección es válido para encontrar la raíz de ecuación pero al dividir siempre el segmento por la mitad puede tardar mucho si la raíz esta cerca de uno los extremos del segmento.
El método de Falsa Posición trata de solucionar estos problemas dividiendo el segmento en partes desiguales, usando la siguiente formula:
$$R=x_{1}-\frac{f(x_{1})*(x_{0}-x_{1})}{f(x_{0})-f(x_{1})}$$
A continuación el código en Python para este método.
##Entradas
ec = raw_input("Ecuacion: ")
x0 = float(raw_input("x0: "))
x1 = float(raw_input("x1: "))

##Metodo
f0 = eval(ec, {'x' : x0})
f1 = eval(ec, {'x' : x1})
tol = 0.00001

if f0 * f1 < 0.0:
    while abs((x1 - x0) / x1) > tol:
        R = x1 - (f1 * (x0 - x1)) / (f0 - f1)
        fR = eval(ec, {'x' : R})
        if f0 * fR < 0.0:
            x1 = R
            f1 = fR
        if fR * f1 < 0.0:
            x0 = R
            f0 = fR

##Salidas
if f0 * f1 < 0.0:
    print "La raiz es:", R
else:
    print "Valores iniciales malos"

sábado, 14 de abril de 2012

Bisección

El método de Bisección consiste en suponer dos valores para x, que forman un segmento, en dicho segmento se debe encontrar la raíz. Se divide el segmento por la mitad encontrando un nuevo valor para x, se repite este procedimiento hasta que dos valores consecutivos de x sean aproximadamente iguales.
A continuación el código en Python para este método.

##Entradas
ec = raw_input("Ecuacion: ")
x0 = float(raw_input("x0: "))
x1 = float(raw_input("x1: "))

##Metodo
f0 = eval(ec, {'x' : x0})
f1 = eval(ec, {'x' : x1})
tol = 0.00001

if f0 * f1 < 0.0:
    while abs((x1 - x0) / x1) > tol:
        R = (x0 + x1) / 2.0
        fR = eval(ec, {'x' : R})
        if f0 * fR < 0.0:
            x1 = R
            f1 = fR
        if fR * f1 < 0.0:
            x0 = R
            f0 = fR

##Salidas
if f0 * f1 < 0.0:
    print "La raiz es:", R
else:
    print "Valores iniciales malos"