Вы находитесь на странице: 1из 5

Metodo de Gauss-Jordan en Matlab

clear all ;
clc;
fprintf('Dame la matriz aumentada\n\n');
f=input('Cuantas filas tiene la matriz: ');
c=input('Cuantas columnas tiene la matriz: ');
for k=1:c
for j=1:f
fprintf('fila : %x\n',j)
fprintf('columna : %x',k)
r=input('Numero de esta fila y columna: ');
a(j,k)=r;
j=j+1;
end
k=k+1;
end
a
pause
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;
a
pause
end
k=k+1;
a
pause
end
for k=f:-1:2
for j=k-1:-1:1
a(j,:)=a(j,:)-a(k,:)*a(j,k);
j=j-1;
a
pause
end
k=k-1;
a
pause
end
fprintf('resultado\n');

En archivo para el mtodo de Jacobi dice:


function [solucion,num_iteraciones]=metodo_jacobi(A,B,punto_inicial,error)
cont_iteraciones=0;
s=size(A);
num_ecuaciones=s(1);
for k=1:num_ecuaciones
B(k)=B(k)/A(k,k);
A(k,:)=A(k,:)/A(k,k);
A(k,k)=0;
end
M=-A;
x_ant=punto_inicial';
x_sig=M*x_ant+B';
deltax_n=x_sig-x_ant;
while norm(deltax_n,inf) > error
x_sig=M*x_ant+B';
deltax_n=x_sig-x_ant;
x_ant=x_sig;
cont_iteraciones=cont_iteraciones+1;
end
solucion=x_sig;
num_iteraciones=cont_iteraciones;

El archivo para el mtodo de Gauss Seidel


dice:
clear;
clc;
fprintf('Resolucion de Matrices por el metodo de Gauss Seidel\n\n');
fprintf('Dame la matriz aumentada\n\n');
f=input('Cuantas filas tiene la matriz: ');
c=input('Cuantas columnas tiene la matriz: ');

%***********************************************************
%** En los siguentes for anidados se da entrada a los

**

%** datos de la matriz aumentada, los cuales son dados

**

%** primero la columna 1, despues la 2 y asi sucesivamente**


%***********************************************************

for k=1:c
for j=1:f
fprintf('fila : %d\n',j)
fprintf('columna : %d',k)
r=input('Numero de esta fila y columna: ');
a(j,k)=r;
j=j+1;
end
k=k+1;
end
a
pause

%************************************************************
%** En seguida se da entrada a los valores X1,X2...Xn del

**

%** sistema de ecuaciones a resolver dependiendo de la

**

%** cantidad de varibles las cuales para la primera itera- **


%** cion seran cero

**

%************************************************************

for q=1:f
x(q)=0;
q=q+1;
end

%*************************************************************
%** En la siguiente seccion se introduce el numero de itera-**
%** ciones a realizar y se realizan estas iteraciones

**

%*************************************************************

i=input('cuantas iteraciones quieres realizar: ');


for t=1:i
for k=1:3

x(k)=0;
for w=1:3
if a(k,w)==a(k,k)
else
x(k)=x(k)-a(k,w)*x(w);
end
w=w+1;
end
x(k)=(x(k)+a(k,4))/a(k,k);
k=k+1;

end
%***********************************************************
%** En la siguiente seccion se imprimrn los resultados

**

%** para cada iteracion se limpia la pantalla

**

%***********************************************************

clc
fprintf('iteracion: %d\n\n',t);
t=t+1;
for q=1:f
fprintf('X %d: \n',q);
x(q)
q=q+1;
end

pause
end

Вам также может понравиться