Metodos

11
"Año de la Diversificación Productiva y del Fortalecimiento de la Educación" UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA) E.A.P. INGENIERIA MECÁNICA DE FLUIDOS Asignatura: Métodos Numéricos II Profesor: Ing. Chauca Nolasco William Alumno: Vallejos Castro Jhonatan Código: 10130172 Ciclo: VII Año: 2015

description

jvgbk

Transcript of Metodos

Page 1: Metodos

"Año de la Diversificación Productiva y del Fortalecimiento de la Educación"

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

(Universidad del Perú, DECANA DE AMÉRICA)

E.A.P. INGENIERIA MECÁNICA DE FLUIDOS

Asignatura: Métodos Numéricos II

Profesor: Ing. Chauca Nolasco William

Alumno: Vallejos Castro Jhonatan

Código: 10130172

Ciclo: VII

Año:

2015Ciudad universitaria 13 de Abril del 2015

Page 2: Metodos

Tarea

1. Utilizar la ecuación (6) para aproximar la solución de la ecuación de Laplace en los puntos de la región dada.d)u (0 , y )=108∗y2∗(1− y ) u (0 , y )=0 ,0< y<1

u (0 , x )=0 u ( x ,1 )=0 ,0<x<1

Tamaño de paso: h=1/2

Resolviendo el sistema de ecuaciones por el método de Eliminación de Gauss

Eliminación de Gauss

clear allclcfprintf('\n ELIMINACION DE GAUSS')fprintf('\n =====================\n')[a x]=gauss([-4 1 1 0;1 -4 0 1;1 0 -4 1;0 1 1 -4],[-200/27 0 -400/27 0],0.0001)function [x a]=gauss(a,b,tol)[n qq]=size(a);er=0;for i=1:n; s(i)=abs(a(i,1)); for j=2:n; if abs(a(i,j))>s(i) s(i)=abs(a(i,j)); end end % s=s(i);end% call eliminate[a b er]=eliminate(a,s,b,tol,n,er);if er~=(-1) % call sustitute [x]=sustitute(a,n,b);endend function [a s b]=pivot(a,b,s,n,k)p=k;big=abs(a(k,k)/s(k));for ii=k+1:n; T=abs(a(ii,k)/s(ii)); if (T>big) big=T; p=ii; endendif p~=k for jj=k:n; T=a(p,jj); a(p,jj)=a(k,jj); a(k,jj)=T; end

Page 3: Metodos

T=b(p); b(p)=b(k); b(k)=T; T=s(p); s(p)=s(k); s(k)=T; endend %pivot

function [a b er]=eliminate(a,s,b,tol,n,er)for k=1:n-1; % call pivot [a s b]=pivot(a,b,s,n,k); if abs(a(k,k)/s(k))< tol er=-1; break end for i=k+1:n; factor=a(i,k)/a(k,k); for j=1:n; a(i,j)=a(i,j)-factor*a(k,j); % a=a(i,j); end b(i)=b(i)-factor*b(k); % b=b(i); endend if abs(a(k,k)/s(k))< tol er=-1; endend %eliminate

function [x]=sustitute(a,n,b)x(n)=b(n)/a(n,n);for i=n-1:-1:1; sum=0; for j=i+1:n; sum=sum+a(i,j)*x(j); end x(i)=(b(i)-sum)/a(i,i);end%x=x(i);end %sustitute

Page 4: Metodos

2. TareaResolviendo el sistema de ecuaciones por el método de Eliminación de Gauss

Eliminación de Gauss

clear allclcfprintf('\n ELIMINACION DE GAUSS')fprintf('\n =====================\n') a=[-4 1 0 1 0 0 0 0 0;1 -4 1 0 1 0 0 0 0;0 1 -4 0 0 1 0 0 0;1 0 0 -4 1 0 1 0 0;0 1 0 1 -4 1 0 1 0;0 0 1 0 1 -4 0 0 1;0 0 0 1 0 0 -4 1 0;0 0 0 0 1 0 1 -4 1;0 0 0 0 0 1 0 1 -4];b=[0 0 -25 0 0 -50 -25 -50 -150];[a x]=gauss(a,b,0.0001)

function [x a]=gauss(a,b,tol)[n qq]=size(a);er=0;for i=1:n; s(i)=abs(a(i,1)); for j=2:n; if abs(a(i,j))>s(i) s(i)=abs(a(i,j)); end end % s=s(i);end% call eliminate[a b er]=eliminate(a,s,b,tol,n,er);if er~=(-1) % call sustitute [x]=sustitute(a,n,b);endend function [a s b]=pivot(a,b,s,n,k)p=k;big=abs(a(k,k)/s(k));for ii=k+1:n; T=abs(a(ii,k)/s(ii)); if (T>big) big=T; p=ii; endendif p~=k for jj=k:n; T=a(p,jj); a(p,jj)=a(k,jj); a(k,jj)=T; end T=b(p); b(p)=b(k); b(k)=T; T=s(p); s(p)=s(k); s(k)=T;

Page 5: Metodos

endend %pivot

function [a b er]=eliminate(a,s,b,tol,n,er)for k=1:n-1; % call pivot [a s b]=pivot(a,b,s,n,k); if abs(a(k,k)/s(k))< tol er=-1; break end for i=k+1:n; factor=a(i,k)/a(k,k); for j=1:n; a(i,j)=a(i,j)-factor*a(k,j); % a=a(i,j); end b(i)=b(i)-factor*b(k); % b=b(i); endend if abs(a(k,k)/s(k))< tol er=-1; endend %eliminate

function [x]=sustitute(a,n,b)x(n)=b(n)/a(n,n);for i=n-1:-1:1; sum=0; for j=i+1:n; sum=sum+a(i,j)*x(j); end x(i)=(b(i)-sum)/a(i,i);end%x=x(i);end %sustitute

Resultados

Page 6: Metodos

3. TareaResolviendo el sistema de ecuaciones por el método de Eliminación de Gauss

Eliminación de Gauss

clear allclcfprintf('\n ELIMINACION DE GAUSS')fprintf('\n =====================\n') a=[-4 1 0 1 0 0 0 0 0;1 -4 1 0 1 0 0 0 0;0 1 -4 0 0 1 0 0 0;1 0 0 -4 1 0 1 0 0;0 1 0 1 -4 1 0 1 0;0 0 1 0 1 -4 0 0 1;0 0 0 1 0 0 -4 1 0;0 0 0 0 1 0 1 -4 1;0 0 0 0 0 1 0 1 -4];b=[-30 -20 -80 -40 0 -60 -30 -20 -110];[a x]=gauss(a,b,0.0001)

function [x a]=gauss(a,b,tol)[n qq]=size(a);er=0;for i=1:n; s(i)=abs(a(i,1)); for j=2:n; if abs(a(i,j))>s(i) s(i)=abs(a(i,j)); end end % s=s(i);end% call eliminate[a b er]=eliminate(a,s,b,tol,n,er);if er~=(-1) % call sustitute [x]=sustitute(a,n,b);endend function [a s b]=pivot(a,b,s,n,k)p=k;big=abs(a(k,k)/s(k));for ii=k+1:n; T=abs(a(ii,k)/s(ii)); if (T>big) big=T; p=ii; endendif p~=k for jj=k:n; T=a(p,jj); a(p,jj)=a(k,jj); a(k,jj)=T; end T=b(p); b(p)=b(k); b(k)=T; T=s(p); s(p)=s(k); s(k)=T;

Page 7: Metodos

endend %pivot

function [a b er]=eliminate(a,s,b,tol,n,er)for k=1:n-1; % call pivot [a s b]=pivot(a,b,s,n,k); if abs(a(k,k)/s(k))< tol er=-1; break end for i=k+1:n; factor=a(i,k)/a(k,k); for j=1:n; a(i,j)=a(i,j)-factor*a(k,j); % a=a(i,j); end b(i)=b(i)-factor*b(k); % b=b(i); endend if abs(a(k,k)/s(k))< tol er=-1; endend %eliminate

function [x]=sustitute(a,n,b)x(n)=b(n)/a(n,n);for i=n-1:-1:1; sum=0; for j=i+1:n; sum=sum+a(i,j)*x(j); end x(i)=(b(i)-sum)/a(i,i);end%x=x(i);end %sustitute

Resultados

Page 8: Metodos

4. TareaResolviendo el sistema de ecuaciones por el Método de Gauss-Seidel

Método de Gauss-Seidel

clear allclcfprintf('\n METODO DE GAUSS-SEIDEL')fprintf('\n ========================\n') a=[-4 1 0 0 0 0 0 0;1 -4 0 1 0 0 0 0;0 0 -4 1 0 0 1 0;0 1 1 -4 0 0 0 1;0 0 0 0 -4 1 0 0;0 0 0 0 1 -4 1 0;0 0 1 0 0 1 -4 1;0 0 0 1 0 0 1 -4];%b=[-1.5 -1.5 -1.5 -0.5 -1.5 -1.5 -0.5 -0.5];%[a x]=gauss(a,b,0.0001) num=input('INTRODUCE EL NUMERO DE ECUACIONES: ');A=a; %INTRODUCE LA MATRIZ DE COEFICIENTESb=input('INTRIODUCE LA MATRIZ DE COEFICIENTES INDEPENDIENTES: ');z=input('INTRODUZCA EL NUMERO DE ITERACIONES: ');X0=zeros(1,num);X=X0;for f=1:zfor i=1:numsuma=0;for j=1:numif i~=jsuma=suma+A(i,j)*X(j);endendX(i)=(b(i)-suma)/A(i,i);%fprintf('%10.4f', X(i));endX0=X;endfprintf('\n');fprintf(' Ui,j =\n') fprintf('\n %10.4f', X)fprintf('\n')

Resultados

Page 9: Metodos

5. TareaResolviendo el sistema de ecuaciones por el Método de Gauss-Seidel

Método de Gauss-Seidel

clear allclcfprintf('\n METODO DE GAUSS-SEIDEL')fprintf('\n ========================\n') a=[-4 1 0 1 0 0 0 0 ;1 -4 1 0 1 0 0 0;0 1 -4 0 0 1 0 0;1 0 0 -4 1 0 1 0;0 1 0 1 -4 1 0 1;0 0 1 0 1 -4 0 0;0 0 0 1 0 0 -4 1;0 0 0 0 1 0 1 -4];%b=[-1 -1 -1 -1 -1 -1 -1 -1]; num=input('INTRODUCE EL NUMERO DE ECUACIONES: ');A=a; %INTRODUCE LA MATRIZ DE COEFICIENTESb=input('INTRIODUCE LA MATRIZ DE COEFICIENTES INDEPENDIENTES: ');z=input('INTRODUZCA EL NUMERO DE ITERACIONES: ');X0=zeros(1,num);X=X0;for f=1:zfor i=1:numsuma=0;for j=1:numif i~=jsuma=suma+A(i,j)*X(j);endendX(i)=(b(i)-suma)/A(i,i);%fprintf('%10.4f', X(i));endX0=X; endfprintf('\n');fprintf(' Ui,j =\n') fprintf('\n %10.4f', X)fprintf('\n');

Resultados