martes, 30 de abril de 2013

Shape Context Based Corresponding Point Models

El Ejemplo 2D creará un modelo de punto correspondiente (PCM) para un conjunto de 10 contorno de la mano 2D.

El Ejemplo 3D creará un PCM de un conjunto de mandíbula 10 3D superficies trianguladas.

También hay ejemplos utilizando el PCM de entrenar y utilizar modelos 2D/3D forma activa (ASM) y modelos de apariencia activa (AAM). (carpeta "ActiveModels_version7")

El ejemplo 2D toma un par de minutos. El 3D-ejemplo alrededor de 7 horas, y requiere 64 bits Matlab.

La asignación no rígida entre conjuntos de datos se mantiene difeomorfa para evitar doblar la malla. Sin embargo, el optimizador no tuvo éxito en todos los casos de la 3D-ejemplo (tal vez en la próxima actualización)



DESCARGAR 



jueves, 25 de abril de 2013

Aplicacion de Matlab a la Economia


En este ejemplo se pondrá de relieve cómo MATLAB se puede utilizar para llevar a cabo:

Análisis de distribución de valor actual neto de una mina

Modelización y simulación de los precios futuros de tasas de interés y rutas

Las evaluaciones de riesgo basadas en la distribución de los resultados económicos




lunes, 22 de abril de 2013

interpolación ecuación cuadrática, en Matlab

Determinar coeficientes de una ecuación de interpolación cuadrática al tener 3 valores de x, y.

se supone que tiene una ecuación cuadrática y = ax ^ 2 + bx + c y tienen 3 puntos en x y 3 puntos en y. Este script determina a, b​​, c




jueves, 18 de abril de 2013

Ecuacion de Segundo Grado en Python 3 usando Tkinter

En el post anterior (16/abril) publicamos el código para la resolucion de ecuaciones  de segundo grado en python 3.x. Partiendo de este código anterior desarrollamos una aplicacion con interfaz de usuario, usando la librería tkinter, en nuestro intento por aprender programacion en python 3.3. El código queda como sigue.

## graficador de  la funciones
from tkinter import*
from tkinter import messagebox
import matplotlib.pyplot as plt
import numpy as np
ventana = Frame(height = 400, width = 400)
ventana.pack(padx = 10, pady = 10)
### Declarando Variables
a = DoubleVar()
b = DoubleVar()
c= DoubleVar()
restx1 = StringVar()
restx2 = StringVar()

#Declarando funciones 
### funcion graficar
def graficar():
     a = aA.get()
     b = bB.get()
     c = cC.get()
     ax = float(a)
     bx = float(b)
     cx  = float (c)
     x = np.arange(-10,10,0.5)
     y = ax*x**2 + bx*x + cx
     plt.plot(x,y)
     plt.title('a*x^2 + b*x + c = 0')
     plt.xlabel('X')
     plt.ylabel('Y')
     plt.show()

##termina funcion graficar
### inica funcion calcular
def calcular():

        
        a = aA.get()
        b = bB.get()
        c = cC.get()
        ax = float(a)
        bx = float(b)
        cx  = float (c)
        ## calculando Delta
        delta = float(bx**2-4*ax*cx)
           
        if delta<0:
                
                messagebox.showerror('Eror', 'No hay solucion')

        elif delta ==0:
            s == float(-bx/2*ax)
            messagebox.showinfo('resultado','Solucion unica ', s)
        else:
             
             
                  resultado = Label(ventana, text =
                                   "Resultado")
                  resultado.place(bordermode = OUTSIDE, height = 30, width= 100, x = 150, y= 250)
                  resultado1 = Label(ventana, text =
                                   "X1")
                  resultado1.place(bordermode = OUTSIDE, height = 30, width= 50, x = 180, y= 280)
                  resultado2 = Label(ventana, text =
                                   "X2")
                  resultado2.place(bordermode = OUTSIDE, height = 30, width= 50, x = 180, y= 310)
                  x1 = float((-bx+((bx**2 - 4*ax*cx))**0.5)/(2*ax))
                  x2 = float((-bx-((bx**2 - 4*ax*cx))**0.5)/(2*ax))
                  r1 = Label(ventana,textvariable = restx1)
                  r1.place(bordermode = OUTSIDE, height = 30, width= 50, x = 230, y= 280)
                  restx1.set(x1)
                  r2 = Label(ventana,textvariable = restx2) 
                  r2.place(bordermode = OUTSIDE, height = 30, width= 50, x = 230, y= 310)
                  restx2.set(x2)
                  
##iniciando maquetado de  interfaz
aA = Entry(ventana, textvariable = a)
aA.place(bordermode = OUTSIDE, height = 30, width = 50, x = 10, y = 40)
bB = Entry (ventana, textvariable = b)
bB.place(bordermode = OUTSIDE, height = 30, width = 50, x = 130, y = 40)
cC = Entry(ventana, textvariable = c)
cC.place(bordermode = OUTSIDE, height = 30, width = 50, x = 230, y = 40)
## entrada de TExto

xa = Label(ventana, text = "X^2 + ")
xa.place(bordermode = OUTSIDE, height = 30, width = 50, x =70,y=40 )
xb = Label(ventana, text = "X + ")
xb.place(bordermode = OUTSIDE, height = 30, width = 50, x = 180, y = 40)
xc = Label(ventana, text = "= 0 ")
xc.place(bordermode = OUTSIDE, height = 30, width = 50, x=280, y = 40)

### boton de graficar

graficar = Button ( ventana, text = "Graficar", command = graficar)
graficar.place(bordermode= OUTSIDE, height= 40, width = 100, x = 40, y = 200)

## boton calcular
calcular = Button (ventana, text = "Calcular", command = calcular)
calcular.place(bordermode = OUTSIDE, height = 40, width = 100, x = 160, y = 200)
## terminado el  maquetetado de la  GUI

ventana.mainloop()
Nuestro codigo ha crecido en gran manera, en el post anterios solo eran aproximadamente 30 lineas  y en este momento tenemos un total de 100 lineas de codigo  ptyhon 3.3. La apliacion queda de la siguiente manera.



















Compara la cantidad de codigo Python  vs la cantida de  Codigo Matlab, ¿Cual crees que es mas conveniente?, ¿Cual se te hace mas facil?, ¿Cual te enseñan en la facultad de ingenieria? Tu tienes la unica respuesta si deseas aprender python.

martes, 16 de abril de 2013

Ecuacion de Segundo Grado en Python

## Ecuacion de segundo grado 
print ('Modelo de la ecuacion  a*x^2 + b*x + c = 0')
a = float(input('Valor de a: '))
b = float(input('Valor de b: '))
c = float(input('Valor de c: '))
#calculando  las  delta
delta = float(b**2-4*a*c)
          
if delta < 0:
    print('Ecuacion no tiene solucion')

elif delta ==0:
    s == float(-b/2*a)
    print ('Solucion unica: ',s)
else:
    x1 = float((-b+((b**2 - 4*a*c))**0.5)/(2*a))
    x2 = float((-b-((b**2 - 4*a*c))**0.5)/(2*a))
    print('Las soluciones son las siguientes')
    print('X1: ',x1)
    print('X2: ',x2)

## viene mi intento de graficar
import matplotlib.pyplot as plt
import math
import numpy as np
x = np.arange(-10,10,0.5)
y = a*x**2 + b*x + c
plt.plot(x,y)
plt.title('a*x^2 + b*x + c = 0')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

miércoles, 10 de abril de 2013

Serie de Fourier en Matlab

Analisis de fourier en matlab, la apliacion esta desarrollada con interfaz de usuario para su mayor comprension


Enlace de Descarga: DESCARGAR

jueves, 4 de abril de 2013

El comando Meshgrid a Fondo

Por cuestiones de la universidad me vi en la necesidad obligatoria de asistir  a una plática de Matlab R2013a, donde un estudiante de posgrado nos  hacía notar su inteligencia más que superior a nosotros los mortales, y llego el momento del tema de gráficos en 3Dal preguntarle un asistente acerca de que es exactamente el comando meshgrid, el simplemente no supo que responder solo dijo: " que solo teníamos que tener en cuenta que sirve para hacer gráficos  en 3D"  O.o

Así que intentaremos explicar que es el comando meshgrid en matlab y para que nos sirve usarlo.
Los graficos de Mallas son graficos tridimensionales  ultilizados para representar funciones  tipo
     Z=f(x,y)
     Donde :
     x , y son variables independientes (vectores de datos, datos experimentales, etc)
     z es la variable dependiente
¿Cómo  construimos un grafico en 3D?
   Aplicaremos la regla de los 3 Pasos.
  1. Paso 1
Creación de una Rejilla
La rejilla solo es un conjunto de puntos pertenecientes a las variables  independientes de x,y.
Exactamente para esto es útil el comando meshgrid , el nos crea esa rejilla supongamos lo siguiente:


>> x=-1:3;
>> y=1:4;
>> [X,Y]= meshgrid(x,y)

X =

    -1     0     1     2     3
    -1     0     1     2     3
    -1     0     1     2     3
    -1     0     1     2     3


Y =

     1     1     1     1     1
     2     2     2     2     2
     3     3     3     3     3
     4     4     4     4     4

Esto nos genera una rejilla  en el siguiente plano, en el que estara nuestra grafica:

     2. Paso 2
Crear nuestra Varible Z en cada punto de la rejilla.

>> Z=X.*Y.^2./(X.^2+Y.^2)

Z =

   -0.5000         0    0.5000    0.4000    0.3000
   -0.8000         0    0.8000    1.0000    0.9231
   -0.9000         0    0.9000    1.3846    1.5000
   -0.9412         0    0.9412    1.6000    1.9200

3. Paso 3
Crear  nuestro grafico: Podemos usar los graficos de mallas con mesh o de superficie con surf
>> mesh(X,Y,Z)
>> surf(X,Y,Z)

martes, 2 de abril de 2013

Ecuacion de Gas Ideal: Pv = nrT en Matlab

Un pequeño programita desarrollado en Matlab para la resolucion decada caso de la ecuacion de gas ideal pv = nrt, la interfaz de usuario es muy simple, Solo hay que elegir un caso  de los que ya estan programados.

  
Despues de seleccionar el caso, este automaticamente reconoce las variables que estan involucradas. y oprimimos calcular. (Ejemplo Caso de volumen)

 
Enlace de descarga:   DESCARGAR