videotutoriales de matlab, octave, numpy, python, POA, algoritmia, simulacion de procesos en ingenieria quimica, y algo de ingenieria quimica
Mostrando entradas con la etiqueta Heramientas de Ingenieria. Mostrar todas las entradas
Mostrando entradas con la etiqueta Heramientas de Ingenieria. Mostrar todas las entradas
miércoles, 1 de julio de 2015
martes, 30 de septiembre de 2014
Interpolacion por el Método de Newton
#include<stdio.h> #include<conio.h> #include<math.h> #include<process.h> #include<string.h> void main(){ int n; int i,j; float ax[10]; float ay[10]; float y=0; float x; float h; float p; float diff[20][20]; float y1,y2,y3,y4; printf("\n Numero de Terminos: "); scanf("%d",&n); printf("\n\n Valor de X: "); for(i=0;i<n;i++){ printf("\n\n Valor de x%d: ",i+1); scanf("%f",ax[i]); } printf("\n\n Valor de Y: "); for(j=0;j<n;j++){ printf("\n\n Valor de y%d: ",i+1); scanf("%f",ay[i]); } printf("\n Valor para x: "); printf("\n Valor para y: "); scanf("%f",&x); h = ax[1]-ax[0]; for(i=0;i<n-1;i++){ diff[i][1]=ay[i+1]-ay[i]; } for(j=2;j<=4;j++){ for(i=0;i<n-j;i++){ diff[i][j]=diff[i+1][j-1]-diff[i][j-1]; } } i=0; do{ i++; }while(ax[i]<x); i--; p=(x-ax[i])/h; y1= p*diff[i-1][1]; y2=p*(p+1)*diff[i-1][2]/2; y3=(p+1)*p*(p-1)*diff[i-2][3]/6; y4 = (p+2)*(p+1)*p*(p-1)*diff[i-3][4]/24; y =ay[i]+y1+y2+y3+y4; printf(" x= %6.4f, y= 6.4%f ",x,y); printf("\n\n\n Enter para Salir"); getch(); }
martes, 1 de julio de 2014
Método de Falsa Posicion en C
# include <stdio.h> # include <math.h> # include<conio.h> # include<string.h> # include<process.h> #define TOL 0.000005 #define f(x) 3*x+sin(x)-exp(x) void falsaposicion(); void main() { printf("\n Solucion por el metodo de Falsa posicion \n"); printf("\n La Ecuacion a resolver es: "); printf("\n\t\t\t 3*x+sin(x)-exp(x)= 0 \n\n"); falsaposicion(); } void falsaposicion(){ float f0,f1,f2; float x0,x1,x2; int itr; int i; printf("Numero Maximo de Iteracciones: "); scanf("%d",&itr); for(x1=0.0;;){ f1=f(x1); if (f1>0){ break; } else { x1 = x1+0.1; } } x0= x1-0.1; f0 = f(x0); printf("\n\t\t----------------------------------------"); printf("\n\t\t Iteraccion\t x\t\t F(X) \n"); printf("\n\t\t----------------------------------------"); for(i=0;i<itr;i++){ x2 = x0-((x1-x0)/(f1-f0))*f0; f2=f(x2); if(f0*f2>0){ x1=x2; f1=f2; } else { x0=x2; f0=f2; } if (fabs(f(2))>TOL){ printf("\n\t\t%d\t%f\t%f\n",i+1,x2,f2); } } printf("\t\t--------------------------------"); printf("\n\t\t\t Raiz= %f\n",x2); printf("\t\t------------------------------"); getch(); }
sábado, 22 de marzo de 2014
Aproximación a las Rectas de Duhring 0.1
Como todos los estudiantes de ingeniería química sufrimos por los diagramas, Mudy, Duhring, y otros mas que hasta duele la cabeza.
Esta aplicacion esta provicionalmente desarrollada en lenguaje C, forma parte de un pequeño proyecto personal que iré actualizando con el tiempo sobre la materia de evaporadores, por lo que les dejo la aplicacion en este enlace el programa es de prueba tal vez contenga algún error, así que espero de sus comentarios para poder mejorarlo.
como verán en la muestra de ejecución, la temperatura esta en Fahrenhit, la concentración en fracción masa. Aun que los resultados los expresa en las magnitudes mas comunes de de medición de temperaturas.
sábado, 16 de noviembre de 2013
miércoles, 14 de agosto de 2013
orderseek--Encontrar el orden de una reacción Química en Matlab
Este pequeño programa hecho en Matlab nos sirve para hallar el orden de una reacción química, cabe señalar que este programa no es creación mía, pero lo estoy usando como punto de partida para crear un propio programa ya que en el caso de reacciones químicas tenemos muchos casos como son, volumen constante, volumen Variable, Reversibles, etc.
lunes, 5 de agosto de 2013
Diagrama Liquido- Vapor en un proceso Isobarico-- usando Matlab
El modelo de Wilson permite que el programa para tener en cuenta la desviación del comportamiento ideal en la fase líquida. El usuario debe introducir bajo presiones moderadas ya que el término de corrección a alta presión no está incluido.
lunes, 29 de julio de 2013
valtitu.py 2.0 (Programa de valoración y titulacion de Soluciones )
Hace unos días atrás publicamos la primera versión de programa de valoración de soluciones continuación les dejo la segunda versión, en esta hacemos uso de la librería tkinter.
el código fuente es el siguiente:
el código fuente es el siguiente:
##Programa de valoracion de Soluciones vercion 2 #### usando la ecuancion C1V1 = C2V2 ##### es necesario tener python 3.3 y la libreria tkinter ###### hecho por israel Nuñez ####### Universidad Autonoma Metropolitana ### isrant.blogspot.com ##### mexico D.F from tkinter import* from tkinter import messagebox import math def variables(e): global cas var = lb.curselection() var1 = tuple(('0',)) var2 = tuple(('1',)) var3 = tuple (('2')) var4 = tuple (('3')) if var == var1: ##calculando C1 cas = 1 texto=Label(ventana,text='V2') texto.place(bordermode = OUTSIDE, height=20, width =100, x = 300, y = 60) texto = Label(ventana, text = "V1") texto.place(bordermode = OUTSIDE, height = 20, width = 100, x= 300, y= 100) texto = Label(ventana, text = "C2") texto.place(bordermode = OUTSIDE, height = 20, width = 100, x= 300, y= 140) textores2 = Label(ventana, text = "C1") textores2.place(bordermode = OUTSIDE, height = 20, width = 150, x = 50, y = 250) elif var == var2: ##calculando C2 cas = 2 texto=Label(ventana,text='V2') texto.place(bordermode = OUTSIDE, height=20, width =100, x = 300, y = 60) texto = Label(ventana, text = "V1") texto.place(bordermode = OUTSIDE, height = 20, width = 100, x= 300, y= 100) texto = Label(ventana, text = "C1") texto.place(bordermode = OUTSIDE, height = 20, width = 100, x= 300, y= 140) textores2 = Label(ventana, text = "C2") textores2.place(bordermode = OUTSIDE, height = 20, width = 150, x = 50, y = 250) elif var == var3: cas = 3 ##calculando V1 texto=Label(ventana,text='V2') texto.place(bordermode = OUTSIDE, height=20, width =100, x = 300, y = 60) texto = Label(ventana, text = "C1") texto.place(bordermode = OUTSIDE, height = 20, width = 100, x= 300, y= 100) texto = Label(ventana, text = "C2") texto.place(bordermode = OUTSIDE, height = 20, width = 100, x= 300, y= 140) textores2 = Label(ventana, text = "V1") textores2.place(bordermode = OUTSIDE, height = 20, width = 150, x = 50, y = 250) elif var ==var4: cas = 4 ##calculando V2 texto=Label(ventana,text='V1') texto.place(bordermode = OUTSIDE, height=20, width =100, x = 300, y = 60) texto = Label(ventana, text = "C1") texto.place(bordermode = OUTSIDE, height = 20, width = 100, x= 300, y= 100) texto=Label(ventana,text='C2') texto.place(bordermode = OUTSIDE, height = 20, width = 100, x= 300, y= 140) textores2 = Label(ventana, text = "v2") textores2.place(bordermode = OUTSIDE, height = 20, width = 150, x = 50, y = 250) else: messagebox.showerror('Error','Fuera de Rango') ##operacion del boton calcular def calcular(): global cas variable1 = vari1.get() variable2 = vari2.get() variable3 = vari3.get() if cas == 1: v2=float(variable1) v1= float(variable2) c2= float(variable3) ##operacion resultado = (c2*v2)/v1 rest.set(resultado) elif cas == 2: v2=float(variable1) v1 = float(variable2) c1 = float(variable3) resultado = (c1*v1)/v2 rest.set(resultado) elif cas == 3: v2=float(variable1) c1 = float(variable2) c2 = float(variable3) resultado =(c2*v2)/c1 rest.set(resultado) elif cas == 4: v1 = float(variable1) c1 = float(variable2) c2 = float(variable3) resultado = (c1 *v1)/c2 rest.set(resultado) else: messagebox.showerror('Error','Selecciona una Variable') def acerca(): messagebox.showinfo('acerca de','Desarrollado por Israel Nuñez') ventana = Frame (height = 300, width = 600) ventana.pack(padx =10, pady = 10) variable1 = DoubleVar() variable2 = DoubleVar() variable3 = DoubleVar() cas = 0 rest = StringVar() #probando listbox textolb = Label(ventana, text = "Seleccione Variable") textolb.place(bordermode = OUTSIDE, height = 20, width = 150, x= 100, y= 20) lb = Listbox(ventana) lb.insert(1,"C1") lb.insert(2,"C2") lb.insert(3,"V1") lb.insert(3,"V2") lb.bind('<>' ,variables) lb.place(bordermode = OUTSIDE, height = 100, width = 150, x = 100, y= 40) #boton calcular boton = Button(ventana, text = "calcular",command= calcular ) boton.place(bordermode = OUTSIDE, height = 30, width =80, x=350, y = 200) #boton acercade boton2 = Button(ventana, text ="acerca de...", command = acerca) boton2.place (bordermode = OUTSIDE , height = 30, width = 80, x= 450, y= 200) #texto de presentacion texto=Label(ventana,text='Variable 1') texto.place(bordermode = OUTSIDE, height=20, width =100, x = 300, y = 60) texto = Label(ventana, text = "Variable 2") texto.place(bordermode = OUTSIDE, height = 20, width = 100, x= 300, y= 100) texto = Label(ventana, text = "Variable 3") texto.place(bordermode = OUTSIDE, height = 20, width = 100, x= 300, y= 140) #Entrada de Datos vari1 = Entry(ventana, textvariable =variable1) vari1.place(bordermode= OUTSIDE, height= 30, width = 100, x= 400, y= 100) vari2 = Entry(ventana,textvariable=variable2) vari2.place(bordermode= OUTSIDE, height= 30, width = 100, x= 400, y= 140) vari3 = Entry(ventana, textvariable = variable3) vari3.place(bordermode = OUTSIDE, height = 30, width = 100, x= 400, y= 60) #para mostrar resultados textores = Label(ventana, text = "Resultado") textores.place(bordermode = OUTSIDE, height = 20, width = 150, x= 100, y= 200) textores2 = Label(ventana, text = "Variable") textores2.place(bordermode = OUTSIDE, height = 20, width = 150, x = 50, y = 250) res = Label(ventana,textvariable = rest, fg = "blue",bg = "yellow") res.place(bordermode = OUTSIDE, height = 20, width = 200, x = 200, y = 250)
lunes, 22 de julio de 2013
Bioreactor para la produccion de Etanol
Este es un sistema no lineal de ecuaciones diferenciales y algebraicas, que describen la dinámica de un biorreactor continuo. El biorreactor simula la producción de etanol a través de la fermentación de levadura. El modelo se describe en:
ZK Nagy, modelo de control basado en un biorreactor de fermentación utilizando diseñan óptimo Redes Neuronales Artificiales, Chemical Engineering Journal, 127, 95-109, 2007.
DESCARGAR
ZK Nagy, modelo de control basado en un biorreactor de fermentación utilizando diseñan óptimo Redes Neuronales Artificiales, Chemical Engineering Journal, 127, 95-109, 2007.
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
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()
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.
Suscribirse a:
Entradas (Atom)