Está en la página 1de 26

Facultad de Ciencias Químicas

Región Xalapa

Ingeniería Química

EXPERIENCIA EDUCATIVA

Métodos Numéricos

Dr. Eliseo Hernández Martínez

TAREA 3

Sistema de Ecuaciones

INTEGRANTES

Alarcón Bolaños Miguel Ramón


Lagunes Zarrabal Melanie Joanna

Marzo de 2021
ALGORITMO DE GAUSS-JORDAN

close all
clear
clc

N=3;
g=rand(N,N+1);

for i=1:N-1
for z=2:N
if g(i,i)==0
j=g(1,:);g(1,:)=g(z,:);
g(z,:)=j;
end
end
for k=i+1:N
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for i=N:-1:2
for k=i-1:-1:1
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for s=1:N
g(s,:)=g(s,:)/g(s,s);
x(s)=g(s,N-1);
end
g
COMPARACIÓN DEL ALGORITMO DE GAUSS Y
GAUSS-JORDAN

Algoritmo de Gauss usando el ejemplo visto en clase.

close all
clear
clc

A=[3.0 -2 0.5 1.8; 5.1 8.1 -3.7 0.8;

2.7 -0.2 1.2 -0.3; 6.1 6.8 5.2 8.1];


b=[2.33; -1.3; -0.67; 3.08];

Ab=[A b];

N=length(b);

for i=1:N %contador del pivote


Ab(i,:)=Ab(i,:)./Ab(i,i);

for j=i+1:N
Ab(j,:)=Ab(j,:) - Ab(j,i)*Ab(i,:); %Transformaciones
end
end
Ab

xi=zeros(N,1); %x,y,z,w
for i=N:-1:1
xi(i)= Ab(i,N+1)-Ab(i,1:N)*xi; %: todas las filas %N+1 o bien
end (última columna)
end
xi

Imagen 1. Resultados obtenidos que resuelven el sistema de ecuaciones planteado con el método
de Gauss.
Algoritmo de Gauss-Jordan usando el ejemplo visto en clase.

close all
clear
clc

A= [3.0 -2 0.5 1.8;


5.1 8.1 -3.7 0.8; %Coeficientes
2.7 -0.2 1.2 -0.3;
6.1 6.8 5.2 8.1];

b=[2.33; -1.3; -0.67; 3.08]; %Vector de resultados

g=[A b] %Matriz aumentada

[m,n]=size(g); %m:filas
%n:columnas

for i=1:m-1
for z=2:m
if g(i,i)==0
j=g(1,:);g(1,:)=g(z,:);
g(z,:)=j;
end
end
for k=i+1:m
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for i=m:-1:2
for k=i-1:-1:1
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for s=1:m
g(s,:)=g(s,:)/g(s,s);
x(s)=g(s,n);
end
disp('Con el Método de Gauss-Jordan')
g
x'
Imagen 2. Resultados obtenidos que resuelven el sistema de ecuaciones planteado con el método
de eliminación de Gauss-Jordan.

Tal como se puede visualizar en la imagen 1 y 2, ambos métodos determinan la


solución única que resuelve el sistema de ecuaciones. Por un lado, en el método de
Gauss únicamente se requiere convertir a ceros los valores debajo de la diagonal
principal, donde se obtienen ecuaciones nuevas y por medio de operaciones
algebraicas se obtienen las soluciones. Por otro lado, el método de Gauss-Jordan
es una extensión más compleja, ya que se busca convertir en ceros los valores que
están por debajo y por encima de la diagonal principal, con la intención de llegar a
las soluciones de manera directa.
En este ejemplo, se cumplen las condiciones de cada método y se observa que las
soluciones que se despliegan de ambos son las mismas.
EJEMPLO 9.5

close all
clear
clc

A1=[2.04 -1 0 0;
-1 2.04 -1 0;
0 -1 2.04 -1;
0 0 -1 2.04];

b1=[40.8; 0.8; 0.8; 200.8];

Ab=[A1 b1];

N=length(b1);

for i=1:N %contador del pivote


Ab(i,:)=Ab(i,:)./Ab(i,i);

for j=i+1:N
Ab(j,:)=Ab(j,:) - Ab(j,i)*Ab(i,:); %Transformaciones
end
end

xi=zeros(N,1); %x,y,z,w
for i=N:-1:1
xi(i)= Ab(i,N+1)-Ab(i,1:N)*xi; %: todas las filas %N+1 o bien
end (última columna)
end
disp('Con el Método de Gauss')
Ab
xi

%% Gauss-Jordan

A2=[2.04 -1 0 0;
0 1.550 -1 0;
0 0 1.395 -1;
0 0 0 1.323];

b2=[40.8; 20.8; 14.221; 210.996]; %Vector de resultados

g=[A2 b2]; %Matriz aumentada

[m,n]=size(g); %m:filas
%n:columnas

for i=1:m-1
for z=2:m
if g(i,i)==0
j=g(1,:);g(1,:)=g(z,:);
g(z,:)=j;
end
end
for k=i+1:m
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for i=m:-1:2
for k=i-1:-1:1
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for s=1:m
g(s,:)=g(s,:)/g(s,s);
x(s)=g(s,n);
end
disp('Con el Método de Gauss-Jordan')
g
x'
EJEMPLO 11.3
close all
clear
clc

A1=[225 0 -25 0;
0 175 0 -125;
-225 0 275 -50;
0 -25 -250 275];

b1=[1400; 100; 2000; 0];

Ab=[A1 b1];

N=length(b1);

for i=1:N %contador del pivote


Ab(i,:)=Ab(i,:)./Ab(i,i);

for j=i+1:N
Ab(j,:)=Ab(j,:) - Ab(j,i)*Ab(i,:); %Transformaciones
end
end

xi=zeros(N,1); %x,y,z,w
for i=N:-1:1
xi(i)= Ab(i,N+1)-Ab(i,1:N)*xi; %: todas las filas %N+1 o bien
end (última columna)
end
disp('Con el Método de Gauss')
Ab
xi

%% Gauss-Jordan

A2=[225 0 -25 0;
0 175 0 -125;
-225 0 275 -50;
0 -25 -250 275];

b2=[1400; 100; 2000; 0];

g=[A2 b2]; %Matriz aumentada

[m,n]=size(g); %m:filas
%n:columnas
for i=1:m-1
for z=2:m
if g(i,i)==0
j=g(1,:);g(1,:)=g(z,:);
g(z,:)=j;
end
end
for k=i+1:m
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for i=m:-1:2
for k=i-1:-1:1
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for s=1:m
g(s,:)=g(s,:)/g(s,s);
x(s)=g(s,n);
end
disp('Con el Método de Gauss-Jordan')
g
x'
EJEMPLO 12.3

close all
clear
clc

A1=[10 2 -1;
-3 -6 2;
1 1 5];

b1=[27; -61.5; -21.5];

Ab=[A1 b1];

N=length(b1);

for i=1:N %contador del pivote


Ab(i,:)=Ab(i,:)./Ab(i,i);

for j=i+1:N
Ab(j,:)=Ab(j,:) - Ab(j,i)*Ab(i,:); %Transformaciones
end
end

xi=zeros(N,1); %x,y,z,w
for i=N:-1:1
xi(i)= Ab(i,N+1)-Ab(i,1:N)*xi; %: todas las filas %N+1 o bien
end (última columna)
end
disp('Con el Método de Gauss')
Ab
xi

%% Gauss-Jordan

A2=[10 2 -1;
-3 -6 2;
1 1 5];
b2=[27; -61.5; -21.5];

g=[A2 b2]; %Matriz aumentada

[m,n]=size(g); %m:filas
%n:columnas

for i=1:m-1
for z=2:m
if g(i,i)==0
j=g(1,:);g(1,:)=g(z,:);
g(z,:)=j;
end
end
for k=i+1:m
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for i=m:-1:2
for k=i-1:-1:1
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for s=1:m
g(s,:)=g(s,:)/g(s,s);
x(s)=g(s,n);
end
disp('Con el Método de Gauss-Jordan')
g
x'
EJERCICIO 9.6

close all
clear
clc

%ECUACIONES
% 10x1 + 2x2 - x3 = 27
% -3x1 - 5x2 + 2x3 = -61.5
% x1 + x2 + 6x3 = -21.5

A1=[10 2 -1;
-3 -5 2;
1 1 6];

b1=[27; -61.5; -21.5];

Ab=[A1 b1];

N=length(b1);

for i=1:N %contador del pivote


Ab(i,:)=Ab(i,:)./Ab(i,i);

for j=i+1:N
Ab(j,:)=Ab(j,:) - Ab(j,i)*Ab(i,:); %Transformaciones
end
end

xi=zeros(N,1); %x,y,z,w
for i=N:-1:1
xi(i)= Ab(i,N+1)-Ab(i,1:N)*xi; %: todas las filas %N+1 o bien
end (última columna)
end
disp('Con el Método de Gauss')
Ab
xi

%% Gauss-Jordan

A2=[10 2 -1;
-3 -5 2;
1 1 6];

b2=[27; -61.5; -21.5];

g=[A2 b2]; %Matriz aumentada

[m,n]=size(g); %m:filas
%n:columnas

for i=1:m-1
for z=2:m
if g(i,i)==0
j=g(1,:);g(1,:)=g(z,:);
g(z,:)=j;
end
end
for k=i+1:m
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for i=m:-1:2
for k=i-1:-1:1
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for s=1:m
g(s,:)=g(s,:)/g(s,s);
x(s)=g(s,n);
end
disp('Con el Método de Gauss-Jordan')
g
x'

%% Sustitución de resultados

%10x1 + 2x2 - x3 = 27
% -3x1 - 5x2 + 2x3 = -61.5
% x1 + x2 + 6x3 = -21.5

E1= 10*x(1) + 2*x(2) -x(3);


E2= -3*x(1) - 5*x(2) + 2*x(3);
E3= x(1) + x(2) + 6*x(3);
disp('Sustituyendo los datos, se llega al resultado de las
ecuaciones:')
E1
E2
E3
EJERCICIO 9.7

close all
clear
clc

%ECUACIONES
%2x1 - 6x2 - x3 = -38
%-3x1 - x2 + 7x3 = -34
%-8x1 + x2 2x3 = -20

A1=[2 -6 -1;
-3 -1 7;
-8 1 -2];

b1=[-38; -34; -20];

Ab=[A1 b1];

N=length(b1);

for i=1:N %contador del pivote


Ab(i,:)=Ab(i,:)./Ab(i,i);

for j=i+1:N
Ab(j,:)=Ab(j,:) - Ab(j,i)*Ab(i,:); %Transformaciones
end
end
xi=zeros(N,1); %x,y,z,w
for i=N:-1:1
xi(i)= Ab(i,N+1)-Ab(i,1:N)*xi;
end

disp('Con el Método de Gauss')


Ab
xi

%% Gauss-Jordan

A2=[2 -6 -1;
-3 -1 7;
-8 1 -2];

b2=[-38; -34; -20];

g=[A2 b2]; %Matriz aumentada

[m,n]=size(g); %m:filas
%n:columnas

for i=1:m-1
for z=2:m
if g(i,i)==0
j=g(1,:);g(1,:)=g(z,:);
g(z,:)=j;
end
end
for k=i+1:m
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for i=m:-1:2
for k=i-1:-1:1
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for s=1:m
g(s,:)=g(s,:)/g(s,s);
x(s)=g(s,n);
end
disp('Con el Método de Gauss-Jordan')
g
x'

%% Sustitución de resultados

%2x1 - 6x2 - x3 = -38


%-3x1 - x2 + 7x3 = -34
%-8x1 + x2 - 2x3 = -20
E1= 2*x(1) - 6*x(2) - x(3);
E2= -3*x(1) - x(2) + 7*x(3);
E3= -8*x(1) + x(2) - 2*x(3);

disp('Sustituyendo los datos, se llega al resultado de las


ecuaciones:')
E1
E2
E3
EJERCICIO 9.9
%Balance de materia ejercicio 9.9
%Datos:
Q1=200; %mg/s
Q3=500; %mg/s
Q33=120;
Q13=40;
Q12=90;
Q23=60;
Q21=30;

%Balance de materia reactor 1:


% Q1+(Q21*C2)==(Q13*C1)+(Q12*C1)
% 200+(30*C2)==(40*C1)+(90*C1)
% 200==(130*C1)-(30C2)

%Balance de materia reactor 2:


%(Q12*C1)==(Q23*C2)+(Q21*C2)
%90*C1==(60*C2)+(30*C2)
%90*C1==90*C2
%(90*C1)-(90*C2)==0
%C1-C2==0

%Balance de materia reactor 3:


%(Q13*C1)+(Q23*C2)+Q3==Q33*C3
%(40*C1)+(60*C2)+500==120*C3
%(120*C3)-(40*C1)-(60*C2)==500

%Armando nuestro sistema de ecuaciones


%[130C1 -30C2 0C3;=200
% 1C1 -1C2 0C3;=0
% -40C1 -60C2 120C3;=500

close all
clear
clc

A1=[130 -30 0;
1 -1 0;
-40 -60 120]

b1=[200;0;500]

Ab=[A1 b1];

N=length(b1);

for i=1:N %contador del pivote


Ab(i,:)=Ab(i,:)./Ab(i,i);

for j=i+1:N
Ab(j,:)=Ab(j,:) - Ab(j,i)*Ab(i,:); %Transformaciones
end
end
xi=zeros(N,1); %x,y,z,w
for i=N:-1:1
xi(i)= Ab(i,N+1)-Ab(i,1:N)*xi; %: todas las filas %N+1 o bien
end (última columna)
end
disp('Con el Método de Gauss')
Ab
xi

%% Gauss-Jordan

A2=[130 -30 0;
1 -1 0;
-40 -60 120]
b2=[200;0;500]

g=[A2 b2]; %Matriz aumentada

[m,n]=size(g); %m:filas
%n:columnas

for i=1:m-1
for z=2:m
if g(i,i)==0
j=g(1,:);g(1,:)=g(z,:);
g(z,:)=j;
end
end
for k=i+1:m
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for i=m:-1:2
for k=i-1:-1:1
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for s=1:m
g(s,:)=g(s,:)/g(s,s);
x(s)=g(s,n);
end
disp('Con el Método de Gauss-Jordan')
g
x'
EJERCICIO 9.10
close all
clear
clc

A1=[52 30 18;
20 50 30;
25 20 55]

b1=[4800; 5800; 5700];

Ab=[A1 b1];

N=length(b1);

for i=1:N %contador del pivote


Ab(i,:)=Ab(i,:)./Ab(i,i);

for j=i+1:N
Ab(j,:)=Ab(j,:) - Ab(j,i)*Ab(i,:); %Transformaciones
end
end

xi=zeros(N,1); %x,y,z,w
for i=N:-1:1
xi(i)= Ab(i,N+1)-Ab(i,1:N)*xi; %: todas las filas %N+1 o bien
end (última columna)
end
disp('Con el Método de Gauss')
Ab
xi

%% Gauss-Jordan

A2=[52 30 18;
20 50 30;
25 20 55]

b2=[4800; 5800; 5700];

g=[A2 b2]; %Matriz aumentada

[m,n]=size(g); %m:filas
%n:columnas

for i=1:m-1
for z=2:m
if g(i,i)==0
j=g(1,:);g(1,:)=g(z,:);
g(z,:)=j;
end
end
for k=i+1:m
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end
for i=m:-1:2
for k=i-1:-1:1
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for s=1:m
g(s,:)=g(s,:)/g(s,s);
x(s)=g(s,n);
end
disp('Con el Método de Gauss-Jordan')
g
x'
EJERCICIO 9.11

close all
clear
clc

%Se transformaron los valores de la matris de kg a g


A1=[.015 .017 .019;
.00025 .00033 .00042;
.001 .0012 .0016]

b1=[2.12; 0.0434; 0.164]

Ab=[A1 b1];

N=length(b1);

for i=1:N %contador del pivote


Ab(i,:)=Ab(i,:)./Ab(i,i);

for j=i+1:N
Ab(j,:)=Ab(j,:) - Ab(j,i)*Ab(i,:); %Transformaciones
end
end

xi=zeros(N,1); %x,y,z,w
for i=N:-1:1
xi(i)= Ab(i,N+1)-Ab(i,1:N)*xi; %: todas las filas %N+1 o bien
end (última columna)
end
disp('Con el Método de Gauss')
Ab
xi

%% Gauss-Jordan

A2=[.015 .017 .019;


.00025 .00033 .00042;
.001 .0012 .0016]
b2=[2.12; 0.0434; 0.164]

g=[A2 b2]; %Matriz aumentada

[m,n]=size(g); %m:filas
%n:columnas

for i=1:m-1
for z=2:m
if g(i,i)==0
j=g(1,:);g(1,:)=g(z,:);
g(z,:)=j;
end
end
for k=i+1:m
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for i=m:-1:2
for k=i-1:-1:1
g(k,:)=g(k,:)-g(i,:)*(g(k,i)/g(i,i));
end
end

for s=1:m
g(s,:)=g(s,:)/g(s,s);
x(s)=g(s,n);
end
disp('Con el Método de Gauss-Jordan')
g
x'

También podría gustarte