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
Suscribirse a:
Entradas (Atom)