Codigo de metodos numericos en matlab

Solo disponible en BuenasTareas
  • Páginas : 2 (299 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de diciembre de 2011
Leer documento completo
Vista previa del texto
ANEXO 1
% DESCOMPOSICION LU
function [ x ] = descomLU( A,b,n )
for i=1:n
L(i,i)=1;
U(1,i)=A(1,i);
end
for k=1:n-1j=k;
for i=j+1:n
suma=0;
if j>1,
for m=1:j-1
suma=suma+L(i,m)*U(m,j);end
end
L(i,j)=(A(i,j)-suma)/U(j,j);
end
i=k+1;
for j=k:n
suma=0;
for m=1:i-1suma=suma+L(i,m)*U(m,j);
end
U(i,j)=A(i,j)-suma;
end
end
y(1,1)=b(1,1);
for i=2:n
suma=0;for m=1:i-1
suma=suma+L(i,m)*y(m,1);
end
y(i,1)=b(i,1)-suma;
end
x(n,1)=y(n,1)/U(n,n);

for i=n-1:-1:1suma=0;
for m=i+1:n
suma=suma+U(i,m)*x(m,1);
end
x(i,1)=(y(i,1)-suma)/U(i,i);
end
end

Ejemplo:B=[50;0;-200;0;0];
A=[7 0 -2 0 0;4 -4 0 0 0;0 1 -11 0 0; 0 0 9 -11 2;3 3 0 0 -6];
[x]= descomLU( A,B,5 )
ANEXO 2
% GAUSS SEIDEL%Algoritmo completo de la resolución del problema por el método de Gauss-Seidel
%Algoritmo para realizar las iteraciones por el método deGauss-Seidel,
function [x,ni] = gaussseidel(A,b,epsi)
na=size(A);
n=na(1);
xo=zeros(n,1);
[C,d]=transfor(A,b,n);
xini=xo;
fori=1:n
k=C*xini+d;
x1(i)=k(i);
xini(i)=x1(i);
end
maxi=1000;
ni=1;
x=transpose(x1);
while norm((x-xo),2)>epsi & ni
tracking img