clear all; clc; fprintf('\nCalculo de la raizde una ecuacion por el metodo del Punto Fijo\n\n'); f=input('Dame la funcion f(x):','s'); xi=input('Dame el valor inicial de x : '); e=input('Dame el porciento del error : '); ea=1000; c=1; x=xi; while ea>e g=eval(f); ea=abs((g-x)/g*100); x=g; c=c+1; end fprintf('\n\n\n\nLa raiz exacta es: %d',g) fprintf('\n\nNumero de iteraciones: %d',c);
videotutoriales de matlab, octave, numpy, python, POA, algoritmia, simulacion de procesos en ingenieria quimica, y algo de ingenieria quimica
martes, 28 de febrero de 2012
Método de Punto Fijo en Matlab
domingo, 26 de febrero de 2012
Metodo de Simpson 1/3 en matlab
clear all; clc; fprintf('Calculo de la integral por el metodo de Simpson de 1/3\n\n'); f=input('introduce la funcion:','s'); a=input('lime inferior:'); b=input('limite superior:'); c=input('numero de segmentos a dividir (numero par):'); h=(b-a)/c; z=0; x=a; for i=1:c; if (-1)^i==1 k=eval(f); z=z+k; end x=h*i; end zz=0; x=a; for i=2:c; if (-1)^i==-1 k=eval(f); zz=zz+k; end x=h*i; end x=a; if x==a d=eval(f); end x=b; if x==b e=eval(f); end z=z*4; v=zz*2; z=z+v+d+e; z=z/(3*c); z=z*(b-a) fprintf('Resultado ');
viernes, 24 de febrero de 2012
Interpolacion Polinomial Simple en matlab
clear all; clc; fprintf('Interpolacion con el Metodo de Aproximacion Polinomial Simple\n\n'); n=input('Numero de puntos que se tienen: '); for i=1:n x(1,i)=input('dame los valores de xi:'); end for i=1:n xi(1,i)=input('dame los valores de f(xi):'); end %imprimiendo los Valores x, xi x xi xint=input('Numero para el que desea interpolar x: '); %determinando los parametros a0,1,2 i=1; while i<=n a(i,1)=1; j=2; while j<=n a(i,j)=a(i,j-1)*x(1,i); j=j+1; end a(i,n+1)=xi(1,i); i=i+1; end %Resolviendo mediante el metodo de Gauss-jordan c=n+1; f=n; for k=1:c-1 a(k,:)=a(k,:)/a(k,k); for j=k+1:f a(j,:)=a(j,:)-a(k,:)*a(j,k); j=j+1; end k=k+1; end for k=f:-1:2 for j=k-1:-1:1 a(j,:)=a(j,:)-a(k,:)*a(j,k); j=j-1; end k=k-1; end r=0; for m=1:n-1 r=r+(a(m+1,n+1))*xint^m; end r=r+a(1,n+1); fprintf('\n\nresultado xi: %d\n',r); %Graficando Resultados plot(x,xi) grid xlabel('x');ylabel('y')
Detección de Rostro en matlab
vid = videoinput('winvideo',1,'YUY2_640x480'); set(vid, 'FramesPerTrigger', Inf); set(vid, 'ReturnedColorspace', 'rgb') vid.FrameGrabInterval = 5; start(vid) while(vid.FramesAcquired<=100) data = getsnapshot(vid); diff_im = imsubtract(data(:,:,1), rgb2gray(data)); diff_im = medfilt2(diff_im, [3 3]); diff_im = imadju st(diff_im); level = graythresh(diff_im); bw = im2bw(diff_im,level); BW5 = imfill(bw,'holes'); bw6 = bwlabel(BW5, 8); stats = regionprops(bw6,['basic']); [N,M]=size(stats); if (bw==0) break; else tmp = stats(1); for i = 2 : N if stats(i).Area > tmp.Area tmp = stats(i); end end bb = tmp.BoundingBox; bc = tmp.Centroid; imshow(data) hold on rectangle('Position',bb,'EdgeColor','r','LineWidth',2) hold off end end stop(vid); flushdata(vid);
martes, 21 de febrero de 2012
Método de la Secante en Matlab (Version 2 )
%USANDO EL COMANDO eval() lo cual evita que se vectorize demasiado el código
clear all; clc; fprintf('\nCalculo de la raiz de una ecuacion por el metodo de la Secante\n\n'); f=input('Dame la funcion f(x) : ','s'); x0=input('Dame el valor del intervalo inferior de x : '); x1=input('Dame el valor del intervalo superior de x : '); e=input('Dame el porciento del error : '); ea=1000; c=1; while ea>e x=x0; g=eval(f); x=x1; gg=eval(f); xi=x1-((gg*(x0-x1))/(g-gg)); ea=abs((xi-x1)/xi)*100; x0=x1; x1=xi; c=c+1; end fprintf('\n\n\n\nLa raiz exacta es: %d',xi) fprintf('\n\nNumero de iteraciones: %d\n',c);
domingo, 19 de febrero de 2012
Regresión Lineal en Matlab
clear all; clc; fprintf('Metodo de Regresion Lineal \n\n'); n=input('Numero de puntos: '); for i=1:n x(1,i)=input('dame los valores de x: '); end for i=1:n y(1,i)=input('dame los valores de y: '); end % se nota extraño pero asi se mostraran los resultados %en forma de Vector. x y plot(x,y) grid xlabel('x');ylabel('y') pause a=0; for i=1:n a=a+x(1,i)*y(1,i); end b=0; for i=1:n b=b+x(1,i)*x(1,i); end c=0; for i=1:n c=c+x(1,i); end e=0; for i=1:n e=e+y(1,i); end d=0; d=c/n; f=0; f=e/n; a1=(n*a-c*e)/(n*b-c*c); a0=f-a1*d; clc; fprintf('Ecuacion con la que se encuentran los nuevos valores de y \n\n'); fprintf(' y = %d + %d x',a0,a1); for i=1:n y(1,i)=a0+a1*x(1,i); end fprintf('\n\nPresiona enter para ver la nueva grafica\n\n'); pause %Grafica con los Datos Ajustados plot(x,y) grid xlabel('x');ylabel('y') pause
Método de la Regla Falsa en Matlab
xai=input('Ingrese limite inferior: '); xbi=input('Ingrese limite superior: '); tol=input('Ingrese el porcentaje de Error: '); syms x; f=input('Ingrese la Funcion: '); f1=subs(f,x,xai); f2=subs(f,x,xbi); i=1; ea(1)=100; if f1*f2 < 0 xa(1)=xai;f1=subs(f,x,xa(1)); xb(1)=xbi;f2=subs(f,x,xb(1)); xr(1)=xa(1)-f1*(xb(1)-xa(1))/(f2-f1); f3=subs(f,x,xr(1)); fprintf('It. Xa Xr Xb Error aprox \n'); fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \n',i,xa(i),xr(i),xb(i)); while abs(ea(i))>=tol, if f1*f3 < 0 xa(i+1)=xa(i);f1=subs(f,x,xa(i+1)); xb(i+1)=xr(i);f2=subs(f,x,xb(i+1)); end if f1*f3> 0 xa(1)=xr(i); xb(1)=xb(i); end xr(i+1)=xa(i+1)-f1*(xb(i+1)-xa(i+1))/(f2-f1); ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1)))*100; fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \t %7.3f \n',... i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1)); i=i+1; end else fprintf('No existe una raíz en ese intervalo'); end
viernes, 17 de febrero de 2012
domingo, 12 de febrero de 2012
Método de Newton Raphson Modificado en Matlab
clear; clc; fprintf('\n metodo de Newton Rapson Modificado\n\n'); funcion=input('Dame la funcion f(x) : ','s'); dfuncion=input('Dame la derivada de funcion f(x) : ','s'); d2funcion=input('Dame la segunda derivada de funcion f(x) : ','s'); xi=input('Dame el valor inicial de x : '); e=input('Dame el porciento del error : '); ea=1000; c=1; x=xi; while ea>e g=eval(funcion); h=eval(dfuncion); k=eval(d2funcion); j=x-(g*h)/(h^(2)-(g*k)); ea=abs((j-x)/j*100); x=j; c=c+1; end fprintf('\n\n\n\nLa raiz exacta es: %d',j) fprintf('\n\nNumero de iteraciones: %d',c);
sábado, 11 de febrero de 2012
jueves, 9 de febrero de 2012
Flowmaster V7
Hace unos días fui invitado a un curso básico de Flowmaster V7.
¿Pero que es flowmaster?
Es una herramienta de software especializada en la simulación de termo-fluidos, que permite a los ingenieros, investigar aumentos en la presión, la caída de presión, caudal, temperatura y tiempos de respuesta del sistema - la eliminación de la incertidumbre de los sistemas de flujo de fluidos.
¿Qué nos permite Realizar?
- Determinar donde realizar mejoras en la tubería.
- Manejar de forma eficiente las interrupciones en el suministro.
- Reducir el consumo de combustible en periodos de baja demanda
- Maximizar el uso de la capacidad de los gasoductos.
Así que pongo a su disposición la pagina web del proyecto. http://www.flowmaster.com/index.html
Y conforme yo vaya avanzando con el software iré publicando al respecto.
Ordenamiento de números por el método Burbuja.
def ordenamientoBurbuja(lista,tam): for i in range(1,tam): for j in range(0,tam-i): if(lista[j] > lista[j+1]): k = lista[j+1] lista[j+1] = lista[j] lista[j] = k; def imprimeLista(lista,tam): for i in range(0,tam): print lista[i] def leeLista(): lista=[] cn=int(raw_input("Cantidad de numeros a ingresar: ")) for i in range(0,cn): lista.append(int(raw_input("Ingrese numero %d : " % i))) return lista A=leeLista() ordenamientoBurbuja(A,len(A)) imprimeLista(A,len(A))
Método de Newton Raphson en Scilab
function y=f(x) y=exp(-x)-log(x); endfunction function y=df(x) y=-exp(-x)-1/x; endfunction function x=newtonraphson(x0,tol); i=1; ea(1)=100; x(1)=x0; while abs(ea(i))>=tol; x(i+1)=x(i)-f(x(i))/df(x(i)); ea(i+1)=abs((x(i+1)-x(i))/x(i+1)*100); i=i+1; end printf(' i \t X(i) Error aprox (i) \n'); for j=1:i; printf('%2d \t %11.7f \t %7.3f \n',j-1,x(j),ea(j)); end endfunction
Método de la Secante en Matlab
fx(1)=input('Ingrese el intervalo inferior: '); fx(2)=input('Ingrese el intervalo superior: '); tol=input('Ingrese el porcentaje de error: '); syms x; f=input('Ingrese la funciòn: '); f1=subs(f,x,fx(1)); f2=subs(f,x,fx(2)); ea(1)=100; i=1; j=2; while abs(ea(i))>=tol xf(j+1)=(xf(j-1)*f2-xf(j)*f1)/(f2-f1); f1=f2; f2=subs(f,x,xf(j+1)); ea(i+1)=(xf(j+1)-xf(j))/xf(j+1)*100; j=j+1; i=i+1; end fprintf(' i xf(i) Error aprox (i) \n'); %fprintf('%2d\t%11.7f\t\n',0,x(1)); for k=2:j; fprintf('%2d\t%11.7f\t%7.3f\n',k-1,xf(k),ea(k-1)); end
miércoles, 8 de febrero de 2012
Método de la Bisección en Matlab
xai=input('Ingrese el intervalo inferior: '); xbi=input('Ingrese el intervalo superior: '); tol=input('Ingrese el porcentaje de error: '); syms x; f=input('Ingrese la funciòn: '); i=1; f1=subs(f,x,xai); f2=subs(f,x,xbi); ea(i)=100; if f1*f2 < 0 xa(i)=xai; f1=subs(f,x,xa(i)); xb(i)=xbi; f2=subs(f,x,xb(i)); xr(i)=(xa(i)+xb(i))/2; f3=subs(f,x,xr(i)); fprintf('It. Xa Xr Xb Error aprox \n'); fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \n',i,xa(i),xr(i),xb(i)); while abs(ea(i)) >= tol, if f1*f3<0 xa(i+1)=xa(i);f1=subs(f,x,xa(i+1)); xb(i+1)=xr(i);f2=subs(f,x,xb(i+1)); end if f1*f3> 0 xa(i+1)=xr(i);f1=subs(f,x,xa(i+1)); xb(i+1)=xb(i);f2=subs(f,x,xb(i+1)); end xr(i+1)=(xa(i+1)+xb(i+1))/2; f3=subs(f,x,xr(i+1)); ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1))*100); fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \t %7.3f \n',... i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1)); i=i+1; end else fprintf('No existe una raíz en ese intervalo'); end
Método de Newton Raphson en Matlab
x0=input('Ingrese el valor inicial: '); tol=input('Ingrese el porcentaje de error: '); f=input('Ingrese la función: '); i=1; fx(i)=x0; syms x; f1=subs(f,x,fx(i)); z=diff(f); d=subs(z,x,fx(i)); ea(1)=100; while abs(ea(i))>=tol; fx(i+1)=fx(i)-f1/d; f1=subs(f,x,fx(i+1)); d=subs(z,x,fx(i+1)); ea(i+1)=abs((fx(i+1)-fx(i))/fx(i+1)*100); i=i+1; end fprintf('i fx(i) Error aprox (i) \n'); for j=1:i; fprintf('%2d \t %11.7f \t %7.3f \n',j-1,fx(j),ea(j)); end
martes, 7 de febrero de 2012
domingo, 5 de febrero de 2012
codigo del tutorial 26
les dejo el enlace de la aplicacion generada en el videotutorial 26 de nuestro curso de matlab
http://www.mediafire.com/?2qe0ahy44c21n3a
http://www.mediafire.com/?2qe0ahy44c21n3a