Académique Documents
Professionnel Documents
Culture Documents
Para la solucin de la matriz, se utilizaron los mtodos de Jacobi y Gauss-Seidel, los cuales
parten de una estimacin inicial, que llega a un valor convergente por medio de iteraciones. El
cdigo fue programado en Matlab como se observa a continuacin:
clc
clear all
A= xlsread('Matriz_Oscar.xlsx','Hoja1','B2:W23');
b=xlsread('Matriz_Oscar.xlsx','Hoja1','Y2:Y23');
% Metodo Gauss
x=rand(22,1)
n=size(x,1);
normVal=Inf;
tol=10e-10;
GaussItr=0;
plotGauss=[];
while normVal>tol
x_old=x;
for i=1:n
sigma=0;
for j=1:i-1
sigma=sigma+A(i,j)*x(j);
end
for j=i+1:n
sigma=sigma+A(i,j)*x_old(j);
end
x(i)=(1/A(i,i))*(b(i)-sigma);
end
GaussItr=GaussItr+1;
normVal=norm(x_old-x);
plotGauss=[plotGauss;normVal];
end
fprintf('Solution of the system is : \n%f\n%f\n%f\n%f\n%f in %d
iterations',x,GaussItr);
% Metodo Jacobi
x=rand(22,1)
n=size(x,1);
normVal=Inf;
JacobItr=0;
plotJacobi=[];
while normVal>tol
xold=x;
for i=1:n
sigma=0;
for j=1:n
if j~=i
sigma=sigma+A(i,j)*x(j);
end
end
x(i)=(1/A(i,i))*(b(i)-sigma);
end
Taller de Iteracin
Oscar Alberto Salamanca Chacn 20133614021
JacobItr=JacobItr+1;
normVal=norm(xold-x);
plotJacobi=[plotJacobi;normVal];
end
fprintf('Solution of the system is : \n%f\n%f\n%f\n%f\n%f in %d
iterations',x,JacobItr);
En el cdigo anterior la matriz A se toma desde el archivo de Excel, al igual que el vector de
fuerzas, contenido en la misma carpeta que el cdigo.m, con la finalidad de evitar introducir
manualmente la matriz ya que son 484 datos que deben ser ingresados. El cdigo est dispuesto
para nicamente ser escrito y solucionar por ambos mtodos la matriz, adems de que
posteriormente mostrar una grfica de comparacin que tiene en cuenta el porcentaje de error y
el nmero de iteraciones para cada mtodo como aparece en la grfica 1.
En la grafic anterior se puede observar que el mtodo Jacobi converge mucho ms rpido que el
mtodo Gauss-Seidel, y aunque los datos del mtodo gauss son ms precisos la diferencia es casi
inapreciable; El tiempo de convergencia del cdigo es de 28,5 segundos con un total de 12617
iteraciones corridas en 8 ncleos, donde 6678 son para el mtodo Gauss y 5939 son para el mtodo
jacobi.
En la tabla 1 se observa el error para cada uno de los mtodos, comparados con los datos de Excel,
donde se puede evidenciar una alta precisin ya que los errores no superan el 0,000001%.